读书笔记 | 敏捷编码&敏捷调试
这周的个人项目让我感受到自己在编程方面的不足和缺陷,所以选择了《高效程序员的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,属于读书笔记. 重现第一,提问第二 问题重现是实证过程的最强大武器,如果不能重现问题,你也无法证明修复了它 ...
随机推荐
- PHP ftp_set_option() 函数
定义和用法 ftp_set_option() 函数设置 FTP 连接的各种运行时选项. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 ftp_set_option(ftp_co ...
- Java语法清单-快速回顾(开发)
Java CheatSheet 01.基础 hello,world! public static void main(String[] args) { System.out.println(" ...
- bzoj 2257 (JSOI 2009) 瓶子与燃料
Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy 的飞船上共有 N个瓶子(1<=N& ...
- NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp
#include <uf.h> #include <uf_modl.h> #include <uf_drf.h> #include <uf_obj.h> ...
- iOS 点击Application icon加载推送通知Data
今天做APNS远程推送通知遇到了一个问题,就是手机接收到通知的时候,如果马上点击通知的 alert view时候,系统马上唤醒你的Application,通知或调用你的didReceiveLocalN ...
- Native API
https://technet.microsoft.com/en-us/sysinternals/bb897447.aspx http://www.rohitab.com/discuss/topic/ ...
- mysql 需要掌握的重点
1. 安装mysql: google it.2. 新建database,table: create database database_name;create table table_name ...
- .net 接受请求过来的流
//接收POST过来的数据 System.IO.Stream s = Request.InputStream; int count = 0; byte[] buffer = new byte[1024 ...
- [190308]Ubuntu 安装完之后,安装的软件小记
install software vim sudo apt-get install -y vim Typora command copy from Typora website # or run: # ...
- CF475F meta-universe
题意:给你一个无限大矩形中有一些planet,每次可以选择某一没有planet的行或列分割开矩形(分割开以后要求矩形不为空).问最后能分割成几个矩形? 标程: #include<bits/std ...