公司为什么需要建立一套统一的开发框架?

简介: 公司需要建立一套统一的开发框架解决因发展带来的自我繁衍、技术断崖、难以考核、管控壁垒、资源浪费的问题。

一、起因:野蛮生长

近十年,中国互联网发展的速度越来越快,互联网科技颠覆了越来越多的传统行业,我们的衣食住行随着互联网科技的进步,发生了翻天覆地的变化。在这个大潮中,越来越多新兴的公司如雨后春笋般的冒了出来,他们的业务增长非常快,公司规模也越来越大。这得益于中国经济的高速增长和互联网的快速发展。

弊端一:自我繁衍

在公司快速的发展过程中,往往会出现这样一个链条。新增一块业务 —> 招聘一位高级技术人员 —> 围绕这位同事组建一只技术团队 —> 该业务基本由这只团队负责。然后就形成了一个闭环。当需要跟其他业务进行交互时,经常是技术负责人之间自行决定。(我曾经经历过一个项目,同样一个业务接口,同时提供 RPC,HTTP,MQ 等多种方式,为了给不同的项目提供基础服务)。

弊端二:管控壁垒

随着业务规模的快速发展,这个团队很快的形成了一个部门,团队决策者通常会从自身利益考量,希望尽量减少对外部门的依赖,无论是技术选型,规范建立,组件选取,运行环境都能够自行掌控。(在这里讲一个笑话,在一家公司怎么成为中层领导呢?很简单,招聘足够多的下属就可以了)。

弊端三:断崖效应

当这样的技术氛围一旦形成,单个员工对单个项目的影响就会变的非常巨大。一个产品经常会因为一两个核心员工的离职难以为继,最后不得不重新开发新的产品。

弊端四:资源浪费

当每个团队都在试图构建自己完整的研发流程时。中间的技术研究,产品研发,运维管理就会出现非常多的资源浪费。

弊端五:难以考核

怎么衡量一个川菜厨师和一个鲁菜厨师谁更优秀?当每个团队都采用不同技术栈,不同的技术组件,不同的维护方式和规范时。已经无法从产出效率来判断一个团队的绩效。KPI 指标也就非常难以设立。

二、如何破解?

在公司发展初期,为了快速的进行业务拓展,大都不考虑成本投入,运营维护以及技术沉淀等问题。所有的指标导向都是业务的快速发展,尽可能的抢占市场份额,获取足够多的用户数量。

在公司发展到一定阶段后,市场逐渐趋于稳定,先期快速扩展的各种问题会逐步暴露出来。从技术层面来讲,如果可以形成公司级别的统一开发框架,会在实际的生产过程中带来非常大的收益。

三、统一开发框架的优势

3.1 避免重复性技术研究——节约人力成本

让项目组把精力更多的投入到业务中。相信这是大多数技术公司的共识,如果让项目组把精力投入在业务中?就需要在项目组之下构建一个基础的开发架构平台,把技术的共性问题提炼出来,交给这样一个团队负责处理。避免每个项目都独自去解决遇到的各种各样的技术难题,有效的把精力释放出来。

3.2 标准化技术规范——提升产品项目质量

要千人一面,而不要千人千面。采用统一的开发框架(平台)后,在技术栈,技术组件,技术实现方案,甚至在代码规范上就能形成标准化的技术输出模式,标准化带来的最大效果不仅仅开发效率的快速提升,还有产品质量的大幅提升,这是显而易见的。

3.3 进行技术沉淀——提升公司整体技术能力,避免陷入一个人的能力决定一个项目

技术的进步来源于不断的技术积累和沉淀。每个工程师都是站在别人肩膀上完成工作的。以项目为导向的技术团队,一般都会以实现业务需求为最重要的目标,技术只不过是完成业务的一种工具而已。基于此,业务开发团队就不可能把技术积累作为一项重要的工作。当一位核心员工构建了一些基础的平台工具后,往往随着他的离开把之前的技术积累全部丢弃掉,而更严重的情况会导致整个项目的持续运行都成了问题。

当存在公司级别的统一开发框架(平台),项目团队基于该平台进行自身项目的研发,不再需要关注于底层技术实现,只需要关注业务即可。当存在核心同事离职时,平台的研发同事可以对新进入项目的同事进行相关培训,不会导致青黄不接的事情发生。而且,专注于平台的同事为了更好的满足项目组的技术需求,对平台进行不断的改进,从而达到技术积累和沉淀的目标。

3.4 可衡量的研发投入——对研发团队的有效管理和考核

当基于同一开发框架(平台)的标准化技术规范建立起来后,对业务功能的代码实现就可以进行相对有效的评估和考量,可以避免因为技术实现差异而出现的种种问题。这对 KPI 的制定和考核是一个巨大的帮助。

四、统一开发框架(平台)的定位和目标

统一开发框架(平台)定位于技术层面,其主要目的是为统一公司内相关产品研发和项目实施使用的技术架构和开发工具,有效提高统一技术支持力度,形成持续的技术积累手段,提升技术人员的利用率并降低对人员的依赖性,最终提升软件的规模化、流水线式的生产能力。

五、统一开发框架(平台)的建设思路

5.1 基于 Spring Cloud 技术栈

Spring Cloud 在 2017 年一跃成为最流行的微服务开发框架,不是采用了 Spring Cloud 框架就实现了微服务架构,具备了微服务架构的优势。正确的理解是使用 Spring Cloud 框架开发微服务架构的系统,使系统具备微服务架构的优势。下图为选择 Spring Cloud 作为技术栈的原因。

5.3 部分 SpringCloud 构件的增强

Spring Cloud 提供的基础构建可能无法完全满足业务需求,需要在部分构件之上做二次研发。比如我们在 Zuul 基础之上研发的 API 网关、服务注册发现中心 EurekaPlus 等。

下图为服务注册发现中心 EurekaPlus 的截图,可以手动控制服务注册中心的节点状态,从而支持蓝绿部署。

5.3 新基础组件产品的研发

除了 Spring Cloud 的基础构件外,我们往往需要开发新的基础组件产品来满足项目组的需求。特别是当前微服务架构大行其道,常常需要基于微服务架构的设计思想来开发新的组件产品,比如我们开发的分布式任务调度框架。采用自动抓取,在线编排的模式,完全契合于 Spring Cloud 技术栈。

下图为分布式任务调度框架原理。执行器在启动时将任务接口注册到分布式数据中心,编排中心从分布式数据中心获取执行器信息进行编排,然后把编排信息保存到数据存储中,调度中心从数据存储中获取信息对执行器进行远程调度。

六、统一开发框架(平台)团队的运作方式

如何在公司推进统一开发框架(平台)的建设,并不是一件简单的事情。以我个人的经验,从分工和运作方式上来讲,我主要着重把统一开发框架(平台)的工作分成三个部分。

开发示例、技术支持和技术规范。编写完整的开发示例,对很多新接触统一开发框架的同事来说,有一份完成业务开发是非常重要,不仅仅可以指导你如何进行业务代码的编写,同时还能够指导你如何编写出正确、高效的代码。还需要对很多同事进行技术培训与技术支持支持,都是统一开发框架(平台)团队应该完成的工作。

服务运维。统一开发框架(平台)提供了很多公司内部的服务,比如服务注册发现中心、配置中心、监控中心、链路中心、健康监测中心等。这些都需要统一开发框架(平台)团队进行运维。

新组件、新产品的研发。前一章节提到的 API 网关、分布式任务调度框架、服务注册中心 Plus 等。都是统一开发框架(平台)团队的工作范围。

七、过犹不及

虽然建设公司级的统一开发框架(平台)会在实际的生产过程中带来非常大的收益。但未必适用于所有情况,考虑到某些项目产品的特殊性,并不能一概而论。

作者:梁鑫

来源:宜信技术学院

相关文章
|
11月前
|
SQL 人工智能 自然语言处理
让AI真正懂数据:猫超Matra项目中的AI知识库建设之路
本文介绍猫超基于大模型的AI数据助手Matra实践,构建面向Data Agent的知识库体系,通过知识图谱与ReAct框架实现智能取数,提升数据研发效率与业务分析能力。
1174 27
让AI真正懂数据:猫超Matra项目中的AI知识库建设之路
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
AI编码实践:从Vibe Coding到SDD
本文系统回顾了淘特导购团队在AI编码实践中的演进历程,从初期的代码智能补全到Agent Coding再到引入Rules约束,最终探索SDD(Specification Driven Development,规格驱动开发)——以自然语言规格(spec.md)为唯一真理源,驱动代码、测试、文档自动生成,实现设计先行、可测试性内建与文档永不过期。实践中发现SDD理念先进但落地门槛高、工具链不成熟、历史代码集成难,因此团队当前采用融合策略:以轻量级技术方案模板为输入 + Rules严格约束 + Agent Coding高效实现 + AI自动汇总架构文档,形成兼顾规范性、效率与可维护性的AI辅助编程最佳
|
机器学习/深度学习 人工智能 运维
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
这篇文章系统性地阐述了 AI 原生时代下,面向技术风险领域的智能体系统(DeRisk)的架构设计、核心理念、关键技术演进路径与实践落地案例。
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
|
存储 人工智能 关系型数据库
从“听指令”到“当参谋”,阿里云AnalyticDB GraphRAG如何让AI开窍
阿里云瑶池旗下的云原生数据仓库 AnalyticDB PostgreSQL 版 GraphRAG 技术,创新融合知识图谱动态推理+向量语义检索,通过实体关系映射与多跳路径优化,构建可应对复杂场景的决策引擎。本文将通过家电故障诊断和医疗预问诊两大高价值场景,解析其如何实现从“被动应答”到“主动决策”的跨越。
|
人工智能 运维 Kubernetes
深度 | 从DevOps到BizDevOps, 研发效能提升的系统方法
研发效能提升不知从何下手、一头雾水?阿里资深技术专家一文为你揭秘研发效能提升的系统方法
5413 1
深度 | 从DevOps到BizDevOps, 研发效能提升的系统方法
|
XML 前端开发 Java
SpringBoot整合Flowable【08】- 前后端如何交互
本文详细介绍了如何通过 Flowable 的 BpmnModel API 以编程方式动态构建 BPMN 流程模型,而无需依赖 XML 文件。文章从实际业务场景出发,探讨了前端传递参数实现流程创建的可行性,并通过代码示例展示了整个实现过程。 主要内容包括:定义流程实体与节点结构、创建控制器处理请求、服务层实现流程模型转换及部署、递归构建任务节点和子节点、创建任务监听器和表单属性等关键方法。最后通过 curl 命令测试接口,验证流程部署成功。 虽然此方法灵活强大,但复杂流程的构建需编写大量代码。建议封装常用元素(如开始/结束事件、网关等),提升开发效率和代码可维护性。
1382 0
SpringBoot整合Flowable【08】- 前后端如何交互
|
人工智能 BI API
Dify-Plus:企业级AI管理核弹!开源方案吊打SaaS,额度+密钥+鉴权系统全面集成
Dify-Plus 是基于 Dify 二次开发的企业级增强版项目,新增用户额度、密钥管理、Web 登录鉴权等功能,优化权限管理,适合企业场景使用。
2396 3
Dify-Plus:企业级AI管理核弹!开源方案吊打SaaS,额度+密钥+鉴权系统全面集成
|
开发工具 git
idea结合git回到某个提交点
本文介绍了如何在IntelliJ IDEA中使用Git工具回退到之前的提交点,通过Git管理界面查看提交日志,选择特定提交并进行软重置、混合重置或硬重置以撤销后续的更改。
3093 1
idea结合git回到某个提交点
|
机器学习/深度学习 人工智能 算法
传统笔触与算法洪流:AI时代的艺术创作挑战
本文探讨了传统艺术与AI技术在创作中的共生关系及其对艺术生产力的赋能。研究表明,混合工作流能显著提升效率,而传统媒介带来的“意外美学”与AI生成的跨时空意象拼接相辅相成。AI通过快速生成视觉原型、优化色彩方案和提供即用元素,极大加速创作过程。同时,人机协同可实现风格融合、逆向思维训练及动态知识网络构建,但创作者需建立风格防火墙、验证机制和价值评估体系以守住创作主权。未来艺术教育将涵盖多层能力培养,具备跨维能力的艺术家市场竞争力将大幅提升。最终,真正成功的创作者是能够融合传统与科技、让艺术回归情感表达本质的“双脑创作者”。
813 0