资讯专栏INFORMATION COLUMN

【效率专精系列】我有一个梦想:提高开发效率,晚上回家吃鸡

zhaot / 2060人阅读

摘要:效率专精系列善用统一描述语言提升开发效率分钟搞定环境配置与使用考虑到篇幅较长的文档反复修改的情况,要快速找到修改点比较困难。

之前零零散散写了几篇文章,主要是实际开发过程中一些效率痛点和相应的改善方法。今天抽空温故知新,把之前的内容串起来,做了个小总结,即《效率专精系列》小系列的总集篇。

回顾项目开发流程

开发一个新项目时,开发流程大概分成以下几步:

设计方案,并落地成设计文档

设计方案评审

任务分拆

和上下游规定接口(服务、前后端等)

代码开发

开发自测

上下游联调(服务、前后端等)

提交QA测试

效率可改进的点 S1. 设计方案,并落地成设计文档

公司内部使用Wiki(XConfluence)管理所有文档,由于互联网产品的大部分开发模式都偏向于面向数据库编程,设计文档里ER图是展现设计的重要工具。但是绘制ER图是个挺费劲的活,不是说自带的draw.io组件不好用,而是说ER图和代码(Sql语句或Java代码)不能互相转化,两者的内容格式高度重合,却只能人工转化。

目前我的方式是先在Intellij Idea中写好持久化对象(PO),用POJO to Text插件把POJO转化为文本并复制到系统剪切板中,然后复制到ER图里,节省了重复录入类名和字段名的时间。

举个栗子,PO类的自定义文本形式为“PO
id
updateTime”。
    Class PO {
        private int id;
        private Date updateTime;
        //getter/setter
    }
S4. 和上下游规定接口(服务、前后端等)/ S6. 开发自测

上下游服务之间有很完善的并行开发方案,即基于接口的开发,通过带有版本号的jar包来解耦双方具体实现的开发。但如果是前后端之间规定接口,一般需要先写接口文档,再写代码,与上面类似,其中很多内容需要人工重复录入,比如说URI、Param、Header、Body体等。

利用API统一描述语言OpenAPI和相应的工具Swagger2可在文档和代码之间搭起一座桥梁。另外该工具也可节约自测中的部分录入工作,如录入URL和Param。

【效率专精系列】善用API统一描述语言提升RestAPI开发效率
5分钟搞定Swagger2环境配置与使用

考虑到篇幅较长的文档反复修改的情况,要快速找到API修改点比较困难。

目前我的方式是利用版本管理和文本比较功能:比方说把API文档和代码一起放在git仓库,或者使用其他带版本管理的文档库;使用git仓库自带的文本比较功能,或者在线的代码比较网站。

文本比较网站 去除前导空格 分享给他人 其他
www.diffnow.com 可以 可以 界面风格原始
www.diffchecker.com 不可以 可以
www.newjson.com/Static/Tools/Diff.html 可以 不可以
S5. 代码开发

互联网公司常见的ORM组件不再是重型的Hibernate,而是轻量级的Mybatis(其实都不算ORM了,最多是Sql模板)。Mybatis中我认为最繁琐的工作就是写业务Sql了,基本上是getXXXByYYYZZZ这种形式,要么再加上分页,类型特征十分明显。

目前我的方式是利用Intellij IdeaMybatis插件,把Mybatis Mapper类中的Java接口转化成对应的Sql语句。在不考虑优化的情况下,这种类型的Sql如果能自动生成就能节约不少人力,毕竟Sql语句比Java接口声明长多了。

【效率专精系列】善用插件提升MyBatis开发效率
S7. 上下游联调(服务、前后端等)

通常上下游都把自己的分支部署到beta环境来进行联调,存在分支冲突的风险;而且如果代码质量不高的话联调过程中需要反复更新代码,由于beta环境不支持热部署,更新代码的时间成本很高。

目前我的方式是不管是Rpc服务还是URL,把联调放在双方的本地机器上进行,这样热更新、热部署都没问题了。

【效率专精系列】Beta环境不需要,本地联调拯救开发效率
【效率专精系列】几种常见的JVM热部署技术及实现难点浅谈
小诗云

身在互联网,加班易,不加班难,且行且珍惜。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70511.html

相关文章

  • 效率专精系列】Beta环境不需要,本地联调拯救开发效率

    摘要:目前团队中前后端联调是较之个人单独开发相对耗时的一个环节,主要体现在环境下的部署时间较长。本文的目的是通过将联调本地化,减少部分枯燥劳动以及无效的等待时间,提高团队的开发效率。不需要更改的为外部,保持即可。 目前团队中前后端联调是较之个人单独开发相对耗时的一个环节,主要体现在: beta环境下的部署时间较长。首先部署beta需要经过push分支、合并冲突、build、部署四个步骤。...

    cc17 评论0 收藏0
  • 效率专精系列】Beta环境不需要,本地联调拯救开发效率

    摘要:目前团队中前后端联调是较之个人单独开发相对耗时的一个环节,主要体现在环境下的部署时间较长。本文的目的是通过将联调本地化,减少部分枯燥劳动以及无效的等待时间,提高团队的开发效率。不需要更改的为外部,保持即可。 目前团队中前后端联调是较之个人单独开发相对耗时的一个环节,主要体现在: beta环境下的部署时间较长。首先部署beta需要经过push分支、合并冲突、build、部署四个步骤。...

    yangrd 评论0 收藏0
  • 效率专精系列】善用API统一描述语言提升RestAPI开发效率

    摘要:其标准为前身是,提供强大的在线编辑功能,包括语法高亮错误提示自动完成实时预览,并且支持用户以格式撰写导入导出转换文档。 团队内部RestAPI开发采用设计驱动开发的模式,即使用API设计文档解耦前端和后端的开发过程,双方只在联调与测试时耦合。在实际开发和与前端合作的过程中,受限于众多因素的影响,开发效率还有进一步提高的空间。本文的目的是优化工具链支持,减少一部分重复和枯燥的劳动。 现状...

    tianyu 评论0 收藏0
  • 效率专精系列】善用插件提升MyBatis开发效率

    摘要:通过插件更优雅地生成和的样板代码通过插件不污染地实现优雅分页。使用步骤引入依赖,在或的配置中进行配置。提供语法提示自动补全错误提示导航功能。该插件提供了类似的功能,根据接口的方法名推断含义,然后在中直接生成对应的。 团队使用Mybatis作为数据库访问框架。不同于Hibernate这种采用经典面向对象思想设计的ORM框架,Mybatis是面向过程的,它只做了过程到SQL语句的映射。两者...

    Kylin_Mountain 评论0 收藏0
  • 别让任何人打乱你的节奏

    摘要:人生中的每一件事都取决于我们自己的时间,你身边有些朋友也许遥遥领先于你,有些朋友也许落后于你,但凡事都有它自己的节奏因此,无论当下如何,保持一颗平静的心,从容对待。愿你始终相信,一切都会准时到来的。不言而喻的是信心对完成任务的作用很大。 《别让任何人打乱你的生活节奏》完美人生 就是 18岁成人 22岁大学毕业,25岁工作稳定,30岁之前买房结婚生子,35岁之后人生轨迹就会定型…… 可是...

    fanux 评论0 收藏0

发表评论

0条评论

zhaot

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<