左耳听风 - 软件开发与架构设计的原则「读书打卡 day 13」
你好!我是 Java 工程师蔡姬,此蔡姬非彼菜鸡!很高兴和大家一起共读陈皓老师的《左耳听风》一书,并在这里分享自己的感悟。
我的读书打卡将会分为两部分——笔记 + 打卡。
笔记部分,我会整理在读书过程中感悟比较深的内容,和你一起分享。
打卡部分,我会就一个点阐述个人的思考。
话不多说,让我们开始吧!
笔记
软件开发原则
不重复原则
不重复即 DRY (Don’t Repeat Yourself.) 原则。只要相似的代码出现不止一处,就必须将其共性抽象出来,形成唯一的新方法,还要对现有代码做变更,使其可以调用这个新方法并传递适当的参数。
大道至简原则
大道至简原则即 KISS (Keep It Simple, Stupid.) 原则,该原则在软件设计领域备受推崇。如今,复杂的东西反而没那么受欢迎。
面向接口而非实现原则
这是设计模式中最根本的哲学:注重接口而非实现,依赖接口而非实现。接口说抽象而稳定的,而具体的实现则是多种多样的。
命令查询分离原则
遵守这一原则有利于提升系统的性能和安全性。
当一个方法通过返回一个值来响应一个请求的时候,它就具有查询的性质。
当一个方法要改变对象的状态的时候,它就具有命令的性质。
在设计时应该尽量使接口单一化,保证方法的行为严格限于命令或查询。
按需设计原则
程序员或架构师在设计系统时,过多考虑扩展性,会使架构与设计间存在大量折中,最终导致产品失败。
迪米特法则
迪米特法则又称作最少知识原则,其正式表述为:对象 O 中的一个方法 M,应该只能够访问以下对象中的方法:
对象 O。
与对象 O 直接相关的组件对象。
由方法 M 创建或实例化的对象。
作为方法 M 的参数的对象。
面向对象 SOLID 原则
单一职责原则
开闭原则
里氏代换原则
接口隔离原则
依赖倒置原则
打卡:你自己有什么补充的原则吗?
我个人非常认可“第一性原理”。
第一性原理指的是,回归事物最基本的条件,将其拆分成各要素进行解构分析,从而找到实现目标最优路径的方法。
就像数学公式一样,只有自己从头开始推导一遍,才能真正理解它。
实际工作中,很多所谓的“公式”都有其特定的使用条件,盲目使用很容易犯错,只有从第一性原理出发,才能屏蔽信息在传递过程中引入的噪声,从而得到更加准确和深刻的理解。
以上便是今日份的笔记和打卡内容。欢迎你在评论区留言,我们一起探讨,共同进步。
我是 Java 工程师蔡姬,期待和伙伴们有更多交流和思维碰撞,明天见!
版权声明: 本文为 InfoQ 作者【Java 工程师蔡姬】的原创文章。
原文链接:【http://xie.infoq.cn/article/0034a54c3bd59509e7bd606f0】。文章转载请联系作者。
评论