软件工程:工程师必知的8条设计原则
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
软件工程是一门涉及到设计、开发、测试和维护软件的实践性学科。 软件工程的目标是提高软件的质量、效率和可靠性,以满足用户的需求和预期。 为了实现这个目标,软件工程师需要遵循一些基本原则,指导他们在软件开发过程中做出合理的决策。 这些原则可以称为软件工程的黄金原则,因为它们具有一定普遍性和指导性。 在过去的一段时间内,我们分享了8个常见设计原则,今天做一个总体性的总结。 具体内容如下: 1单一职责原则(SRP)单一职责原则是指在软件系统中,一个模块或一个类应该只负责一个职责或一个功能。 这个原则可以提高软件系统的内聚性和可读性,降低软件系统的耦合度和复杂度。 单一职责原则要求一个模块或一个类在完成其职责或功能时,不会影响或依赖其他模块或类。 实现单一职责原则的方法有很多,比如使用分解、封装、委托、代理等。 具体见:软件工程:单一职责原则(SRP) 2开放封闭原则(OCP)开放封闭原则是指在软件系统中,一个模块应该对扩展开放,对修改封闭。 这个原则可以提高软件系统的可复用性和可维护性,适应需求的变化和用户的需求。 开放封闭原则要求一个模块在不修改其内部代码的情况下,可以通过扩展其功能来满足新的需求。 实现开放封闭原则的方法有很多,比如使用抽象、接口、继承、多态、插件、钩子等。 具体见:软件工程:开放封闭原则(OCP) 3里氏替换原则(LSP)里氏替换原则是指在软件系统中,如果一个类是另一个类的子类,那么子类的对象可以替换父类的对象,并且不会改变原有的功能和正确性。 这个原则可以保证软件系统的一致性和完整性,遵循面向对象的设计原则。 里氏替换原则是继承关系的基础,也是多态的前提。 实现里氏替换原则的方法有很多,比如使用抽象、覆盖、重载、协变、逆变等。 具体见:软件工程:里氏替换原则(LSP) 4KISS原则KISS原则是Keep It Simple, Stupid的缩写,意思是保持简单。 这个原则强调要尽量使用简单和直观的方法来解决问题,避免使用复杂和晦涩的方法。 这样可以提高代码的可理解性、可测试性和可修改性,也可以减少出错的风险和调试的难度。 KISS原则可以应用在不同的方面上,比如需求分析、设计方案、编码风格、算法选择等。 实现KISS原则的方法有很多,比如使用伪代码、注释、文档、重构等。 具体见:软件工程:Kiss原则,复杂事情简单做,是重要的能力 5合成复用原则合成复用原则是指在软件系统中,应该尽量使用组合或聚合来实现复用,而不是使用继承。 这个原则可以提高软件系统的灵活性和可扩展性,降低类之间的耦合度和层次复杂度。 组合或聚合是指一个类包含或引用另一个类作为其属性或成员变量,而继承是指一个类从另一个类派生出来,并继承其属性和方法。 实现合成复用原则的方法有很多,比如使用委托、策略模式、装饰器模式等。 6依赖稳定原则依赖稳定原则是指在软件系统中,稳定的模块应该依赖于其他稳定的模块,而不稳定的模块应该依赖于其他不稳定的模块。 这个原则可以保证软件系统的稳定性和可靠性,减少因为依赖关系而导致的错误和变更。 稳定性可以从多个方面来衡量,比如变化频率、抽象程度、耦合度等。 实现依赖稳定原则的方法有很多,比如使用接口、抽象类、依赖注入(DI)、控制反转(IoC)等。 具体见:软件工程:依赖稳定原则 7DRY原则DRY原则是Don't Repeat Yourself的缩写,意思在编写代码时,避免添加不必要的功能或复杂性。 这个原则强调要避免代码的冗余和重复,尽量复用已有的代码,减少代码的数量和复杂度。 这样可以提高代码的可读性、可维护性和可扩展性,也可以减少出错的可能性和修改的成本。 DRY原则可以应用在不同的层次上,比如变量、函数、类、模块等。 实现DRY原则的方法有很多,比如使用抽象、封装、继承、多态、模板、泛型等。 8YAGNI原则YAGNI原则是You Ain't Gonna Need It的缩写,意思是你不会需要它。 这个原则强调要避免过度设计和过度编码,只实现当前需求所必须的功能,不要预测未来可能需要的功能。 这样可以避免浪费时间和资源在不必要或不确定的功能上,也可以避免增加代码的复杂度和难以维护。 YAGNI原则可以帮助软件工程师保持敏捷和灵活,适应需求的变化和用户的反馈。 实现YAGNI原则的方法有很多,比如使用迭代开发、最小可行产品(MVP)、测试驱动开发(TDD)等。 Part1最后以上是在工程实践中,比较重要的8个指导性的基础原则。 一名合格的软件工程师,需要了解和掌握这些基本的设计原则,并学会结合具体的场景需求,做出有效且灵活的应用。 能够更好的解决软件开发中的面临的复杂问题,且能够做出高质量的设计和决策,最终交付更多的优秀的产品和创造更多的价值。 该文章在 2023/7/12 9:00:12 编辑过 |
关键字查询
相关文章
正在查询... |