多人协作项目如何保持代码风格统一

Posted huahuayu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多人协作项目如何保持代码风格统一相关的知识,希望对你有一定的参考价值。

原文链接:https://liushiming.cn/2020/02/20/keep-same-code-style/

概述

多人在同一个项目协作的时候保持统一的编码风格很重要。但说起来容易做起来难,每个人都有自己的编码习惯,不去对比自己都难以意识到。本文我推荐一些做法、工具可以帮助我们尽量保持同样的风格。

选择go语言

如果可以,选择go语言作为编程语言。

go语言自带代码格式化命令gofmt,要求所有代码都有一致的代码风格,甚至不允许未使用的import和未使用的变量定义在程序里,否则编译不通过。

go的关键字仅25个,是我见过最少的。相比而言,c语言有32个,c++ 49个,python 33个,javascript 63个,java 53个。关键字精简大家写出来的代码就更趋向于一致。

sonarqube是专门做代码静态分析的工具,它内置了一套自己的规则来检查代码是否符合规范。就内置的编码规范来看,go只有46个,Java可能出现的问题或者code smell最多,达到533个,一个团队要投入多少精力(学习成本、review成本、修改成本)去避免这种编码规范的问题?长期下来是一个无法忽视的投入。

语言 sonarqube编码规范
Java 533
Python 440
C# 373
JavaScript 219
php 185
VB.NET 144
TypeScript 129
Flex 79
html 62
Kotlin 49
Ruby 48
Scala 47
Go 46
CSS 30
XML 16
JSP 6

使用lint插件

lint是一类工具的统称,即在ide编码时实时帮你检查编码规范的软件。我推荐的有SonarlintAlibaba java coding guidelines(java only)这两款插件。在intellij系列的ide上用起来都不错。lint软件比ide自带的代码风格检查更严格,而且会给问题分严重等级。

lint插件会highlight问题代码,鼠标悬浮可以查看问题概述。
技术图片

show inspection description可以查看详情
技术图片

自动格式化

在intellij下手动格式化的操作是 Code -> Reformat Code
技术图片

在一个项目中,如果有的人格式化代码,有的人不格式化的后果就是git提交后,平白无故会多出很多difference,其实都是格式上的微调,但是会给代码review带来不必要的负担
技术图片

所以最好大家代码都是格式化的。可以在commit的时候勾选先格式化再提交
技术图片

也可以设置在保存文件时自动触发格式化操作
intellij preferences -> save actions -> 开启保存触发动作 -> 选择格式化动作
技术图片

遵守业界规范

坚持高的标准,统一使用业界标杆企业的编码规范,如
Google Style Guides
Alibaba java开发手册

以上是关于多人协作项目如何保持代码风格统一的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程之代码规范

Shell编程之代码规范

thinkphp

前端开发规范及开发文档

ThinkPHP框架知识

ThinkPHP框架知识