是什么

代码不应该巧妙,而应该清晰。

以大幅提升复杂度为代价,用技术使性能得到一点点提升的做法是丢了西瓜捡芝麻。

复杂的代码不仅难以理解,还容易发生故障。

而清晰的代码既便于理解,又不容易出错。

为什么

写代码时最重要的一点就是以人(阅读代码维护软件的程序员)为对象,不以执行代码的计算机为对象。

维护是软件不可避免的一个阶段。这个阶段的所需成本通常比重新开发一款软件的成本还要高。因此,代码不是编译完、解释完之后能在计算机上运行就万事大吉了,它还必须能让人读懂。

怎么做

我们要编写可读性高的、清晰的代码。

另外,在读代码时,不要对难以读懂的部分再三解读。

第一次需要解读可能是因为碰巧没看懂,如果第二次还需要解读,就需要想办法处理了。

此时我们可以给代码添加注释,或者把代码修改得更容易理解,以此来避免再三解读同一段代码。

UNIX思想②——清晰原则相关推荐

  1. 面向对象思想设计原则及常见设计模式

    面向对象思想设计原则 •在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 •单一职责原则 •开闭原则 •里氏替换原则 •依赖注入原则 •接口分离原则 • ...

  2. 设计原则与思想:设计原则

    这里写目录标题 理论一:对于单一职责原则,如何判断某个类的职责是否够单一 理论二:如何做到"对扩展开放,修改关闭?扩展和修改各指什么?" 理论三:里式替换(LSP)跟多态有何区别? ...

  3. 面向对象思想设计原则

    设计模式:经验的总结,本质是一个思想,和具体的语言无关 分为创建型设计模式.结构型设计模式.行为型设计模式,共23个模式 创建型设计模式: 创建对象  6个   如简单工厂模式.工厂模式.单例模式 结 ...

  4. 微服务与微服务架构的主要思想和原则

    < 微服务与微服务架构 > 前言 再来谈谈微服务,关于" 微服务架构 " 早在2014 年一位名为 马丁.福勒 的工程师提出到现在(最早是在1967年,梅尔文.康威的康 ...

  5. 设计原则与思想:规范和重构(11讲)

    文章目录 设计原则与思想:规范和重构(11讲) 理论一:什么情况下要重构?到底重构什么?又该如何重构? 重构的目的:为什么要重构(why)? 重构的对象:到底重构什么(what)? 重构的时机:什么时 ...

  6. unix编程艺术的设计原则

    1.模块原则:使用简洁的接口拼接简单的部件 2.清晰原则:清晰胜于技巧  加注释  选择简单算法 3.组合原则:设计时考虑拼接组合  unix中的输入输出选择文本流 4.分离原则:策略同机制分离,接口 ...

  7. 设计原则与思想:设计原则12讲

    文章目录 设计原则与思想:设计原则(12讲) 理论一:对于单一职责原则,如何判定某个类的职责是否够"单一"? 如何理解单一职责原则(SRP)? 如何判断类的职责是否足够单一? 类的 ...

  8. Unix 哲学的一些原则——《Unix 编程艺术》

    Unix 哲学是在 Unix 先哲们和 Unix 本身所作出的榜样中体现出来的.可以概括为以下原则: 模块原则:使用简洁的接口拼合简单的部件. 用清晰的接口把若干简单的模块组合成一个复杂软件. 这样, ...

  9. Unix哲学17条原则的新感悟

    现在,说到操作系统,谈论最多的就是Android,ios,Linux,mac os,windows,已经很少有人会使用到unix系统了,除了一些企业内部的系统,和编程爱好者社区会交流外,基本上已经绝迹 ...

  10. 设计原则与思想【面向对象、设计原则、编程规范、重构技巧】

    一.高质量代码的评判标准: 可维护性:在不破化原有代码设计.不引入新的bug的情况下,能够快速的修改或者添加代码 可读性:我们需要看代码是否符合编码规范.命名是否达意.注释是否详尽.函数是否长短合适. ...

最新文章

  1. Kettle使用_7 数据校验组件应用
  2. php开发入门,PHP开发入门教程之面向对象
  3. gradient设置上下渐变_PaintCode Mac使用教程:如何使用渐变色
  4. 20145107 《Java程序设计》第四次实验报告
  5. 手机号正则表达式验证_还不会正则表达式?看这篇!
  6. 大道至简 爱上Metro
  7. mysql到es的交叉验证
  8. 数据分析人的职场天花板
  9. php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转
  10. 数据中心规划设计参考-(文章以GB 50174为参考基准)
  11. 种子填充算法c语言代码实现,OpenGL绘图实例三之种子填充算法
  12. html左侧树形图,Qunee for HTML5 - 中文 : 树形布局
  13. eyoucms页面调用
  14. req.getParameterValues 输出前端乱码
  15. 【新提醒】超低成本手机全息3D投影制作教程_光学_极客迷
  16. GitHub上十大热门Python项目
  17. 二分查找边界问题总结
  18. Constraints --- transition(clock transition、input transition、max transition)
  19. Java女生后来_那些主动的女生后来怎么样了?
  20. Felix入门与实践(一)

热门文章

  1. t2016gc01火柴盒
  2. 解决no st-link detected问题
  3. Altium Designer 入门笔记(2)
  4. 《智能设备艺术、科技、文化作品实例开发与设计》android开发系列介绍---1.3琴类作品:小提琴
  5. 基于宏基因组的功能挖掘:碳水化合物活性酶(CAZymes)注释
  6. NP-Complete Stingy Set
  7. SAT写作的真实面目
  8. python邮件的发送
  9. IntelliJ IDEA 通过文件代码模板自定义类注释
  10. 2021-07-28 论文复现-ACS Catal. 2018, 8, 3, 2402–2412(6)