构建之法现代软件工程(第四次)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建之法现代软件工程(第四次)相关的知识,希望对你有一定的参考价值。

构建之法现代软件工程(第四次)

本周阅读了《构建之法》第四章和第五章

 

  代码规范:

    虽然计算机只关心编译生成的机器码,但是由于现代软件工程一般都是在一个团队里工作,所以代码是要给同事看的,因此一个良好的代码规范相当重要。

    代码规范可以分成两个部分:

      1.代码风格规范:简明,易读,无二义性。

              其中又包括缩进,行宽,括号,断行,命名,下划线,大小写,注释等一系列规范,这些规范有助于程序员们更好地理解和维护程序。

              缩进:4个空格,而不是tab;
              关于断行与空白的{}行:单独占一行;中间的代码缩进
              下划线:用来分割变量名字中的作用域标注和变量的语义
              大小写:通用的做法是,所有的类/函数名都采用所有单词首字母大写(Pascal)的形式;所有的变量首字母小写,随后的单词首字母大写(Camel);
              注释:解释程序做什么、为什么这样做以及要特别注意的地方。注释只用ASCII码字符,不要用中文或者其他特殊字符,否则会影响可移植性

 

      2.代码设计规范:牵扯到程序设计,模块之间的关系,设计模式等等

              函数:只做一件事,并且要做好。

              goto:函数最好由单一的出口

              错误处理:耗时长,使用断言验证参数的正确性

  代码复审:

    代码是否在代码规范的框架内正确地解决了问题,这是有必要的,因为如果有问题的代码已经嵌入到产品代码中,再要把所有的问题找出来就更困难了,而且修复的代价就会更大。

    根据代码复审的核查表一一对应。

  

  结对编程:

    一对程序员一起面对一个电脑,一起分析,设计,编码,测试,写文档等,一直处于复审状态。

    两个角色:驾驶员:控制键盘输入,领航员:起到领航,提醒的作用。

    这样的编程有助于互相督促,减少错误,初始质量的提高,并且两个程序员互相学习传递经验,如果运用得当,可以取得更高的投入产出比。

  

  两个人如何进行交流:

    要学会与人进行思想交流,富有情商地与同伴相处。

    

  软件团队的模式:

    1.窝蜂模式:一群人直接写代码,并且希望能借此写出好软件(大型项目不现实);

    2.主治医师模式:主要核心在于首席程序员,其他成员从各种角度支持他的工作(IBM System 360项目)

    3.明星模式:主治医师模式运用到极点,需要考虑团队利益最大化问题。

    4.社区模式:需要严格的代码复审和签入的质量控制。

    5.业余剧团模式:不同人承担不同角色。

    6.秘密团队:团队内部有极大的自由,较高热情,没有外界干扰。

    7.特工团队:软件团队由一些有特殊技能的专业人士组成,负责解决一些棘手而又紧迫性的问题。

    8.交响乐团模式:适合某个软件领域处于稳定成长阶段的时候。

    9.爵士乐模式:于交响乐团模式对立,比较强调个性化的表述。

    10.功能团队模式:具备不同能力的同事们平等协作,共同完成一个功能。(很多软件公司的团队最后都成为的模式)

    11.官僚模式:组织上有领导和被领导的关系

  

  开发流程:

 

    1.写了再改模式:

      与蜂窝模式大相径庭,大家上来就写代码,写不出就直接改。

    2.瀑布模型:

      由别的成熟行业借用的模型转化而成软件行业的设计模型,适合于:定义非常稳定的产品,技术成熟,不能频繁交流的团队。

      (1).生鱼片模型

        解决了各个步骤之间分离的缺点,但仍存在不知道上一个阶段何时会结束的问题。

      (2).大瀑布带着小瀑布

        解决不同子系统之间进度不一的问题,用户只有等到最后才能看到结果。

    3.统一流程:

      重计划,重事先设计,重文档表达。

      具体规程有:业务建模、需求、分析和设计、实现、测试、部署、配置和变更管理、项目管理、环境、初始阶段、细化阶段、构造阶段、交付阶段。

    4.老板驱动的流程:

      开发流程由公司老板驱动,适合于:软件订单靠个人关系,老板比一般技术人员更懂市场和竞争,团队尚未成熟。

      存在的问题:领导技术上是外行,领导不懂得管理软件项目,精力有限。

    5.渐进交付的流程

      很接近迭代式开发流程,当系统的主要需求和架构明确之后,软件团队进入了一个不断演进的evolution循环中:开发→发布→听取反馈→根据反馈做改进

      MVP:

        由于团队在软件开发流程中要到最后才能给客户一个软件反馈,所以可先将最小可行产品开发出,来得到用户的反馈,比如先做一个ios软件,而不是同时开发android软件。

      MBP:

        适合极高水平的产品团队,把产品最全最美的形态展现出来,征服用户,比如IPHONE

    

 

    

 

    

    

以上是关于构建之法现代软件工程(第四次)的主要内容,如果未能解决你的问题,请参考以下文章

构建之法 第四次心得

《20170830-构建之法:现代软件工程-阅读笔记》本周阅读了第四章的第四节

构建之法:第四次心得

《构建之法》第四次随笔

《构建之法》第四次

《20171214-构建之法:现代软件工程-阅读笔记》