读书笔记2014年第2本:《信息简史》

简介:

《程序员修炼之道-从小工到专家》是一本1999年写的老书,但15年之后,书中的许多道理依然没变,时不时拿出一章咀嚼一下仍有许多可回味之处。

第二章 注重实效的途径

7、重复的危害

开发一个软件,大量的时间都会用在维护上,牢记DRY原则(不要重复你自己Don't Repeat Yourself)

系统中的每一项知识都必须具有单一、无歧义、权威的表示。

8、正交性

就是不相依赖性和解耦性。

正交性使问题局部化,一个模块的问题不会扩散到其它模块;促进复用,便于与其它组件组合在一起;使系统更健壮;更利于测试。

项目团队的设置也有正交性的问题,尽量不要让2个团队的责任重叠。

面向对象的技术虽有许多好处,但也非常容易乱用,从而制造出非正交的代码来。

9、可撤消性

10、曳光弹

就是敏捷开发的理念,要即时反馈。

曳光代码与原型系统不是一回事,曳光弹是一个可以运转的整体,虽然功能不全;而原型通常只是一个界面,原型代码通常要丢弃。

11、原型与便笺

原型制作是一种学习经验。其价值并不在于所产生的代码,而在于所学到的经验教训。

12、领域语言

哪些时候需要给程序设计一种领域语言?我写的程序里还没有像VB自动化式的功能需求。

13、估算

估算一个软件项目到底要花多长时间来完成是一个不可能完成的任务。

看看这篇帖子提到的3种方法:

1)想要搞清楚一个事情需要多少时间完成,这最好的方法是找一个程序员已经完成的、相似的项目。对一些简单的网站和应用来说非常有效,或者那些使用标准CRUD的项目也是适用。当项目小且简单时这种方法最好用。这种方法可以用在软件1.0版本时,但以后的版本就不行了,因为这时你跟相参照的项目开始慢慢的产生差异,这时写的代码是你以前没有写过的。 
2)我的好朋友、并且是以前的同事John Walker(不是这个John Walker)喜欢用这种方法。把项目拆解成最小的任务。然后记录完成每个任务你认为可能需要多少小时、天、周、月。遵循这种原则,如果一个任务需要几小时,就是算成一天,如果需要数天,就是算成一周,如果是数周,就算成一月。如果超过一个月,那你就无法知道需要多少时间了,或你根本不知道要做什么。 
3)我有自己的预估方法,但事实上跟John的把任务拆分成最小的子任务的方法非常相似。我是以最坏的情况下每个最小单元需要的完成时间为标准。汇总,然后乘以4。再向上取舍到最近的素数,就算是对我的这种没谱的方法的讽刺吧。

 

第一章 注重实效的哲学
第二章 注重实效的途径
第三章 基本工具
第四章 注重实效的偏执
第五章:弯曲或折断
第六章:当你编码时
第七、八章 

本文转自申龙斌的程序人生博客园博文,原文链接:http://www.cnblogs.com/speeding/p/3662851.html,如需转载请自行联系原作者

http://www.cnblogs.com/speeding/ 

相关文章
|
编译器 Linux C语言
C++Primer 【学习笔记】第一章 深思
main 函数在很多方面都比较特别,其中最重要的是每个 0+程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显式调用的函数。
71 0
|
存储 数据采集 数据可视化
地理信息系统:绪论重点基础知识
地理信息系统:绪论重点基础知识
144 0
|
编译器
重学计算机组成原理(二)- 制定学习路线,攀登“性能”之巅
0 学习路线的知识点概括 学习计算机组成原理,就是学习计算机是如何协调运行的 计算机组成原理的英文叫Computer Organization Organization 意"组织机构"。 该组织机构能够进行各种计算、控制、读取输入,进行输出,达成各种强大的功能。
3003 0
《战争论》第三篇《战略概论》的主要内容
《战争论》第三篇《战略概论》的主要内容 《战略概论》是《战争论》的第三篇,是全书的核心内容,主要论述了战略的定义和三任务、战略五要素和战略四原则,其中战略四原则是《战略概论》的核心(如图1所示)。
1617 0
|
Java 程序员 Android开发
作者谈《阿里巴巴Java开发手册(规约)》背后的故事
1、前言 距离《阿里巴巴Java开发手册(规约)》(下称《手册》)对外正式发布已经1年多了。在过去的3日子里,这本小小的手册在业界产生了巨大的影响力。值此一周年之际,我们不妨一道围炉煮酒,倾听《手册》的主要推动者——孤尽首次讲述规约背后的故事。
2764 0