本书作者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. spring boot 常见的第三方集成

    spring boot基于1.x. 一 集成redis 1.1 配置 spring.redis.host = localhost spring.redis.port = 6379 spring.red ...

  2. DVWA中low级的sql注入漏洞的简单复现

    第一次成功复现一个简单漏洞,于是写下这篇随笔记录一下 首先我们来看dvwa中low级的sql注入的源码 源码文件路径如下图: 源码如下: <?php if(isset($_GET['Submit ...

  3. 使用css3实现动画来开启GPU加速

    参考文章: https://www.w3cplus.com/css3/introduction-to-hardware-acceleration-css-animations.html http:// ...

  4. 跳转Activity时清除当前Activity

    void GotoMainActivity(){ Intent intent = new Intent(ProductionInformationActivity.this, MainActivity ...

  5. jasper打印文件出现空白页面

    EG:打印文件结果打印出一片空白 原因:使用了null的数据源而不是JREmptyDataSource 以下为正确代码 public <T> List<JasperPrint> ...

  6. odoo TransientModels must have log_access turned on

  7. docker 删除所有none的镜像

    docker images|grep none|awk '{print $3}'|xargs docker rmi

  8. 线程池ThreadPoolExecutor源码分析

    在阿里编程规约中关于线程池强制了两点,如下: [强制]线程资源必须通过线程池提供,不允许在应用中自行显式创建线程.说明:使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销,解决资源 ...

  9. 通过该源码修改vim颜色和pudb调试器的代码颜色的方法

    2019-02-19,18点20vim调整颜色vim ~/.vimrc 这个pudb的配色用上的方法改不了.调试状态时候按o和回车能切换console和调试界面. 成功了.通过修改pudb源代码来实现 ...

  10. 《Java并发编程的艺术》并发编程的挑战(一)

    并发编程的挑战 并发编程的初衷是让程序运行的更快,但是更多的使用多线程真的会让程序变快吗? 1.线程上下文切换 关于线程上下文切换 多个线程在一个处理器里并不是同时进行的,而是非常快速地在线程之间进行 ...