应该遵循SOLID原则进行业务特定开发吗?

时间:2015-06-23 08:50:35

标签: business-logic solid-principles

我正在开发一个特定于业务的应用程序,从3个月开始,我阅读了很多关于SOLID php开发的文章。我真的认为这些指南可以为代码增加高价值,我想在未来的工作中开始尊重它们。但我真的对业务特定应用程序中的SOLID dev持怀疑态度,因为我找不到任何方法在我们当前的代码中实现它。我的项目不会公开分享,因为它有一个真正面向业务的目的。如上所述,我阅读了很多SOLID文章,但这些文章给Book实现了Printable接口或Car abtracting Vehicle父类作为示例。这些例子与真实世界的应用程序相差甚远。真实的面向商业的应用程序不涉及书籍或汽车,它们处理客户,产品,订单,发票,统计数据和邮件。

我想开始使用接口,例如,但我在项目中找不到2个具有共同点/服务于类似目标的类,这可以带来实现接口的好处。

所以我的问题有点简单,可以应用SOLID开发并在每个应用程序上增加价值(在这种情况下,我还没有找到如何在我们的项目中实现它),或者这是某种为公共发展制定的指导意味着分享?

注意:不知道stackoverflow是否是发布的正确站点,找不到与此问题相关的更好的stackexchange站点。

1 个答案:

答案 0 :(得分:2)

SOLID几乎是优秀OO的代名词(显然比SOLID更多,但它是一个很好的基础)。

您要问的基本上是:"在真实字系统中可以遵循最佳实践吗?"答案显然是肯定的!但是,为了正确应用这些实践,需要大量的实践和经验。

SOLID是经过多年的实际应用程序制作后从行业中产生的原则,旨在使系统代码基础变得柔和。

首先,您可能没有看到很多应用这些原则的机会,但那是因为您在应用解决方案之前尚未确定问题而且更难,因为建模问题一开始可能很微妙,直到它们咬住你。

  

"我们的主要问题是数据库架构非常陈旧   设计非常糟糕。我们正在努力改进它,这就是我的原因   在过去几个月里阅读了很多关于SOLID的内容。"

SOLID主要是关于面向对象的,良好的面向对象建模不应该关注持久性。如果您想改进数据库架构,那么您的方向是错误的。

我强烈建议您阅读有关域驱动设计(DDD)的内容,而不是只关注SOLID。 DDD就是以一种对域及其真实世界方面真实的方式来制作特定领域的模型。 DDD的主要精髓并不在于它的战术模式,而是基于SOLID。