照片- NESA - Unsplash
首字母缩写
SOLID-表示面向对象编程的前五个原理:
- (SRP). / — . , - , « Unix» KISS.
- / (OCP). — . (Bertrand Meyer) — Eiffel.
- (LSP). , . , . (Barbara Liskov) — Clu.
- (ISP). (Robert Martin), , : « , ». .
- (DIP). , — . ( ).
如果遵循此规则并构造类和函数,以使SOLID原则正确,那么您可能会获得健壮,易于理解且易于维护的代码。顺便说一下,这里有一些例子来说明每个原理是如何工作的。
谁带来了SOLID
您可能已经猜到了,鲍勃叔叔负责了大部分原则。他在2000年的《设计原则和设计模式》中对它们进行了全面描述,而缩写词SOLID则由工程师Michael Feathers提出。如果您有兴趣,Michael有一本书,他在书中提供了有关如何“恢复”旧版系统并在整个过程中不会发疯的建议。
Photo- Oskar Yildiz -Unsplash
SOLID的任务是促进易于维护和随时间扩展的应用程序的开发。但是,这套准则经常遭到批评。
被批评的是什么
这些原则有时被称为“过于模糊”,这使得它们在实践中难以使用。程序员兼作家Joel Spolsky在StackOverflow播客之一中还指出,SOLID方法论过于乌托邦主义,实际上迫使开发人员花时间在冗余代码上,这只是为了打个勾。
他认为,无需事先尝试考虑所有可能的情况,只需编程,逐步纠正缺点,而不必依赖虚构的“安全系统”。 Spolsky并未否定这些原则的重要性,但称其为过分的原则。
有意见SOLID代码连贯性较弱,易于测试,但很难理解(批评使用“难以理解”一词)。程序员必须编写许多详细的接口和小类,这比帮助建立系统更加分散注意力和混乱。许多人都认为这句话是对的,他们认为专注于代码的简单性足以使其他开发人员支持它。
照片-Kevin Canlas -Unsplash
Hacker News Topics发言而且架构,技术堆栈和项目依赖管理的选择更为重要,而不是构建其基础的基本原理。他们在这里再次指出了从集成系统设计开始的不必要的复杂性,指向YAGNI原则或“您将不需要它”。在某种程度上,这是经典KISS方法的另一种混搭。
我们必须承认,有许多陈述是为了捍卫SOLID。因此,HN的一位居民表示,如果在抽象级别出现问题,遵循这些原则将有助于快速替换条件库。足以确保测试正在针对新的实现运行,仅此而已,最大的方法是另外检查类的旧版本的依赖项,并在必要时使用修改后的类,以使测试成功通过。这样,代码中就不会有“不必要的复杂性”,以后将要处理的人将不会面临所谓拒绝他人发展的综合症。
重要的是要记住,SOLID原则仅是准则,而不是严格的规则。在某些情况下,最好还是坚持下去,什么时候退缩。
1cloud.ru:
— HTTP-
,
UTF-8
: