分享到社交媒体:

写在前面

软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔曾经神一样的存在,很多人认为制定软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略知道软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔就够了。

真的是这样吗?今天,利用这篇短文跟大家聊聊软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔。

如果你恰好知道软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔,也把它奉为软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略的指导方针,那么这篇文章正好适合你。

如果你还不了解软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔,但是很关注质量和软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,那么不管你是什么角色,这篇文章也适合你。


Most people know about the the Test Pyramid due to Mike Cohn, when he described it in his 2009 book Succeeding with Agile. In the book he refers to it as the “Test Automation Pyramid”, but in use it\'s generally referred to as just the “test pyramid”. He originally drew it in conversation with Lisa Crispin in 2003-4 and described it at a scrum gathering in 2004. Jason Huggins independently came up with the same idea around 2006.

软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔最早由Mike Cohn提出,Martin Fowler在文章TestPyramid中有详细介绍。如果你对软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔不了解,可以先看Martin的文章。 总结说来,软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔是自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台分层覆盖情况的一个参考模型,其特点是:

  • 金字塔底层的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台是最接近代码的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台——单元软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,编写成本低、执行速度快、定位问题也更准确,但是离业务层较远,不能很好的体现业务价值;
  • 金字塔顶层的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台是UI层的自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,这一层离业务近,能够体现业务流程覆盖情况,但是编写成本较高、执行速度较慢、不够稳定、定位问题也更难;
  • 而中间层的集成软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,则是成本和价值都是处于居中位置。

因此,金字塔建议底层单元软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台占比应该最多,而顶层UI层软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台占比较少,中间层的集成软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台居中,整体呈现金字塔结构。 这适合比较理想的项目,而实际项目中可能有很多不适合软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔的情形存在:

1. 微服务架构的系统

微服务系统服务间的依赖关系和连通性,是微服务软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的关键,相对而言,服务内部出错可能性小。因此,对于微服务架构下的自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台应该是蜂巢结构或纺锤形,也就是中间层服务间的集成软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台最多,底层的单元软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台和上层的UI软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台都相对较少。

2. 遗留系统改造

为了支撑新型业务形态,越来越多的传统行业在向数字化转型,面临的一个问题是需要对大型业务复杂的遗留系统进行改造。这种情况,一般不适宜写大量的单元软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,技术和人员能力可能都不允许,而应该从顶层业务开始梳理,先增加业务层的功能软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台作为基本保障,同时编写API集成软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台和适量的单元软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台。整个自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台覆盖情况,有可能是呈现为甜筒冰淇淋结构形式。

3. 人员技能不匹配的团队

有的团队可能开发人员忙着开发不参与写软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,只有软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台人员来负责写软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,而软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台人员的要写单元软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台还得熟悉底层代码实现,可能比较困难,通常也只能是写更多的UI软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台。 当然,这不是一个健康的状态,虽然客观存在,但是不提倡。

4. 软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略不能仅依靠软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔

把软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔当做软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略制定的唯一参考规范,是不合适的。别说是只关注软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔,就是只关注软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔背后的分层策略,也是远远不够的。 软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台分层理论更多的是对自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台分层的指导,而软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略需要考虑和关注的因素则比这个要多得多,比如:业务风险、质量目标、交付周期……很多很多,需要根据具体项目来确定。 如果只是关注自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台要测哪些,没有关注业务风险,有可能把精力都放在了对错误功能的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台上,事倍功半,得不偿失。

最后,软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔不是万能的,不要只强调软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台金字塔。

软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台分层是软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略的指导框架之一,另一个是软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台四象限。更多的关于软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略的内容,欢迎参考以下文章:


本文首发于「IT技术分享社区_编程代码交流平台」,转载请参考版权声明

4 个评论

  1. 通告:Agile testing quadrants - 关于敏捷软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台象限的“秘密” - IT技术分享社区_编程代码交流平台

  2. 通告:构建软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的体系化思维(进阶篇) - IT技术分享社区_编程代码交流平台 - 质量 - 质量内建

  3. 通告:软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台基本职责 构建软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的体系化思维(基础篇) - IT技术分享社区_编程代码交流平台

  4. 通告:软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台基本职责 构建软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的体系化思维(基础篇) - 林子的空间

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注