《代码简洁之道》读后感
2015-09-01 21:57
197 查看
最近读了韩磊翻译的《代码简洁之道》,读完之后总想写下点什么来记录读此书过程中的点点滴滴遐想,所以抽空写了该篇,聊以自慰~
1. 整洁的代码总是看起来像是某位特别在意它的人写的。几乎没有改进的余地。代码作者什么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码——全心投入的某人留下的代码。
感言:最后一句真的很让我触动,鄙人一直觉得只有对写代码充满热爱,才能做到全心投入,才能写出适合己意的代码。这句话也点到全心全意的好处:写出的代码让人没有改进的余地。这就是艺术。
2 习艺之要有二:知和行。你应当习得有关原则、模式和实践的知识,穷尽应知之事,并且要对其了如指掌,通过刻苦实践掌握它。
感言:熟话说“知易行难”,但是知也不是那么容易的。但从“我们要穷尽应知之事”这句来说,我们必须要有足够的好奇心和接触新事物的勇气,这样才能主动得去追求学无止境。“知”多后,很多“行”也会变得容易。比如编程时,如果我们对一些已有的类库或工具有所了解的话,这会大大提高我们开发的效率,“行”就是水到渠成的感觉。当然,那些真正有含金量的“行”,是必须要试错的,犯错能加深你的理解,发现你的不足。熟话说得好嘛,“吃一堑长一智”。
3 稍后等于永不 (Later equals never)
感言:这句话让我不禁拍手叫好:这简直就是本分析人性的书!的确,大多数的人都是有惰性的,”稍后“往往是一个自我安慰的借口。所以我强烈建议当前能做掉的事当前做掉!因为即使你之后会做,你还得进入解决问题的上下文,熟悉环境也需要成本。所以“一鼓作气”、“趁热打铁”真是明智的做法。
4 把系统当做故事来讲,而不是当做程序来写。
感言:如果你的眼里看到的只是程序的话,你可能就会感觉自己只是重复地写一些字符,或许你就体会不到编程的快乐了。相反,你把系统当讲故事来讲的话,至少要讲故事发生的原因、经过、结果吧,由此你可以体会到“为什么要做这个系统”,“是怎么把这个系统做出来的”,“这个系统做得怎么样”。当你知道你为什么做一件事时你就有了动力;当你知道你是怎么做出来时,你就会一种踏实或者说充实的感觉;当你知道你做得怎么样时,你会有成就感,或大或小。
5 别给糟糕的代码加注释——重新写吧。
感言:如果房子质量有问题,必须推到重来!的确,我们不应给该那些有本质缺陷的代码存在的理由。加注释,让我想到一句“解释就是掩饰”,如果代码本身能说明问题,又怎么需要掩饰那!
6 无论是设计系统或单独的模块,别忘了使用大概可工作的最简单方案。
感言:如果你有简单方案,你不应该被一些教条主义束缚,把简单问题复杂化。很多人会考虑之后的场景,把当前问题复杂化了。我建议把一些还未出现的问题放到明天,毕竟明天的你会更有经验,明天的技术会更好,明天问题会被更好的解决!
1 有意义的命名
2 函数的第一规则是要短小。第二条规则是还要更短小
3 别重复自己
4 用代码本身来阐述
5 团队要统一编程风格
6 隐藏实现关乎抽象
7 使用异常而非错误返回码
8 测试代码和生产代码一样重要
9 单一权责原则:类或模块应该有且只有一条加以修改的理由
10 保持内聚性就会得到许多短小的类
11 将系统的构造与使用分开(构造指类的初始化之类)
12 尽管使类和函数的数量尽量少是很重要的,但更重要的却是测试、消除重复和表达力
13 建议分离并发相关代码与其他代码
《代码整洁之道》PDF下载链接:http://download.csdn.net/detail/u010738033/9063153
为什么会去读这本书?
最近一段时间,“要写好的代码”的声音一直在耳边缭绕。但是好的代码是怎么样的那?导师常常要求我们写出“可复用,易扩展的软的软件”,但由于之前一直只以实现程序功能为目的,写的程序也属于“一次性程序”,所以对于“好的代码”缺少感觉,更不知道“好的代码”有什么标准。但是鄙人一直崇尚“大道至简”、“简单为美”,所以当我看到“简洁之道”这几个字时,不禁有一种“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”的感觉。怎么读完的?
鄙人读书追求感觉(主要是懒得做笔记~),但是当我遇到一些金玉良言的时候,就记情不自禁地录了下来,企图记录读到这些良言时难以抑制的激动心情。也正是这些金玉良言,构成了我对真本书点点滴滴的印象。此外,我也很遗憾没有仔细阅读作者书中的改善案例,这些都是极好的例子。金玉良言!
接下来我将介绍那几句令我触动的金玉良言。1. 整洁的代码总是看起来像是某位特别在意它的人写的。几乎没有改进的余地。代码作者什么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码——全心投入的某人留下的代码。
感言:最后一句真的很让我触动,鄙人一直觉得只有对写代码充满热爱,才能做到全心投入,才能写出适合己意的代码。这句话也点到全心全意的好处:写出的代码让人没有改进的余地。这就是艺术。
2 习艺之要有二:知和行。你应当习得有关原则、模式和实践的知识,穷尽应知之事,并且要对其了如指掌,通过刻苦实践掌握它。
感言:熟话说“知易行难”,但是知也不是那么容易的。但从“我们要穷尽应知之事”这句来说,我们必须要有足够的好奇心和接触新事物的勇气,这样才能主动得去追求学无止境。“知”多后,很多“行”也会变得容易。比如编程时,如果我们对一些已有的类库或工具有所了解的话,这会大大提高我们开发的效率,“行”就是水到渠成的感觉。当然,那些真正有含金量的“行”,是必须要试错的,犯错能加深你的理解,发现你的不足。熟话说得好嘛,“吃一堑长一智”。
3 稍后等于永不 (Later equals never)
感言:这句话让我不禁拍手叫好:这简直就是本分析人性的书!的确,大多数的人都是有惰性的,”稍后“往往是一个自我安慰的借口。所以我强烈建议当前能做掉的事当前做掉!因为即使你之后会做,你还得进入解决问题的上下文,熟悉环境也需要成本。所以“一鼓作气”、“趁热打铁”真是明智的做法。
4 把系统当做故事来讲,而不是当做程序来写。
感言:如果你的眼里看到的只是程序的话,你可能就会感觉自己只是重复地写一些字符,或许你就体会不到编程的快乐了。相反,你把系统当讲故事来讲的话,至少要讲故事发生的原因、经过、结果吧,由此你可以体会到“为什么要做这个系统”,“是怎么把这个系统做出来的”,“这个系统做得怎么样”。当你知道你为什么做一件事时你就有了动力;当你知道你是怎么做出来时,你就会一种踏实或者说充实的感觉;当你知道你做得怎么样时,你会有成就感,或大或小。
5 别给糟糕的代码加注释——重新写吧。
感言:如果房子质量有问题,必须推到重来!的确,我们不应给该那些有本质缺陷的代码存在的理由。加注释,让我想到一句“解释就是掩饰”,如果代码本身能说明问题,又怎么需要掩饰那!
6 无论是设计系统或单独的模块,别忘了使用大概可工作的最简单方案。
感言:如果你有简单方案,你不应该被一些教条主义束缚,把简单问题复杂化。很多人会考虑之后的场景,把当前问题复杂化了。我建议把一些还未出现的问题放到明天,毕竟明天的你会更有经验,明天的技术会更好,明天问题会被更好的解决!
简洁代码准侧若干!
毕竟是简洁代码,我还是列出一些摘录的准则吧:1 有意义的命名
2 函数的第一规则是要短小。第二条规则是还要更短小
3 别重复自己
4 用代码本身来阐述
5 团队要统一编程风格
6 隐藏实现关乎抽象
7 使用异常而非错误返回码
8 测试代码和生产代码一样重要
9 单一权责原则:类或模块应该有且只有一条加以修改的理由
10 保持内聚性就会得到许多短小的类
11 将系统的构造与使用分开(构造指类的初始化之类)
12 尽管使类和函数的数量尽量少是很重要的,但更重要的却是测试、消除重复和表达力
13 建议分离并发相关代码与其他代码
《代码整洁之道》PDF下载链接:http://download.csdn.net/detail/u010738033/9063153
相关文章推荐
- QTP/UFT 第三方应用调用
- JDK 1.7源码阅读笔记(二)集合类之ArrayList
- java中数组与List相互转换的方法
- 11.3 matlab编辑器颜色风格设置
- c语言练习题 4-2 矩阵运算
- python 更新谷歌hosts
- Java拾遗------JDBC
- Spring 使用构造器装载属性
- Python 读Dict数据的方法,解决key 不在dict的问题,get()函数,setdefault()函数
- C++面试基础题错题集 day one
- Python正则表达式指南
- 用二分代码分析递归运行过程
- C/C++中实型数据的存储格式
- ubuntu15.04下安装jdk8
- eclipse设置字体大小
- java强引用、软引用、弱引用、虚引用
- ubuntu15.04下安装jdk8
- Python RE模块中search()和match()的区别
- Qt之QTextCodec乱谈
- 2015/9/1 Python基础(6):列表