【问题标题】:What extensibility design patterns are there and what are their pros and cons?有哪些可扩展性设计模式,它们的优缺点是什么?
【发布时间】:2011-03-09 08:21:22
【问题描述】:

我正在开发一个新的 CMS 系统,我希望为特定客户扩展或覆盖它的核心。 那里的信息是sparse,或者我一直看起来不够好,但我想从其他开发人员那里获得实践经验。

【问题讨论】:

  • 这个问题太不具体了。做更多的研究,然后您可以要求在特定模式之间进行权衡。

标签: design-patterns content-management-system extensibility modularity


【解决方案1】:

在设计 CMS 时,您可能正在寻找的是它的可插拔性。您的扩展点是否经过精心构思和考虑。查看以下链接以了解可扩展性方面

  1. Pluggable Architecture
  2. Architecture & Design

对于设计方面的标准模式,如 Open/Close Principle, Interface Segregation 原则应该会有所帮助。

归根结底,它是关于您的 CMS 的可插拔性以及核心 CMS 的消费者必须投入多少精力来添加新组件。您可能还会发现这个stackoverflow thread 很有用。

【讨论】:

    【解决方案2】:

    一开始听起来很复杂。但是,IMO 可以通过简单地遵循基础来实现。在开发框架时,您应该非常关注以下问题 -

    努力实现模块化设计 - 始终对接口进行编码,偏好组合而非继承等。

    为所有代码编写单元测试 - 这非常重要,因为测试不仅会引导您进行松散耦合设计,而且在验证向后兼容性方面也很重要,这在此类项目中是一个重要问题.

    只构建需要的东西,避免过多的前期设计和过度设计 - 请注意,最好从代码中提取框架,而不是预先构建。在这样的项目中,很容易忘乎所以地构建一些不需要的东西。不需要的功能不仅会浪费时间和金钱,还会使未来的更改变得困难。不要做太多的前期设计和在小迭代中构建东西,经常重构并使用单元测试作为你的安全网。

    【讨论】:

      猜你喜欢
      • 2022-08-08
      • 2020-09-18
      • 2012-03-09
      • 2011-05-05
      • 2010-09-06
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      相关资源
      最近更新 更多