这样写代码,你的年薪也能翻一倍!

Joyone

共 1347字,需浏览 3分钟

 · 2022-06-27

点击蓝字 关注我们


工作时间久了,当我们已经能够熟练掌握日常业务的时候,大家就会想去追求更高的层次。这里也总结了几条大家在日常工作中经常遇到一些问题:


  • 项目经过多次迭代,各种代码都堆砌在一起,定位线上 Bug 的时候,感觉就像在玩“大家来找茬”;

  • 产品经理口中的一个小需求,要在无数地方小心翼翼地进行各种微调,还被产品经理嫌弃改得慢

  • 辛辛苦苦写好的代码,被别人在其他地方不经意地修改,给弄崩溃了;

其实引发这些问题的根本原因还是在于软件设计。


如何做出一份完美的软件设计?答案是不可能的,因为就不存在所谓的完美设计,最好的设计都是结合业务本身设计的。但遵循以下几大软件设计原则,做出优秀的软件设计也并非难点。


单一职责原则


简称SRP,总结来说,它只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。


通俗理解就是:不管干啥,它都只干一件事,你叫它去买菜,它就只买菜,叫它顺便去倒个垃圾,它就不干了,脾气就这么拽。


开闭原则


简称OCP,当项目需求变动时,在不修改源代码前提下,通过增加新类/新方法/新模块等方式满足新的需求。


开闭原则可以说是编程中最基本,最重要的设计原则。大家耳熟能详的设计模式目的都是为让程序(架构)能遵循开闭原则,它是面向对象程序设计的终极目标,要求程序(架构)既要拥有一定的适应性和灵活性,又要具备稳定性和延续性。


里氏代换原则


简称LSP,子类在继承父类时,不要改变父类原有的功能。


它的核心是定义了什么是父子,就像游戏规则一样。定义后让大家遵守,会让大家的程序在后面越来越复杂的时候也能清晰,而不会越来越乱。


依赖倒转原则


简称DIP。要面向接口编程,不要面向实现编程。总的来说,它可以降低类间的耦合性、提高系统的稳定性、减少并行开发引起的风险以及提高代码的可读性和可维护性。


接口隔离原则


简称ISP,一个类对另外一个类的依赖性应当是建立在最小的接口上的;客户端程序不应该依赖它不需要的接口方法(功能)。


根据它来拆分接口时,首先必须满足单一职责原则。使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。


迪米特法则


简称LoD,它的核心观念就是创建松耦合的类。讲究一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,而是通过引入一个第三者发生间接交互。这样,当一个模块修改时,就会尽量少的影响其他的模块,扩展会相对容易。


合成复用原则


简称CRP,它就是指在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用其已有功能的目的。简言之:要尽量使用组合/聚合关系,少用继承。


以上7条设计原则,基本上都是大神们经过很多次血的教训,总结出来的一套方法论。可以给大家在实际的软件设计过程中,提供一些思路。


当然在前文就说了,没有完美的设计。所以设计都是在具体应用中结合实际的业务场景进一步思考,怎么让系统变得更加可靠,开发更加迅速,代码阅读起来更加轻松,关键在于灵活运用!


关注我们,做好软件设计

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报