Style guides
原文:https://docs.gitlab.com/ee/development/contributing/style_guides.html
- Editor/IDE styling standardization
- Pre-commit static analysis
- Ruby, Rails, RSpec
- Database migrations
- JavaScript
- SCSS
- Go
- Shell commands (Ruby)
- Shell scripting
- Markdown
- Documentation
- Python
- Misc
Style guides
Editor/IDE styling standardization
在将文件保存到本地之前,我们使用EditorConfig自动应用某些样式标准. 默认情况下,大多数编辑器/ IDE 都会自动接受.editorconfig
设置. 如果您的编辑器/ IDE 不自动支持.editorconfig
,建议您进行调查以查看是否存在插件. 例如,这里是vim的插件 .
Pre-commit static analysis
强烈建议您安装Overcommit ,以便在本地提交之前自动检查静态分析违规.
在您的 GitLab 源目录中运行:
make -C tooling/overcommit
Then before a commit is created, Overcommit will automatically check for RuboCop (and other checks) offenses on every modified file.
这样可以节省您的时间,因为您不必等待配置项检测到相同的错误.
过量提交依赖于预提交钩子,以防止违反其规则集的提交. 如果您想覆盖此行为,可以通过传递 ENV 变量OVERCOMMIT_DISABLE
来完成. 即OVERCOMMIT_DISABLE=1 git rebase master
在禁用 Git 钩子的同时进行 rebase.
Ruby, Rails, RSpec
我们的代码库样式由RuboCop定义和执行.
您可以使用bundle exec rubocop --parallel
在本地检查任何违规行为. 在配置项上,这将由static-analysis
作业自动检查.
对于尚未决定的 RuboCop 规则,我们遵循Ruby Style Guide , Rails Style Guide和RSpec Style Guide作为编写惯用 Ruby / Rails / RSpec 的通用准则,但是审阅者/维护者应该宽容而不是太宽容关于风格的书呆子.
同样,当前已禁用某些 RuboCop 规则,对于这些规则,审阅者/维护者不得要求作者使用一种或另一种样式,因为这两种样式均被接受. 这不是理想的情况,因为这为骑车留下了空间,并且理想情况下,我们应该启用所有 RuboCop 规则,以避免在评论中进行与样式相关的讨论/挑剔/来回.
此外,我们还有专门的换行样式指南 ,以及专门针对测试的样式指南和最佳实践 .
Creating new RuboCop cops
通常,最好通过编程方式执行起毛规则,因为它可以减少前述的自行车脱落 .
为此,我们鼓励在代码库中创建新的 RuboCop 规则.
当创建可以应用于多个应用程序的新警察时,我们建议您将其添加到我们的GitLab Styles宝石中.
Database migrations
请参阅专用的《 数据库迁移样式指南》 .
JavaScript
请参阅专用的JS 样式指南 .
SCSS
请参阅专用的SCSS 样式指南 .
Go
请参阅专用的Go 标准和样式指南 .
Shell commands (Ruby)
请参阅GitLab 代码库中有关 shell 命令的专用准则 .
Shell scripting
请参阅专用的Shell 脚本标准和样式指南 .
Markdown
我们正在遵循Ciro Santilli 的 Markdown 样式指南 .
Documentation
请参阅专用的文档样式指南 .
Python
请参阅专用的Python 开发指南 .
Misc
代码应使用美国英语书写.