2021年华为C++后端实习名词积累

1 Perl语言

本次实习主要成果:基于SR的全量/增量覆盖率统计。

部门之前的该部分脚本是使用Perl语言编写的,晦涩难懂,没有维护人员。

菜鸟教程——Perl语言教程

2 UT & IT & ST

2.1 UT(Unit Test):单元测试

图片名称 图片名称

2.2 IT(Integration Test):集成测试

2.3 ST(System Test):系统测试

图片名称

3 DT(Develpor Test):开发者测试

图片名称 图片名称 图片名称

参考

4 TDD(Test-Driven Development):测试驱动开发

测试驱动开发,在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。

5 cleancode

详见博客《代码整洁之道 clean code》笔记

软件工程领域的大师级人物罗伯特·马丁(Robert C. Martin)所著的一本重量级经典图书《Clean Code》,中文译为代码整洁之道,书中提出代码质量与其整洁度成正比。 比如编程要遵守一些原则;命名、注释、函数。

参考浅谈Clean Code

6 SR & AR

  • IR(Initial Requirement):初始需求
  • SR(System Requirement):系统需要
  • AR(Allocation Requirement):配置需求
  • SA(System Analyst):系统分析师,
  • SE(System Engineer):系统工程师
  • MDE(Module Design Engineer):模块设计师,当SE把不同模块之间的接口大致画清晰后,模块内部的设计交给MDE来进行;敏捷之MDE认知
  • User Story:用户故事; 用户故事(一):什么是用户故事?
图片名称

步骤

  1. 需求经理:将用户需求(user story)转换成 客户能够接受的 初始需求 IR(Initial Requirement)

  2. SA:IR 拆分为 SR

  3. SE:SR 继续拆分 AR

  4. MDE:当SE把不同模块之间的接口大致画清晰后,模块内部的设计交给MDE来进行;

参考我从华为身上学到的项目管理经验 – 需求篇

7 敏捷开发

敏捷开发是一种项目管理和软件开发的迭代方法,侧重于协作、客户反馈和快速发布。

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发,适用于竞争激烈,快速变化的市场。敏捷的客户协作观念,快速迭代能帮助团队以最小成本,最快速度满足客户真正的需求。

其特点:“个体与交互”胜过“过程与工具”、“可以工作的软件”胜过“面面俱到的文挡”、“客户协作”胜过“合同谈判”、“响应变化”胜过“遵循计划”。

敏捷开发迭代流程一般遵循以下五个步骤:需求分析(requirements analysis)、产品设计(design)、功能编码(coding)、功能测试(testing)、部署评估(deployment / evaluation)。流程图如下:

图片名称

参考四種軟體開發模式(瀑布、疊代、螺旋、敏捷),對比分析

8 持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

实习部门使用Jenkins自动化部署, Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

9 DevOps

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。