作者:翁松秀


代码整洁之道培训总结

文章目录

  • 代码整洁之道培训总结
    • 1. 本次培训的总结
      • 1.1培训目的
      • 1.2代码简洁——思想总结
      • 1.3代码简洁——函数总结
      • 1.4代码简洁——重构总结
      • 1.5代码简洁——设计总结
      • 1.6代码简洁——工具总结
      • 1.7培训总结
    • 2. 对团队或者组织有哪些建议?
      • 2.1 理论和实践相结合,做到知行合一
      • 2.2 多组织培训

1. 本次培训的总结

1.1培训目的

人类行为都是以目的为导向,培训也是。
这次培训目的很明确,就是让我们的代码更加简洁。为了实现这个目的,我们需要搞明白三个问题:

  • 什么是整洁的代码?
  • 为什么要让代码简洁?
  • 怎么让代码简洁?

这次培训围绕这三个问题,从思想、函数、重构、设计和工具五个方面讲解代码的简洁之道,最后只为了实现一个目的,也就是本次培训的意义:让我们的代码更加简洁。

培训是双向的,老师们会围绕着培训的目的,从各个维度给我们传授代码简洁的知识和技能,我们也应该看准这个目的,吸收消化,不然老师传授的内容太多,容易导致消化不良。

1.2代码简洁——思想总结

在软件开发当中,我们有时候会很看重软件的技术体系和架构设计,往往会忽略软件的代码质量,而糟糕的代码质量会使我们的软件变得臃肿、隐藏BUG和难以维护。所以在开发当中技术体系、架构设计和代码质量同等重要,三足鼎立。

代码质量的衡量标准除了实现功能以外,还有一个很重要的标准,就是代码是否简洁。因为我们的代码不仅仅要让机器能看懂,在后期的维护当中更多的是要让人能看懂,所以代码是否简洁,也是代码质量的衡量标准之一。简洁的代码能在很大程度上降低开发和维护的成本。

什么是简洁的代码?

代码的性能主要是对机器来说的,简洁主要是对人来说的,通俗一点理解,所谓简洁的代码,简单直接,从不隐藏设计者的意图,并且让人读起来轻松自如,赏心悦目。从整体上看,代码逻辑应该直截了当,功能让人一目了然,一眼就能看出这个程序,这个模块要实现什么功能,怎么实现。比如目录和实现的分离,让阅读的人一眼就能看出代码的模块划分。从细节上看,代码中应该不存在BUG和坏味道等杂质,包括:命名不规范、重复代码、过长的方法、过大的类、过长的参数列、散弹式修改、依恋情结、Switch语句、临时变量、过度设计、不用的方法、资源不关闭和不符合SOFA原则等。

1.3代码简洁——函数总结

为什么需要函数?

function:功能,函数。函数是实现某个功能的封装代码。我们需要函数来封装我们的功能,但如果所有的代码都写在一个函数里面,就会使这个函数变得庞杂、子功能模块划分不清晰、不便于我们阅读和维护。
所以在我们的代码中,应该适当使用函数,将我们业务逻辑按功能模块划分,变成简单的子功能模块、实现目录与实现的分离,使模糊的业务逻辑变得清晰、使重复的功能得以复用。

如何衡量一个函数的复杂度?

除了一些基本的衡量标准,比如代码行数、参数个数、变量个数、嵌套层数等,我们主要采用国际标准的**圈复杂度来衡量一个函数的复杂度。**通过这次培训,我们知道了什么是圈复杂度,如何计算一个函数的复杂度,以及函数的十个一原则和SOFA原则,让我们学会了如何写函数,如何做到目录与实现的分离,实现函数抽象层次一致,如何降低一个函数的圈复杂度。

1.4代码简洁——重构总结

通过前面的培训,我们弄清楚了什么是简洁的代码,以及为什么要实现代码简洁,现在我们需要弄清楚,怎么让我们的代码变得简洁。

重构。

重构是指不改变软件的行为,对软件内部结构的重新调整,提高其可理解性,降低维护成本。 通过重构,我们可以降低程序和函数的复杂度,使我们的代码变得更加简洁。

我们在培训中学习了11种重构方法:封装重复代码、拆分过长函数、拆分过大类、对象传参、拆分发散式类、归并散弹式类、断开依恋情结、抽取数据泥团、多态替代多分支、公布委托对象、封装数据类。

重构贯穿我们编码的整个阶段,在需求分析,系统设计,编码实现,单元测试之后对我们的代码进行重构,然后进行单元测试,再进行重构,直到我们对代码质量满意为止,最后才发布我们的代码。

1.5代码简洁——设计总结

设计模式是人们从问题中提炼出来的一种通用的解决方案,是经过长时间的试验和错误总结出来的,特定的设计模式适用于解决某一类问题。
在软件开发的设计阶段,需要我们结合具体的业务逻辑,来选择合适的设计模式,除此之外,在编码实现的重构阶段,我们仍然可以采用设计模式来对我们的功能模块进行重构。从而提高系统的可用性、健壮性、可扩展性,降低开发和维护成本。

通过培训,我们了解了设计模式的基本概念,设计模式原则与分类,以及一些常用的设计模式的概念和使用方法。
师傅领进门,修行看个人。短短一节课老师不可能把设计模式所有的内容都灌输给我们,比如老师只能给我们简单介绍设计模式6大原则和23种设计模式,只能给我们一个敲门砖,我们只有通过后面不断地学习才能理解和掌握这6大原则和23个模式,结合具体的业务应用于我们的实际开发当中,打开设计模式的大门。

1.6代码简洁——工具总结

工欲善其事,必先利其器。 对于我们开发人员来说,IDE是生产工具,熟练掌握工具可以大幅度提高我们的开发效率。

如何高效地进行重构?

手工重构很容易引起代码错误,老师在培训过程中给我们介绍了几种IDE中常用的一些重构的操作命令和快捷键,比如重命名,移动类、方法和成员变量,修改方法签名,提取方法,提取接口和上推下移等一些常用的重构命令,在实际开发中熟练掌握这些命令,能大大降低我们重构的时间成本和引起代码错误的概率。

另外,老师还给我们介绍了代码质量分析工具Sonar,用于分析代码,检测代码的坏味道,计算复杂度,单元测试等。熟悉Sonar能有效地管理我们的代码,保证代码质量,降低维护成本。

1.7培训总结

老师们通过这次培训,围绕着让我们代码更加简洁的目的,从思想、函数、重构、设计和工具五个方面,让我们明白了什么是简洁的代码,为什么要让代码简洁以及怎么让我们的代码变得更加简洁。

通过培训,公司制定了程序设计师的十三大原则,明确规范我们的编码习惯,提高代码的质量,降低项目交接和维护的成本。

另外我们应该从思想上摆正编码态度,理解函数的作用,掌握重构的方法,善于使用设计模式,最后结合我们的工具来实现我们的代码规范,让我们的代码更加简洁。

2. 对团队或者组织有哪些建议?

2.1 理论和实践相结合,做到知行合一

通过培训,从思想、函数、重构、设计和工具五个维度让我们了解了什么是简洁的代码,为什么要让代码简洁以及怎么让代码简洁,从思想上给我们带来了观念的改变,包括编码的态度和习惯,让我们掌握了重构代码的方法。

公司应该贯彻程序设计师的十三大原则,设置相应的考核制度,硬性要求开发人员遵守编码规范,提高软件开发的代码质量,降低项目交接和维护的成本。让大家将培训中学到的知识应用于实际开发当中,理论和实践相结合,做到知行合一。使每一个研发人员做到有底线,有规范。这也是培训的最终目的,让我们的代码更加简洁。

2.2 多组织培训

如果条件允许,公司可以多组织类似的专题培训,比如说项目管理,提高大家的知识水平和能力,为公司创造更大的价值。

代码整洁之道培训总结相关推荐

  1. 重读【代码整洁之道】

    一.前言 [代码整洁之道]很经典,但也有些过时,翻译上也有些啰嗦,但总体上是好书.通过对本书核心内容的摘抄,结合自己的经验,整理了一些精简的点,这样你就省的去啃那本400多页的书了. 软件质量 = 架 ...

  2. 《代码整洁之道》(Clean Code)- 读书笔记

    一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...

  3. 代码整洁之道(一)最佳实践小结

    摘要: Any fool can write code that a computer can understand. Good programmers write code that humans ...

  4. 2015年第11本:代码整洁之道Clean Code

    前一段时间一直在看英文小说,在读到<Before I fall>这本书时,读了40%多实在看不下去了,受不了美国人啰啰嗦嗦的写作风格,还是读IT专业书吧. 从5月9日开始看<代码整洁 ...

  5. 《代码整洁之道:程序员的职业素养》一一1.5 参考文献

    本节书摘来自异步社区出版社<代码整洁之道:程序员的职业素养>一书中的第1章,第1.5节,作者:[美]Robert C. Martin(罗伯特 C. 马丁),更多章节内容可以访问云栖社区&q ...

  6. 代码整洁之道(Clean Code)- 读书笔记

    Sorry, 许久未更新文章了,主要因为刚刚换了一家新公司,忙于组建团队(建设.招聘.流程.框架等)与熟悉公司业务,还有领导给的其他工作等等,实在是没有时间更新了.最近在和团队分享Bob大叔的< ...

  7. 《代码整洁之道 Clean Architecture》-读书笔记

    大家好,我是烤鸭: 关于<代码整洁之道>,记录一下读书笔记. 代码整洁之道 第一章 整洁代码 整洁代码的艺术 第二章 有意义的命名 避免误导 有意义的区分 使用读得出来和可搜索的名字 避免 ...

  8. 代码整洁之道(一)最佳实践小结 1

    摘要: Any fool can write code that a computer can understand. Good programmers write code that humans ...

  9. [读书笔记] 代码整洁之道

    书的示例是Java语言编写的,虽说不会影响阅读,但是后面几章讲应用这套方法论的时候,大篇幅的Java代码分析还是挺难受的,而且连java测试框架Junit都要细讲,对于非Java系的开发者来说,一些内 ...

最新文章

  1. Powershell管理系列(十)邮件联系人及邮件用户的管理
  2. 大数据,人工智能网易百度这些公司都走在前列
  3. First update-【计算机方面的权威外文数据库(全)】
  4. 在字符串中查找指定的字符串--strstr
  5. 开发中最基本的对数据的增删改查SQL
  6. 牛客网_PAT乙级_1018人口普查(20)
  7. 手机端校验的那些事情(简单实例)
  8. 10个最佳jQuery Lightbox效果插件收集
  9. 标准I/O缓冲:全缓冲、行缓冲、无缓冲
  10. 代码安全/权限控制/敏感数据规范多多 - 第395篇
  11. 计算机网络管理员基础知识,计算机网络管理员(基础知识)
  12. Dw怎么背景图片设置
  13. JPA使用nativeQuery多参数查询注意点
  14. html5中header的作用,HTML5中的header标签是什么意思?HTML5中header标签具体使用方法你知道吗?...
  15. 复习Python爬取必应的壁纸
  16. java发送邮件被退回,从Java应用程序发送电子邮件中的异常:中继被拒绝
  17. NVIDIA JETSON XAVIER NX TX2 NANO 比较及与显卡算力对比
  18. 电话销售话术模板有哪些 电话销售技巧
  19. String 和 StringBuider
  20. CS115 - Computer Simulation, Assignment

热门文章

  1. [转载]Radmin的命令行参数
  2. 自学成才,PHP从入门到精通学习路线规划
  3. 解决Gazebo闪退,提示escalating to SIGKILL on server的问题,Melodic更新gazebo9到gazebo11
  4. JSP页面中常用四种标签
  5. 5款良心工具,专治各种流氓顽固软件!
  6. Facebook授权登录获取应用编号和应用密钥及配置
  7. 2020.01.12日常总结
  8. 【CC评网】2013.第39周 漂亮的作息表
  9. 从CMM的QA到CMMI的PPQA
  10. pdf怎么转换成word格式呢?