您的位置:首页 > 其它

软件随想录--More Joel on Software(2)

2012-01-07 14:31 288 查看
第四部分 管理大型项目

1.火星人的耳机

为了保证早期版本(IE5、6)的网页能够正常显示,IE8进行了大量的改动以保证兼容性。

2.为什么Microsoft Office的文件格式如此复杂

介绍了Office的Word、Excel文件的二进制格式,并建议:

1)使用Office内置的功能去完成文档的输出;

2)如果只是要生成在Excel中能打开的表格数据,考虑使用CSV格式;

3)Word文档可以考虑生成RTF文档。

3.要挣钱,就别怕脏

讲他如何卖软件赚钱的。

(到目前为止,感觉软件随想录这本书中的大部分内容都是Jole关于软件开发、人才培养、项目管理等不同方面的一些感想。看书的过程中,有时候感觉就是在看故事,倒并不一定要从中学到什么,或者学到的东西根本就不是作者原来要讲的东西,而只是自己灵光一闪的想法而已。)

第五部分 编程建议

1.循证式日程规划

1)不要忽视日程规划,不要因为觉得规划的日程不可能实现而放弃规划,或只是应付了事;

2)制定规划会迫使你清楚自己要做的东西,如果你没有想过这些东西,你制定的日程就没有实际意义了;

3)日程中的任务应该是较小的、能够快速完成的,而不是一个大的、复合的大功能;

4)追踪你的时间安排,比较每个任务的原定完成时间和实际完成时间,计算两者的比率,在估算最终完成时间的时候作为参照;

5)把编程以外的工作,包括一些不可避免的辅助性工作计算到任务的完成时间中,也包括修改问题的时间;

6)为新的功能设想、测试等工作留出足够的缓冲时间;

7)利用时间日程,倒逼自己去掉程序中不重要的功能;

2.关于战略问题的通信之六

关于软件的效率、功能和硬件限制的问题;

以Windows Office战胜Lotus的例子说明:如果你的产品受到硬件水平的影响而导致运行效率不够理想,不必担心,硬件自身的发展会帮助你解决问题;如果这个时候将大量的时间和人力投入到产品的优化上,可能当你新产品发布的时候你会发现,你的竞争对手受益于摩尔定律,他们产品运行效率上的问题已经解决了;而且他们在你做系统优化的时候,又添加了很多新的功能。

硬件限制的问题不是致命的问题,随着硬件性能的提升和价格的下降,这些问题会自然地得到解决;

还要考虑到软件寿命的问题:如果你的产品是不断更新发布的、需要慢慢积累用户的,那Jole的观点是适用的;但如果你的软件是服务于特定客户的,需要在规定时间内提交产品供其使用,那么软件运行效率优化还是十分重要的,毕竟你不能逼迫用户马上去采购性能先进但价格昂贵的硬件设施。

3.你的编程语言做得到吗

多接触几种开发语言和环境,可以拓展自己的视野,让你解决问题的思路更加灵活。

4.让错误的代码显而易见

1)写出优美代码的几个层次:

可以分清好的和糟糕的代码;

对好的代码有了初步的认识,但停留在是否符合规范的层次;

可以找到隐蔽的不干净的代码,发现表面之下的问题;

精心构建自己的代码,保持它们清晰易懂、不容易出错;

2)“寻找一种代码的书写规范,让错误的代码变得容易被看出。让代码中的相关信息在显示屏上集中在一起,使你能够当场发现和改正其中的错误。”

3)被误解的匈牙利命名法:不是要在变量、函数前添加i,s来表示它是int还是string;而是通过前缀来标识这个变量是行还是列(rw/col),是相对于屏幕(xw-x坐标相对于window)还是相对于页面(xl-相对于layout)。这样从名称上就可以看到这个变量/函数的意义,当xl和xw直接进行计算的时候,就会发现里面可能存在的逻辑错误。

简单来说,就是通过提高代码的可读性,使得错误更少、更容易发现。

第六部分 开发软件公司

1和2是jole为两本书写的前言:《Eric Sink on the Business of Software》和《Micro-ISV:From Vision to Reality》。

3.飙高音

好的程序员的作用:

优秀程序员的效率远远高于不好的程序员,开发效率相差十倍;

而不好的程序员永远都做不出优秀程序员开发出的产品,所以单纯增加人手的方法是无法得到好的产品的;

就像一堆飙不了高音的歌唱演员放在一起,音高也打不到F6(女高音的最高音)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: