Khi sử dụng các tính năng để quản lý triển khai, tôi có nên chia chức năng của mình thành nhiều tính năng nhỏ hoặc một tính năng lớn không?


15

Tôi còn khá mới đối với mô-đun tính năng và tôi đã đọc các đề xuất mâu thuẫn trực tuyến về việc duy trì A) một tính năng lớn hay B) một số tính năng nhỏ hơn và sau đó là mô-đun loại " điều khiển tính năng " liệt kê tất cả các tính năng nhỏ hơn như phụ thuộc.

Một chút về tình huống cụ thể của tôi: Tôi đang sử dụng local development -> dev server -> staging server -> live serverquy trình làm việc. Trang web đặc biệt này gần như chắc chắn sẽ là trang duy nhất mà tôi từng phát triển; Tôi không có ý định sử dụng featurestôi tạo cho trang này trên bất kỳ trang nào khác.

Điều này khiến tôi nghiêng về làm mọi thứ trong một tính năng lớn bởi vì tôi đã gặp vấn đề trong quá khứ khi tôi vô tình xác định các quy tắc tương tự trong nhiều tính năng và gặp rắc rối. Tuy nhiên, về mặt cấu trúc, điều này có vẻ sai đối với tôi-- có các tính năng / chức năng khác nhau nên chúng phải được chia thành các tính năng riêng biệt. Mặt khác, tôi cảm thấy như bằng cách này, tôi có thể tạo ra công việc bổ sung và chi phí cho bản thân mà không mang lại lợi ích cho ai.

Cách tiếp cận nào dễ duy trì hơn trong thực tế - một tính năng lớn hoặc nhiều tính năng nhỏ hơn?

Câu trả lời:


7

Tạo một số tính năng nhỏ, phân chia theo lớp khái niệm .

Ưu điểm:

  1. Độ chi tiết khi xem lại Ghi đè và thực hiện Hoàn nguyên - vì vậy bạn không phải hoàn nguyên mọi thứ cùng một lúc.
  2. Tính mô đun - ngay cả khi bạn không có kế hoạch sử dụng lại các thành phần riêng lẻ, việc chia nhỏ mọi thứ thành các mô-đun riêng biệt sẽ giúp duy trì.

Để triển khai một trang web duy nhất từ ​​phát triển đến thử nghiệm đến sản xuất, chúng tôi sử dụng phân loại sau (trong đó "trang web" được thay thế bằng một tên máy móc duy nhất cho trang web) -

  • site_typesTính năng - khai báo Kiểu nội dung, Trường, cài đặt ImageCache, Vai trò người dùng
  • site_structureTính năng - khai báo bối cảnh, chế độ xem, menu và liên kết menu , khối, quyền người dùng, biến
    • phụ thuộc vào site_typestính năng
  • site_contentTính năng - khai báo nút
    • phụ thuộc vào site_structuretính năng

Nếu có nhiều phần trang web riêng biệt (ví dụ: Công khai và Riêng tư), hãy xem xét chia nhỏ mọi thứ hơn nữa:

  • site_types Đặc tính
  • site_structure Tính năng - khai báo các thành phần cấu trúc phổ biến cho cả Công cộng và Riêng tư
    • phụ thuộc vào site_typestính năng
  • site_public_structure Đặc tính
    • phụ thuộc vào site_typestính năng
  • site_public_content Đặc tính
    • phụ thuộc vào site_public_structuretính năng
  • site_private_structure Đặc tính
    • phụ thuộc vào site_typestính năng
  • site_private_content Đặc tính
    • phụ thuộc vào site_private_structuretính năng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.