[代码整洁]他人感悟

这次的Cleancode的培训,让我很是感慨,原来“道”这个东西真的如古圣先贤所说,无时不有,无处不在。软件编程,这是一个多么现代化的词汇呢,这里面能有道吗?答案是有的。

这次课程的培训,时时处处在围绕着这一点,一开始老师就举了很多个编程大师们的语录,每个大师虽然用不同的表达,但都是在说一件事,都是用自己的理解在阐述着这个道。

那么,什么是道呢?

《实现模式》的作者KENT BECK说编程第一个价值观就是珍视与他人沟通的重要性,GOOGLE公司首席JAVA架构师JOSHUA BLOCH说,编程首先是易于理解,《代码整洁之道》的作者ROBERT MARTIN说,大师级程序员把系统当做故事来讲,而不是当作程序来写。

什么意思呢?总结一下,就是毛主席说的为人民服务,现在叫以人为本。

正是围绕着这个核心:为人民服务,编程才有了“代码整洁之道”的思想和具体技巧。那么具体要为哪些人服务呢?

首先是为所有会阅读我们程序的人服务。不管他是代码维护人员,测试人员,二次开发人员,还是领导,审查人员,学习中的人员,包括自己。要让每一个可能阅读我们代码的人员正确的,顺畅的,没有压力的理解我们的表达,这个就是现代编写代码的目的。老师说,编程首先是为人,然后是为计算机。

围绕着这个目的,我们需要怀有谦卑的心态,为人服务的心态,我们编写的代码必须是易于理解的,简单的。具体操作层面呢:

  • 单一抽象层次原则:目录式的表达,用若干个函数来清晰地说明主业务步骤或是逻辑,函数名要描述实现的功能,而不是如何实现。
  • 单一职责原则

       一个函数一件事

     一个循环一件事

      一个变量一件事

      一行代码一件事

  • 短小原则:

     代码推荐20行,最多50行。

嵌套最多3层

参数最多5个

变量最多7个

圈复杂度最多10

  • l把某些不好理解的代码,或是具体细节的代码,或是复杂的布尔判断的代码,起一个易懂的函数名封装起来,哪怕只有一行代码,哪怕只用一次,有时候一个函数的意义仅仅是为了便于理解。
  • 用函数名来消除一些注释,函数名可以长,40个字符以下都可以。
  • 函数名不要含有NOT,这样让人更舒服地理解。
  • 尽量不用break和continue语句,因为它们容易产生多种理解。
  • 不要有空语句或者{},可以创doNothing()的函数来调用,以免引起误会。
  • 任何可能会引起多种理解的表达,就换一种表达,目标是让人只有一种可能的理解。

其次呢,是为所有会使用我们程序的人服务,主要是为用户服务。如果我们的代码像一篇篇简报,短小精悍,就会让维护它的人员相比维护一大坨一大坨的代码,来得思路清晰一点,痛苦指数减少一点,幸福指数上升一点。而且即使发生问题,也比较容易定位,而不至于大海捞针,这样可以提高维护人员的满意度。同时由于减少了修改BUG的时间,提升了反应速度,从而提高最终用户的满意度,让那些使用我们代码的人拥有幸福的微笑。

所以,我们在编程的时候,也要抱着让人易于理解、便于维护的的目的,多用清晰的简单的表达,所谓大道至简。编程时尽量说人话,要多考虑人的感受,而不是计算机的感受。

------------------------------------------------------

程序员的三大素养:clean code,重构,单元测试。我们需要编写整洁的,让人容易理解的代码,编写好之后,在不改变软件行为的情况下,随时重构,立即单元测试。 学会使用工具logicsocpe,sourcemonitor,Checkstyle,PMD,Sonar 如检测代码,提高效率。

我们还需要持续学习,培训师介绍了不少书籍如:《代码整洁之道  clean code》,重构经典:《重构:改善既有代码的设计》《重构手册》《编写可读代码的艺术》《代码大全2》《代码质量》《实现模式》《重构与模式》《修改代码的艺术》《编程人生》

------------------------------

  • 函数十个一原则:

① 一个循环只做一件事;

② 一个变量只做一件事;

③ 一行代码只做一件事;

④ 一个函数只做一件事;

⑤ 单一抽象层次原则;

⑥ 代码组织一次只做一件事;

⑦ 一种变化仅修改一处;

⑧ 函数圈复杂度应该小于十;

⑨ 函数第一原则必须短小;

⑩ 编写函数必须一心一意,专注,怀有谦卑的心态。

  • 常用判断原则

① 单一职责SRP(Simple responsibility principle)

② 开闭原则 OCP (Open-Closed Principle)

③ 单一抽象层次原则SLAP (single level of abstraction principle)

④ 函数查询修改分离原则 CQS(Command-Query Separation)

⑤ SOFA原则

--------------------------------------

时间: 2024-10-05 05:01:52

[代码整洁]他人感悟的相关文章

[代码整洁]自我感悟

程序首先为人,其次为计算机.好的程序应该朝着最小理解时间靠近,保持代码的整洁性利于阅读.维护,同时在大多情况下并没有带来很多的性能损失.围绕着最小理解化时间,我们应该可以想到以下的好代码具有的特性: 函数名称应该充分表达意思,如果有And或者Or,或者Process,Execute等词语,则一定有必要进行拆分,因为一个函数仅做一件事情. 尽量做到简单.一个函数一件事,一行代码一件事 ,一个循环一件事,一个变量一件事. 函数体内应该在一个抽象层次上,便于理解. 尽量用肯定的变量和函数名称. 函数里

读《Clean Code 代码整洁之道》之感悟

盲目自信,自认为已经敲了几年代码,还看什么整洁之道啊.我那可爱的书架读懂了我的心思,很明事理的保护起来这本小可爱,未曾让它与我牵手 最近项目中的 bug 有点多,改动代码十分吃力,每看一行代码都带一句"这是什么XX代码啊,真XX难改",这样持续了好几天,有天晚上坐在书房回想这几天发生的一切,仰头定睛思考,我终于和它重新确认了眼神 股票见涨你知道买了, 汽车撞墙知道拐了, 孩子死了你来奶了, 大鼻涕到嘴你知道甩了, bug难改知道愤慨了 马上翻开书,前言章节,映入眼帘的就是下面这一张图

代码整洁之道(一)理论篇

自上世纪末,有关仅以测试和代码驱动设计的概念一去不复返.相对于任何宏伟的愿景,对于细节的关注甚至是更为关键的专业性基础. 当然,开发人员通过小型的实践获得可用于大型实践的技能和信用度. 其次,宏大的愿景中最细小的部分没有把握好,都会将整个大局的魅力毁灭殆尽. 这就是整洁代码之所系.神在细节之中 软件的生命周期= 20%生产 + 80%维护 即便是汽车行业里,大量的工作也并不是在于生产而在于维护或者避免维护.对于软件而言,百分之八十或者更多的工作量集中在我们美其名曰的“维护”的事情上:其实就是修修

《代码整洁之道》读后感

众所周知,软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发派还是传统开发派,都不得不承认.<代码整洁之道>提出一种观念:代码质量与其整洁度成正比.干净的代码,既在质量上较为可靠,也为后期维护.升级奠定了良好的基础.作为编程领域的佼佼者,这些实践在<代码整洁之道>中体现为一条条规则(或称“启示”),并辅以来自现实项目的正.反两面的范例.只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量.以上便是<代码整洁之道>这本书的内容简介,

代码整洁备忘(一)

无聊在看<代码整洁之道>,找到了一些自己以前没有注意的地方,在这里记录下来,备忘一下. 目前看完了第九章. 1.重复很多的代码是不好的,需要仔细考虑去掉无用的重复. 2.变量,函数,类等的命名要足够精确,精简&易于搜索. 3.函数尽可能的少用参数(3个以内),&不要向函数内传递bool,因为这明确的说明了这个函数干的不是一件事!函数的职责应该是单一的.函数应该尽可能的短小,过长的函数是不好的. 4.注释,能不用就不用,能少用就少用.能用好的名字说明的问题就不要用注释来说明.标记

《代码整洁之道》精读与演绎】之四 优秀代码的格式准则

本系列文章由@浅墨_毛星云 出品,转载请注明出处.  文章链接:http://blog.csdn.net/poem_qianmo/article/details/52268975 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 这篇文章将与大家一起聊一聊,书写代码过程中一些良好的格式规范. 一.引言 以下引言的内容,有必要伴随这个系列的每一次更新,这次也不例外. <代码整洁之道>这本书提出了一个观点:代码质量与其整洁度成正比,干净的代码,既在质量上

《代码整洁之道》之五 格式

格式是特别重要的,如果没有好的格式,我们前面的努力就会事倍功半.我们在格式上应该做到:当有人查看底层代码时,他们会被代码整洁.一致及所感知到对细节的关注而震惊. “让代码工作”固然重要,但是对于一个开发者来说格式的目的在于沟通,好的格式有利于开发者之间的沟通,而沟通是专业开发者的头等大事. 垂直格式 一般来讲,在垂直上我们希望自上向下展示函数调用依赖顺序.也就是说,被调用的函数应该放在执行调用的函数下面.这样就建立了一种自顶向下贯穿源代码模块的良好信息流.我们希望最重要的概念先出来,希望以包括最

&lt;代码整洁之道&gt;、&lt;java与模式&gt;、&lt;head first设计模式&gt;读书笔记集合

一.前言                                                                                       几个月前的看书笔记,内容全部都是摘自书中比较精辟的句子.笔记都是一段一段的句子,故没有文章的篇幅概念,仅供温习之用,更多详细内容请看原书!!! <代码整洁之道>里面有很多前人编写简洁.漂亮代码的经验.当然书中作者的经验并不100%适合每个人,但大部分都是可借鉴的! <java与模式>这本书内容太多了,我

【读书笔记】--代码整洁之道

“相对于任何宏伟景愿,对细节的关注甚至是更为关键的专业性基础.首先,开发者通过小型实践获得可用于大型实践的技能和信用度.其次,宏伟建筑中最细小的部分,比如关不紧的门,有点儿没有铺平的地板,甚至是凌乱的桌面,都会将整个大局的魅力毁灭殆尽.这就是整洁代码之所系”----没有比书中的这段话更能说明这本书的意义了. <代码整洁之道>是第1期书山有路活动选出的读本.相对于记住那些如何写出整洁代码的那些法则,养成保持代码整洁.提高代码质量的习惯和思维更为重要.全书大致分为三个部分,第一部分1-10章都是介