首页 > 代码库 > [阅读笔记]程序员修炼之道

[阅读笔记]程序员修炼之道

一、注重实效的哲学

1.负责。准备告诉别人什么做不到前,先演练一遍,他人可能会说:试过这个吗?提供选择和解决方案,

而不是借口,需要重构,建立原型,测试,别的资源?提出要求和寻求帮助

2.软件的熵。杜绝破窗户,一个破窗会让优秀的系统加速腐烂。

3.石头汤的故事,设计合理的需求目标系统愿景,团结一切力量,大家都觉得参与正在发生的更容易成功。

“我们要增加点。。。可能更好”并假装这不重要。

防止被温水煮青蛙,时刻关注周围的变化。

4.质量与需求之间的权衡。让用户及早的反馈并改良软件。

5.投资自己,提高价值。每年学习一门新语言,每季度阅读一本技术书籍,还有非技术书籍,参加组织打听别人在干什么,

试试不同的开发环境,跟上潮流。

6.交流。没有有效的交流,一个好想法就只是一个无人关心的孤儿。了解用户需求,设计文档,提案和备忘录以申请资源,

报告状态。大部分的时间需要花在交流上。

知道你要说什么?规划,写出提纲,提炼知道准确为止,问自己“这是否讲清楚了我要说的内容?”

了解听众的需要,兴趣,能力,避免枯燥让人厌烦的空谈。针对不同的人,投其所好,让听众感到兴奋。

选择时机。风格文档美观。让听众参与,做倾听者,及时回复。

 

二、注重实效的途径

1.避免重复。开发者之间的重复,安排项目资料管理员,促进交流,存放实用例程和脚本。

2.正交性。组件高内聚,低耦合。

 可以提高生产率:容易测试,复用。可以降低风险。

项目团队分工明确,降低重叠。看一看每个需求改动时涉及多少人就可以判断正交性。

设计,模块化、组件、分层设计。“如果显著的改变某个特定功能背后的需求,有多少模块受影响?”正交系统中应该是1个。

编码,得墨忒耳法则(Law of Demeter),如果要改变对象的状态,让对象替你去做。

3.曳光代码,先构建简单能工作能演示的系统,再依次完善各个组件的功能,完成连接,逐步达到目标。

4.原型与便笺,制作架构原型

主要组件的责任是否得到了良好的定义?

组件之间的协作是否得到了良好的定义?

耦合是否得以最小化?

能否确定重复的潜在来源?

接口定义和各项约束是否可以接受?

每个模块在执行的过程中能否访问到所需的数据?是否能在需要时进行访问?

 

三、工具

纯文本,shell,用好一种编辑器,源码控制,调试就是解决问题,文本操纵语言

1.代码生成器

被动代码生成器,只运行一次,生成的结果一直使用。创建带注释的源文件,生成查找表。

主动代码生成器,每次需要结果时就运行。

不要太复杂,本质上是printf语句。

 

四、注重实效的偏执

[阅读笔记]程序员修炼之道