UNIX思想②——清晰原则
是什么
代码不应该巧妙,而应该清晰。
以大幅提升复杂度为代价,用技术使性能得到一点点提升的做法是丢了西瓜捡芝麻。
复杂的代码不仅难以理解,还容易发生故障。
而清晰的代码既便于理解,又不容易出错。
为什么
写代码时最重要的一点就是以人(阅读代码维护软件的程序员)为对象,不以执行代码的计算机为对象。
维护是软件不可避免的一个阶段。这个阶段的所需成本通常比重新开发一款软件的成本还要高。因此,代码不是编译完、解释完之后能在计算机上运行就万事大吉了,它还必须能让人读懂。
怎么做
我们要编写可读性高的、清晰的代码。
另外,在读代码时,不要对难以读懂的部分再三解读。
第一次需要解读可能是因为碰巧没看懂,如果第二次还需要解读,就需要想办法处理了。
此时我们可以给代码添加注释,或者把代码修改得更容易理解,以此来避免再三解读同一段代码。
UNIX思想②——清晰原则相关推荐
- 面向对象思想设计原则及常见设计模式
面向对象思想设计原则 •在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 •单一职责原则 •开闭原则 •里氏替换原则 •依赖注入原则 •接口分离原则 • ...
- 设计原则与思想:设计原则
这里写目录标题 理论一:对于单一职责原则,如何判断某个类的职责是否够单一 理论二:如何做到"对扩展开放,修改关闭?扩展和修改各指什么?" 理论三:里式替换(LSP)跟多态有何区别? ...
- 面向对象思想设计原则
设计模式:经验的总结,本质是一个思想,和具体的语言无关 分为创建型设计模式.结构型设计模式.行为型设计模式,共23个模式 创建型设计模式: 创建对象 6个 如简单工厂模式.工厂模式.单例模式 结 ...
- 微服务与微服务架构的主要思想和原则
< 微服务与微服务架构 > 前言 再来谈谈微服务,关于" 微服务架构 " 早在2014 年一位名为 马丁.福勒 的工程师提出到现在(最早是在1967年,梅尔文.康威的康 ...
- 设计原则与思想:规范和重构(11讲)
文章目录 设计原则与思想:规范和重构(11讲) 理论一:什么情况下要重构?到底重构什么?又该如何重构? 重构的目的:为什么要重构(why)? 重构的对象:到底重构什么(what)? 重构的时机:什么时 ...
- unix编程艺术的设计原则
1.模块原则:使用简洁的接口拼接简单的部件 2.清晰原则:清晰胜于技巧 加注释 选择简单算法 3.组合原则:设计时考虑拼接组合 unix中的输入输出选择文本流 4.分离原则:策略同机制分离,接口 ...
- 设计原则与思想:设计原则12讲
文章目录 设计原则与思想:设计原则(12讲) 理论一:对于单一职责原则,如何判定某个类的职责是否够"单一"? 如何理解单一职责原则(SRP)? 如何判断类的职责是否足够单一? 类的 ...
- Unix 哲学的一些原则——《Unix 编程艺术》
Unix 哲学是在 Unix 先哲们和 Unix 本身所作出的榜样中体现出来的.可以概括为以下原则: 模块原则:使用简洁的接口拼合简单的部件. 用清晰的接口把若干简单的模块组合成一个复杂软件. 这样, ...
- Unix哲学17条原则的新感悟
现在,说到操作系统,谈论最多的就是Android,ios,Linux,mac os,windows,已经很少有人会使用到unix系统了,除了一些企业内部的系统,和编程爱好者社区会交流外,基本上已经绝迹 ...
- 设计原则与思想【面向对象、设计原则、编程规范、重构技巧】
一.高质量代码的评判标准: 可维护性:在不破化原有代码设计.不引入新的bug的情况下,能够快速的修改或者添加代码 可读性:我们需要看代码是否符合编码规范.命名是否达意.注释是否详尽.函数是否长短合适. ...
最新文章
- Kettle使用_7 数据校验组件应用
- php开发入门,PHP开发入门教程之面向对象
- gradient设置上下渐变_PaintCode Mac使用教程:如何使用渐变色
- 20145107 《Java程序设计》第四次实验报告
- 手机号正则表达式验证_还不会正则表达式?看这篇!
- 大道至简 爱上Metro
- mysql到es的交叉验证
- 数据分析人的职场天花板
- php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转
- 数据中心规划设计参考-(文章以GB 50174为参考基准)
- 种子填充算法c语言代码实现,OpenGL绘图实例三之种子填充算法
- html左侧树形图,Qunee for HTML5 - 中文 : 树形布局
- eyoucms页面调用
- req.getParameterValues 输出前端乱码
- 【新提醒】超低成本手机全息3D投影制作教程_光学_极客迷
- GitHub上十大热门Python项目
- 二分查找边界问题总结
- Constraints --- transition(clock transition、input transition、max transition)
- Java女生后来_那些主动的女生后来怎么样了?
- Felix入门与实践(一)
热门文章
- t2016gc01火柴盒
- 解决no st-link detected问题
- Altium Designer 入门笔记(2)
- 《智能设备艺术、科技、文化作品实例开发与设计》android开发系列介绍---1.3琴类作品:小提琴
- 基于宏基因组的功能挖掘:碳水化合物活性酶(CAZymes)注释
- NP-Complete Stingy Set
- SAT写作的真实面目
- python邮件的发送
- IntelliJ IDEA 通过文件代码模板自定义类注释
- 2021-07-28 论文复现-ACS Catal. 2018, 8, 3, 2402–2412(6)