高效程序员的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神啥的。
具体的格式参照(由于自己项目不多,所以这个格式很不成熟):

高效程序员的45个习惯·敏捷开发修炼之道(Practices of an Agile Developer)读书笔记的更多相关文章
- 如果你恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- 如果恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- 高效能程序员的七个习惯【csdn】
从网上看到的,感觉挺不错的! Beautiful is better than ugly. Explicit is better than implicit. Simple is better tha ...
- 成为优秀 Node.js 程序员的10个习惯
JavaScript出现近二十年了,但由于其有些问题不能解决,使得像Python和Ruby这一类的语言很吸引人,这些问题包括命令行接口.交互式开发环境.包的管理和没有一个有组织开源社区等.幸亏Node ...
- 介绍Python程序员常用的IDE和其它开发工具
概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE 的全称是Integration Development Environment(集成开发环境), ...
- Python程序员常用的IDE和其它开发工具
概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE的全称是Integration Development Environment(集成开发环境),一 ...
- 【Python】Java程序员学习Python(二)— 开发环境搭建
巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. ...
- Java程序员普遍存在的面试问题以及应对之道(新书第一章节摘录)
其实大多数Java开发确实能胜任日常的开发工作,但不少候选人却无法在面试中打动面试官.因为要在短时间的面试中全面展示自己的实力,这很需要技巧,而从当前大多数Java开发的面试现状来看,会面试的候选人不 ...
- PHP程序员如何突破成长瓶颈(php开发三到四年)
看了这篇博文,我正好处于这个阶段,也有心要突破自己,呵呵! 作为Web开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题, ...
随机推荐
- php-fpm回顾和总结
时间久了很容易忘,这里做个备份 FastCGI协议php语言的实现,可以高效处理来自web端的动态请求 php-fpm维护一个或者多个php-cgi进程池,处理请求时不需要频繁创建进程 所以比传统的C ...
- dubbo服务的group和version
group 当一个接口有多种实现时,可以用group区分 <!-- dubbo group 使用示例 --> <bean id="demoA" class=&qu ...
- symfony could not load type 'datetime'
当用curd生成控制器后,当修改的时候,会有这个提示,解决方法 在orm中通过事务的方式填充时间,然后把生成的form中的文件的时间段去掉 $builder ->add('title') -&g ...
- CentOS firewall添加开放端口
添加 firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效) 重新载入 firewal ...
- start-all.sh 启动时报错解决方案
文件拥有者不是当前用户,或者文件权限没有修改权限 解决方法: sudo chmod 777 "文件名" 或者用 su root 登录,然后删除 再 exit Datanote服 ...
- Java实现二叉搜索树及相关操作
package com.tree; import com.tree.BitNode; /** * * 二叉搜索树:一个节点的左子节点的关键字小于这个节点.右子节点的关键字大于或等于这个父节点 * * ...
- VB.NET+三层 机房收费系统之组合查询
关系组合查询已经用去了4天的时间.每天都在痛苦中煎熬,绞尽脑汁,一句代码都要瞪大眼睛看好长时间,有时候.由于两句话颠倒了.就nothing了:有时候,由于table如何可以转换成实体类型.将自己困住了 ...
- 神马都是浮云,unity中自己写Coroutine协程源代码
孙广东 2014.7.19 无意之间看到了,Unity维基上的一篇文章, 是关于自己写协程的介绍. 认为非常好,这样能更好的了解到协程的执行机制等特性.还是不错的. 原文链接地址例如以下: ht ...
- centos7 安装8188eu驱动小记
最小化安装把lsusb和lspci装上 使用lsusb 和lspci的命令, centos上的安装命令: yum -y install usbutils yum -y install pciutils ...
- cc1: error: bad value (armv5) for -march= switch【转】
本文转载自:https://stackoverflow.com/questions/23871924/cc1-error-bad-value-armv5-for-march-switch Ask Qu ...