目录
如何创建一个高质量高逼格的Gitlab工程项目
目录
高质量
首先我们来定义一下什么是高质量,不同于美的定义(一千个读者可能有一千个哈姆雷特),对于高质量,我们可以达成一个共识。
- 有效的单元测试
- 相信对于单元测试的作用,大家都不会陌生,对于能提高效率的事情,何乐而不为呢?
- 对于Java项目来说,junit是公认的测试框架,熟练使用就可以了,另外,你一定会用到mockito这个工具,具体见文末的参考链接
- 有可观的测试覆盖率
- 光光有单元测试是不够的,只有达到一定阈值的覆盖率才是合格的,不必追求百分百的覆盖率,按照2/8原则,80%是一个可以追求的阈值
- 这里推荐下jacoco这个测试覆盖率工具,和Intellij IDEA也有很好的集成
- 集成sonar
- 通过sonar扫描代码库,来帮助我们找出容易忽略的问题,对于你认为sonar检出的不是一个问题,大可以忽略,不用太纠结
- CI/CD
- 开发完成之后,还需要手动跑测试用例,手动发布到开发环境?
- 正确的姿势见下图
高逼格
然后我们来定义一下什么是高逼格
一定要有图
正所谓一图胜千言,相对于文字,图片能传递更多的信息,也更容易让看官理解。 对于我们的项目来说,需要什么样的图呢?
流程图
比如
类图
比如
上下游依赖图
比如
画图的工具,每个人都有各自的喜好,在这里,推荐使用plantuml,原因是它可以使用文本的形式来描述,好处是通过源码版本工具比如git等,可以追溯每次的变更,进而了解设计的变化
徽章
在"面基网站"Github上我们经常能看到一些很酷的徽章,比如
在Gitlab里能不能也做到呢?答案是可以的 比如我们要显示测试覆盖率,代码质量等,就可以这样做
只要在markdown里插入以下文字就可了,是不是很酷?
[![Coverage](http://{sonar_host}/api/project_badges/measure?project={projectId}&metric=coverage)](http://{sonar_host}/component_measures?id={projectId}&metric=Coverage) [![code quality](http://{sonar_host}/api/project_badges/measure?project={projectId}&metric=alert_status)](http://{sonar_host}/dashboard?id={projectId}) [![Reliability Rating](http://{sonar_host}/api/project_badges/measure?project={projectId}&metric=reliability_rating)](http://{sonar_host}/dashboard?id={projectId})
注意替换里面的变量
对自己好一点
最后我们要做到对开发者友好,记住这个开发者可能也是你哦。
首先我们得有README,读read me
,一个看官打开你的项目,首先看到的就是项目的README,在这个文件里,你可以用markdown语言来描述。
在README里,可以包含以下内容
- 标题,简要描述这个项目是干嘛的
- 副标题,可以加点详细的描述
- 如果README里的内容很多的话,加个目录
- 描述你的设计方案,记得多用图的形式
- 描述你的项目包含哪些功能
- 最后给那些跃跃一试的同学一次快速上手的机会,比如提供一个可以直接运行的docker包,或者提供docker-compose.yml文件
- 描述下如何对这个项目做贡献(PR)
具体范例可以参考influxdb等