首页 > 其他分享 >构建之法 阅读笔记02

构建之法 阅读笔记02

时间:2023-04-18 21:01:33浏览次数:34  
标签:02 流程 Scrum 笔记 构建 模式 敏捷 团队 代码

第四章 两人合作

4.1 代码规范

包括代码风格规范和代码设计规范

4.2 代码风格规范

代码风格原则:简明、易读、无二异性

缩进:4个空格,而不是TAB

行宽:限定为100字符

括号

断行与空白的{}行

分行

命名:匈牙利命名法

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

大小写(Pascal形式和Camel形式)

注释

4.3 代码设计规范

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

goto:有助于程序逻辑的清晰体现

错误处理:参数处理、断言

类的处理

4.4 代码复审

①形式:自我复审、同伴复审、团队复审

②目的:找出代码错误、发现逻辑错误、发现算法错误、发现潜在的错误和回归性错误、发现可能需要改进的地方、传授经验

③代码复审后把记录整理出来:

(1)更正明显的错误

(2)记录无法很快更正的错误

(3)把所有的错误记在自己的一个“我常犯的错误”表中,作为以后自我复审的第一步

4.5 结对编程

①角色:

驾驶员:控制键盘输入

领航员:起到领航、提醒的作用

②好处:(1)在开发层次,可以提供更好的设计质量和代码质量,两人合作解决问题的能力更强。

(2)对开发人员,带来更多的信心,高质量的产出带来更高的满足感。

(3)企业管理层次上,有效地交流,相互学习和传递经验,分享知识,取得更高的投入产出比。

 

第五章 团队和流程

5.2 软件团队的模式

主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式

5.3 开发流程

①写了再改模式

②瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。

瀑布模型的适用范围:产品的定义非常稳定但正确性非常重要、产品模块之间的接口能很好地定性定义和验证、使用的技术很成熟、子团队不能做到频繁的交流。

③瀑布模型的变形:生鱼片模型(各个相邻模块像生鱼片那样部分重叠)以及大瀑布带着小瀑布(各个子系统统一到最后进行系统测试)

5.4 统一流程RUP

统一流程Rational Unified Process,团队的各种成员在一个复杂的软件项目中的不同阶段做不同的事。这些不同类型的工作在RUP中叫做规程或者工作流。简介:

业务建模、需求、分析和设计、实现、测试、部署、配置和变更管理、项目管理。

分为四个阶段:初始阶段(达到生命周期目标里程碑)、细化阶段(达到生命周期结构里程碑)、构造阶段(达到初始功能里程碑)、交付阶段(达到产品发布里程碑)

 

第六章 敏捷流程

6.1 敏捷的流程

①敏捷开发原则:

(1)尽早并持续地交付有价值的软件以满足顾客需求

(2)敏捷流程欢迎需求的变化,并利用这些变化来提高用户的竞争优势

(3)经常发布可用的软件,发布间隔可以从几周到几个月,能短则短

(4)业务人员和开发人员在项目开发过程中应该每天共同工作

(5)以有进取心的人为项目核心,充分支持信任他们

(6)无论团队内外,面对面的交流始终是最有效的沟通方式

(7)可用的软件是衡量项目进展的主要指标

(8)敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去

(9)只有不断关注技术和设计,才能越来越敏捷

(10)保持简明——尽可能简化工作量的技艺

(11)只有能自我管理的团队才能创造优秀的架构、需求和设计

(12)时时总结如何提高团队效率并付诸行动

②敏捷流程概述:找出完成产品需要做的事情→决定当前的冲刺(Sprint)需要解决的事情→冲刺(冲刺期间每天开每日例会)→得到软件的一个增量版本并发布

6.3 敏捷的团队

自主管理:自己挑选任务、自己提出改进并实施改进

自我组织:每个人联合起来对项目负责

多功能型:每个人都全面负责,自己搞定规格说明书,和别人沟通,自己搞定测试

6.4 敏捷总结

在迭代开始时,团队审视摆在他们面前的任务,选择他们认为可以在迭代期间完成的那些任务(Plan)。然后团队独立地尽最大努力完成这些任务(Do)。在迭代结束时,团队给利益关系人展示成果(Check),并对开发流程进行调整(Act/Adjust)。

这里有一些实践者的经验教训:

(1)敏捷宣言表明的是一些优先级,不必当作圣旨或者教条来争论。

(2)Scrum Master不是一个官,而是一个没有行政权力的沟通者,就像微软的PM那样。他/她同时还要在团队中做具体的工作。直接把原来的“经理”变成Scrum Master,大多行不通。

(3)一些项目需要很多暗箱操作和政治角力才能搞定,Scrum会把这些矛盾都摆到明处。这有好处,也有风险。

(4)在复杂的项目里,要让一线团队成员做决定。

(5)创业公司的团队其实经常是运行在Scrum 的模式中(只不过大家太忙,没工夫论证自己到底有多么Scrum)。

(6)在Scrum计划阶段的估计不是一个“合同”,领导们不要把它当成一个合同。估计总是不准的。坚持短期的Sprint,这样即使不准的估计也不会有大的损害。

(7)不要和管理层谈“流程”,他们只关心“结果”。

(8)在大型团队、跨地区的团队,或者复杂项目中,Scrum并没有非常完美的答案,Scrum的创始人也承认这一点.

 

总结

之后在合作完成项目时,要更加注意自己的代码格式,方便其他人阅读,进行统一的测试,容易发现并更改错误。

团队合作时需要多沟通,对每个人的情况做出了解,分析如何进行项目设计。

标签:02,流程,Scrum,笔记,构建,模式,敏捷,团队,代码
From: https://www.cnblogs.com/syhxx/p/17331048.html

相关文章

  • 【GIT】学习day02 | git环境搭建并将项目进行本地管理
    进入终端输入GitHub或者给gitee的用户名和邮箱地址然后依次敲入一下信息gitcommit-m"initproject"gitinitgitadd. 正确结果如下 ......
  • 2023.4.17每日总结
    <!DOCTYPEhtml><html><head><metacharset="utf-8"/><title>首页</title><linkrel="stylesheet"href="css/page.css"/><scripttype="text/......
  • day13_手动构建Springboot项目
    SpringBoot项目-手动构建1.创建maven项目在idea中创建一个maven项目,正常填写项目的坐标信息。如下图所示:输入项目的基本信息之后,点击finish,就可以创建一个maven项目。但是这个maven项目目前并不是springboot项目,我们还需要做如下两步操作。2.pom.xml配置1).在pom.xml中......
  • Docker快速入门 三(dockerfile常用命令,dockerfile构建django项目,docker私有仓库,docker-
    目录Docker一、Dcokerfile常用命令二、Dockerfile构建Django项目三、Docker私有仓库1、简介2、镜像传到官方仓库3、镜像分层4、搭建私有仓库四、Docker-conpose1、Docker-conpose部署项目1、新建flask项目2、编写dockerfile3、编写docker-conpose的yml文件4、启动docker-compoes2......
  • 2023-4-18查漏pair
    pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。pair的实现是一个结构体,主要的两个成员变量是firstsecond因为是使用struct不是class,所以可以直接使......
  • 2023-4-18补缺map
    map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实......
  • 2023-4-18补缺for(auto i : v)遍历容器元素
    for(autoi:v)遍历容器元素1.auto2.auto&3.constauto&4.constautoC++11新增了一种循环:基于范围(range-based)的for循环。这简化了一种常见的循环任务:对数组(或容器类,如vector和array)的每个元素执行相同的操作,如下例所示:doubleprices[5]={4.99,10.99,6.87,6.47......
  • 2023.4.18-人月神话-4月份读后感1
    最近,我阅读了人月神话的一部分,有了一些感受。过去,我对于编程的乐趣不是很了解。编程为什么有趣?首先是一种创建事务的纯粹快乐,其次快乐来自于开发对其他人有用的东西,第三是整个过程体现出魔术般的力量,第四是学习的乐趣,最后乐趣还来自于工作在如此易于驾驭的介质上。编程非常有趣,在......
  • 梦断代码读书笔记03
    很高兴终于看完了梦断代码这本书,不得不感慨这本书的独到魅力所在,它所囊括的内容对我们的软件开发真的有很大帮助。chandler团队继续向前探索,遇到了难题在团队坚持不懈执着下依然一一解决,他们在软件开发过程中遇到的问题可能就是我们以后要遇到的问题。作者通过对chandler团队的探......
  • 软构学习笔记-工厂模式
    三个工厂模式方法目录三个工厂模式方法Introduction简单工厂模式工厂方法模式抽象工厂模式Introduction工厂模式属于设计模式中创造型模式的一种。它提供了一种创建对象的方式,将创建对象的过程作了优秀的封装。使得创建对象的创建逻辑不会暴露给客户端,而是通过接口来进行对象......