Joel谈优秀软件开发-摘录

Joel谈优秀软件开发这本书在图书馆近日稍微看另一部分,更像一个散文集,讲了软件开发中的方方面面。下面是一些记录,书本中提到的一些网址摘录在下面,大家有空的可以去看看,有些挺不错的。
1.Ken Arnold:编程风格是主旨 www.artima.com/weblogs/index.jsp?blogger=arnold

Python是第一个将编程风格纳入编译器错误之中的语言(通过缩进表达层次结构)。

编程风格问题是针对人编程还是针对机器编程的问题。为什么不只使用一种方式来针对人眼和编译器来统一编程。对于任意一种给定的语言只存在一种或少数几种通用的编程风格;永远不会出现一种与众不同的编程风格;很多时间和精力都耗费在由于编程风格不同引起的问题上;对任何一个项目来说采用统一的编程风格总是很好的。若能统一世界上的所有编程风格那么就可以将更多的精力投入到其他有价值的事情上去,而且再也没有编程风格之争了。IDE和编辑器花费了大量的资源和精力用在编程风格的转换上面了。

2.Leon Bambrick:最愚蠢用户界面奖:Windows搜索界面 而google的用户界面非常好。

www.secretgeek.net/ms_search.asp#

3.Michael Bean:程序员外包的隐患 www.forio.com/outsourcing.htm

"软件外包"或"将工作转移至海外":软件开发是设计而不是制造技术

衣服和玩具是在海外制造(中国),因为有大量的廉价劳动力;软件外包是同样的道理(中国和印度有大量的廉价程序员);但软件开发外包上是一个严重的战略错误,(应该好好区分运营效率(如制造外包)和企业战略)。因为软件公司应该关注软件开发中的创新能力,如果将其外包就会失去自己的核心竞争力。

只有当开发的软件产品不是关键创新部分是雇佣外包程序员才是有效的方法:如网站设计工作和库存控制等外包出去可以有效的提高企业的运营效率。然而那些需要高超的开发和设计技巧的创新软件是不可能在流水线上装配出来的,因此若将其外包整个公司将失去创新能力,最终失去竞争优势。

因此一个公司要把握自己的核心竞争力在哪里,把不相关的有效的外包出去,有效提高自己的运营效率,对核心工作因加大创新的力度和创新的步伐。

设计是创新工作,设计不等于装配:服装生产成本90%用户装配和制造,10%用于设计。而软件生产成本中恰好相反:10%的装配和制造、90%设计,不过当构件组装技术成熟以后这个可能发生变化,抑或构件或服务组装永远也不会成功,因为软件设计和开发是创新性活动,要产生优秀的软件必须自己去定制。

定制和批量生产各有利弊。定制可以灵活而个性化、批量可以快速生产而标准化。

4.Adam Bosworth: www.adambosworth.net/archives/000031.html

聪明的计算机科学家建立很多宏伟而复杂的体系结构,但由于复杂度已经超出了常人的理解能力,因此无法得到广泛的应用,而真正聪明的计算机科学家能够利用智慧来简化设计方案使设计服务于大众,这样设计的体系结构才能真正发挥作用。

如:SGML简化以后衍生HTML、XML等得到广泛应用,FTP经过简化得到HTTP协议:这都是Tim Berners-Lee所为。对于编程语言也是如此:C++变得越来越复杂,而VB和PHP很好用有很多用户转向了这两种语言,因此语言的发明者也应该谨记要保持语言的精简。VOIP技术,因为H.323过于复杂而没有得到广泛应用,从Skype出现后才渐渐流行起来。

以上就是:坚持简单而基本的想法。--KISS:keeping it simple and stupid

5.关于程序员加班的故事:程序员应该保持轻松愉悦的工作状态,不能超负荷加班。<人件>一本讲述程序员工作的书籍。

6.Bruce Eckel:强类型与强测试。www.MindView.net  http://mindview.net/WebLog/log-2005

静态类型检查:编译器在编译时对所有变量的类型进行正确性检查。

动态类型检查:变量的类型检查在程序运行时进行的:执行时才会看到类型错误。灵活但运行效率不高,而且错误发现时机过晚。执行效率影响。

静态类型检查不能保证产生正确的代码,而动态类型检查也不一定会导致错误代码的产生:如果没有经过测试那么软件就是不可用的;我们需要的是强测试而不是强类型。编译器只是一种形式上的测试。

www.artima.com/weblogs/viewpost.jsp?thread=4639

 

http://www.ericsink.com/bos

http://www.shirky.com/writings/group_enemy.html

http://blogs.msdn.com/rick_schaut/archive/2004/02/26/80193.aspx

http://blogs.msdn.com/larryosterman/archive/2004/04/20/116998.aspx

http://ejohnson.blogs.com/software/2004/11/i_find_c_intere.html

http://www.randsinrepose.com/archives/2004/07/10/what_to_do_when_youre_screwed.html

http://ejohnson.blogs.com/software/2004/11/i_find_c_intere.html

http://www.eaipatterns.com/ramblings/18_starbucks.html

http://www.eaipatterns.com/downloads.html

http://www.joelonsoftware.com/articles/APIWar.html

http://daringfireball.net/2004/06/location_field

http://paulgraham.com/gh.html

http://www.ftrain.com/colophonic.html

http://www.artima.com/weblogs/index.jsp?blogger=unclebob

http://knowfree.net/2007/02/10/the-best-software-writing-i-apress.kf

http://www.joelonsoftware.com/articles/BestSoftwareWriting.html

你可能感兴趣的:(编程,制造,软件测试,企业应用,大众软件)