构建之法

邹欣

出版时间

2014-08-31

ISBN

9787115369161

评分

★★★★★
书籍介绍

内容简介:

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。作者邹欣有长达20年的一线软件开发经验,他利用业余时间在数所高校进行了长达6年的软件工程教学实践,总结出了在16周的时间内让 同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此基础上,作者对软件工程的各个知识点和技能要求进行了系统性整理,形成教材。

本书共分17章,对照美国ACM/IEEE2013年新出版的计算机科学教学指导(Computer ScienceCurricula 2013)中的软件工程相关部分,这本教材覆盖了其中大多数Core-Tier1和Core-Tier2的内容。可以说,全书对软件工程内容的覆盖不逊于任何一本现行的教材,同时讲述了业界最新实践方法。

本书评论:

推荐软件工程专业学子阅读,了解软件工程真正内涵,懂得“工程”二字真正含义,知道软件工程和计算机科学的区别。了解之后,就知道为何软件工程是就业含金量较高的行业了。

——朝红阳(http://weibo.com/u/1794892070)/中山大学软件学院

书中 设想了大量的场景“学”和“习”,并且用了大量的类比,非常生动有趣。这本教材也对软件工程课老师提出了更高的要求;对学生而言,同样面临着要付出怎样的努力才能学到“干货”的选择。

——鞠小林(http://weibo.com/jukxy)/南通大学软件学院

关于计算机科学与软件工程的差别?这是我们学生问的最多的,这下有解释啦!包括书中谈到的师生关系、软件工程师的职业发展、职业道德等,这些内容我上课时都可以用。

——牛慧娟/华中科技大学软件学院

面对在软件开发方面经验很少的学生,邹欣老师通过丰富生动的故事和隐喻帮助学生建立软件工程的思维习惯,通过严格扎实的动手训练与考核帮助学生总结归纳自己的“最佳实践经验”。读这本书,软件工程课不再枯燥沉闷,而是变得出乎意料的生动有趣。

——王忠杰(http://weibo.com/travellingwithme)/哈尔滨工业大学计算机科学与技术学院

读完《构建之法——现代软件工程》,不禁惊叹,软件工程的书还可以这样写!像团队和流程、敏捷流程、需求分析、设计与实现这些章节我看了又看,看完之后不禁拍大腿(书里说的“拍脑门、拍胸脯、拍屁股”的三拍有点不全,还差“拍大腿”):为什么邹欣老师会把原本无趣的问题写得这么吸引人?我深深地感觉到,不会讲故事的软件工程老师不是好老师!这本书给我最大的感受是,作者能把一个个鲜活的例子(或故事)与软件工程的相关问题恰到好处地结合起来,让软件工程的理论和方法更好地落地。

——王赞(http://weibo.com/scswz)/天津大学软件学院

将对软件工程思想的理解内化为软件工程师的职业习惯,是软件工程教学的核心目标,本书的实验设计恰恰非常有助于这一内化过程。个人项目、两人项目和团队项目由易到难,循序渐进,不断总结。我在教学中借鉴这一思路,从学生较为熟悉的编程训练入手,以范例演示基本编码规范、 No Design时的代码、经过基

本Modularity (also called separation of concerns)设计的代码、writing code to make it reusable on future projects以及一些特殊的接口设计……从编码实践中理解软件工程思想,就会跳出纸上谈兵的框框。

——孟宁(http://staff.ustc.edu.cn/~mengning/,http://weibo.com/mengning997 )

/中国科技大学软件学院

软件工程在大学是最难讲,也是最容易讲的一门课,容易在这门课涵盖的内容和外延特别丰富,这些内容学生基本没概念,短期也无法落到实处来验证有用没用,所以老师可以大讲特讲,人畜无害;难在你要在学生一片空白(没有很强的代码能力、没有团队概念、没有项目经验)的情况下去让他们懂得这些东西。在我认识的人中,能有丰富的项目经验又愿意花时间在教学实践上,最终能把各种知识理论体系化的人寥寥无几。邹欣老师恰好这几点都具备。快速翻完整本书,最大的感受是这本书出版得恰逢其时,传统的软件工程教材早就该翻新了!

——徐亚波(http://ss.sysu.edu.cn/~xyb,http://weibo.com/arber)/中山大学软件学院

邹欣现任微软Windows中国工程团队首席研发总监。

1996年~2003年,邹欣在微软Outlook团队从事开发工作,2003年~2005年,他在微软内部质量工具团队和Visual Studio团队负责软件项目管理工具的开发。2005年~2012年,他担任微软亚洲研究院技术创新组研发主管,负责研究成果的产品化和创新项目。2012年~2014年,他担任微软亚洲互联网工程院首席研发总监,负责必应搜索客户端、必应输入法、必应词典等产品。加入微软前,邹欣从事过商用Unix系统、GPS/GIS软件开发及测试工作。

他在2007年出版了《移山之道》,于2008年出版了《编程之美》 (合作)。

他于1991年获北京大学计算机软件专业学士学位。1996年获美国韦恩州立大学(Wayne State University)计算机软件专业硕士学位。

AI导读
核心看点
  • 基于20年一线经验,通过做中学掌握实用技术
  • 覆盖ACM/IEEE标准,结合业界最新实践方法
  • 生动故事与隐喻解析需求、测试、团队协作等
适合谁读
  • 软件工程专业学生及初入IT行业的开发者
  • 希望提升项目管理与团队协作能力的工程师
  • 对软件工程内涵与职业发展感兴趣的技术人员
读前提醒
  • 建议结合书中练习与讨论,通过实践内化知识
  • 关注代码规范与复审技巧,建立工程化思维
  • 理解软件与程序的区别,重视非代码因素
读者共识
  • 内容接地气,语言生动有趣,告别枯燥理论
  • 涵盖面广,理清软件工程全貌,极具指导价值
  • 虽深度有限,但作为入门教材非常优秀实用

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "把所有的错误记在一个“我常犯的错误”表中,作为以后自我复审的第一步。"
  • "什么是好的软件?一些同学认为,所谓好软件,就是软件没有缺陷(Bug),所谓软件工程,就是把软件中的Bug都消灭掉的过程。这的确是抓住了软件工程的一个要素。和软件打交道的专业人士都知道软件有“Bug”(缺陷),软件团队的很多人都整天和Bug打交道,Bug的多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。 ——P15 很多人认为有Bug就是质量不合格,没有Bug就是质量完美,其实这也未必。我们在大街上看到很多小汽车,这些汽车出厂时都通过了各自的质量检测,符合行业的质量标准。但是你问路人哪些车的“质量好”,很多人会告诉你有些车的质量大大好于另外一些车,那为什么还有人买那些质量“不够"
  • "既然代码复审能发现这么多问题,有这么好的效果,如果我们每时每刻都在代码复审的状态,那不是很好么?事实上,极限编程(Extreme Programming)正是这一思想的体现——为什么不把一些卓有成效的开发方法用到极致(Extreme),让我们无时无刻地使用它们? ——p84页 极限编程对工程师提出了更高的要求。这种要求不关乎技术水平,也不关乎学历水平或工作经验。这种要求是对一个人的心智、道德修养的更高要求。结队编程中,编码不再是私人的工作,而是一种公开的“表演”。程序员的代码、工作方式、技术水平都变得公开和透明,这也许是一些人不喜欢这一方式的原因。 ——P87"
  • "计算机人工智能研究的一个重大挑战,就是计算机程序是否在国际象棋这个游戏中打败人类。从20世纪60年代开始,就有很多研究人员从理论和“智能”的角度去着手,取得了一定进栈,但是里最终胜利还是遥遥无期。1985年,还是一个研究生的徐峰雄这样想: “我们从一个不同的方向去逼近这个问题。我们,至少是我自己,把这个问题看成是一个纯粹的工程问题。” 历史证明,这个从工程的角度出发,用“蛮力”提高计算机速度的工程方法远远甩开了同时代的各种“智能”方案。1997年,徐峰雄带队设计的“深蓝”战胜了国际象棋大师加里·卡斯帕洛夫。 ——P13"
  • "用户体验设计的一个重要目的就是要降低用户的认知阻力(Cog-nitive Friction),即用户对于软件界面的认知(想象某事应该怎么做,想象某操作应该产生什么结果)和实际结果的差异。我们来看一个具体的例子,如果用户(一个生活在中国二线城市,有高中文化水平,有基本计算机基础的成年人)要在一个文稿中写居中的一句话,在下表所列的各种工具中,用户是怎么才能做到的。 倘若认知阻力大,学习曲线就会比较陡;但是经过学习和练习,如果用户适应了新的认知模式,工作效率便会有较大的提高。 ——P271"
  • "很多心理学家通过各种试验和分析告诉我们,纯粹强调外界的驱动因素(金钱的报酬或惩罚)仅仅对体力劳动或有明确规则的活动有效(奖金越多,结果越好),但对于需要创造性思维的活动,即使是简单的认知能力的活动,更多奖金反而起到相反的效果。 ——P409"
  • "一个成熟的软件工程师应该能够降低任务交付时间的标准方差。 软件领域可以分为两个方面:一方面是技艺创新的大爆发;而另一方面是坚持不懈的工程工作,包括软件的改善、维护和测试等,这一方面占了 90%~95% 的比例。"
  • ""Natural critical learning environment." In that environment, people learn by confronting intriguing, beautiful, or important problems, authentic tasks that will challenge them to grapple with ideas, rethink their assumptions, and examine their mental models of reality."
作者简介
邹欣现任微软Windows中国工程团队首席研发总监。 1996年~2003年,邹欣在微软Outlook团队从事开发工作,2003年~2005年,他在微软内部质量工具团队和Visual Studio团队负责软件项目管理工具的开发。2005年~2012年,他担任微软亚洲研究院技术创新组研发主管,负责研究成果的产品化和创新项目。2012年~2014年,他担任微软亚洲互联网工程院首席研发总监,负责必应搜索客户端、必应输入法、必应词典等产品。加入微软前,邹欣从事过商用Unix系统、GPS/GIS软件开发及测试工作。 他在2007年出版了《移山之道》,于2008年出版了《编程之美》 (合作)。 他于1991年获北京大学计算机软件专业学士学位。1996年获美国韦恩州立大学(Wayne State University)计算机软件专业硕士学位。
目录
第 1 章 概 论 1
1.1 软件 = 程序 + 软件工程
1.2 软件工程是什么
1.3 练习与讨论
第 2 章 个人技术和流程 /20

显示全部
用户评论
干货极多!强力推荐。。。所有干工程项目的都可以读一读
此类书中看过最好的一本
软件 = 程序 + 软件工程,这本书对于软件工程的方方面面:需求、设计、开发、测试、团队协作以及个人成长等都有所涉及且内容简洁、精炼可以很轻松的一口读完,不过读过了,还要亲自动手实践,这样才能够内化为你自己的知识,很值得多读几次的好书。
《构建之法》链接汇总(含对应序号):http://www.cnblogs.com/xinz/p/4470424.html
在生活中能不能锻炼PM的能力呢?当然可以,比如装修房子、组织一个大型活动、带自己的孩子、帮邻居家带三天孩子,等等。
读了一部分,无奈水平有限,很难跟自己有限的编程经历产生足够的关联
@2017-06-28 21:59:14
拖了几年才读完,惭愧。现在的工作,虽号称互联网大厂,但实属糙快猛,还是要往正统软件业的路子掰下。
我对软件工程是有信仰的
对了解整个开发流程很有帮助,作为产品也需要思考构建软件的全流程,才能更好的设计产品,以及和研发碰撞出更好的管理和实现方法。
收藏