读书笔记 | 敏捷编码&敏捷调试
这周的个人项目让我感受到自己在编程方面的不足和缺陷,所以选择了《高效程序员的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,属于读书笔记. 重现第一,提问第二 问题重现是实证过程的最强大武器,如果不能重现问题,你也无法证明修复了它 ...
随机推荐
- Android中使用占位符
Android中占位符的使用 有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法. strings.xml中节点是支持占位符的,如下所示: < ...
- VS卸载不干净,再次安装盘符不能更改问题(转载)
下载文件,直接用. 链接:https://pan.baidu.com/s/1K1cbJUq_JC9DN2MoE6Z3RA 密码:cuad
- Python 利用微信端口查看列车时刻表
import requests """ 该程序查看列车时刻 """ url0 = 'http://www.webxml.com.cn/Web ...
- spring boot+vue.js发送post时一直415,swagger却很正常
首先百度说要加header为applicaiton/json,加完后一直400,说json不符合格式,webstorm说要单引号,spring boot那边要双引号...... 后来不知道看了哪里说把 ...
- Delph i2010
我在习惯Delphi2010 转载 一直留着一个txt文件,不晓得是干嘛的(忘记了),偶然打开一看.乖乖~ 2010 还可以这样玩. 1.循环有了新用法 procedure TForm1.Butt ...
- 分类-回归树模型(CART)在R语言中的实现
分类-回归树模型(CART)在R语言中的实现 CART模型 ,即Classification And Regression Trees.它和一般回归分析类似,是用来对变量进行解释和预测的工具,也是数据 ...
- Winform 窗体闪烁 & 任务栏提示
准备: [DllImport("user32.dll")] static extern bool FlashWindowEx(ref FLASHWINFO pwfi); [DllI ...
- flink流的执行大致流程图
- C 自己实现strcpy,strcmp,strlen,strcat等函数
// mystrlen() 测试字符长度方法 int mystrlen(char *str) { int cnt = 0; char *p= str; while(*p++ != '\0') { cn ...
- JS对象 返回星期方法 getDay() 返回星期,返回的是0-6的数字,0 表示星期天。如果要返回相对应“星期”,通过数组完成
返回星期方法 getDay() 返回星期,返回的是0-6的数字,0 表示星期天.如果要返回相对应"星期",通过数组完成,代码如下: <script type="te ...