美文网首页
我读《构建之法》

我读《构建之法》

作者: 自由的柠檬 | 来源:发表于2015-06-07 11:29 被阅读0次

以前读过邹欣老师的几篇博客,觉得还是有些受用。这次看到邹欣老师出书,就赶热闹买了一本,看看软件从业者眼中的现代软件工程是什么样子。这本书我看的比较快,也没做笔记,今天有点时间,就把我认为比较有意思的一些点总结一下,对自己算是个交代。

这本书对于软件开发者的作用:不用读枯燥的课本,可以学习到现代软件工程的方方面面,结合自己的实际工作,查缺补漏,为成长成一位职业的、合格的开发者做好准备。如果你已经在软件领域从业多年,可以看看这些知识你是否大部分已经掌握并实践,对于软件开发和团队提升是否有帮助。

第1章 概论

提出了软件=程序+软件工程的概念;
普及软件开发涉及的子课题,如源代码管理、配置管理、质量保障、软件测试、需求分析、程序理解、软件维护、服务运营、软件生命周期、软件项目管理、用户体验、职业道德规范等等。
给出了软件工程的定义:

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。

软件的特殊性:复杂性、不可见性、易变性、服从性、非连续性。
软件工程与计算机科学的关系,其中有一副对比图比较有用。
软件工程的知识领域:15个知识领域,参见SWEBOK 3.0 -- 下载了这本书,可以浏览一下。
软件工程的目标:创造“足够好”的软件。

第2章 个人技术和流程

单元测试

好的单元测试的标准:在最低的功能/参数上验证程序的正确性、必须由最熟悉代码的人来写、单元测试后机器状态不变、要快、应该产生可重复、一致的结果、独立性、应该覆盖所有的代码路径、应该继承到自动测试的框架中、必须和产品代码一起保存维护。

效能分析工具

抽样和代码注入

个人开发流程

PSP以及书中没有提到的TSP(团队开发流程)

第3章 软件工程师的成长

个人能力的衡量和发展

其中讲了具体的衡量和发展的方法。

软件领域可以分为两个方面:一方面是技艺创新的大爆发,另一方面是坚持不懈的工程工作。包括软件的改善、维护和测试等,这一方面占了90-95%的比例。

软件工程的职业发展

职业发展-考级之路,职业成长-Steve McConnell版本(我个人比较喜欢的实践方法),职业成长-大公司版本,职业成长-自我评估(举例:即使是做CRUD需要的核心技能和扩展知识也不少,赞/P51)

技能的反面

那怎么提高技能呢?答案很简单,通过不断的联系,把哪些低层次的问题都解决了,变成不经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。

第4章 两人合作

代码规范、代码复审、结对编程。有参考价值,后面部分涉及到软件工程师合作的一些技巧,不仅仅是技术问题。参见P79,如何正确地给予反馈。

第5章 团队和流程

非团队和团队。团队的特点:有一致的目标,一起完成;有各自的分工,互相依赖合作。

软件团队的模式

一窝蜂模式(呵呵),主治医师模式(IBM System 360),明星模式(不咋样),社区模式(Linux,OSS),业余剧团模式(培训项目),秘密团队模式(Macintosh,比较特殊),特工团队模式(网络安全服务),交响乐团模式(大公司普遍),爵士乐模式(即兴演出?),功能团队模式(Feature Team,应用广泛),官僚模式

开发流程

Code-and-Fix,瀑布开发(被误解的瀑布,参见P91;P94瀑布的适用范围),RUP,老板驱动的流程,渐进交付的流程

第6章 敏捷流程

这一章我觉得很有价值,篇幅不长,但是针对敏捷流程提出了一些问题,进行了一些讨论,但是对一些问题,作者也没有给出特别明确的答案。无论如何,敏捷不是银弹,在实施过程中存在的问题值得反思。可以再次阅读。

第7章 MSF

略。

第8章 软件需求

P158 NABC分析法不错,竞争性需求分析框架,更适合产品经理和创新。

第9章 项目经理

P183 PM的具体任务

第10章 典型用户和场景

Persona技术啊

第11章 ~ 第14章 过于基础,新观点不多 略

第15章 稳定和发布阶段

P295 事后诸葛亮会议(邹老师这个模板不错哦~) - 敏捷中的回顾 - Project中的Lesson&Learn

第16章 IT行业的创新

恩,创新是永恒的话题,不过不是软件工程的核心话题

第17章 人,绩效和职业道德

这章很重要,尤其对于管理者。需要再看一下最新版的《人件》。

--- OVER ---

相关文章

  • 我读《构建之法》

    以前读过邹欣老师的几篇博客,觉得还是有些受用。这次看到邹欣老师出书,就赶热闹买了一本,看看软件从业者眼中的现代软件...

  • 读《构建之法》

    开篇提到的现实世界中软件工程师的职业发展与教科书上经典的瀑布模型刚好相反的观点,让人眼前一亮。 学校里教的开发流程...

  • 构建之法

    个人能力的衡量(开发的工作量和质量的衡量):通过代码行数或功能点来衡量;花费的时间;交付的代码有多少bug来衡量;...

  • 《构建之法》整理

    第2章 个人技术和流程 单元测试 单元测试 回归测试 回退操作 效能分析工具 先用抽样的方法找到效能瓶颈所在,然后...

  • 【笔记】构建之法

    第二章:个人技术和流程 要点: 单元测试,回归测试,效能分析,基于个体的软件开发流程(PSP) 单元测试的构建标准...

  • 构建之法,运用之妙,存乎一心

    构建之法,运用之妙,存乎一心 1. 构建之法,存乎一心 史学理论与史学史,是把历史自己作为研究对象的学科,前者讨论...

  • 《构建之法》笔记目录

    第1章概论 第2章个人技术和流程 第3章软件工程师的成长 第4章两人合作 第5章团队和流程 第6章敏捷流程 第7章...

  • 【Note】《构建之法》提要

    《软件工程 构建之法》作者邹欣系Windows中国工程师团队首席研发总监 (Link:亚马逊) 整本书,极其认真...

  • Webpack构建之法,Loader

    什么是loader 在我的理解webpack的 loarder相当于一个中间件,require('file!./t...

  • Webpack构建之法,前言

    什么是Webpack webpack,是一个前端模块构建工具,利用Code Splitting技术将静态资源进行模...

网友评论

      本文标题:我读《构建之法》

      本文链接:https://www.haomeiwen.com/subject/rlbdqttx.html