软件工程
敏捷整洁之道
Clean Agile: Back to Basics Douban
[美] 罗伯特·C.马丁 translator: 申健 / 何强 … publishing house: 人民邮电出版社 2020 - 7
本书是软件开发界的传奇人物罗伯特·C. 马丁(“鲍勃大叔”)对敏捷发展历程的回顾,对敏捷最初用意的重述,对敏捷价值观和原则的传达。本书首先概述敏捷的历史、敏捷的全貌;然后说明敏捷出现的缘由;接着讲解敏捷的业务实践、团队实践和技术实践,介绍成就敏捷的因素,还谈到敏捷转型中常见的问题与困难;最后提出软件匠艺理念。 本书适合开发人员、测试人员、管理人员、项目经理、业务人员等软件行业从业者阅读。
Kubernetes in Action中文版
Douban
★ 8.0 5 ratings
【美】Marko Luksa translator: 七牛容器云团队 publishing house: 电子工业出版社 2019 - 1
《Kubernetes in Action中文版》主要讲解如何在 Kubernetes 中部署分布式容器应用。《Kubernetes in Action中文版》开始部分概要介绍了 Docker 和Kubernetes 的由来和发展,然后通过在 Kubernetes 中部署一个应用程序,一点点增加功能,逐步加深我们对于Kubernetes架构的理解和操作的实践。在本书的后面部分,也可以学习一些高阶的主题,比如监控、调试及伸缩。 Kubernetes是希腊文,意思是“舵手”,带领我们安全地到达未知水域。Kubernetes这样的容器编排系统,会帮助我们妥善地管理分布式应用的部署结构和线上流量,高效地组织容器和服务。Kubernetes 作为数据中心操作系统,在设计软件系统时,能够尽量降低在底层网络和硬件设施上的负担。
人件集
Douban
Larry L. Constantine translator: 谢超 / 刘颖 … publishing house: 机械工业出版社 2011
《人件集:人性化的软件开发》是人件领域中的经典著作,以专题的形式探讨了软件开发中的人的因素。本书共分九个部分:第一部分介绍团队如何开展工作以及如何为开发更好的软件而更好地工作;第二部分涉及软件开发人员的不同观点;第三部分探讨团队组织和开发的问题;第四部分探讨开发者与其使用的工具之间的关系;第五部分针对提高软件质量提出了建议;第六部分着眼于软件可用性和用户界面设计问题;第七部分解释在用户界面设计和软件可用性方面的相同之处;第八部分探讨软件在沟通中涉及的一些话题;第九部分论述软件开发中的组织文化。 本书的许多内容收自作者在多本知名计算机杂志的人件专栏文章。本书适合所有开发并使用软件的设计人员、开发人员和管理人员阅读。
大话设计模式
Douban
★ 7.6 14 ratings
程杰 publishing house: 清华大学出版社 2007
本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GOF(设计模式的经典名著——Design Patterns:Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者EIich Gamma、Richard Helm、Ralph Johnson,以及John Vlissides,这四人常被称为Gang of Four,即四人组,简称GoF)总结的23个设计模式。本书共分为29章。其中,第1、3、4、5章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第2章,以及第6到第28章详细讲解了23个设计模式;第29章是对设计模式的全面总结,附录部分是通过一个例子的演变为初学者介绍了面向对象的基本概念。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的了、智慧。 本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。
软件可靠性方法
Software Reliability Methods Douban
(以色列)Doron A. Peled translator: 王林章 等 publishing house: 机械工业出版社 2012 - 3
【名人推荐】 我第一次翻开这本书时,立刻被这本书的覆盖范围之广所深深打动,它覆盖了规约和建模、演绎验证、模型检验、进程代数、程序测试、状态与消息序列图。除了对每个方法进行了相当深入的介绍以外,本书还讨论了应当在何时选取何种方法以及在选择这些方法时所必须做出的权衡。书中结合当前工具,使用很多具有挑战性的实例来说明各种技术。我还没看见过其他任何覆盖同样内容的书籍能达到如此的深度。 同时,本书描述了应用形式化方法的过程:从建模和规约开始,然后选择一个合适的验证技术,最后测试程序。这些知识在实践中是十分必要的,但是却很少在软件工程的课本里面出现。我确信这本书将会取得巨大的成功。我向所有对软件可靠性问题感兴趣的读者强烈推荐这本书。 —— Edmund M. Clarke教授 图灵奖获得者,卡内基-梅隆大学 【内容简介】 用于创建可靠软件的形式化方法一直处于不断的开发和改进之中。最近,人们对于形式化方法工具的重要组成有了更深入的理解,从软硬件开发业界逐渐接受可靠性工具这一点就可以体现出来。 本书介绍了各种能解决软件可靠性问题的方法。理想情况下,形式化方法应该用起来直观,学起来简洁、快速,对开发过程的影响微乎其微。本书对各种方法进行了比较,揭示了它们各自的优点和缺点,同时紧扣自动机理论和逻辑这两个主题。在尽可能减少背景知识介绍的前提下,本书向非专家读者描述了多种技术,并且针对软件工程领域的研究人员和专业人士介绍了一些高级技术。 本书主题和特点:  集中介绍目前常用的重要软件可靠性方法,并将它们互作比较,这些方法包括:演绎验证、自动验证、测试和进程代数  为具体项目的软件选择过程提供有用信息  提供了大量的练习、项目和连续性的实例,方便读者学习形式化方法并能够亲手使用这些工具  介绍了支持形式化方法的数学原理  对于该领域未来的研究方向,以及开发新方法和改进现有技术提出了有益的见解
软件之道
Making Software: What Really Works, and Why We Believe It Douban
Andy Oram / Greg Wilson translator: 张玳 / 鲍央舟 … publishing house: 人民邮电出版社 2012 - 3
相 信大家常常听说某些工具、技术和实践方法可以改进软件开发,但其中哪些说法是可被证实的,哪些仅仅是人们一厢情愿的想法?本书收录了Steve McConnell、 Barry Boehm和 Barbara Kitchenham等几十位软件工程领域顶尖研究人员的文章,深入讨论了软件开发社区中常见的一些观点,一些是确凿事实,一些则是荒诞说法。他们的深刻 见解定会让你大开眼界。 某些编程人员的工作成效果真是他人十倍之多? 测试驱动的开发果真能帮助更快、更好地开发代码? 软件的bug数量果真可以利用代码度量进行预测? 设计模式果真有助于构建更好的应用程序? 人员个性会对结对编程产生何种影响? 地理位置的距离和公司职位的差距,究竟何者影响更大?
重构
Refactoring: Improving the Design of Existing Code Douban
[美]马丁•福勒(Martin Fowler) translator: 熊节 publishing house: 人民邮电出版社 2015 - 8
本书清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70 多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。
UML和模式应用
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development Douban
拉曼 translator: 李洋 / 郑䶮 publishing house: 机械工业出版社 2006 - 5
《UML和模式应用(原书第3版)》英文版面世以来,广受业界专家和读者的好评,历经3个版本的锤炼,吸收了大量OOA,D的精华思想和现代实践方法。全书叙述清晰、用词精炼、构思巧妙,将面向对象分析设计的概念、过程、方法、原则和个人的实践建议娓娓道来,以实例为证,将软件的分析和设计的过程叙述得如逻辑推理一般,于细节处见真知。 《UML和模式应用(原书第3版)》是一本经典的面向对象分析设计技术的入门书,适用范围广泛,从初学者到有一定对象技术知识但希望进一步提高开发水平的中级读者,甚至是资深的专业人员,都可以从本书获益匪浅,同时,本书也适合作为高等院校相关课程的教材和各类培训班的辅导教材。
成为技术领导者
Becoming a Technical Leader : An Organic Problem - Solving Approach Douban
[美] 杰拉尔德·温伯格 translator: 朱于军 / 李先华 … publishing house: 清华大学出版社 2003 - 9
《成为技术领导者》阐述了作为一名成功领导者所必须掌握的领导方法与技巧——创新、激励和组织。本书提出了一些方法,供读者分析自己在这三个方面的领导技巧,并提供了开发这些技巧所需的实践步骤。本书是一本个性化的掼,帮助人们培养成为成功领导者的素质。它告诉人们在技术的环境下,哪些领导技能最有效,以及为什么技术人员在向技术领导者转变的过程存在这样或那样的困难。本书探讨的范畴不仅仅局限于技术层面,而且还拓展到了如何与他人更好地协作。温伯格通过他幽默和坦诚的语言在书中阐述了不同类型的领导行为,分析了那些阻止有效领导或排斥他人领导的不利因素,并指出了能够把事情做得更好的行为因讲解基本原理的过程中所举的逸闻趣事、类比与比喻令人印象深刻,非常有助于读者领会其中精要。本书在美国项目管理学会的《项目管理知识体系指南》(PMBOK)中,被确定为重要的参考文献。本书适合所有管理者和被管理者,以及那些管理者和被管理者共同生活或相识的人。对于那些领导者、希望成为领导者的技术人员、以及不想成为领导者的技术人员,本书绝对值得拥有。
理解专业程序员
Understanding the Professional Programmer Douban
[美] 杰拉尔德·温伯格 translator: 刘天北 publishing house: 清华大学出版社 2006 - 7
本书通过行内专家的独特视角,介绍了如何成为优秀程序员,如何提高工作绩效等问题。全书由多篇讨论程序员职业的短文组成,内容精彩绝伦,是一部任何在这个变化急剧的领域工作的人都不可错过的重要作品。本书论述生动翔实——你肯定能从中认出你自己和你的公司的故事——因此不仅极富教益,而且读来也引人入胜。 各篇主题包括:对于专业程序员重要的若干问题,成为专业程序员的途径,在企业官僚体系下的幸存之道,高效思维指南以及程序员职业的未来。
观止
Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft Douban
[美] G·Pascal Zachary translator: 张银奎 publishing house: 机械工业出版社 2009
比尔·盖茨和他的微软公司之所以能够取得巨大的成功,最重要的原因就是他们能够展望未来。微软既不满足于在应用软件方面不错的市场份额,也不满足于在关键的操作系统业务上依靠DOS和Windows获得的显著优势,他们一直在展望未来。而现在微软的未来被称为Windows NT。作为 最先进的软件创新,NT也许会在全世界直到下个世纪的范围内重新定义计算的标准。NT赋予廉价的个人计算机的能力堪比庞大的大型机——而且并没有牺牲其内在的灵活性和个人计算机的优点。 本书讲述的就是这个计算机技术领域惊人突破背后的故事。掀开一层层神秘的面纱,这个惊人的故事揭示了成功创新的艰难和痛苦。如今,通过编写最先进的代码,依靠少数具有远见卓识的天才的想象力,以及巨大而昂贵的程序员和测试员团队的合作,美国已经主宰了全球软件产业。盖茨——既是一个管理天才,也是一个有技术远见的人——他在微软内推动了一种可控的混乱气氛,而Windows NT的故事极佳的表现了这种风气。大卫.卡特勒是盖茨在1988年招募的传奇程序员,他设计的NT用了5年时间、15亿美金才得以完成。在那大部分时间里,有超过200名测试员、开发员和技术员为这个巨大的软件工作。 本书集中表现了卡特勒的反复无常,激励和鞭策团队的能力,色彩鲜明地描述了这个巨大企业的人间戏剧,揭示了他们的压力、失望以及最终胜利。而胜利来自于战胜没完没了的最后期限,与对手的竞争,与不可避免又无处不在的程序缺陷的无休止的斗争——其中可能就包括致命的“showstopper”类问题。 本书吸引入胜、生动形象、通俗易懂,展示了重大进展背后各种不同寻常的人物:闹独立的人,组织活动的人,解决问题的人,激起行动的人。即使是扭打在一起威胁要把他们拆开的时候,卡特勒和他的团队仍然在兴奋地搜寻关于计算的圣杯。
新机器的灵魂
The Soul of a New Machine Douban
Tracy Kidder translator: 龚益 / 高宏志 publishing house: 机械工业出版社 2011 - 10
计算机从1981年开始发生巨大的变化。《新机器的灵魂》完整地记录下了当时一家公司齐心协力把一种新的小型计算机推向市场的过程中所发生的一系列戏剧性的、充满戏剧色彩的、激动人心的故事。 本书以美国通用数据公司研制鹰电子计算机的全过程为主线,对美国计算机工业的发展和管理中鲜为人知的侧面,作了条理清晰、颇具诗情画意的描述。 你想知道一代新型计算机怎样诞生,精明干练而又富于幽默感的工程技术人员怎样争分夺秒、日夜鏖战吗?你能猜到驱使这些技术骄子忘我奋斗的原因吗?你想了解处于尖端技术前沿的大公司经营管理的内幕,以及企业内外近乎疯狂的竞争吗?本书会告诉你答案。 这是一个奇妙的故事,也是一个项目管理的实例,即使不了解计算机发展史的读者也能读懂这个故事,并且从中受益。
构建之法
Douban Goodreads
邹欣 publishing house: 人民邮电出版社 2014 - 9
内容简介: 软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身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)/中山大学软件学院
质量·软件·管理(第1卷)
Douban
[美] 杰拉尔德·温伯格 translator: 邓俊辉 publishing house: 清华大学出版社 2004 - 7
《质量软件管理》(第1卷)通过大量的实例解释了"控制点"的概念,只要对这些位置进行管理,就可以防止危机的发生,或者至少不使情况更糟。 书中讨论的问题包括:质量、压力与崩溃、软件文化、软件模式、管理模式、反馈作用、软件工程中的规模 / 复杂度动力、故障检测及其应对方法、错误排除动力、客户作用等。极具价值的图表、索引、练习题以及参考书目,更使《质量软件管理》(第1卷)光彩倍增。
最后期限
The Deadline: A Novel About Project Management Douban
汤姆・迪马可 translator: 熊节 publishing house: 清华大学出版社 2002
汤普金斯先生是一位经验丰富的项目经理,却也不幸遭遇了被“炒鱿鱼”的命运。这时,有人出数倍的薪俸将他“请”到一个海上的小国同时管理六个软件项目。资金、人员、设备等所有外部条件都万事俱备,汤普金斯先生可以放手去做,并将自己的奇思妙想付诸实践。本以为会因祸得福,汤普金斯先生却逐渐发现事情并没有那么简单,项目根本无法在最后期限内完成,但他已经骑虎难下……
人件
Peopleware Douban
★ 7.2 8 ratings
Tom DeMarco / Timothy Lister translator: UML China publishing house: 清华大学出版社 2003 - 6
《人件(第2版)》专门讨论了软件开发和维护的团队管理问题,并向人们的传统认识提出了挑战。作者汤姆·迪马可,蒂姆·李斯特在书中推崇人本管理思想,指出知识型企业的核心是人,而不是技术。《人件(第2版)》于1987年首次出版后,曾在西方引起了轰动,被誉为“对美国软件业影响最大的一本书”。《人件(第2版)》还对大中型组织中的软件开发团队如何运作进行了深入探讨。《人件》已成为软件图书中的经典之作。它和《人月神话》共同被誉为软件图书中“两朵最鲜艳的奇葩”。人们认为,《人月神话》关注“软件开发”本身,《人件》则关注软件开发中的“人”。因此,在成千上万的书架上,《人件》永远和《人月神话》并列在一起。《人件(第2版)》读者包括软件开发组织中的所有人员。管理者和被管理者都将从书中得到有益的启示。
代码整洁之道
Clean Code: A Handbook of Agile Software Craftsmanship Douban
★ 8.0 14 ratings
[美]Robert C. Martin translator: 韩磊 publishing house: 人民邮电出版社 2010 - 1
软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。 本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。
敏捷软件开发
Agile Software Development: Principles, Patterns, and Practices Douban
★ 9.7 7 ratings
[美国] Robert C·Martin translator: 邓辉 publishing house: 清华大学出版社 2003 - 9
在本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。
程序开发心理学
The Psychology of Computer Programming Douban
(美)杰拉尔德·温伯格 translator: 邓俊辉 publishing house: 清华大学出版社 2004 - 1
本书开创"以人为本"研究方法的先驱,在长达25年的岁月中一直保持活力,至今仍在继续。1997年,本书作者温伯格因其在软件领域的杰出贡献,被美国计算机博物馆的计算机名人堂选为首批5位成员之一。 在计算机界,还没有任何一本计算机方面的书,在初次出版之后,能够在长达25年的岁月中一直保持活力--而且这种活力到今天仍在继续。《程序开发心理学》是开创"以人为本"研究方法的先驱,它以其对程序员们在智力、技巧、团队和问题求解能力等方面独特的视角和敏锐的观察经受住了时间的考验。 weinberg先生在1971年出版的、具有深远影响的第1版的基础上,增加了令人耳目一新的内容,构成了这本《程序开发心理学》的银年纪念版。新增的内容包括:新的前言,每一章之后的评注以及针对影响程序员职业生涯的若干问题发自内心的真知灼见。 weinberg先生以其独特的视角回顾了自己当年的见解,重新审视了与今天的程序开发尤为相关的问题,并强调了今与昔的异同。内容包括:作为社会行为的程序开发、心理学测量、无私式程序开发、程序开发团队、大型工程中共同的社会性问题、智力水平,以及问题求解能力、积极性、培训以及经验,还有程序语言设计的一些原则等等。