1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
=========================
Development Specification
=========================
.. code-block:: c
int bus_count = 1;
Codeing Style
=============
* Public header 用 ``__XXX_H`` 形式
* 提倡在作用域开头统一声明变量,而不是即用即声明,方便释放的时候统一处理
* 缩进:四空格,无 Tab
* 折行:
- 头文件中的函数签名可以不折行,其他地方的代码一律小于 80 char per line
- 参数过长时,从超过长度的第一个参数开始折行,参数无需对齐
- 太长的字符串可以不折行
- ``gtk_widget_class_bind_template_child()`` 由于实在太长,可以不折行
- 花括号不换行(除非在 ``case`` 中),右圆括号和左花括号之间没有空格(待定)
* 命名:
- 鼓励局部变量和函数参数使用缩写,全局变量及函数名,类型名不鼓励缩写
- 宏大写,数据类型,类名用大驼峰法,变量使用全小写 + 下划线
- 文件名全小写,以下划线分隔
* 注释:
- 按英文规范,句首第一个单词首字符大写,多句时使用标点符号,同样每行不得超过
80 字符(汉字以两字符计),链接可以不折行
* Git commit log: 格式为 ``MODULE(TYPE): DESCRIPTION`` ,当前可用的模块(MODULE)
有: ``All Core Sirc Sui Prefs Filter Decorator Lib I18n Data Plugin Build
Script Doc...`` ,可用的提交类型(TYPE) 有: ``feat impl change fix improve
cleanup refactor update release misc...``
* I18N:所有需要在界面上展示的格式化字符串中的控制字符均使用 numbered argument,
即 ``%n$X`` 形式
* Change log: 应分为四类
- Changed: 设计或功能上的改动,可能会带来兼容问题的一定要说明
- Added: 新增的功能或者依赖
- Removed: 移除的功能或者依赖
- Imporved: 性能或功能或易用性上的改善以及 bug 修复
* 发布前须知
- 集成测试 (TODO)
- 更新翻译
- 更新文档
- 更新 change log
- 更新项目中的版本号
- 确认文档中的提供的安装脚本可用
- 对最新的 commit 打 tag
- 通知各个发行版的打包维护者
- Arch Linux: @SilverRainZ
- Gentoo: @xeirrr
- ...
|