Joel谈优秀软件开发方法

当前位置:首页 > 网络编程 > 编程语言与程序设计 > Joel谈优秀软件开发方法

出版社:清华大学
出版日期:2007-7
ISBN:9787302146513
作者:Joel Spolsky
页数:296页

作者简介

本书意在用这些最优秀的软件开发类文章来激励程序员们编写出更优秀的软件。我的目的很简单,就是好好编写软件。编程工作充满魅力,因为它的趣味性、条理性、重要性无一不吸引您沉醉其中。我希望可以拥有更丰富的读软件经验,我也希望软件开发人员明白如何才能写出令读者感兴趣的软件,因为沟通是软件开发过程中最易被忽略的技能。.
本书中的文章介绍了大量涉及软件的出色想法,它们也是我在近期所见过的最棒的观点。文章的作者们用各种有趣、清晰、吸引人的方式用心地将这些想法展示给我们。我相信这些想法会不断为人们所接受,并且很快会在软件开发领域产生深远影响。...

书籍目录

Ken Amold编程风格是主旨
Leon Bambrick最愚蠢用户界面奖颁给:Windows搜索界面
Michael Bean程序员外包的隐患
Rory Blyth把Excel当数据库用
Adam Bosworth ICSOC04讲座
danah boyd自闭的社会软件
Raymond Chen为何不禁用依赖于未公开机制的应用程序
Kevin Cheng and Tom Chi踢骆驼
Cory Doctorow从WlPO中拯救加拿大的Internet
ea spouse EA:关于员工的故事
Bruce Eckel强类型与强测试
Paul F0rd Processing Processing
Paul Graham伟大的黑客
John Gruber地址栏就是新的命令行
Gregor Hohpe星巴克不使用两阶段提交
Ron Jeffries激情
Eric Johnson C++——被遗忘的特洛伊木马
Eric Lippert更换一个灯泡需要多少名微软员工?
Michael“Rands”Lopp事情搞砸了怎么办?
Larry Osterman Larry的软件工程规则之二:用测试指标来衡量测试人员是行不通的
Mary Poppendieck团队补偿
Rick Schaut Mac Word 6.0
Clay Shirky群是其自身最大的敌人
Clay Shirky群作为用户:社会软件的结构与设计
Eric Sink填补鸿沟:第1部分
Eric Sink填补鸿沟:第2部分
Eric Sink雇用的风险
Aaron Swartz PowerPoint Remix
Why the lucky stiff与卡通狐狸来趟快速(且希望无痛)的Ruby之旅

内容概要

Ken Arnold在计算机领域从业10多年,参与开发了伯克利(Berkeley)分校的BSD(Berkeley Software Distribution,加州大学伯克利分校软件)项目,创建了CUl'ses库,改进了rogue;为Unix Review著写“The C Advisor”专栏(此后的“The C++Advisor”令我们受益匪浅),并与其他作者合著了The Java Programming Language等图书;设计了JavaSpaces并辅助设计了Jini:偶尔他还会写写博客。目前他关注的重点包括编程语言与API中的人为因素、令人信服的电子投票系统以及更能体现出GUI临时性的Java的Napkin插件式外观。

图书封面


 Joel谈优秀软件开发方法下载 更多精彩书评



发布书评

 
 


精彩书评 (总计5条)

  •     《Joel谈优秀软件开发方法》这是一本关于软件工程的书,书中有很多“小众”、新颖的、有启发性的、有价值的观点可以深入挖掘:比如(要想成为一名出色的黑客,关键就在于做自己想做的事情。)摘出一些有价值的内容,查找的时候可以使用:Google Books Link:http://books.google.com/books?id=vPvhzDqZlaAC&printsec=frontcover&dq=Joel+on+Software&hl=en&ei=_GN0TPuvOMjIcbSU0d4F&sa=X&oi=book_result&ct=result&resnum=4&ved=0CDwQ6AEwAw#v=onepage&q&f=false当我打开链接的那一刻我感觉我在读这本书的策略上是失败的,投入与产出差距非常大首先:这本书像是一本拼凑起来的书,作者引用了一些Bloger的文章,然后这本书就出现了;其次:不买这本书是正确的,其中的文章本来就是可以再网上免费阅读到的(只要你不侵犯)*.Ken Arnold 编程风格是主旨本文讨论的是一个不被重视的话题:“编程风格”,作者认为对编程采取随意的态度所付出的代价远远超过收获,另一个角度来说:通过使用这些自由的编程风格我们获取了超越我们所付出代价的收益了吗?对我而言问题的答案很明显:收获远远比不上代价。作者很喜欢Python,因为他的简洁:Python使用“缩进”来创建一个程序块而不是使用begin与end,或是“{”与“}”。Fortran中“空白”只能用于标记令牌之间的分界。这一点被公认为至理名言,因为在Fortran中有列的概念:开头5列的位置留给语句编号或注释指示符(comment indicator)使用;在6第列上如果有字符,就表示该行是上一行的延续; 第7~72列用于编写代码;而最后的8列则被序列号占用,这些序列号是帮助卡片在掉敌后重新排序用的。最后,我认为编程风格是一个不能忽视的重要问题,但不可钻牛角尖。2.Leo Bambrick 最愚蠢的用户界面颁给:Windows搜索界面Google如果和Microsoft一样还会是No.1吗?3.Michael Bean 程序员外包的隐患只有当需要开发的软件并不是产品中关键的创新部分时,雇佣外包程序员才是一个有效的的方法。以服装和玩具产业为例,由于大部分制造成本都花费在装配而非设计上,因此将装配环节外包是很有意义的;而在编写软件程序时,所面临的挑战主要来源于设计。开发一个软件几乎全部的成本都用于程序编写,而不是装配工作。Harvard商学院研究企业战略与竞争优势的专家Michael Porter曾经对于“完全基于运营效率的竞争”的问题做出了如下的总结:“如果你所做的一切在本质上与您的竞争对手并无区别,那么您是不太可能获得很大成功的”。软件外包潮流对于企业的危害,不在于短期的裁员,而在于高科技企业因此而失去创新的能力。一句话:软件非核心技术或是需要创新部分可以外包,而创新需要留在公司内部,这样才不会在快速的发展潮流中失去核心竞争力继而被取代。4.Rory Blythe 把Excel当数据库用采用漫画的形式,非常讽刺的阐述了使用驴唇不对马嘴的事物造成的愚蠢的结果,而那些傻X的人却不以为然,5.Adam Bosworth ICSOC04讲座Adam Bosworth:软件设计大师,当代研究软件体系结构的极富影响力的思想家。His idea is quite simple:聪明的计算机科学家建立了很多宏伟且复杂的体系结构,但由于他们的发杂程度预警超出了常人的理解能力,因此无法得到应用。而真正的计算机科学家能够利用智慧来简化设计方案,使他们的设计可以为普通大众服务。只有这样,设计出来的体系结构才能真正发挥作用。这是一场普通程序员与计算机科学家之间的战争;这是一场追求简单、随意、灵活的人性化编程方式的人士与追求整洁、清爽、正确的编程方式的人士之间的战争;互联网上最黑色的问题:及交流时的粗鲁行为。因为您发表的内容是廉价和匿名的,如果与您的观点与声誉实实在在的联系起来,您应该会开始倾向于发表经过深思熟虑后的公正而有分寸的评论。信息超载(Information Overload)、Slashdot乌邦托似的梦想T.E.Lawrence曾经在“Seven Pillars of Wisdom”(《智慧七柱》)中写道:“所有的人都会梦想,但方式不同。那些每晚在心灵的阴暗角落里做梦的人,醒来以后依然会感到空虚。只有那些睁开双眼做梦的人在市委显得,因为他们能够通过奋斗将梦想变成现实。”???我也希望再多的各位都能牢记:归根到底我们都是人,应该放弃所有柏拉图式的不切实际的东西,而以简单、灵活、随意的方式创造价值。6.danah boyd 自闭的社会软件“专家”的缺陷:技术专家通常更能从技术的角度出发来设计应用程序,而不是很好的从用户的需求与实际情况出发。这或许是技术专家与企业家的区别。文中提到了“自闭症”、“艾斯伯格症候群”、“注意力缺失障碍ADD(Attention Deficit Disorder)先是过于关注,随后注意力完全丧失”,而技术专家不仅采纳而且还进一步发扬了这些概念,使其成为通向技术怪才之路的必备之物。尽管你们正在联系持续的部分分配注意力的能力,或许有些人在已成为这方面的大师,但作者还是认为大多数人可能无法同时做好两件事情。7.Raymond Chen 为何不禁用依赖于未公开机制的应用程序8.Kevin Cheng and Tom Chi 踢骆驼 = Kicking the Llama Http://www.ok-cancel.com/comic/4.html9.Cory Doctorow 从WIPO中拯救加拿大的Internet您可以随意想Internet Service Provider投诉称某网站内容是从您的高中毕业论文中抄袭来的,并事先没有获得您的许可。结果十有八九会是这样:Internet服务供应商把您的敌人一脚踢开,并将其账户关闭,哈哈,正义立刻得到了伸张!WIPO(世界知识产权组织)与1996年缔结的互联网条约(WIPO Internet Treaties)致使美国实施了那个可恶的“数字千年版权法案”(Digital Millennium Copyright Act DMCA),并在全球引发了无数的赔偿。TThen,"Notice-and-takedown"(即当Internet服务供应商接获侵犯版权的投诉后,立即采取措施见相关内容撤下)的制度必可避免的出现了。在社会工程学中,这一点很有利用的价值:但您想查某人的住址和电话,那么您只需要找到他发表文章所使用的论坛,以版权所有者的身份向ISP发信索取他的资料即可。10.ea_spouse EA:关于员工的故事这里谈论的是商业利益与原始人类尊严的冲突;游戏没有人负责开发补丁、维护,开发完了赚到钱就完,在进行下一个;EA的员工流失率达到50%;强迫他们每周工作90个小时,天啊90个小时!在软件开发领域中,有一种主流的思想学派,他们认为对于那些每周加班工作时间超过40个小时的人来说,他们实际上所完成的工作要少于那些不是每时每刻都如此紧迫的人,而作者也是该学派中的一员。11.Bruce Eckel 强类型与强测试“静态类型检查”是编译器在编辑时对所有的变量的类型进行正确性检查。“动态类型检查”是在程序运行的时候进行的,与“静态类型检查”恰恰相反。这能导致Bug很长时间都不能被发现。12.Paul Ford Processing ProcessingProcessing它是一种建立在Java基础之上的小型计算机语言。使用Processing可以快速的创造出有趣的图像和动画。*13.Paul Graham 伟大的黑客 “Great Hackers”由Paul Graham于2004年7与发表 Http://paulgrham.com/gh.htmlPaul文章中暗示“任何使用Java编程或者为Windows编写代码的程序员都不可能成为一名优秀的黑客”,编者;真正伟大的黑客不会在意所使用的工具,他们会根据需要解决的问题来选择合适的工具。XueliangHan很赞成这一点!-------------------------------------------------------------------------|真正黑客 VS 程序员 |为什么编程 |他们真正热爱编程,为了乐趣 为了谋生|-------------------------------------------------------------------------一名伟大的程序员再生产力方面也许是一名普通程序员的10倍甚至100倍,而他们对于能得到3倍于普通程序员的薪水感到很幸运,出现这种情况的一部分原因是他们不知道自己有多么出色,另一个重要的原因就是他们主要关心的不是钱的问题。黑客们想要什么?安静的办公环境,在高科技公司中黑客们的思想就是他的产品。如何让黑客们提高工作效率?趣味性;讨厌的小问题;聚集效应;识别黑客(Slashdot);培养黑客(要想成为一名出色的黑客,关键就在于做自己想做的事情。)黑客们有一种“专注”的能力:“把所有杂事从头脑里清除”的能力。如果您有希望成为一名伟大的黑客,那么我建议您最好做到:一方面,绝不在枯燥的项目上浪费生命(除非不这么做您和家人就会饿死);另一方面,做事必须有始有终、滴水不漏。我所认识的所有伟大的黑客似乎都是如此,也许他们根本就没有想过还有其他什么选择。14.John Gruber 地址栏就是新的命令行当年,Microsoft扼杀Netscape的原因并不是他对Windows构成了威胁,而是Microsoft想要控制这种全新的出版媒体。而不是大家都认为的Microsoft将Netscape视一个对Windows的威胁。虽然Microsoft赢得了浏览器之战,但真正威胁Windows的是Web本身,作者同意Spolsky的观点,Microsoft即将输掉API之战。Web应用已非当年,大多数人不会用当专业的软件,更重要的是大多数人根本不关心一款软件能否提供高品质的用户体验,他们的要求只是:能用,而且用的方便。Web应用廉价简便,不受平台的限制,只要你有一款浏览器。15.Gregor Hohpe 星巴克不使用两阶段提交相关性、消息处理体系结构、异常处理、会话;真实世界的体系结构:日常生活中包含着许多协同的异步交互,这就意味着可以使用一种异步的消息处理体系结构很自然的模拟这些交互,也说明观察日常生活有助于我们设计成功的消息处理方案。*16.Ron Jeffries 激情“Passion” http://www.xprogramming.com/upmag/jatPassion.htm Fixed:http://xprogramming.com/articles/jatpassion/极限编程与敏捷开发Here’s what I try to be, and what I like to find in those around me:I want to stay the course with the people who converse with me, not just drift away as if no longer interested.I want to argue passionately without rancor, let you call me names in the morning and drink in peace and affection with me that night.I want to hold others in the true respect that allows them to be what they are, act like they will, while working as hard as possible to influence them to try other things.I want to give my ideas away, confident that my little gift will come back to me manyfold.I want to try every way I can to communicate with my colleagues, to get my ideas across and to get their ideas back in return.I want to honor the passion that people feel, to honor the strongly held beliefs and ideas of others as much as I honor my ownI want to crash-test those beliefs and ideas hard against each other, confident that even better ideas will come out of the testing.I want to assume that we do this from love, that we care about each other, and that we welcome the crackle of real passion, real work, the real interaction of ideas.I do my best to be that kind of person. And I want to be with other people like that. Thanks for being around.17.Eric Johnson C++——被遗忘的特洛伊木马 2004.11.20 on “Parity Check:opinions on software development”http://ejohnson.blogs.com/software/2004/11/i_find_c_intere.html对于任何一项新技术来说,如果它想站稳脚跟,就必须能够成功支持现在的遗存内容,以免这些“遗产”被竞争对手完全接管。18.Eric Lippert 更换一个灯泡需要多少名微软员工? 2003.10.28 Http://blogs.msdn.com/ericlippert/archive/2003/10/28/53298.aspx How many Microsoft employees does it take to change a lightbulb?许多计算机专业的大学毕业生根本就不知道出了编写代码意外,要使一个商业软件获得成功还需要做哪些工作。19.Michael “Rands” Lopp 事情如果搞砸了怎么办?http://www.randsinrepose.com/archives/2004/07/10/what_to_do_when_youre_screwed.html软件开发工程师真正需要的工具只有4个编辑器编译器版本控件bug追踪工具20.Larry Osterman Larry的软件工程师规则之二:用测试指标来衡量测试人员是行不通的 Http://blogs.msdn.com//larryosterman/archive/2004/04/20/116998.aspx
  •     我将此书定位为工作之余,闲暇读物,偶有所得即可。读每篇文章时,我常常想该文大致对哪种读者有益,如果您有兴趣则听我慢慢道来,请往下看。或许这样您可以按您的兴趣选读文章,既不会错过精彩的文章又可以节省您宝贵时间。---------------------------------------------------------------------------------------------------------------------编著者简介,对于有志于软件开发及创业者,可以体味其发展路线,或许会有所领悟。 作者简介,对于欲了解软件行业的职业分布者,则可以借此窥视一斑。前言,归结为一句话,对于意欲写作者,可以学到优秀作品规则:展示,而不是讲述(Show,don't tell)。也就是学会讲故事。Ken Arnold,编程风格是主旨,对于想创造或设计一种语言或困于代码标准难以实现者,会有所启示,通过编译器实现开发者遵循统一编码风格。Leon Bambrick,最愚蠢用户界面颁给:Windows 搜索界面,值得所有软件从业者深思,软件易用性是何其的重要。Michael Bean,程序员外包的隐患,对于软件企业而言,需要明白核心和战略是不能外包出去的道理,因为这就是您的优势所在。Rory Blyth,把 Excel 当数据库用,作者尽管有些夸张,但对于开发人员来说,说明需求与实现两者分离确实有益的。Adam Bosworth,ICSOC04 讲座,对于通过从人性的角度来把握和看清技术趋势的说法,对于每个软件人员来说都是有益的,若是您需要看清技术趋势的慧眼您不妨细细体味其中观点。说的是,一项“简单、灵活、随意的”的技术或许更能够创造价值。Danah Boyd,自闭的社会软件,对于开发社交软件或社交社区者,或许可以从中体味,技术如何满足人们真正的需要,焦点放在用户上的深刻观点。Raymond Chen,为何不禁用依赖于未公开机制的应用程序,作者一语道破兼容性与升级及商务之间的问题是其关键,嗯,微软就是如此。Kevin Cheng & Tom Chi,踢骆驼,谈的就是软件易用性问题!Cory Doctorow,从 WIPO 中拯救加拿大的 Internet,作者认为这个法律不公而需要修改,而我在想如果谁有办法突破,谁将获益,Apple有点苗头,iPod+iTunes是个好商业模式。ea_spouse,EA:关于员工的故事,印象深刻的一篇文章,超时加班工作是软件行业的普遍现象,在此我祝愿您在一个有社会责任感的企业就职,在此我同样谴责无良的企业!Bruce Eckel,强类型与强测试,是的,我同意程序是否稳健,并非在于选择语言而是在于您是否充分测试,如果作为开发人员的您还没测试,那您就该好好想想了!因此,我觉得测试驱动开发很必要,当然,作者并没有提出这一点。Paul Ford,Processing Processing,如果您想优雅地编写软件,这一篇虽然长,却确实需要反复阅读,细细体会。Paul Graham,伟大的黑客,如果您想成为一名出色的软件开发人员不妨看看,我最欣赏这一句:要想成为一名伟大的黑客,做自己喜欢做的事情!当然还有其他,好奇心、专注、质疑。如果您是企业家,则您可以从中看出如何找到最合适的人及使其留下来并用好他们的一些门道。John Gruber,地址栏就是新的命令行,“能用,且用得方便。”这就是历史潮流!换句话说,技术都是为这服务的,而不是相反!Gregor Hohpe,星巴克不使用两阶段提交,作者以此来说明,观察日常生活(星巴克处理订单方式)有助于我们设计(异步消息处理体系结构)。Ron Jeffries,激情,作者说为“激情而生”,如果您还想有激情地工作,那么不妨看看,该如何与周围的人相处,或是创建激情的氛围。Eric Johnson,C++——被遗忘的特洛伊木马,我透过C++的历史,更加理解“伟大而持久的变革也可以通过一系列有目的、有选择的微小步骤来实现。”。Eric Lippert,更换一个灯泡需要多少名微软员工,“官僚主义”并不是一个贬义词,至少在这种情况下:引入一个特性可能会引起复杂而不可预知的行为或是后果。Michael "Rands" Lopp,事情搞砸了怎么办,我们通常也会面临责任、雇用、开除和解雇的问题或是教训,这些事您可能也会遇到,过来人如何处理的呢?Larry Osterman,Larry 的软件工程规则之二:用测试指标来衡量测试人员是行不通的,作者的答案是真实的,这种做法必然局部优化,自然行不通。如果您需要衡量测试人员,您不可不知这一点。Mary Poppendieck,团队补偿,绩效衡量是一个难题,作者就此做出建议,如果您关心如何激励团队,您一定要看这一篇,相信您会有所启发。Rick Schaut,Mac Word 6.0,产品因其自身和政策决定成败,对于参与产品开发者不可不知。Clay Shirky,群是其自身最大的敌人,群作为用户:社会软件的结构与设计,社会软件的成功不在于软件技术而在于是否懂使用软件的群相关的社会学和人种学。可谓是功夫在诗外。如果您是做社会软件或社交网站的,这两篇值得一看。Eric Sink,填补鸿沟,如果您是ISV或是独立开发者,对于产品与顾客之间的鸿沟如何填补,读此文章应该大有裨益。Eric Sink,雇佣的风险,说的是招人,反之,求职者读之也会受益。Aaron Swartz,PowerPoint,说的是PPT,做PPT时可以有些启发。Why the lucky stiff,与卡通狐狸来趟快速(且希望无痛)的 Ruby 之旅,程序语言入门也可以写得有趣,这是真的,不信你看。如果您想写作,不妨考虑一下这种风格。----------------------------------------------------------------------------------------------------------------------倘若您想从书中找优秀软件开发方法,我想大抵会很失望。 倘若您抱着书中各作者的观点对自己有一点启发就满足的想法,不妨可以看看,我就这样看完本书。若有所得,仅此而已!  
  •     书的内容还不错,不过书名实在是有点挂羊头卖狗肉。估计是出版社为了跟Joel套套近乎,Joel的博客和那本大名鼎鼎的《Joel on Software》实在是威名赫赫啊。本书的各章是相互独立的,都是一些大牛写的关于软件开发的东西,再加上Joel的点评。书中的大牛包括:Bruce Eckel,我认为是个书贩子,不过他的Thinking in Java实在是有名;Raymond Chen,《Windows编程启示录》的作者,微软Win32编程的大牛,诸如此类,等等等。由于各章是相互独立的,所以随便什么时候有时间都可以拿来翻翻,获益良多。www.gossipcoder.com

精彩短评 (总计43条)

  •     凑凑
  •     值得看很多遍的书
  •     光着屁股,挨着饿,也要读的书
  •     伟大的黑客,激情,团队补偿以及群是其自身最大的敌人等几篇挺不错,其他的感觉一般。
  •     Joel展示了他在软件开发中得到的乐趣,让人羡慕...
  •     其实表面上是计算机技术,更多的其实是人
  •     这本书是国外早年的博客文集,大部分文字讲述了软件开发中遇到的问题,有些很深刻,有些很幽默。这本书的标题不靠谱。
  •     不都喜欢,不过里面有几篇确实是好文章,喜欢great hackers, passion, ea_spouse..
  •     非常赞的一本书,作者大部分很强大,Bruce Eckel在其中也只是一颗星而已。
  •     书中有很多“小众”的观点,很新颖很有启发性,也有一些”真理“,
  •     不错,可以在睡觉之前看...
  •     Joel太自以为是,选了一些不知所云的文章
  •     虽然翻译得一般,但是Joel的编著的此书中的短文对中小开发团队是很Practical的。
  •     Joel点评的杂文集。其中几篇文章的主题倒有不少启发意义。
  •     我读过的最不枯燥的关于软件开发的书了,并且受益很多,推荐~
  •     床头书,讲得更多的不是优秀软件开发方法,而是不要因为教条而做蠢事的实例。
  •     也许不适合国情
  •     哦,觉得是转型必读,写的不错。
  •     有不少文章非常精彩,醍醐灌顶
  •     挂着Joel的名头,卖着别人的文章。若有所得,值得一翻,不值得花钱的说。
  •     主要是觉得跟敏捷相关的部分,我觉得有失偏颇。
  •     当时好像是去借《软件随想录》没借到,然后看得这本的吧,应该是两年前了。
  •     译者虎头蛇尾啊,开头译得多好,最后三章完全不知道在说什么。。。
  •     :->是joel的推荐,不是Joel自己的作品。 不过还是有不少可看之处的。
  •     2012.2.23看完 感觉一般 整本书没有中心 不过也是 毕竟是各种博客集结号
  •      感觉一般,讲的有点乱,没有太多实质性的东西
  •     嗯...算是对一系列博客翻译吧,可以在闲暇时看一两章,沉思IT行业的种种是非...
  •     并不像书名那么沉闷专业,不少业内的吐槽和小八卦,很有趣。最有趣的是这本书出得很早,现在再看当时他们对未来互联网和软件发展唧唧歪歪,会有种预知未来的优越感。比如他们提到敏捷开发,都还只会说python,而社交网络好像就是myspace。
  •     不错
  •     :TP311.52/4814
  •     还不错,当过期杂志看吧
  •     吸取了一部分
  •     很不错,对我很有启发!
  •     2年前读过。
  •     不少观点很到位。
  •     其实直接去看他的博客会更好
  •     喜欢作者的写作风格,抽空要再读一遍
  •     伟大的黑客等多篇名作收录在中。
  •     这塔马书名, 这塔马翻译
  •     'A Group Is Its Own Worst Enemy'
  •     补标, -3y
  •     泰达图书馆
  •      这些搞计算机的文章写的也是牛BBBBBBBBBBBB的。
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024