首页 > 其他分享 >阅读笔记之《构建之法》二

阅读笔记之《构建之法》二

时间:2023-06-07 23:45:18浏览次数:52  
标签:复审 错误 代码 模式 构建 笔记 阅读 软件 阶段

第三章 软件工程师的成长

3.1 个人能力的衡量与发展

①软件工程包括了开发、运用、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。

②初级软件工程师的成长包括以下几种:

(1)积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。例如:对JAVA、C/C++、C#的掌握,诊断/提高效能的技术,对设备驱动程序、内核调试器的掌握,对于某一开发平台的掌握

(2)积累问题领域的知识和经验(例如对医疗或金融行业的了解)

(3)对通用的软件设计思想和软件工程思想的理解

(4)提升职业技能(区别于技术技能),包括:自我管理的能力、表达交流的能力、与人合作的能力、按质按量完成任务的执行力

(5)实际成果——最重要的评价标准

3.2 软件工程师的职业发展

自我评估,自我评价清单:

软件工程师能力自我评价表

 

第四章 两人合作

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中叫做规程或者工作流。简介:

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

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

 

标签:复审,错误,代码,模式,构建,笔记,阅读,软件,阶段
From: https://www.cnblogs.com/fengjiale/p/17464908.html

相关文章

  • 阅读笔记之《程序员修炼之道-从小工到专家》六
    第30节黑板1、设想侦探破案的过程,他借助于一块黑板,把不同线索写出来;其他侦探也可以写下自己的推断和已掌握的案情细节。所有这一切串联起来将共同帮助案件侦破,但不同的线索之间是可以独立进行的。2、这里的黑板可以抽象为一种处理事件的模型。不同于原始的工作流需要考虑各种状......
  • 阅读笔记之《程序员修炼之道-从小工到专家》七
    第36节需求之坑从本节开始进入了第七章节:在项目开始之前。本章节讨论了在项目开始之前的一些建议。1、完美,不是在没有什么需要增加,而是在没有什么需要去掉时达到的。这句话的一种解读时,不要搜集需求,需求太多,容易让我们抓不住重点,更应该深挖需求,围绕核心功能不断打磨。2、挖掘......
  • 2023年3月阅读笔记1
    焦油坑入坑前,都会觉得自己战无不胜,就像陷入焦油坑的巨兽,自以为有着庞大的身躯就能在各种的地形中安然度过。在填写志愿的时候,对未来充满希望的孩子们还不知道自己将面临什么,只觉得代码的世界奇妙酷炫,然而代码对于软件系统的开发来说只是水面上的冰山。前人的智慧告诉我们如果没有......
  • 2023年3月阅读笔记3
    画蛇添足过度设计的现象常常存在,据我的观察,这种现象往往出现于极度追求完美的人和刚刚经历过首次开发设计不足的经验教训的人。过度设计的系统在最初就引入了过多的复杂性,导致开发举步维艰,这个问题或许在一个架构师有了一定经历后就自然能够解决,但是“第二个系统”的困境出现时,我......
  • 2023年3月阅读笔记2
    外科手术队伍软件开发的团队选择往往是一个难题。在课程实践的过程中,大家往往渴望抱到大牛的大腿,因为经验丰富的程序员能起到以一敌十的效果,当一个团队中每个人的能力都很强那么这个队伍几乎就成了神话般的精英小队。对于大型的项目,小而美的团队往往有些力不从心,精英也不可能大量......
  • AUTOSAR笔记:ECU级开发MCAL(六)
    目录MCAL配置工具入门MCAL配置工具安装MCAL配置方法、常用接口函数Mcu模块Gpt模块Port模块Dio模块Adc模块Pwm模块Icu模块Can模块Base与Resource模块MCAL配置验证与代码生成小结MCAL位于AUTOSAR架构最底层,与MCU内部及外设有关。该层作用:接收上层指令,完成对硬件的直接操作;获取硬件......
  • GitOps 最佳实践(上)| 基于 Amazon EKS 构建 CI/CD 流水线
    GitOps是目前比较理想的方法来实现基于Kuberentes集群的持续部署。了解了 GitOps的概念以及CI/CD流水线的架构,接下来我们将通过以下四个模块逐步完成构建CI/CD流水线的最佳实践:通过IaC部署云基础架构;在AmazonEKS集群上部署FluxCD;利用FluxCD部署GitOps工......
  • AUTOSAR笔记:工程代码集成与调试(七)
    目录工程代码架构、集成方法代码编译链接代码调试MCU可执行文件下载完成AUTOSAR系统级、ECU级、SWC级相关开发和代码生成后,需要进行代码集成与调试。本文对AUTOSAR工程代码架构、集成、编译链接、调试方法进行简单介绍。工程代码架构、集成方法一套完整的符合AUTOSAR规范的ECU......
  • [刷题笔记] Luogu P3073 [USACO13FEB]Tractor S
    ProblemSolution和汽车拉力比赛差不多,思路都是二分,二分\(d\),但是汽车拉力比赛从一个路标开始搜即可,本题没有给定起点。一条合法路径起点是未知的,不得随便从一个点开始搜,否则可能找不到正确路径。怎么处理呢?容易想到对于每一个二分的\(d\),开一个\(n^2\)的循环,从每一个点开始搜......
  • 【笔记】矩阵
    矩阵基础定义:数学意义上有更加严谨的矩阵定义,这里不过多展开,如有需要还请自行查询。由\(n\timesm\)个数排成\(n\)行\(m\)列,第\(i\)行\(j\)列的数记为\(a_{i,j}\)。我们称这\(n\timesm\)个数为矩阵\(A\)的元素,记作:\[A=\begin{bmatrix}&a_{1,1}&a_{1,2}&...&a_{1,m}&......