构建之法 第四周

本章的理论和知识点主要分为:代码规范、极限编程、结对编程、两人合作的不同阶段、影响他人的技巧。 第一,代码规范,分为代码风格规范和代码设计规范。

风格上,无疑是秉承着“简明、易读、无二义性”的原则,适当运用大括号、空格、缩进,让代码页面显得一目了然简洁明了。此外,对于变量的命名的准确度也很重要。设计上,函数需要有明确——最好是单一的——出口,在错误处理中适当使用“断言”……这些无一不印证着代码的无二义性及数字逻辑的准确性。 代码的规范是预示团队合作能否顺利进行的第一步,毕竟“代码最终是给人看的”。

第二点是代码的复审。俗语有言温故而知新,如果能保持自己复审代码的习惯——若还能有同伴的复审无疑更好——久而久之将会使设计师受益良多。此外,同伴之间的复审能让同伴们彼此熟悉对方的代码使用习惯,在团队合作中也是有益的。 代码复审:在“代码规范”的框架内正确解决问题(自我复审、同伴复审、团队复审),最基本的复审手段是同伴复审

复审的目的:找出代码的错误、发现逻辑错误、发现算法错误、发现潜在的错误和回归性错误、发现可能改进的地方、教育传授经验给开发人员

如何复审:

复审前:代码必须成功地编译,在所有要求的平台上,同时要编译DeBug Reteil版本;程序员必须测试过代码

复审中:面对面复审、独立复审或其他方式 复审后:更正明显错误、记录无法修改的错误、记录自己的一个“常犯错误”(近一步自我复审) 极限编程 极限编程中有四个核心价值是我们在开发中必须注意的:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)、此外还扩展了第五个价值观:谦逊(Modesty)。

两人合作的不同阶段和技巧 1、萌芽阶段 2、磨合阶段 3、规范阶段 4、创造阶段 5、解体阶段 如何正确地给予反馈(层次) 1、最外层:行为和后果 2、中间层:习惯和动机 3、最内层:本质和固有属性

时间: 2024-11-03 14:52:59

构建之法 第四周的相关文章

构建之法第四周

结对编程:结对编程是极限编程这一思想的具体体现. 结对编程有三种形式: a.键盘鼠标式: b.Ping-pong式(这种是采用TDD(测试驱动开发)时常用的方式. c.领航员-驾驶员式. 常用的是Ping-pong式和领航员-驾驶员式.(下面都以领航员-驾驶员模式为例子.) 为什么要结对编程?(a.减少犯错.因为在结对编程的过程中有随时的复审和交流:b.提高解决问题的效率.在开发层次,结对编程能提供更好的设计质量和代码质量,合作解决问题的能力增强:c.知识传递.在结对工作的时候,开发人员可以互相

软件项目管理-构建之法-四周总结

写在前面 课程名:软件项目管理  授课人:东北师范大学 杨贵福( http://www.cnblogs.com/younggift/) 教材:<构建之法 - 现代软件工程> 作者:邹欣老师 (博客:http://www.cnblogs.com/xinz/) 周筠老师(邮电出版社的编辑,策划了构建之法,并参与提供领跑衫) 笔者作为东北师范大学计算机科学与信息技术学院研二学生,参与了软件项目管理这门课,在经过了四周的课程之后,获得了跑衫一件,深感荣幸.                       

构建之法——读书笔记(8)

<构建之法>第十&十一章 主要讲述了在软件设计前期的需求分析问题上的方法和实践经验,分为"典型用户和场景"以及"软件设计与实现". 其中第十章大部分内容包含: 用户的分类(典型用户可以包括以下内容: 1. 名字(越自然越好) 2. 年龄(不同年龄和收入的用户有不同的需求) 3. 收入 4. 代表的用户在市场上的比例和重要性(比例大不等同于重要性高,如付费的用户比例较少,但是影响大,所以更重要 5. 使用这个软件的典型场景 6. 使用本软件/服务的

《构建之法阅读笔记02》

这次主要对<构建之法>的第四章“两人合作”作一次阅读笔记. 首先是代码规范问题. 我过去对于代码规范问题并没有做到注意.在编程中,许多变量和函数的命名都非常的简单而没有实际的意义.而且编程时不注意对齐缩进.很多时候也不加注释,导致对这些简单的变量名称不熟悉. 这样做会使得很多人读代码费劲,甚至是自己都要花时间再次阅读懂自己的代码.而且很多没必要的注释也会使得注释失去意义.当自己再次在原基础上编程时,可能要重新编程等问题. 因此,通过阅读“代码规范”,我找到一些解决方法.代码的风格要简明.易读.

简读《构建之法》,所想问题展示

1,<构建之法>这本书全局语言通俗,学生很容易读懂,但是存在一个隐患:学过软件工程,我们只是笼统的理解,而对这方面的专业知识很少了解,该怎么办? 2,书中提到的软件结构,软件设计与实现具体是怎样的?怎么理解它们之间的关系? 3,软件在不断更新和增加功能的负担下,一定程度下会崩溃.若有一个软件,即将考虑添加下一个功能,但是在添加这个功能之后,系统一定会崩溃,但是这个功能对这个软件的市场前景起着至关重要的作用,这是该怎么办? 4,软件设计和软件构建有区别吗?不同之处是什么? 5,当软件中的依赖关系

构建之法阅读笔记05

2017.5.20 今天阅读的是<构建之法>第8章需求分析的阅读笔记,我们如果要开始做一个软件,最先要进行的就是需求分析,我们应该充分的了解我们这个软件是否具有前景,我们为用户提供的服务是不是用户所需要的,这一章详细的叙述了如何进行需求分析. 首先是获取和引导需求,我们应该找到软件的利益相关者,了解挖掘他们对软件的需求,引导他们表达出真实的需求.然后分析和定义需求,对各个方面的需求进行规整,定义需求内涵,从各个角度将需求量化,然后估计实现这些需求所需要的时间和资源,确定各个需求的优先级.紧接着

《构建之法》学习(5)——团队和流程

<构建之法>学习(5)--团队和流程 1.非团队和团队   团队共同的特点: 团队有一致的集体目标,团队要一起完成这目标 团队成员有各自的分工,互相依赖合作,共同完成任务 2.软件团队的模式       一窝蜂模式       主治医师模式 有首席程序员,他/她负责处理主要模块的设计和编码,其他成员从各种角度支持他/她的工作.       明星模式 主治医师模式运用到极点,可以蜕化为明星模式,在这里,明星的光芒盖过了团队其他人的总和.       社区模式 社区由很多志愿者参与,每个人参与自己

《构建之法》学习(3)——软件工程师的成长

<构建之法>学习(3)--软件工程师的成长 1.1个人能力的衡量与发展 积累软件开发相关的知识,提升技术技能 积累问题领域的知识和经验 对通用的软件设计思想和软件工程思想的理解 提升职业技能 实际成果      衡量软件开发的工作量和质量 项目/任务有多大? 花了多少时间? 质量如何? 是否按时交付? 1.2软件工程师的职业发展 职业发展--考级之路 职业成长--Steve McConnell版本 职业成长--大公司版本 职业成长--自我评估 1.3技能的反面 通过玩魔方的例子说明了技能提升的

《构建之法》——软工学习进度(2)

如何衡量一个软件工程师 如何衡量一个软件工程师?这是<构建之法>第三章的核心问题.第一章讲述了团队的流程,第三章则是对第一章的具体描述,从笼统的团队具体到个人.软件开发流程不光指团队的流程,还包括了个人开发流程,因为软件团队是由个人组成的,简而言之,个人在团队中也有独立的流程.那么问题来了,如果我们去面试,该如何定义我们自身呢?又或者说,看到一个同行的软件工程师,该如何形容他的技术? 第三章通过对足球的比喻,向我们形象的阐述了这个问题的关键.足球中有传接.盘带.射门等具体技术,映射到软件工程上