美文网首页
构建之法-4-两人合作

构建之法-4-两人合作

作者: BigLong | 来源:发表于2019-05-08 11:41 被阅读0次
两人合作

本章介绍一些非常实用的编程技巧以及两人合作的技巧。我觉得这几节的内容非常实用,遵守这些规范很关键,学会两人合作非常重要。


4.1 代码规范

如果你写的代码自己都看不懂,那别人更看不懂。你的同事看到你的代码只会想把你暴打一顿。因此,遵守代码规范,写出好的代码才符合共同利益!代码规范可以概括为两个部分:

  • 风格规范
    一些表面规定,但实际很重要。
  • 设计规范
    程序设计、模块之间的关系、设计模式等通用原则。

4.2 代码风格规范

简明、易读、无二义性

4.2.1 缩进

Tab or 空格?可以将Tab设置为4个空格,因为Tab在不同的情况下显示不同的长度,干扰阅读体验。

4.2.2 行宽

以前的打字机行宽为80字符,现在偏小,可以限定为100字符。

4.2.3 括号

在复杂的条件表达式中,用括号清楚地表示逻辑优先级。

4.2.4 断行与空白的{ }行
if (condition) 
{ 
    DoSomething(); 
} 
else 
{ 
    DoSomethingElse(); 
}
4.2.5 分行

不要把多条语句放在一行上,更严格地说,不要把多个变量定义在一行上。

4.2.6 命名

不同的编程语言命名建议均不同。总的来说,考虑以下建议:

  • 不要提及变量类型。例如:不用写arraylistOfHolidays,直接写holidays。
  • 避免过多描述。例如:游戏的终极boss。不要写 theFinalBattleMostDangerousMonster,可以直接写 boss。
  • 如果信息包含在上下文中,不必重复写在变量名上。例如,有一类EmployeeHealthRecord,有员工姓名变量,直接写name,而不用写employeeName。
  • 避免可要可不要的修饰词。例如,state,data,value,engine,entity,instance,object,manager,,,如果不要这些词,程序会变得难读懂吗?
4.2.7 下划线

下划线用来分隔变量名字中的作用域标注和变量的语义。

4.2.8 大小写

Pascal——所有单词的第一个字母都大写。
Camel——第一个单词全部小写,随后单词随Pas-cal形式。

一个通用的做法是:所有的类型/类/函数名都用Pascal形式,所有的变量都用Camel形式。类/类型/变量:名词或组合名词,如Member、ProductInfo等。函数则用动词或动宾组合词来表示,如get/set、RenderPage()。

4.2.9 注释

注释是为了解释程序做什么(What),为什么这样做(Why),以及要特别注意的地方。一个误导的(Misleading)注释往往比没有注释更糟糕。


4.3 代码设计规范

设计规范.png

4.4 代码复审

在代码规范的框架内正确地解决问题

复审.png

4.5 结对编程

两个人一起合作编程

一个是驾驶员,负责实施代码;一个是领航员,负责指引方向。

如何结对编程?

1. 驾驶员:写设计文档,进行编码和单元测试等XP开发流程。
2. 领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。
3. 驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。
4. 主动参与。任何一个任务都首先是两个人的责任,也是所有人的责任。没有“我的代码”、“你的代码”或“他/她的代码”,只有“我们的代码”。
5. 只有水平上的差距,没有级别上的差异。两人结对,尽管可能大家的级别资历不同,但不管在分析、设计或编码上,双方都拥有平等的决策权利。
6. 设置好结对编程的环境,座位、显示器、桌面等都要能允许两个人舒适地讨论和工作。如果是通过远程结对编程,那么网络、语音通讯和屏幕共享程序要设置好。

4.6 两人合作的不同阶段和技巧

不同阶段和技巧.png

附录

  • 结对编程中不好的习惯—你经历过么,如何提醒同伴改进?
1. 不拘小节的人 
两人在一起近距离地工作,但是却不注意个人卫生和互相尊重。开始合作前,吃了很多大蒜就来了。
2. 喜欢发号施令的人 
总是对敲键盘的人说:“到末行,加个反括号,然后……”。他不去关注解决方法和下一步该怎么做,而过度关注一些编程细节。
3. 拼写纠错者 
坐在你旁边,纠正你输入的每个错误字符。当然,他没有时间来真正地进行导航。
4. 深藏不露者 
仅仅自己敲着代码而不告诉别人他在做什么。领航员不得不靠自己去弄懂代码。关于该用什么方法,该选择哪种设计,领航员和实施者之间完全没有交流。
5. 跳跃很大的人 
他们喜欢在代码中进行大范围的跳跃,这样领航员便不知道进行到哪里了。

相关文章

  • 构建之法-4-两人合作

    本章介绍一些非常实用的编程技巧以及两人合作的技巧。我觉得这几节的内容非常实用,遵守这些规范很关键,学会两人合作非常...

  • 构建之法

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

  • 《构建之法》整理

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

  • 【笔记】构建之法

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

  • 读《构建之法》

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

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

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

  • 《构建之法》笔记目录

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

  • 我读《构建之法》

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

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

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

  • Webpack构建之法,Loader

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

网友评论

      本文标题:构建之法-4-两人合作

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