你知道教育学或医学的原理吗?当然知道,毕竟它们很受欢迎。
但你有没有想过,也许开发人员也有自己的原则?
今天,我们想告诉你一些可靠的原则以及如何将它们应用于软件开发,以使开发人员的工作更轻松。
什么是坚实的原则?
它是面向对象软件开发中使用的一组流行设计原则。SOLID 是五个关键设计原则的首字母缩写:
单一责任原则。
开放封闭原则。
里氏替代原则。
接口隔离原则。
依赖倒置原则。
这五种方法都是软件工程师常用的,它们为开发人员提供了重要的优势,因此对这一工作领域非常重要。
Solidity 原则由 Robert C. Martin 在 2000 年的一篇题为《设计原则和设计模式》的文章中提出。尽管这个缩写后来由 Michael Feathers 创造。
在他的文章中,马丁认识到成功的软件会发生变化和发展,并且随着变化,它变得越来越复杂。
Martin 警告称,如果没有良好的设计原则,软件就会变得僵化、脆弱和不灵活。SOLID 原则就是为了对抗这些有问题的设计模式而开发的。
他们实施时的目标是什么?
SOLID 原则的总体目标是减少依赖性,以便工程师可以改变软件的一个区域而不影响其他区域。
此外,它们还旨在使设计更易于理解、维护和扩展。最终,使用这些设计原则可以让软件工程师更轻松地避免问题并创建适应性强、高效且敏捷的软件。
尽管这些原则有很多优点,但遵循它们往往会导致编写更长、更复杂的代码。
这意味着设计过程可能会延长,开发难度也会增加。不过,这些额外的时间和精力是值得的,因为它们使软件更易于维护、测试和扩展。
好的,但应该明确的是,这些原则并不是解决方案,不会避免设计问题。
话虽如此,这些原则之所以变得流行,是因为如果正确遵循,它们可以提高代码的可读性、可维护性、设计模式和可测试性。
在当今的环境下,所有开发人员都应该了解并使用这些原则。
5 项坚实原则
现在我们对Solidity 原则及其实施时的 目标有了更多的了解,现在是时候了解 Martin 开发的 Solidity 原则是什么了。
1.单一职责原则
罗伯特·马丁 (Robert Martin) 很好地总结了这一原则,他指出,一个类应该有且只有一个改变的理由。
遵循这一原则意味着每个类只做一件事,每个类或模块只负责软件功能的一部分。简而言之,每个类必须只解决一个问题。
这一原则对于不同软件的开发来说是基本且必不可少的,因此,大多数开发人员已经使用单一责任原则来构建不同的代码行。它可以应用于软件组件和微服务。
使用这一原则可以使代码更易于测试和维护,使软件更易于部署,并有助于避免未来更改的不可预见的副作用。
这个简单但有用的原则可以避免潜在的错误,从而减少开发人员所耗费的时间。
为了确保您在开发中遵循这一原则,请考虑在构造中使用自动检查来限制类的范围。
这种检查并不是确保您遵循单一责任原则的万无一失的方法,但它可以成为确保类不违反该原则的好方法。
2.开放封闭原则。
开放和封闭原则的理念是,当需要添加某些内容时,必须修改现有的、经过充分测试的类。假设您忘记添加一行代码,您可以这样做。
但是,添加代码可能会导致问题或错误,结果呢?更多的工作。不要改变类,只需扩展它。考虑到这一目标,Martin 总结了这一原则,即在不进行修改的情况下扩展行为。
遵循这一原则对于编写易于维护和审查的代码至关重要。如果满足以下两个特征,您就可以说您遵守了这一原则。
开放扩展,即类的行为可以被扩展。
对于修改封闭,即源代码是固定的,不能被修改。
乍一看,这两个标准似乎本质上是矛盾的,但当你适应之后,你会发现它并不像看起来那么复杂。这往往发生在所有第一次接触固体原则的开发人员身上,不用担心。
遵循这些原则并确保您的类无需修改代码即可轻松扩展的方法是使用抽象。
使用允许多态替换的继承或接口是遵守此原则的常用方法。无论使用哪种方法,遵循此原则对于编写可维护和可审查的代码都很重要。
3.里氏替代原则
在五项坚实原则中,里氏替代原则可能是最难理解的。粗略地说,它致力于要求每个派生类都可以替代其父类。
该原则以 Barbara Liskov 的名字命名,她于 1987 年提出了行为子类型的概念。Liskov 本人这样解释这一原则:
“这里寻求的是类似于以下替换属性的东西:如果对于类型 S 的每个对象 O1,都存在一个类型 T 的对象 O2,使得对于所有以 T 定义的程序 P,当 O1 被 O2 替换时,P 的行为不会改变,则 S 是 T 的子类型。”
虽然乍一看这可能是一个难以理解的原则,但在许多方面,它只是开放封闭原则的一个扩展,因为它是一种确保派生类扩展基类而不改变行为的方法。
遵循这一原则有助于避免更改造成的意外后果,并避免必须打开一个封闭的类来进行更改。
它使软件的扩展变得更加容易,尽管它可能会减慢开发过程,但在开发过程中遵循这一原则可以避免更新和扩展期间出现许多问题。
4. 接口隔离原则
接口隔离原则的总体思想可以概括为: 最好有许多小接口,而不是少数几个大接口。
马丁解释了这一原则,建议开发应该侧重于细粒度的接口,针对特定的客户功能,而不必强迫客户使用该接口。
对于软件工程师来说,这意味着不要从现有的接口开始并添加新的方法。
相反,您必须首先构建一个新的接口,然后让类根据需要实现各种接口。
更小的接口意味着开发人员应该更喜欢组合而不是继承,更喜欢解耦而不是耦合。
根据这一原则,工程师应努力提供多个特定于客户的接口,避免拥有一个大型通用接口的诱惑。
5.依赖倒置原则
这一原则提供了一种解耦软件模块的方法。简单来说,依赖倒置原则意味着开发人员应该依赖抽象,而不是具体化。
遵循此原则的一种流行方法是使用依赖倒置模式,尽管这种方法不是唯一的方法。
无论您选择使用哪种方法,找到使用此原则的方法将使您的代码更加灵活、敏捷和可重用。
形成有序结构并存储在任何计算机系统中的 电话号码数据库 信息和 数据主体称为数据库。此类信息源可以加强与现有客户的联系,特别是它允 许公司扩展其服务并与新的潜在客户 取得联系。获取手机 号码数据库有两种方法:
5 项坚实原则
坚实的原则有什么好处?
到目前为止,这 5 个可靠的原则能为软件开发带来什么还不得而知,但我们为什么不从更大的角度来看待它们能从中产生的好处呢?
1. 变更的频率和影响
类中的职责越多,你需要更改它 我的号码列表 的次数就越多。如果实现了多个职责,我们就不再讨论彼此独立的类了。
很简单:如果你的类发生变化,那么职责也会发生变化。但如果它只有一个职责怎么办?你不必不断更改职责。
2. 更容易理解
具有单一职责的类、软件组件和微服务比提供解决所有问题的 类、软件组件和微服务更容易解释、理解和实现。
底线是什么?软件开发速度越快,错误越少,实施就越容易。
但是嘿,要小心扩展简化…如果你滥用单一责任原则,你最终会为每个功能创建一个类,结果呢?在编写实际代码时,你必须添加依赖项,这会使代码无法运行、令人困惑且难以阅读。
作为开发人员,我们能告诉你什么?使用常识来应用单一责任原则。
3. 通过问题验证设计
好吧,应用这些原则说起来容易做起来难。如果您要长期构建软件并需要使其适应不断变化的需求,那么最简单、最快捷的方法可能是向现有代码添加方法或功能,而不是编写新的类或组件。
但这通常会导致课程承担更多的责任,并使软件的维护变得越来越困难。
在进行任何更改之前,您可以通过问自己一个简单的问题来避免这些问题:您的类/组件/微服务的职责是什么?
如果您的答案是肯定的,那么您很可能违反了单一责任原则。
那么最好退一步思考一下你目前的做法。很有可能有更好的方法可以应用它。
坚实的原则有什么好处?
为开发人员提供指导的坚实原则
如果您将这些原则应用于任何软 专业完整的调制解调器配置图片教程 件的开发,那么您将获得可维护、可扩展、可测试和可重用的程序。如果您考虑 IT 世界的现状,这更适合市场。
当然,理解和运用它们并不容易,但只要你努力练习并付出努力,你就能实现。此外,它还能保证你取得更好的结果,还能节省你的时间。
但您真的相信我们所谈论的合理原则是可行的吗?
在评论中告诉我们您的意见,也许您有一个解决其中一些问题的建议。