概述

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

选择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编码时实时帮你检查编码规范的软件。我推荐Sonarlint和Alibaba 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 -> 开启保存触发动作 -> 选择格式化动作

遵守业界规范

java 协同编辑的多指针_多人协作项目如何保持代码风格统一相关推荐

  1. 苹果手机怎么编辑word文档_多人协同编辑一份Word文档用修订功能就对了

    在职场中我们难免会遇到需要与同事协同编辑一份文档的情况 那么如何清晰不混乱地协同编辑呢? 如下图所示,相信不少人在协同编辑文档时都是这样做的,用各种颜色字和括号,写明自己想编辑的内容及要修改的点.一旦 ...

  2. java不可编辑的文本框_如何使编辑文本不可编辑,但在JAVA中可点击

    对于我来说,没有任何一个答案能够产生完整的解决scheme. 指导(noob友好) ,请注意在代码中的几个意见. 为名为EditTextDispatched.java的自定义EditText创buil ...

  3. java支持wmv的播放器_支持各种格式的视频播放器代码

    Java代码   /** *视频播放 *参数说明 u - 媒体URL w - 媒体宽度width h - 媒体高度height */ //播放Mediaplayer格式的视频,包括.avi .mpg  ...

  4. java会员卡的绑定和解绑_前后端分离项目 — SpringSocial 绑定与解绑社交账号如微信、QQ...

    1.准备工作 申请QQ.微信相关AppId和AppSecret,这些大家自己到QQ互联和微信开发平台 去申请吧 还有java后台要引入相关的jar包,如下: org.springframework.s ...

  5. svn如何隐藏代码路径_程序员课堂—如何通过改善代码风格来消灭隐藏bug

    写在前面:一名有三年Android开发经验的女程序员(欢迎大家关注我 ~期待和大家一起交流和学习Android的相关知识) 正如食物腐烂之前,可能会发出异味.当代码存在隐藏问题时,代码也会表现出一些异 ...

  6. 开发java程序的步骤_开发 Java 程序的一般步骤是:源程序编辑、 和 。_学小易找答案...

    [多选题]财务报表分析具有广泛的用途,一般包括( ). [单选题]在财务报表分析中,投资人是指( ). [单选题]阅读下列代码,选出该代码段正确的文件名( ). class A{ void metho ...

  7. 钉钉如何群里定时发送文件_使用钉钉APP实现多人在线协同编辑文档

    钉钉是阿里系综合智能移动办公平台软件,利用钉钉平台,可以完成基本的线上办公功能. 使用钉钉进行对文档的多人在线协同编辑是一种非常便捷的办公应用. 钉钉支持电脑端.手机端等多平台操作. 下面以手机端钉钉 ...

  8. 多人在线编辑文档 开发_腾讯文档,支持多人实时在线协同编辑

    多年前,在港资公司工作需要多人协同编辑文档,用的是VPN+Google Docs,很早就体验过多人在线协同办公的便利,那时候,APP.微信,甚至智能手机,都没普及. 现在,就算没有VPN,用不了Goo ...

  9. python共享文件协同编辑_那些可多人协作编辑的在线文档工具

    最近使用了下石墨文档,简直就是在线版的Word,Excel,PPT,而且可以多人实时编辑预览,真的太好用了,搜索了下发现这种在线文档工具还挺多的,这里做个整理推荐. 石墨文档 这个很多人应该都用过,石 ...

  10. 因为某种原因阻止文本引擎初始化_文本文档的协同编辑实现

    背景 atom 编辑器新增一个 teletype 的功能,可以实现多人在线编辑代码.效果看起来挺炫酷,想了解一下是怎么实现的,于是研究了一下. 抽象一下文本文档的协同编辑这个问题,就是同步多个设备之间 ...

最新文章

  1. Oracle_052_lesson_p10
  2. java中的foreach_java中的foreach语句
  3. android ui自动化测试工具,介绍Robotium+Orange实现androidUI自动化测试
  4. [Leedcode][JAVA][第355题][设计推特][面向对象][哈希表][链表][优先队列]
  5. mysql 表示时间_MySQL-时间(time、date、datetime、timestamp和year)
  6. 一键设置mac显示选项_如何通过关闭浏览器中的一个选项卡将Mac上的电池寿命延长一倍...
  7. 《网络基础》- 第3集-IP地址、子网掩码和路由器的作用
  8. asp.net ajax客户端框架如何调用Page Method
  9. Linux安装MySQL安装包下载
  10. 干货文:企业 IT 基础架构|(精华篇)
  11. LOL英雄联盟首页以及攻略页面制作
  12. 历年至今TVB剧集目录(持续更新...我已看过的推荐)
  13. jadx重新打包_反编译一款APP然后重新打包(Windows环境)
  14. 对二叉树堆排序的升级TOPK问题(跑路人笔记)
  15. Micropython——HC-SR04超声波测距模块
  16. c语言调用oracle存储过程,Oracle存储过程
  17. 网络安全工程师从0单排日记-0
  18. flex、grid布局实践——神仙网址分享
  19. TDDFT计算软件Octopus学习笔记(三):能带结构(ZnO)
  20. 揭秘宜信财富年度账单的技术实现

热门文章

  1. 【编程题目】求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句...
  2. Jenkis maven构建项目实践
  3. 防火防盗竟防不了网络攻击 智能摄像机的网络安全怎么办?
  4. java线程--倒计时器CountDownLatch
  5. 【我评】——关于《中國化風格的淺析》
  6. 面向对象思想,简单实例
  7. brave+kafka+zipkin+cassandra搭建分布式链路跟踪系统
  8. 使用cookie,点击关闭一天后显示的弹窗
  9. 有人很好奇我博客文章的默认展图是怎么弄的?
  10. 使用AsyncDisplayKit提升UICollectionView和UITableView的滚动性能