高效程序员的45个习惯·敏捷开发修炼之道(Practices of an Agile Developer)读书笔记
首先,这本书值得再看一遍——这次的阅读,有很多东西都是知其“形”,不知其“神”的,这导致了我对其中某些建议持怀疑态度,接受了的建议也有待商榷。
总之,先记录本书的一些信息:
Practices of an Agile Developer
高效程序员的45个习惯·敏捷开发修炼之道
美·Venkat Subramaniam和美·Andy Hunt著;钱安川、郑柯译。
人民邮电出版社,图灵程序设计丛书;2010年第一版。
于2017年12月1日读完第一遍。
1.
“敏捷式的单元测试正是采取了相同、相似的过程,并且还让其更上一层楼,不要扔掉桩程序,你把它保存下来,还要让其可以自动化地持续运行,你编写代码来检查其具体值,而不是手工检查那些感兴趣的变量。
用代码来测试变量的具体值(以及跟踪运行了多少个测试),已经是非常普遍的做法。你可以选择一个标准的测试框架,来帮助你完成简单的编写和组织测试的工作,如....Web Service的HttpUnit等等,实际上,对任何你可以想象到的环境和语言都有其对应的单元测试框架,.....(这有一个网址说是里面有这些框架,然而我试了一下网址已经不存在了)”
2.架构设计
开始模仿页面或者做工程的时候,要像书里说的一样列出一个表:
1.对于整个项目,等待完成的任务列表(把设计分解成步骤,加上预估完成所需的时间和建立项目的时间;完成后的功能有什么)。
2.每日的任务列表。(1和2用yes or no标注是否完成和完成时间)
3.用户跟进。由于是做自己的项目,所以完全可以把自己当开发人员和用户来用!就像自己教自己学习一样。每写好一个(或者一部分)可用的功能,就停下来测试和反馈这个功能是否符合预期,有没有要改的地方。
上面这段话写在所有代码的开头。
以前有构思过一个架空的魔法世界(借鉴了《地海巫师》)。在那个世界里,一个人要想释放魔法就必须念咒语,一个咒语由名字和解释组成,名字主要是元素神命名,念的解释越接近元素神的解释,威力就越大,每个元素神都有自己的元素书,里面记载了许多名字和解释,包括一些强大但没多少人知道的禁咒。举个例子:
a说“伟大的风神,请....”,当这个人还是一个菜鸟的时候,发自内心的觉得风神伟大,所以用“伟大”这个形容词会让威力越来越强(相对地,别人可能用美丽之类的形容词也可以,只要内心真的这样认为);但是随着菜鸟越来越强,到了快比肩元素神的地步时,还用伟大反而威力就变得很差了,因为这个时候菜鸟已经不再认为元素神是伟大的了(也有异类)。基于这几点,这个世界是以理解为修为,魔法师们疯狂追寻的除了“解释”外就是魔法术的“名字”了——毕竟没几个人能到神的地步自创名字。
这个小说只写了一点点,后来没时间就没继续了,这个暂且不说了。
那么,这个小说的构造又关我现在在学的编程什么事呢?
前几天写程序的时候突然发现,编程语言=元素主神,变量(函数、api等)的命名=名字,具体的实现代码=解释——真是像啊!编程的学习道路不也是这样么,刚开始读规范学规则(学主神规定的名字和解释),学得越像越厉害,这个像却又因人而异,有些人足够强后就可以自己造轮子了(自己创名)
在我想到这些后,每次写代码的时候都中二感十足啊。。。需求就是怪物,我要写出完美的名字和实现才能把她干掉!只有最强大的魔法才能一次杀死她,不然就得用好几个魔法.....大佬就是主神,语言的建立者就是主神,什么C++神,HTML神啥的。
具体的格式参照(由于自己项目不多,所以这个格式很不成熟):
最新文章
- word如何插入目录
- [DFNews] Cellebrite UFED系列更新, 支持IOS7
- POJ1386Play on Words[有向图欧拉路]
- JavaScript text highlighting JQuery plugin
- UIStoryBoard 中修改控件borderColor
- laravel5.1启动详解
- POJ 2379 ACM Rank Table(排序)
- 【HDOJ】2414 Chessboard Dance
- SQLServer 2008 R2 清空日志文件
- 11gOCP 1z0-052 :2013-09-11 MGR_ROLE role........................................................A66
- (摘录)ASP.NET提供文件下载函数(支持大文件、续传、速度限制、资源占用小)
- JS - Function 之 Arguments
- Android查缺补漏(View篇)--事件分发机制源码分析
- Hystrix概念设计
- [NewLife.XCode]数据模型文件
- 深入分析 ThreadLocal
- Linux十字病毒查杀处理
- nginx负载均衡实验
- ThinkPHP使用Smarty
- spring cloud图形化dashboard是如何实现指标的收集展示的
热门文章
- how to read openstack code : paste deploy
- Java 代理模式和装饰者模式的区别
- Spring Boot中微信全局token的缓存实现
- clamav完整查杀linux病毒实战(摘抄)
- 再探gdb经常使用命令
- POJ1469 COURSES 【二分图最大匹配&;#183;HK算法】
- Android源代码文件夹结构说明
- libsqlite3.dylib与libsqlite3.0.dylib的差别
- Android实战简易教程-第四十五枪(SlideSwitch-好看又有用的开关button)
- Oculus Rift DK2 驱动安装教程