稳定性建设杂谈

目录

前言

需求评审

技术评审

开发编码

自测&QA测试

代码合并

上线评估

日常维护

故障响应

权限管理

分支管理

Scrum迭代

总结

前言

        稳定性建设,是个比较宽泛的话题。从广义上来说,可以贯穿到软件开发中的方方面面,因为任何一个小的点没有做好,都可能最终影响线上生产环境的稳定性。而除了软件开发过程(功能迭代和技术改进优化),基础建设对于系统稳定性也至关重要。本系列以Java技术栈和Scrum敏捷开发为背景,以功能迭代为主要线索,以方法论为主,不涉及太多具体的技术选型,谈一下如何保障系统的稳定性。

        从研发视角来看软件开发大致可以分为需求评审、技术评审、开发编码、自测&QA测试(测试阶段)、上线评估、代码合并、发布上线、日常维护和故障响应等九个阶段。后面的行文也会按照这个思维导图来进行展开。

需求评审

        在一般互联网公司中,需求(feature)评审阶段主要是由产品经理牵头,组织相关业务侧的产品、研发等同学一起参加(如果有必要甚至可以拉上测试)。在这个评审过程中,开发的同学需要基于对原有系统的认知,评估需求的合理性和可操作性。如果是开发量大,影响面大的需求,应该有高P或者manager级别的同学在场,帮助把控和判断。

技术评审

        在前面需求评审结束之后,负责开发的同学需要在开发前产出dev design文档。在该文档中,开发同学需要定义开发的边界(todo & not todo)、接口定义、数据库定义、数据流程、风险评估等。文档的产出,一来可以作为评审的材料,评审通过后可以进行实际的开发工作。二来可以作为存档,记录项目的迭代进程,以便之后回顾和追溯。

        这个步骤在管理侧的执行细则可以视具体情况灵活制定,如果改动面、影响面、开发量不大,可以从简执行。这个阈值需要团队协商产生,例如小于3个点的开发量,就不开这个技术评审会了;小的改动可以通过jira任务的形式让团队知晓,文档的记录可以由多个小改动合并而来,等等。

开发编码

        这个部分是纯技术的部分,前面在技术评审时应该确认清楚开发方案和影响面。包括以下方面但不限于:对数据库的影响(是否影响线上已有数据、是否能达到产品需要的效果、是否等留有因应中长期数据增长所需要的扩展性)、对业务上下游的影响(对其他服务的接口产生的qps评估、如果需要能否保证接口幂等和消息幂等、提供出去的接口是否友好、上下游消息消费速度是否会相差过大以致堆积)、对中间件的影响(是否正确使用分布式锁、缓存会不会产生大key、缓存有没有过期淘汰机制)、对前端的影响(给前端的接口返回耗时能否满足产品需求)、对自身服务的代码的影响(有没有按照代码规范做到低耦合高内聚、会不会产生频繁minor gc/full gc)。另外还要养成写单测的习惯,这个习惯在我见识过的程序员里并不多见,但往往高质量的单测能提前发现很多低级bug。

自测&QA测试

        自测部分,我理解既包括自己代码的测试,也包括可能的与前端、其他后端服务的联调。自己代码的测试部分,如果有条件可以在本地测试,尽可能采取本地测试的方式,不管是mock数据、mock请求的方式或者用现成的测试数据,总之研发侧都需要走一遍核心的业务流程,尽可能测一些edge case。至于联调,就需要各方的代码都具备一定的健壮性,否则由于木桶效应,降低人效。

        QA测试部分,就需要QA部门和研发部门的协调。(注

### 智能车技术最新进展 智能车技术近年来取得了显著进步,尤其是在自动驾驶领域。长城汽车于2021年6月推出的咖啡智能2.0智慧线控底盘整合了多个核心底盘系统,包括线控转向、线控制动、线控换挡、线控油门和线控悬挂,成为国内首个支持L4+级自动驾驶的线控转向底盘系统[^4]。 此外,中航集团旗下的耐世特也在2018年发布了SBW技术,并推出了静默方向盘系统及随需转向系统,这些技术支持L3+级自动驾驶。这表明在高级别自动驾驶方面,国内外厂商都在积极布局并取得了一定的技术突破。 与此同时,新能源汽车市场的快速发展也为智能车技术提供了更多可能性。根据外媒CleanTechnica统计的数据,比亚迪、特斯拉和上汽通用五菱分别以506,868辆、406,869辆和183,054辆的销量位居前列,占据了全球新能源汽车市场约34%的份额[^3]。这种市场需求的增长推动了智能车技术的研发与应用。 值得注意的是,随着深度学习技术的进步及其广泛应用,人工智能伦理和社会影响逐渐引起重视。确保人工智能技术发展既能提升社会福祉又能规避潜在风险已成为重要议题[^2]。这一趋势同样适用于智能车领域,特别是在数据隐私保护、算法公平性和安全性等方面需要持续关注。 ```python class AutonomousDrivingSystem: def __init__(self, level): self.level = level def describe(self): if self.level >= 4: return f"L{self.level} autonomous driving system with full automation capabilities." elif self.level == 3: return f"L{self.level} autonomous driving system requiring driver attention but capable of handling most situations autonomously." else: return f"Lower-level ({self.level}) autonomous assistance features." # Example usage ad_system_l4 = AutonomousDrivingSystem(4) print(ad_system_l4.describe()) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值