使用功能部件管理部署时,应该将功能分解为许多小功能还是一项大功能?


15

我对features模块相对较新,并且在线阅读了相互矛盾的建议,这些建议是最容易维护的:A)一个大功能还是B)几个较小的功能,然后是一个“ feature-controller ”类型的模块,其中列出了所有较小的功能作为依赖项。

关于我的具体情况:我正在使用local development -> dev server -> staging server -> live server工作流程。几乎可以肯定,这个特定的网站将是我开发过的唯一网站。我不打算features在其他任何网站上使用我为此网站创建的内容。

这使我倾向于在一个大功能中执行所有操作,因为过去我遇到过很多问题,因为我不小心在多个功能中定义了相同的规则并遇到了麻烦。但是,就结构而言,这对我来说似乎是错误的-功能/功能不同,因此应将其分为单独的功能。另一方面,我觉得这样做可能会给自己增加额外的工作和开销,而这不会使任何人受益。

在实际实践中,哪种方法更容易维护-一个大功能还是许多小功能?

Answers:


7

制作几个小功能,按概念层划分

优点:

  1. 回顾粒度时,将取代和执行恢复-所以你不要要恢复眼前的一幕。
  2. 模块化-即使您不打算重复使用单个组件,将它们分解为离散的模块也将有助于维护。

为了从开发到测试再到生产部署单个站点,我们使用以下分类法(其中“站点”被替换为站点的唯一机器名)—

  • site_types功能-声明内容类型,字段,ImageCache设置,用户角色
  • site_structure功能-声明上下文,视图,菜单和菜单链接,块,用户权限,变量
    • 取决于site_types功能
  • site_content功能-声明节点
    • 取决于site_structure功能

如果有多个不同的网站部分(例如,公共与私人),请考虑进一步分解:

  • site_types 特征
  • site_structure 功能-声明公共和私有共同的结构组件
    • 取决于site_types功能
  • site_public_structure 特征
    • 取决于site_types功能
  • site_public_content 特征
    • 取决于site_public_structure功能
  • site_private_structure 特征
    • 取决于site_types功能
  • site_private_content 特征
    • 取决于site_private_structure功能
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.