读书笔记:《梦断代码Dreaming in Code》

拿到《梦断代码》书后,一口气翻了三次,然后又用了3天时间精心读了五回,也禁不住掩卷长叹一声,做软件难。虽难,仍要继续走下来,可以把软件的限制界定得小一些,用很快方法等过程会使软件战败的高风险小片段,毕竟大家还没有写书上所说的那么的大型软件。

 

第0章 软件时间

一开首看到第0章并从未感到多么奇怪,可能程序员的思维形式已经稳定在大脑中了,但读到作者关于第0章无意搞笑时,也不禁哑然失笑,为何程序员要从0起始计数?因为总结机从0开首计数!多么直接的答案,程序员要上学电脑的计数情势,要从0计数转换到实在用户的从1计数,不停地在先后中开展+1
和-1操作。

读到Hello World,上网google了弹指间这些200四个hello
world的网页,许多都是奇妙的言语。

http://www2.latech.edu/~acm/HelloWorld.html

http://www.roesler-ac.de/wolfram/hello.htm  
这多少个不知道为何无法出示,难道这东西也被QIANG了?

1987年弗雷德里克(Frederick)(Derek)布鲁克斯写了《没有银弹》的资深随想,1/4个百年过去了,银弹确实尚未意识,各样方法论爆发了一大批。

 

第1章 死定了

Bugzilla软件在大家的协会里从未采用过,大家重点用JIRA,主要是在软件快发表前用上一段时间,随着时光的延期,一些品类就逐步不用了。

布鲁克(布鲁克)斯法则:向已延误的档次中补充人力,只会使其继续延误。

做软件的人都闻讯过这多少个原理,但在类型紧锣密鼓的时候实在都忽视它的留存,或者以为这法则对团结的档次不成立。此时高管的核定平常不是靠大脑,而是凭平常的直觉,人多力量大,但在软件行业不适用。“八月妊娠,无论多少女生参与都同一”,是个要命形象的比喻。

 

第2章 Agenda之魂

卡普尔(Mitchell Kapor)在承受David·甘斯的募集时说过的一段话:

在改为数字资本家在此之前,我曾教人超觉静坐,还在一家社区医院的精神科做过心情咨询师,这一个经验对本人影响极深。我所有情感咨询的大学生学位。所以,我另有趣味。我只是误入统计机世界,无意成为比尔(比尔(Bill))·盖茨—-唯有比尔(比尔)·盖茨才能做比尔(Bill)·盖茨。我有史以来不求做大公司、赚大钱。我只是办了家叫做莲花的小商店,做了个几百万人争先选购的软件出品,结果这家小店铺突然暴长,员工数千,每年收入数亿日币。很不爽。至少对自己个人来说,很不爽。所以我偏离了。在某一天,我离开了。

 

第3章 原型与Python

言语的抉择也许都是一个品种在早期采用时务必要经历的惨痛抉择。

文中谈到了汇编、Fortran、C、Perl,谈到了编译型语言和解释型语言,最终项目用Python语言来兑现。

这章里关系了RDF(Resource Description Framework),好像在当年结题的国度863连串中也听到过那些名词,原来这家伙可以用来叙述万维网中的语义。

电梯游说:就是当你有幸在电梯间境遇某位权钱人员时,能脱口而出,在短期内说服她。

 

第4章 乐高王国

模块化和组件化是软件人员的冀望,谁都想把多少个模块插到共同就可以健全的运作并形成任务,但具体却一定残酷,可以运作的模块平日不可以与友好想写的次序配合工作,好的源代码由于商业利益也不太容易找到,程序员只能协调另起炉灶,搭建自己的模块,但结果或者一样,做出来的事物难以让旁人共享,这么些情形周而复始,不断地在三个程序员身上上演。

近些年有一个叫组件管理方面的门类,听起来令人不要信心,连运行在怎么平台上、给什么用户使用都不明晰,这样的零件管理有什么样用?还不如就叫做文档管理算了。

书中关系一个叫考克斯的人,他创办了一家名叫Stepstone的店铺,致力于向C语言系统搭造者提供插入式芯片级软件组件,最终的下结论是:坏消息是这一次试验展现,即使使用新型的技巧,要想设计和打造既有用又真能复用的零部件、为组件写文档以便于客户了然、移植组件到潮水般不断涌现的新硬件平台上、确保新型的改革或公布版本不与留存接口顶牛、将零件销售到接近威廉姆斯堡枪械行业这种鼓励从头做起的价值类别,都是极其困难的。

可复用软件之梦有一个悖论:几乎总能找到一段满意大部分索要的代码。但那一个拿来的代码所不可能形成的一对,恰恰是项目至极的换代之处—-也是创设这个类型的着眼点。

 

第5章 管束奇客和狗

质量三角,既好、又快、还有利于,同时满足的政工不太可能暴发。

从程序员转做经营常被说成是做了“前脑叶白质切除手术”,这些术语或者从刚从《How
We
Decide》
这本书来看过,这种手术会让患者更新丧失心思、不知爱恨悲喜。外国技术人士不愿承担项目首席执行官这种管理职位,而在国内刚好相反,许多时候如故不会编程的人来管理。

用代码行数做判定标准只会鼓励程序员写臃肿、蹩脚的代码。

闲逛式管理MBWA(Management by wandering around)好像不能移植到软件领域中。

至于奇客的2种概念:

以(总结机)程序瑕疵为食—-不善社交、身有恶臭、面色苍白的偏执狂,具有奶酪刨丝器一般的品质特点。

瞩目于己事的人;追求技术(特别是正式技能)和期望、不融入主流社会的人。

群件Groupware:即时通信、聊天室、缺陷跟踪、源借故传统的邮件列表等工具,个人感觉要慎用这个工具,否则你的干活时间会被这多少个工具吃得一干二净。

Wiki在chandler项目中也建立了四起,感觉那些chandler项目用到的工具太多,假诺程序员不可以创立地安排自己的年月,揣度会被这些工具所淹没。

对于程序员来说,确实有一种创立工具的冲动。磨刀不误砍柴功本身没错,但程序员在磨刀的进程中会想弄到一块最好的石块,并花了大把的时光去把刀磨得吹毛断发,却忘了还要砍柴。

 

第6章 搞掂设计方案

随地集成应该更有益产品的期限发表。

这一章出现了GTD,没悟出这本书的产品chandler竟然与GTD也有关系,原来那一个软件的UI设计师尹咪咪受到了戴维(David)艾伦(Alan)的Get
Things
Done书的熏陶,但是这里翻译为《搞掂》,而不是《搞定》,由此看来假使chandler早点揭橥,流行于场景上的GTD工具可能不会是omnifocus,而是chandler了。

www.floklore.org网站里有大气有关创设MAC操作系统的小故事,可惜这么些英文看起来有点累。

有关Linux的作者李纳Stowe瓦茨的话:

别做大品类。从小项目初叶,而且永远不要指望它变大。倘诺如此想(指做大型软件),就会做过头设计,把它想象行过于首要。更坏的图景是,你或许会被自己想象中的劳苦工作所吓倒。所以要从小处起步,着力考虑细节。别去想大气象和好计划。如若项目没解决一点需求,多半就是被过度设计了。

别期待在长期内达成大成就,我从事于Linux达13年之久,我想前边还得花上好些日子。尽管一早就妄想做个大东西,可能现在还没出手呢

 

第7章 细节视图

需要搞错的严重后果,18英尺的巨石拱门变成了18英寸的石桩子。

最著名也最声名狼藉的匈牙利命名法,可能在用C++写Windows程序的一时是急需,因为各类类型、结构、枚举、控件等等令人眼花缭乱,让人容易失误,而在Java和C#等那种强类型的语言中,这类命名法完全是对程序员审雅观的强奸。

prepBut nI vrbLike adjHungarian! qWhat’s artThe adjBig nProblem?

我就是珍惜匈牙利命名法!有咋样问题?

Chandler中的所有内容都是Item,对Item可以打戳算是一种创举,有机会看来还能够试行这款应用。

 

第8章 白板上的即时贴

异常钦佩写规范的人,你要用5年为总计标准的见识看题目。得花上5年岁月,才能得到你真正想要的有效之物。

那里也提到了WebDAV,好像这协议在Mac里实现得相比全,但在Windows中都不完全。omnifocus也支撑WebDAV同步。

这章里提到了37Signals店家(写《重来Rework》的那家公司),这种小型团队专注于AJAX的WEB应用,同样收获了中标。

用贴纸法来商讨项目逐一小本子应该有着的效率特色,也是急速开发里根本加大的。

 

第9章 方法

IBM执行强制进度纪律的成功基于两条规则:

1)计划是强制性的

2)计划必须符合现实情况—-“从底向上”,遵照这几个负责按计划实施的程序员的经验和学识而来,而不是“从顶至下”,靠长官拍脑袋或对市场的期望而来。

CMM这么些沉重的软件开发成熟度模型在国内完全变了味,曾看着一个软件公司为了通过CMM4,编出一堆一贯无人审美的厚厚文档,CMM果然只重过程,而国内更把那种过程流于情势,通过CMM,只为了向用户抬高报价。TSP、PSP也看过,感觉至极繁琐,在境内都难于实践。

2001年17位领军人物,提议了急速软件开发宣言,向这种笨重的CMM宣战,从此极限编程XP和SCRUM起始流行。

Google让开发者把五分之一的时刻花在个人项目上。这种管理方法在国内想都不敢想。

祖尔测试的12个问题:

1)Do you use source
control
?     
你们使用源代码控制呢?

2)Can you make a build
in one step?     你们一步就能一气浑成构建吗?

3)Do you make daily
builds
?    你们做每一天构建吗?

4)Do you have a bug
database
?    
你们有通病数据库吗?

5)Do you fix bugs before
writing new code?    
你们会在写新代码往日修复缺陷吗?

6)Do you have an up-to-date
schedule)?    
你们有与当前工作吻合的进度安排吧?

7)Do you have a
spec?   
你们有章法吗?

8)Do programmers have quiet
working
conditions
?   
程序员工作环境安静吗?

9)Do you use the best
tools money can buy?   
你们拔取了市面上最好工具吗?

10)Do you have
testers?  
你们有测试人员吗?

11)Do new candidates write code during their
interview?   
你们会要求应聘者在面试时写代码吗?

12)Do you do hallway
usability testing?   
你们做走廊可用性测试呢?

 

第10章 工程师和艺术家

squeak一种为小孩子定制的samlltalk最新开源实现,让儿童过早接触编程到底好不佳?

编程是工程仍旧经济学?是不利依然艺术?

高德纳写的书名叫《总括机程序设计情势》,他在1984年拿到图灵奖时宣布感言说,“总计机编程是门艺术”。写《总括机程序设计形式》这本书他花了十年,写TeX和metafont程序没悟出也花了近10年。他宣称,写软件要比写书“难多了”。

 

第11章 通往狗食版之路

吃自己的狗粮,这种思路确实推进提高软件质料和用户体验,寻思连自己都不犯一用的软件凭什么去折磨用户呢?

麦卡锡(麦卡锡(McCarthy))从实质上用LISP描述了LISP,有时光得看看这一个大名顶顶的LISP,先把这段天书贴上,据说与Haskell一样难学。

图片 1

尾声 长赌

丰硕的海湾大桥在二零一二年完工,上网查了查,看来需要在二零一三年才能完工,看来建桥与软件也有相似之处。

从网上搜了一张二零一三年完工时估算的榜样。

图片 2

 

看完书后,我上网查了瞬间,原来chandler1.0一度在二〇〇八年公告了,当前是1.0.3版本,也被誉为一种GTD工具,凭着一点好奇心装上了,实在不会用,即刻就删除了,满屏的东西不明了该按哪个,可能OmniFocus的定义已经到头地占用了我的大脑了,让自己遗弃拥有的omnifocus上的action全部导入到这里来管理,实在没有这多少个勇气。

 

图片 3

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图