@zongwu
2016-10-31T06:43:37.000000Z
字数 6277
阅读 414
团队协作
本文适用范围:已参加项目开发的人
写这篇文章的目的是为方便地对代码进行管理,让整个团队的代码规范化。这里的部分规定可能和你在其他地方看到的不一样,但还是请遵守这些规则。
编码规范是泯灭程序猿个性的一项制度,但对于整个团队而言,却是一件利器。
样式文件,请到/BitTorrent Sync/技术部/代码规范/android.xml自行查找。
java/package-name/
../app 实现业务逻辑
../libs 对接第三方服务(内部、外部均可)
../tools 开发使用的小工具(如自动换算dimens)
命名法则:言简意赅、无二义性。
命名规则:{权限控制符}+{所属功能块}+{功能具体描述}+{类型}
// 举例如下:
protected Button mLoginCommitButton;
private Button iRegisterVerifyButton;
public User user;
public static Wallet sWallet;
public static final String BUNDLE_KEY_LOGIN_ID = "key_login_id";
private 变量命名为:mLoginButton,添加m前缀。
protected/package 变量命名为:mLoginButton,添加m前缀。
public 变量命名为:loginButton,无前缀。
方法内的局部变量以
_
作为前缀,如:“_user”。
static 变量命名为:sInstance,,添加s前缀。(忽略private/protected/public规则影响)
static final 变量命名为:{类型}+{功能描述}+{业务描述},如:BUNDLE_KEY_LOGIN_ID;(忽略private/protected/public规则影响)
节点 | 命名 |
---|---|
SharedPreferences | PREF_ |
Bundle | BUNDLE_ |
Fragment Arguments | ARGUMENT_ |
Intent Extra | EXTRA_ |
Intent Action | ACTION_ |
... | ... |
按照业务逻辑划分的功能块;
在Java中定义控件均为全拼,结合访问权限为protected,则命名为mButton;
在XML中定义的控件命名为: {控件类型}+{所属功能块}+{功能具体描述};
举例:textview_toolbar_title 。
控件 | 缩写 | 控件 | 缩写 |
---|---|---|---|
TextView | textview | EditText | edittext/建议全拼/ |
Button | button | ImageButton | ibutton/若特长可省略第一个单词可简写/ |
ImageView | imageview | ListView | listview |
RadioGroup | radio | RadioButton | rbutton |
ProgressBar | progressbar | SeekBar | seekbar |
CheckBox | checkbox | Spinner | spinner |
省略 | 省略 | 省略 | 省略 |
<dimen name="_font_title_large">@dimen/text_size_24</dimen>
<dimen name="_font_title">@dimen/text_size_20</dimen>
<dimen name="_font_midtitle">@dimen/text_size_18</dimen>
<dimen name="_font_subtitle">@dimen/text_size_17</dimen>
<dimen name="_font_head">@dimen/text_size_15</dimen>
<dimen name="_font_text">@dimen/text_size_14</dimen>
<dimen name="_font_annotation">@dimen/text_size_12</dimen>
<dimen name="text_size_8">8sp</dimen>
<dimen name="text_size_10">10sp</dimen>
<dimen name="text_size_11">11sp</dimen>
<dimen name="text_size_12">12sp</dimen>
<dimen name="text_size_13">13sp</dimen>
<dimen name="text_size_14">14sp</dimen>
<dimen name="text_size_15">15sp</dimen>
<dimen name="text_size_16">16sp</dimen>
<dimen name="text_size_17">17sp</dimen>
<dimen name="text_size_18">18sp</dimen>
<dimen name="text_size_20">20sp</dimen>
<dimen name="text_size_22">22sp</dimen>
<dimen name="text_size_24">24sp</dimen>
用于定义与单位(sp/px/dp等)无关的数值类型。
<item name="card_scale_rate" format="float" type="dimen">0.7</item>
<item name="card_scale_rate_origin" format="float" type="dimen">1.0</item>
<!-- FONT -->
<style name="Font"/>
<style name="Font.Accent" parent="Font"/>
<style name="Font.Accent.High">
<item name="android:textColor">@color/text_accent_high</item>
</style>
<!-- 文章标题 字体更大 -->
<style name="Font.Accent.High.TitleLarge.Bold" parent="@style/Font.Accent.High">
<item name="android:textSize">@dimen/_font_title_large</item>
<item name="android:textStyle">bold</item>
</style>
<!-- 文章标题 -->
<style name="Font.Accent.High.Title.Bold" parent="@style/Font.Accent.High">
<item name="android:textSize">@dimen/_font_title</item>
<item name="android:textStyle">bold</item>
</style>
<!-- 一级标题 -->
<style name="Font.Accent.High.Subtitle.Bold" parent="@style/Font.Accent.High">
<item name="android:textSize">@dimen/_font_subtitle</item>
<item name="android:textStyle">bold</item>
</style>
<!-- 正文 -->
<style name="Font.Accent.High.Subtitle.Normal" parent="@style/Font.Accent.High">
<item name="android:textSize">@dimen/_font_subtitle</item>
<item name="android:textStyle">normal</item>
</style>
<!-- 二级标题 -->
<style name="Font.Accent.High.Head.Normal" parent="@style/Font.Accent.High">
<item name="android:textSize">@dimen/_font_head</item>
<item name="android:textStyle">normal</item>
</style>
<!-- 三级标题 -->
<style name="Font.Accent.High.Text.Normal" parent="@style/Font.Accent.High">
<item name="android:textSize">@dimen/_font_text</item>
<item name="android:textStyle">normal</item>
</style>
<!-- 注释 强调(会员首页检测指标) -->
<style name="Font.Accent.High.Annotation.Normal" parent="@style/Font.Accent.High">
<item name="android:textSize">@dimen/_font_annotation</item>
<item name="android:textStyle">normal</item>
</style>
<!-- 重要性中等的文本颜色,如简介、地址和联系方式等 -->
<style name="Font.Accent.Mid" parent="Font.Accent">
<item name="android:textColor">@color/text_accent_mid</item>
</style>
<!-- 灰度色阶模板-->
<color name="_grey_0">#FFFFFF</color>
<color name="_grey_50">#FAFAFA</color>
<color name="_grey_100">#F5F5F5</color>
<color name="_grey_200">#EEEEEE</color>
<color name="_grey_300">#E0E0E0</color>
<color name="_grey_400">#BDBDBD</color>
<color name="_grey_500">#9E9E9E</color>
<color name="_grey_600">#757575</color>
<color name="_grey_700">#616161</color>
<color name="_grey_800">#424242</color>
<color name="_grey_900">#212121</color>
<color name="_grey_1000">#000000</color>
<!--文本-->
<color name="text_white">@color/_white</color>
<color name="text_hint">@color/_grey_300</color>
<color name="text_band">@color/_band</color>
<color name="text_accent_high">@color/_accent_high</color>
<color name="text_accent_mid">@color/_accent_mid</color>
<color name="text_accent_low">@color/_accent_low</color>
<color name="text_accent_warn">@color/_accent_warn</color>