本书作者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. eclipse-jee-kepler 如何设置编译compiler为1.8

    最新下载了jdk1.8,想在eclipse里面用一下 jdk1.8的新特性 但是,貌似eclipse(eclipse-jee-kepler-SR2-win32-x86_64.zip)最高的编译级别为: ...

  2. JS 通过 navigator获取判断浏览器信息

    获取浏览器信息需要使用navigator.userAgent 对象 根据获取到的内容判断浏览器信息 亲身测试 navigator.userAgent IE 11  Mozilla/5.0 (Windo ...

  3. Java反转二叉树

    // 二叉树节点定义 public class BinaryTreefanzhuan { class TreeNode{ int value; TreeNode left; TreeNode righ ...

  4. model 字段参数 choice

    class Banner(NewsBase): ''' 轮播图 ''' PRI_CHOICES = [ # 优先级的限制选择范围 (1,'第一级'), (2,'第二级'), (3,'第三级'), (4 ...

  5. systemverilog soft constraint

    1.class my_item; rand bit constrainted_random; rand bit usually_one; endclass class my_generator; my ...

  6. paloalto防火墙接口使用方法及实例

    1.获取账号相关的唯一API KEY windows:https://x.x.x.x/api/?type=keygen&user=username&password=password ...

  7. Excel uploading date format

    if l_wa_field-value eq 'ZFIRST_REQ_DATE'. clear lv_length. lv_length = strlen( l_wa_excel-value ). c ...

  8. Win10下windows mobile设备中心连接不上的方法无法启动

    微软Win10自动更细补丁后windows mobile设备中心就无法启动了 需要重新启动相关的服务并授予 本机登录用户 权限 1.点击屏幕左下角“开始”图标,点击“运行”,在弹出的输入框中输入“se ...

  9. 九、mybatis模糊查询2种方式

    1. 2. 3.

  10. vue 增删改查

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...