Thiết kế kiến ​​trúc iOS: Động lực

Hãy để tiếp cận chủ đề tạo kiến ​​trúc riêng trong loạt bài viết này.

Kiến trúc là gì?

Kiến trúc là cấp độ cao nhất của một thiết kế hệ thống.

Thiết kế hệ thống là một cách để tạo thuận lợi cho việc sản xuất mã cho một ứng dụng.

Một ứng dụng là một phương tiện cần thiết để thực hiện mục tiêu (kinh doanh).

Tôi có thể bỏ qua không?

Ngay cả khi bạn không chuẩn bị thiết kế hệ thống trước khi tạo ứng dụng, bạn vẫn phải suy nghĩ trước khi viết bất kỳ mã nào và đây được gọi là thiết kế hệ thống tình cờ, dẫn đến kiến ​​trúc tình cờ (AA).

Thật dễ dàng để phát hiện kiến ​​trúc tình cờ:
Q: Tại sao mã của chúng tôi rất xấu?
A: Lý do lịch sử

Tôi sẽ đạt được gì?

Mục đích của việc thiết lập một kiến ​​trúc chính thức thay vì nhảy vào công cụ mã hóa là để thiết lập các hướng dẫn, các ràng buộc và các mẫu theo đó mã sẽ phát triển.

Hãy nghĩ về việc thiết lập kiến ​​trúc như đặt một đường sắt cho một mã để di chuyển dọc theo nó giống như một chuyến tàu.

Tại sao tôi lại kiềm chế bản thân?

Nguyên tắc, các ràng buộc và các mẫu giúp:

  • mã theo nguyên tắc ít ngạc nhiên nhất;
  • hiểu làm thế nào một hệ thống hiện có hoạt động;
  • tránh phát minh lại bánh xe;
  • truyền bá ý tưởng làm việc trong cộng đồng.

Tôi có thể sử dụng một trong những từ internet không?

Bạn nên học hỏi từ những người đó, nhưng tất cả họ đều phải chịu nhiều vấn đề:

  • don lồng cung cấp chiến lược tăng trưởng;
  • phù hợp tốt cho chỉ một kích thước của ứng dụng và nhóm;
  • mức độ ngẫu nhiên của các thành phần trừu tượng và truyền thông;
  • phân phối vai trò mơ hồ (Tôi đang nhìn bạn Công nhân trực tiếp);
  • không tha thứ và cuồng tín;)

Tôi có đủ kỹ năng để thiết kế nó không?

Không ai có đủ, nhưng bạn càng có nhiều, càng dễ nhìn thấy ánh sáng ở cuối đường hầm.
Đây là những gì sẽ giúp bạn:

  • đọc sách cũ và sách trắng về thiết kế và mẫu hệ thống;
  • tránh các bài viết mới cố gắng bán cho bạn một viên đạn bạc;
  • tìm hiểu những gì làm việc cho người khác trong sản xuất;
  • sử dụng các nền tảng khác như một nguồn cảm hứng;
  • thử ý tưởng ở nhà, nếu họ làm việc, mang chúng đi làm;
  • trì hoãn quyết định nếu bạn nghi ngờ (làm điều ngu ngốc trong khi đó);
  • thảo luận về ý tưởng và thực hiện với những người khác.

Bắt đầu từ đâu?

Chúng ta nên luôn luôn bắt đầu bằng cách phân tích các yêu cầu (như trong bất kỳ nỗ lực trưởng thành nào) xuất phát từ mục tiêu.

Yêu cầu chức năng.

Trong trường hợp xấu nhất, bạn có thể nhận được một đặc tả chức năng cấp cao, như thế này:

  • Ứng dụng danh sách mua sắm;
  • Có khả năng cộng tác trong danh sách;
  • Khả năng sử dụng không có kết nối internet.

Ở giai đoạn này, doanh nghiệp có thể nghĩ rằng các yêu cầu là đủ, và bạn có trách nhiệm tìm câu trả lời cho hàng loạt câu hỏi phát sinh, ví dụ:

  • Giao diện người dùng sẽ như thế nào?
  • Những thiết bị nào ứng dụng phải hỗ trợ?
  • Tôi có phải làm phía máy chủ không?

Khi bạn có thể nghĩ ra những câu hỏi khác, đã đến lúc chuyển sang giai đoạn tiếp theo.

Yêu cầu tổ chức.

Nếu đó không phải là một dự án trường xanh, có thể có rất nhiều hạn chế đối với lựa chọn kiến ​​trúc của bạn, ít nhất hãy cố gắng trả lời những câu hỏi sau:

  • Đội của tôi là ai
  • Họ mong đợi gì từ kiến ​​trúc của chúng ta?
  • Chúng ta đã thiết lập các công cụ và ngôn ngữ?
  • Chúng ta có thể tái sử dụng một kiến ​​trúc hiện có?

Cuối cùng tôi có thể bắt đầu làm kiến ​​trúc không?

Vâng, bạn có thể! Bằng cách đặt các yêu cầu chức năng và tổ chức lại với nhau, bạn có thể bắt đầu phác thảo ý tưởng của mình và sau đó sáng tác Kiến trúc chính thức! Nhưng đó là một câu chuyện hoàn toàn khác để kể về sự kiện

Giờ tôi về nhà được chưa?

Trước khi bạn đưa ý tưởng của mình vào cuộc sống hoang dã, tôi khuyên bạn nên kiểm tra căng thẳng với một danh sách kiểm tra toàn diện mà tôi đã biên soạn để thuận tiện cho bạn.

Làm thế nào để sử dụng danh sách kiểm tra?

Lấy kiến ​​trúc ứng viên của bạn và giả vờ là người ủng hộ nó bằng cách trả lời các câu hỏi như khi dùng thử (tưởng tượng một ban giám khảo của cộng đồng iOS sẽ giúp đỡ).

Cảm ơn bạn đã đọc!

Nhắn tin cho tôi trên Twitter để phản hồi.

Đi đâu từ đây?

Tổng quan về Kiến trúc iOS hiện có.
Đánh giá về mô hình MVC.