《软件工程之美》—— 开发编码

不要总盯着自己无法改变的部分,多花时间精力在自己可以影响和掌控的事情上。
不仅讲道理,还给给出当前环境下的实质性的建议,好喜欢宝玉老师的专栏!

文章目录

      • 1、如何提升开发效率
        • 1.1、积极主动
        • 1.2、要事第一
      • 2、持续交付
        • 2.1、如何搭建持续交付环境
      • 3、自动化测试
        • 3.1、如何写好自动化测试代码
        • 3.2、如何选择实施自动化测试
      • 4、源代码管理工具
        • 4.1、如何做好代码审查
        • 4.2、开发流程

1、如何提升开发效率

三个简单的原则。

1.1、积极主动

成为一个高效程序员,最大的阻力不是来自于不知道方法,而是自己的消极心态。

首先要知道,无论这些事情的本质责任是在于环境还是个人,抱怨排斥的心态对于实际工作的改进是没有任何帮助的。有两个行之有效的建议:

想想再回应
每个人对于外界的刺激都会做出反映,本能的或者习惯性的,比如遇到事情会本能的觉得都是外部原因,如果一直这样,就会进入恶性循环,变得更加消极麻木。

在回应之前,给自己一点时间想想,站在积极的方面理性思考一下,就可以去控制你的本能反应。

减少关注圈,扩大影响圈

不要总盯着自己无法改变的部分,多花时间精力在自己可以影响和掌控的事情上。

《软件工程之美》—— 开发编码_第1张图片

读起来觉得自己很渺小,很平静。这一段我截图分享给好多好友啦~

以始为终
先搞清楚目标,再开始动手。在做事情的时候注意三点:目标、原则和计划

  • 经常停下来想想目标:原始目标是什么?目前在做的事情是否偏离目标?如果偏离,那么马上回到自己的原始目标去。
  • 制定原则:好的方法都是要坚持做才有效果的。
  • 公开自己的计划:Deadline是最好的生产力。

宝玉老师给自己的定的几个原则,可以参考:

《软件工程之美》—— 开发编码_第2张图片

1.2、要事第一

保证有限的时间用在最有价值的事情上。
几个参考原则:

  • 重要不紧急的要事,要花最多的时间在上面:如代码重构、自动化测试代码、确认清楚需求文档
  • 紧急不重要的事凑一起集中做:专注干活的时候,全屏、关闭消息通知,保证没有干扰,忙完再处理。
  • 不重要不紧急的事情能不做就不做

改变不会是一两天就能完成,但也不用着急,因为习惯的养成需要时间的积累才能变成条件反射。当你把好的原则或方法变成了直觉反应,自然会成为一个高效的程序员。

2、持续交付

持续集成和用什么开发模型是没有关系的,好处是:

  • 尽快暴露问题:自动化测试可以让测试人员尽早介入,及时发现问题。
  • 极大提升效率:自动化,效率更高
  • 提升质量:每次合并之前都需要通过自动化测试。
  • 降低项目成本

2.1、如何搭建持续交付环境

准备:

  • 要有源代码管理工具
  • 要写自动化测试代码

项目需要满足以下条件:

  • 对代码构建的过程是可以反复进行的,并且每次构建的结果是一致的、稳定的。
  • 所有环境的配置都存在于源代码管理工具中,不仅仅是代码。
  • 需要自动创建针对不同环境的发布包。
  • 所有环境的部署发布步骤都必须是自动化的

选择持续集成工具:

  • Jenkins
  • Go CD
  • GitLab CI
  • Azure Piplines

3、自动化测试

自动化测试是如何保证质量的:自动化测试可以直接绕过界面,对程序内部的类、函数进行直接测试。如果有一定量的自动化测试代码覆盖,相对来说是更有保证的。

自动化测试的类型:
小型测试:验证代码单元的功能。不需要依赖外部,如果有外部服务,必须使用一个模拟的外部服务。
中型测试:两个或多个模块应用之间的交互,也叫集成测试。是否使用模拟服务,取决于单机情况下能否完成集成测试。
大型测试:较高层次运行,作为一个系统来验证。

3.1、如何写好自动化测试代码

测试代码包含四部分即可:

  • 准备:创建实例、创建模拟对象
  • 执行:执行要测试的方法,传入要测试的参数
  • 断言:检查结果对不对
  • 清理:对数据进行清理,不影响下一次测试
    《软件工程之美》—— 开发编码_第3张图片

对同一个功能,一个完成的自动化测试包含三个部分的测试:

  • 验证功能是否正确
  • 覆盖边界条件
  • 异常和错误处理

《软件工程之美》—— 开发编码_第4张图片

3.2、如何选择实施自动化测试

step1:选择好自动化测试框架
step2:在持续环境上跑自动化测试

《软件工程之美》—— 开发编码_第5张图片

标准流程:

  • 在提交代码前,先本地跑一遍单元测试
  • 单元测试成功后提交到源代码管理中心,提交后持续集成服务会自动运行完成的自动化测试
  • 通过所有测试后,合并到主分支

step3:为新老项目采取不同的策略
新项目一开始保持自动化测试代码的覆盖率,可以采用TDD的开发模式。

《软件工程之美》—— 开发编码_第6张图片

老项目先把主要的功能场景的中型测试写起来。

4、源代码管理工具

如何用好源代码管理工具:

  • 要频繁的提交:便于code review以及快读定位问题和回滚。要对提交的内容进行分拆并保证完整性。
  • 每次提交后要运行自动化测试
  • 要有代码审查

4.1、如何做好代码审查

首先了解提交代码要解决的问题,思考解决方案。对审查出来的问题,分成三个类型:

  • 问题:提出问题,澄清确认
  • 建议:更好的实现
  • 阻塞:有必须要修改的问题。

4.2、开发流程

推荐阮一峰老师的文:Git 工作流程

1、创建分支
《软件工程之美》—— 开发编码_第7张图片
2、提交更新
《软件工程之美》—— 开发编码_第8张图片
3、创建Pull Request
《软件工程之美》—— 开发编码_第9张图片

4、讨论和代码审查
《软件工程之美》—— 开发编码_第10张图片

5、部署测试
《软件工程之美》—— 开发编码_第11张图片

6、合并
《软件工程之美》—— 开发编码_第12张图片

你可能感兴趣的:(05_极客时间阅读笔记,08_软件工程)