研发过程中,应该使用什么样的工具来提升效率

xiaoxiao2021-02-28  111

软件研发,是一群人的智力活动,复杂度如同是构造通天塔,如果没有统一的沟通方式和语言,互相的理解会出现偏差,进而导致项目问题。 以下,是在个人总结的在开发的过程中,结合实用的工具来提升每个开发活动的方法。如果应用到平常的研发活动中,会很避免很多研发中的基础问题。 总体上研发工具包括以下工具,这里指的主要是处于稳定期的,大家常用的工具。 Eclipse,Intellj,Maven,Git, Confluence 管理项目的文档 Jira 来管理工作进展, Kibana来查询log。http://storysky.blog.51cto.com/628458/1158707 Dubbo admin管理工具 服务端开发的行为准则 功能设计 需求管理, 使用 Confluence来保存文档,拆分系统story。拆分到不同的模块。 功能管理,使用 Jira来管理拆出来的任务,需要开发及时的更新进度。 技术设计,使用confluence保存所有的架构设计,详细设计,数据库设计 架构设计,使用StartUML保存。 详细设计,使用StarUML产出类图,序列图 数据库设计,保存建表的SQL语句。 开发阶段 代码规范,依赖 Sonar来解决Java代码中的静态语法问题,不同语言,不同解决办法。 代码格式,依赖CheckStyle来解决代码格式问题。 代码提交,依赖工具Phabricator来做CodeReviw。和Git结合的工具。Gerrit。 单元测试,针对单个模块的逻辑单元测试。 集成测试*,针对主流程的集成测试,正常的数据输入流程。单独的部署并运行的工程,测试核心功能。类似白盒测试。 ---难度巨大, 需要在项目开始的时候,就构建一个这样的工程。 持续集成,使用Jenkins工具来做持续集成,编译,运行单元测试。 功能联调*,必须人工参与。 测试阶段 测试环境,使用 Jenkins工具部署,提供独立的部署环境。开发提供代码路径。 测试用例*,针对用例有特定的管理系统,可以执行对代码的黑盒测试。最好是可以通过代码、针对接口完成。 代码扫描,使用 Sonar扫描代码,并将问题发邮件给对应的模块owner。 问题管理,使用 Jira来管理测试过程中出现的bug。 发布管理 预发发布,一键发布,为系统准备好隔离的环境,需要准备线上测试的账号。 正式发布,一键发布,管理好线上机器,发布包。 灰度发布,针对新的APP发布,仅开放给部分的特定用户(城市,id)维度, 研发过程中,有些工作是用来提高系统可用性的。 配置管理,解决运行过程中的配置变化问题。配置变动无需重启。 并发测试,针对核心接口的性能压测。满足xxx个并发请求。 结果可视,测试结果的数据可视,上线信心充分。 业务监控,流量监控,错误率监控。实时感知线上问题。可以考虑 PinPoint
转载请注明原文地址: https://www.6miu.com/read-74916.html

最新回复(0)