《构建之法》整理

版权声明:本文为冯天祥原创文章,未经允许不得转载。 https://blog.csdn.net/kxbk100/article/details/88942206

第2章 个人技术和流程

单元测试

单元测试

回归测试

回退操作

效能分析工具

先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析

个人开发流程

任务清单

计划

  • 明确需求和其他相关因素,指明时间成本和依赖关系

开发

  • 分析需求
  • 生成设计文档
  • 设计复审(和同事审核设计文档)
  • 代码规范(为目前的开发定制合适的规范)
  • 具体设计
  • 具体编码
  • 代码复审
  • 测试(包括自测,修改代码,提交修改)
  • 记录用时

报告

  • 测试报告
  • 计算工作量
  • 事后总结
  • 提出过程改进计划

软件设计的原则

单一职责原则

一个模块(类)应该只有一个导致它变化的原因,一个模块应该完全对某个功能负责

开放-封闭原则

  • 允许拓展。当应用的需求发生改变时,我们可以对模块进行拓展,从而改变模块的功能
  • 不允许修改。对模块行为进行拓展时,不必改变模块的本身

程序的健壮性

数据

属性拓展

  • 超过64位的数字

数量拓展

  • 十万条数据

维度拓展

  • 多维数组

其他属性拓展

需求

形象的显示数据处理的过程

维度拓展

数量拓展

增量改进

用户

让用户更喜欢这个软件

  • 记住上次的状态
  • 自动展现上次文档最后编辑的地方

多用户

多语言

安全性

软件构建

平台的迁移

多语言接口

增量升级部分模块

实践

工作的细分

基本功能
拓展功能
高级功能

如何保证质量——回归测试

保证在加入新功能的过程中,已有的功能可继续工作,我们需要建立起一系列测试文件


第3章 软件工程师的成长

软件工程师的成长

  • 积累软件开发相关的知识,提升技术技能
  • 积累问题领域的知识和经验
  • 对通用的软件设计思想和软件工程思想的理解
  • 提升职业技能
  • 实际成果

软件工程师的思维思维误区

分析麻痹

不分主次,想解决所有依赖问题

过早优化

过早扩大化/泛华

画扇面——调侃目标和远景

技能的反面

通过不断的练习,把低层次的问题解决,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题


第4章 两人合作

代码风格规范

  • 4个空格的缩进
  • 每个{}独占一行
  • 不要把多个变量定义在一行上
  • 一个类型的成员变量用m_name来命名
  • Pascal:所有的类型/类/函数名
  • lowerCamel:变量
  • 注释是为了解释程序做什么(What),为什么这么做(Why),以及要特别注意的地方,只用ASCII字符,不要用中文

代码设计规范

  • 函数:只做一件事,并且要做好
  • 单一出口
  • 不要在构造函数中做复杂的操作,简单初始化所有的数据成员即可

代码复审

看代码是否在代码规范的框架内正确地解决了问题
长远的问题

  • 这么修改之后,有没有别的功能会受影响
  • 项目中还有别的地方需要类似的修改吗
  • 有没有留下足够的说明,让将来维护代码时不会出现问题
  • 对于这样的修改,有没有别的成员需要告知
  • 导致问题的根本原因是什么?我们以后如何能自动避免这样的情况再次出现

代码复审的核查表

猜你喜欢

转载自blog.csdn.net/kxbk100/article/details/88942206