读书笔记 | 敏捷编码&敏捷调试
这周的个人项目让我感受到自己在编程方面的不足和缺陷,所以选择了《高效程序员的45个习惯》中的敏捷开发和敏捷调试两个章节进行阅读。
以下将对敏捷开发和敏捷调试展开详述。
【敏捷开发】
- 注释 | 以前写代码有时会为了写注释而写注释,既费时费力又显得多余而无效果,其实,在代码可以传递意图的地方不要使用注释,例如:bool isStartofWord 就无需添加注释说明变量名含义,又如 int getLinesofFile(string filename) 也无需添加注释说明函数用处。换言之,解释代码做了什么的注释用处不那么大。相反,注释要说明为什么会这样写代码。比如,对于上述的函数可以添加如下注释://count lines by calculate the number of '\n', and the number of lines equals the number of '\n' plus one if the file isn't empty.
- 增量式编程 | 不要等待着程序全部写完后在一口气调试,而应该采用增量式编程。每写完一个函数就应当设计一个测试单元去测试,而且为了保证函数的鲁棒性,测试单元应当进行至少一次的重构,以保证测试的有效性。类似的,每写完一个模块也应该进行关于该模块的综合测试。即采用小步伐的代码构思,实现,测试与调整来实现代码的推进。
- 保持简单优雅 | 繁琐的代码自己查错和修改都很痛苦,因此保持代码的简单优雅非常重要。优雅的代码第一眼看上去,就知道它的用处,而且很简洁。但是这样的解决方案不是那么容易想出来的。这就是说,优雅是易于理解和辨识的,但是要想创建出来就困难得多了。所以当我们觉得自己的代码过于繁杂时,可以考虑自己的编程思路是否可以进行优化。
- 注意内聚 | 设计类的时候要注意控制类的规模,不要无所不含,也不要过于分散。一个类实现某一特定的功能。
【敏捷调试】
- 解决方案日志 | 我们经常碰到这样的情况,这种错误以前遇到过也解决过,但是就是不记得解决的措施了。一种良好的解决方法是维护一个解决方案日志(日期,问题简述,解决方案详述,链接或者代码片段等补充信息)。日后方便通过关键词检索快速定位解决方案。另一方面,解决方案日志要保持轻量级和简单,不要在记录问题上花费比解决问题更多的时间。可以考虑Wiki等多人协作平台进行共同维护。
- 不要忽视警告 | 不要因为是警告就放任不管!
- 单元测试 | 掌握常用的单元测试方法。
读书笔记 | 敏捷编码&敏捷调试的更多相关文章
- 【读书笔记】iOS-iOS敏捷开发
敏捷开发分为几个不同的门派,如:Scrum,XBreed,极限编程(XP Extreme Programming)和水晶方法等. 参考资料:<iOS传感器应用开发最佳实践>
- 读书笔记--<精益和敏捷开发大型项目应用指南>
[摘要] 3月份的时候,根据教练和其他多为项目经理的推荐,开始阅读这本书:本书共三大部分.12个章节,第一部分:思考工具,第二部分:组织工具:第三部分:杂记:全书相当于对精益思想和敏捷团队组织.Scr ...
- 《Linux内核设计与实现》读书笔记 第十八章 调试
第十八章调试 18.1 准备开始 需要准备的东西: l 一个bug:大部分bug通常都不是行为可靠而且定义明确的 l 一个藏匿bug的内核版本:找出bug首先出现的版本 l 相 ...
- Linux内核读书笔记第三周 调试
内核调试的难点在于它不能像用户态程序调试那样打断点,随时暂停查看各个变量的状态. 也不能像用户态程序那样崩溃后迅速的重启,恢复初始状态. 用户态程序和内核交互,用户态程序的各种状态,错误等可以由内核来 ...
- mono for android读书笔记之真机调试(转)
调试环境: 1.软件:monodevelop v3.0.3.5 2.硬件:华为C8650s手机一部,数据线一根,thinkpad e420笔记本电脑一台 调试的应用程序有一个Activity,Acti ...
- <读书笔记>软件调试之道 :问题的核心-如何修复缺陷
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! 修复缺陷 对于一个好的修复来说,不仅仅是让软件运行正确,还需要为将来奠定基础.一 ...
- <读书笔记>软件调试之道 :问题的核心-修复后的反思
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...
- <读书笔记>软件调试之道 :问题的核心-诊断
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 不要急于动手! 尽管可以利用各种工具和技术以及软件自身查找缺陷,但是你最重要的财富是你的智 ...
- <读书笔记>软件调试之道 :问题的核心-重现问题
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 重现第一,提问第二 问题重现是实证过程的最强大武器,如果不能重现问题,你也无法证明修复了它 ...
随机推荐
- 好久没写题解了= =这次是bzoj 1051
唉= =这道题我都想到了tarjan缩点,但是没有想到最后一步啊= =我们很容易想到反向建边然后缩点,这时候我们看由多少个联通块的入度为0,如果为1个,那就输出这个块的大小,否则输出0: #inclu ...
- NX二次开发-UDO用户自定义对象(UFUN)【持续完善】
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...
- NX二次开发-设置WCS显示UF_CSYS_set_wcs_display
NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //设置WCS显示 //1显示WCS, 0不显 ...
- linux使用nmon监控、分析系统性能
linux使用nmon监控.分析系统性能 一.概述 nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的, ...
- List<VO>转成List<Map>
List<A01090021BatchAddCheckVO> list = (ArrayList<A01090021BatchAddCheckVO>) result.get(& ...
- shell 脚本 变量使用,取消一个变量,echo
1. 用户自定义变量,直接使用,赋值的时候等号两边不能有空格 A=100 echo "\$A = $A" # $是取变量A 中的值 "" 号中 \$ 是转译,此 ...
- mysql 远程连接报错
./mysql -uzhu -p -h192.168.1.200 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.200 ...
- sleep()与wait()的区别
①sleep()实现线程阻塞的方法,我们称之为“线程睡眠”,方式是超时等待,怎么理解?就是sleep()通过传入“睡眠时间”作为方法的参数,时间一到就从“睡眠”中“醒来”: ②wait()方法实现线程 ...
- Git 获取项目git clone
git clone 克隆项目 git clone 实际上是一个封装了其他几个命令的命令. 它创建了一个新目录,切换到新的目录,然后 git init 来初始化一个空的 Git 仓库, 然后为你指定的 ...
- redis安装配置使用
1.redis官方下载地址:https://redis.io/download 也可以github上下载,redis 64位下载地址:https://github.com/ServiceStack/r ...