30个提升团队研发效能的锦囊

↑??万字长文不想看,那就听一听叭↑互联网大公司价值上亿的项目背后,团队成员是怎么高效协作开发的?和我自己开发辣条项目时有什么区别?看完本文,保证让你大开眼界!鱼皮在学校的时候,做过很多项目,但大部分都是练手的Demo。基本都是单兵作战,毫无章法。大二暑假,我第一次进入企业实习,要和同事合作开发一个大项目,对于企业中的条条框框和同事写的烂代码非常不适应,整天大呼同事不讲码德!大三来到字节跳动实习,还是和同事一起开发一个新项目,那会儿仍然不适应团队开发,最烦的事就是每次写完代码,都要让同事检查几遍,确认没问题后还要在他的监护下才能发布上线。后来走出校园,来到腾讯,接触到了更大的团队、更大的项目,但起初我还不能很好的适应团队开发,依旧保持个人开发时的野性,导致效率非常低。经过在鹅厂一年多的摸爬滚打,如今的我,终于能够熟练运用企业的各种资源来提升自己和团队的研发效率了!我总结了30个提升团队研发效能的锦囊,完整覆盖项目的各研发流程,分享给大家~项目研发流程1.技术选型想要提升团队开发效率,在投入项目开发前,必须确认项目的技术选型。比如项目选用哪种编程语言、选用哪个开发框架、选用哪些依赖库、选用哪个测试框架、选用哪种数据库、选用哪些中间件等等。技术选型是一门大学问,通常不是由一位技术大牛或架构师一锤定音的,而是要大家开会讨论,结合具体的业务场景进行分析,并且对技术进行充分的研究,最后共同确认一个较为合适的选型方案。技术选型的考量要素非常多,比如:

团队成员对技术的熟悉程度。团队成员对技术越熟悉,培训成本越小,开发效率越高。在一个都是Java工程师的团队提出使用C++简直不讲码德!

团队对技术的掌控度。团队内至少要有一个人非常了解该技术,懂得最佳实践,能够指导团队正确运用技术,并解决疑难问题。

技术的主流程度和生态。技术越主流,文档、实践和解决方案就越多,而使用冷门技术可能出现无法解决的问题,整段垮掉!

技术和业务的贴合程度。技术是为业务服务的,因此必须结合具体的业务场景去选用技术。比如在只有几个用户使用的小网站中运用微服务框架是一个愚蠢的选择。

2.开发工具工欲善其事,必先利其器。在开发前,选择一款优秀的开发工具,并且学习如何高效地使用它吧!很多开发工具都自带了代码检查、代码格式化等功能,还有很多快捷键,这将大大提升我们的开发效率和开发体验。目前比较主流的开发工具有JetBrains全家桶、Vscode、Sublime等等,不必沉迷于某一款开发工具无法自拔,可以针对项目的类别和体积进行选择。除了本地的开发工具外,还可以使用云端的开发工具,比如CloudStudio,无需下载任何软件,直接在浏览器中进行开发和调试、实时浏览。对于小型项目的开发也许是一个不错的选择。CloudStudio在线开发3.代码规范在开发前,为团队或项目制定一套代码规范太有必要了。好的代码规范能够帮助团队成员阅读理解他人的代码,提升协作开发效率和团队氛围。试想,如果你习惯代码缩进两格,而其他同学都缩进四格,会不会感到很懊恼?4.脚手架在开发一个新项目前,通常由架构师或熟悉技术框架的同学来搭建项目的基本结构、编写Demo,其他同学只需要在此基础上遵循规范进行开发(复制粘贴)就好。如今,项目结构越来越复杂,我们不可能手动创建一个又一个文件。懒人推动世界,很多框架自带了脚手架,能够让我们通过输入一两行命令,快速生成项目的基本结构、默认配置文件、甚至是可直接运行的Demo,避免了不必要的重复工作,大大提升开发效率!比如前端框架Vue的脚手架VueCli和前端框架React的脚手架CreateReactApp。脚手架演示5.低代码构建低代码是指少写代码或不写代码。通过对应用场景的极致抽象和模板化,将写代码的工作交给机器来自动生成。就像现在网上很多App和网站制作平台,只需要在界面上选择元素、点点拖拖,就能够自动创建出应用,根本不需要写任何代码,哪怕是不会编程的人也能轻松使用。低代码构建在企业中非常流行,是提升团队开发效率的神器,几乎每个大公司都有自己的低代码构建平台。业界比较知名的低代码平台有Google的AppMaker和微软的PowerApps等。PowerApps画布的图像6.内部依赖仓库在开发中,我们经常需要下载大量的依赖包,还要将开发好的依赖包进行上传。但是,通常软件依赖源都是国外的服务器,比如Maven和npm源,从国内下载依赖的速度非常慢。虽然下载慢的问题可以通过配置国内镜像源得到一定程度的解决,但是无法直接在公有软件源上传私有包。因此,通常企业都会在内网搭建私有软件源,即内部依赖仓库,便于内部依赖管理,大大提升拉取效率。目前最常用的内部依赖仓库是Nexus。Nexus仓库7.本地开发热更新很多年前,在我还有一双清澈的双眼的时候,我在本地开发网站都是改一行代码,然后切换到浏览器里刷新看效果,然后再改代码,再刷新,如此往复,非常难受。尤其是开发后台应用时,哪怕在代码中改了一个字母,都要去重启项目!现在想想,效率实在是太低了。如今,本地开发热更新是程序员开发提效必备的神器,启动一个开发服务器,让它自动监听代码文件。当代码更新时,运行中的项目也会自动更新,从而省去了无止尽的刷新和重启。在前端,比较知名的热更新工具有基于HMR技术(模块热替换hotmodulereplacement)的WebpackDevServer;在Java后端有热部署插件JRebel。JRebel简化流程8.ServerlessServerless是最近几年逐渐流行的概念,翻译过来就是“无服务器”。以前,我们要搭建网站的后台,首先要买服务器,然后将一个大而全的项目包部署到服务器上,整体对外提供服务,所有的系统资源和进程都需要由我们自己来管理。单体架构随着云计算时代虚拟化、容器、微服务等技术的发展,人们将大项目的通用部分抽象成一个个细小的服务,每个服务只提供一个或几个功能,独立部署在比服务器更轻量且无状态的容器中,共同对外提供服务,组成一个完整的系统。Serverless架构而Serverless不是指完全不需要服务器,而是让开发者感受不到服务器的存在。什么意思呢?其实就是把对服务器的需求外包给厂商,我们只管写代码,让他们负责部署和运维。我们花钱,他们办事!目前国内有很多Serverless服务提供商,如阿里云、腾讯云、LeanCloud等,使用这些Serverless服务后,我们无需再关心服务器的运行,只需要专心写业务逻辑就可以了,能够大大提升开发和维护效率,省时省心。9.代码托管很多年前,我们的代码几乎都存在自己的电脑里,通过U盘或者网络传输代码文件来实现合作开发。而如今,代码托管平台已经成为团队合作开发的灵魂。相信很多小伙伴都接触过GitHub,世界上最大的代码开源托管平台。每个人都可以把自己的代码发布到GitHub上,作为一个代码仓库,随时随地远程管理。还可以搜索和浏览其他人发布的代码仓库,以此实现高效地合作开发,促进项目的完善。为了保证代码的安全保密性,一般在公司或团队内部都会自己搭建一个代码托管平台,比较知名的有GitLab,可以针对不同的项目为成员分配权限,更好地管理团队的代码。GitLab10.本地代码检查在代码提交之前,首先应该在本地进行代码检查,及时发现一些低级的语法错误,防止被团队的其他同学嘲笑。大多数集成开发工具自带了代码检查功能,边敲代码边检查,非常爽。此外,我们还可以配置GitHooks,在代码提交前自动执行代码检查,npm项目可以通过Husky插件实现,还能配合ESLint实现代码自动修复。ESLint11.代码提交规范团队越大,规范就越重要。只有代码编写规范还不够,还要在团队内制定一套代码提交规范,通常是约定式提交规范,即让成员在提交代码时填写指定格式的CommitMessage,比如下面的格式:

提交类型[可选的作用域]:描述[可选的正文][可选的脚注]指定代码提交规范不仅能够帮助成员快速理解每次提交的改动点,提升代码审查效率;更大的作用是让一些自动化工具理解提交信息以进行一些有意义的工作,比如生成ChangeLog(代码改变日志)。可以参考一些大公司的代码提交规范,并通过



转载请注明地址:http://www.jiankongxingye.com/jkfz/26845049.html
  • 上一篇文章:
  • 下一篇文章: 没有了