裁员潮下再读 SOLID原则!

你好,我是猿java。

我们用了 5篇文章分别讲解了 SOLID 的 5个原则以及使用,SOLID是 Robert C. Martin(也称为Uncle Bob)提出或者总结出来的经典之作,它可以适用于各种编程语言,通常会用来衡量一个模块,系统设计的是否合理。本文,我们将对 SOLID做一个系统性的总结。

SOLID是什么?

架构整洁之道 这本经典的书籍中有一套关于软件设计的SOLID 原则,SOLID 实际上是五个设计原则首字母的缩写,它们分别是:

  • 单一职责原则(Single responsibility principle, SRP)
  • 开放封闭原则(Open--closed principle, OCP)
  • Liskov 替换原则(Liskov substitution principle, LSP)
  • 接口隔离原则(Interface segregation principle, ISP)
  • 依赖倒置原则(Dependency inversion principle, DIP)

总结

  • 单一职责原则:任何一个软件模块都应该只对某一类行为者负责
  • 开放封闭原则:软件实体应该对扩展开放,对修改关闭
  • Liskov替换原则:子类型必须能够替换其父类型
  • 接口隔离原则:不应强迫客户依赖他们不使用的接口
  • 依赖倒置原则:高层模块不应该依赖低层模块;抽象不应该依赖于细节

SOLID原则是编程规范的一个里程碑之作,如果在日常的设计、编码和重构时能多参考这些原则,至少可以保证自己的代码不会太差,如果要写出优雅的代码,建议可以阅读一些优秀的开源框架,比如 Spring。

个人感悟

经济下行,互联网环境越来越糟糕,每个公司面试的要求越来越苛刻,八股文可以背,算法可以刷,个人认为今后拉开差距的一定是基本功,因为基本功是刻在骨子里的硬通货,比如,网络通信,计算机原理,编译原理,设计思维,如果能够在这些方面多花点功夫,多深入的理解一些,对于不同语言(java,golang,python,c等)和框架其实只是一种工具而已。

最近面试过很多阿里出来的P7,给我感触最深的一点是:他们当中很多都是 985名校,从毕业就进入了阿里,然后在一块很小的业务上拧同一种型号的螺丝太久,以至于他们明面是 P7,实际上技术深度和宽度远不足P6。

或许是这个环境造就的这种悲哀,也或许是他们一直在聚光灯下,顶着高薪的光环迷失了自我,以至于在这裁员的大潮中,他们被脱去光鲜的外衣,然后和市面上的岗位格格不入,高不成低不就。所以,建议同行的小伙伴,在日常的积累中一定要把基本功打扎实,切勿本末倒置。

在学历越来越不值钱的时代,真功夫才是你"卷"的实力。

学习交流

文章总结不易,感谢帮忙点赞,收藏,或者关注公众号:猿java,持续为你呈现更多干货!

原创好文

相关推荐
梓仁沐白几秒前
【Agent 设计模式】推理技术
设计模式
Kinghiee3 分钟前
从使用场景切入前端常见设计模式
前端·设计模式
卷无止境21 分钟前
LangExtract:让LLM从杂乱文本中"抠"出结构化数据的开源工具
后端·python
xieliyu.26 分钟前
Java 线程池入门详解:线程池基础定义 + ThreadPoolExecutor 全参构造方法逐参数解析
java·开发语言·idea·javaee
卷无止境32 分钟前
软件复杂度:那些让代码变得难以理解的东西,到底能不能量化?
后端·python
老白干3 小时前
jjwt 0.9.1 在 JDK 11+ 上的两个“坑”与完整解决方案
java·python·log4j
圆山猫9 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管10 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨10 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡10 小时前
算法日记 - Day3
java·开发语言·算法