本书作者Joost Visser,译者张若飞。本书讲解了编写可维护代码的10个要则,从目录就可以看出这10点分别是:

  1. 编写短小的代码单元(15行以内,在大部分情况下还是能实现的,但是当我们使用Linq或者使用对象初始化器代码一下子就超过15行了,这点要则还是有些苛刻的)
  2. 编写简单的代码单元(分支不超过4个,这个还是很值得学习的)
  3. 不写重复代码(代码重用是很重要的技巧,然而现在大部分项目追求快速迭代,把每个功能都当成独立的来进行设计,导致很多相似重复的代码,留下了很多的技术债务)
  4. 保持代码单元的接口简单(参数不超过4个或者提取成对象,很实用的技巧)
  5. 分离模块之间的关注点(避免形成大型模块,以便能达到模块之间的松耦合,分离关注点隐藏具体实现)
  6. 架构组件松耦合(顶层组件之间应该做到松耦合,减少暴露细节)
  7. 保持架构组件之间的平衡(平衡代码中顶层组件的数量和体积,组件数量在6-12之间并且体积基本一致)
  8. 保持小规模代码库(代码规模尽量小,控制增长并主动减少代码体积)
  9. 自动化开发部署和测试(通过使用自动化框架来进行自动化测试)
  10. 编写简洁的代码

  可以说本书的大部分要则都相当适用,并且作者也提供了大量的代码示例以及重构技巧,足见作者经验丰富,且在写作时下了一番功夫,这是一本非常好的书。

  我觉得编程是一门艺术,代码是艺术的表现,掌握技术固然很重要,但是编码技巧比技术更重要,古人云:“工欲善其事,必先利其器。”。

  我反对编写让人难以理解的代码,代码难以理解势必难以维护,而且这几年互联网得到了急速的发展,以前几个月甚至几年才能达到的数据量级,现在一个月甚至一周就能达到,项目的规模也越来越大,已经不再是那种一个人就能控制得了的,只有团队之间的相互协作才能更好的完成项目。那么编写简洁明了(优秀)的代码就至关重要了,它能让团队其他的成员能更好的理解代码的意图,不管是修复代码还是扩展功能都能更快上手。而想要编写优秀的代码就需要多写代码,观察代码之间的关联,使用面向对象或者模式思想进行重构,并且时常阅读其他人的代码,从别人的代码中学习优秀的编码技巧,通过自身的努力提升自己的水平,才能让编码技艺更加纯熟。

《代码不朽:编写可维护软件的10大要则(C#版)》读后感的更多相关文章

  1. 《DevOps软件架构师行动指南》读后感

    从软件架构师视角讲解了引入DevOps实践所需要拥有的技术能力,涵盖运维.部署流水线.监控.安全与审计以及质量关注,这是本书一开始内容简介的开头,本书的作者是伦恩·拜斯(Len Bass).英戈·韦伯 ...

  2. nodejs开发指南读后感

    nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...

  3. DevOps:软件架构师行动指南(文摘)

    第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来

  4. 2020年DevOps工程师入门指南

    DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...

  5. 5月29日 Java性能调优指南 读后感

    并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习

  6. 敏捷开发、DevOps相关书籍——书单

    自己瞎整理的一些书单,都是豆瓣评分比较高的书,可以作为选择的一个参考. 书名 豆瓣链接 持续交付:发布可靠软件的系统方法 https://book.douban.com/subject/6862062 ...

  7. 有奖试读—Windows PowerShell实战指南(第2版)

    为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...

  8. [转载]你所不了解的DevOps

    DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...

  9. 给 DevOps 初学者的入门指南

    当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...

  10. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

随机推荐

  1. Unix/Linux系统的发展史

    Unix/Linux系统相信是学编程的人都认识这两个系统.我们知道Unix要钱,而Linux免费,而且这两者之间的发展史是什么样的,是不是两者就是同一个东西呢? 我将会以时间的发展过程来一步步的给大家 ...

  2. CMake support in Visual Studio

    Visual Studio 2017 introduces built-in support for handling CMake projects. This makes it a lot simp ...

  3. TCP(一)

    传输控制协议TCP特点:1,面向连接的运输层协议        2,每一条TCP只能有两个端点.点对点        3,TCP是可靠的,无差错,不重复,顺序到达.        4,全双工,允许通信 ...

  4. vue学习笔记(WebStorm安装)

    慕课网:https://www.imooc.com/video/18553 一.前往官网下载:https://www.jetbrains.com/webstorm/download/#section= ...

  5. 转载:如何优雅的实现INotifyPropertyChanged接口

    转载来源:http://www.cnblogs.com/TianFang/p/6240933.html 如何优雅的实现INotifyPropertyChanged接口 INotifyPropertyC ...

  6. MVC开发T4代码生成之一----文本模板基础

    T4文本模板 T4全写为Text Template Transformation Toolkit,是一种编程辅助工具,用来使程序代码自(懒)动(猿)生(福)成(利)的工具.MVC开发中大量使用了T4模 ...

  7. 1、背景介绍及移动云MAS平台 --短信平台

    目的: 刚开发完成一套短信平台以及一个Web端短信发送系统,短信平台耗时两个周.短信发送系统耗时两个多月,开发使用的技术没什么高科技含量,在此主要是记录下很多情况的处理方案,希望能让大家提出改善方案和 ...

  8. springboot练习

    https://www.jianshu.com/p/9a08417e4e84 1.@Controller和@RestController的区别? Spring4之后加入的注解,原来在@Controll ...

  9. list对象中根据两个参数过滤数据

    list对象中根据两个参数过滤数据 List<demo> list = new List<demo>() { ,b=,c=,d= }, ,b=,c=,d= }, ,b=,c=, ...

  10. Js 常用调试的方法

    A  使用alert() 和document.write() 方法监视变量值 如果要中断代码的运行,监视变量的值,则使用alert() 方法: 如果需要查看的值很多,则使用document.write ...