架构&分包 -- 原则
- 包名应让人一目知意:英文命名描述其功能。
- 分包层次应尽可能的低,减短包名长度。
- Model层(业务数据管理层,APP核心),View层(视图层)应该尽量分开,Model层单独管理数据, 不应与其他的模块耦合。
- 按照功能模块进行分包。如:MVP架构模式下,可以按照Model,View,Presenter 分成三个大的模块包,在三个大的模块下在细分功能包。APP的一些基类或者说通用的技术打包成一个Moudule,作为技术沉淀,方便大家学习和其他APP使用。如:JCourse中的common,同时建议在制作的通用技术module包足够成熟时,打包成aar,并上传到meven,通过gradle远程依赖。
命名规则
禁止拼音命名,必须是英文有意义的单词,简单知意。
java文件
- java类名,接口名:驼峰法命名,单词首字母全部大写
- 成员变量名:m开头 + 驼峰法命名
- 常量:全部字母大写,单词之间用下划线(_)连接
- activity和fragment:模块包名 + activity/fragment + 功能名
xml文件
- 布局文件:模块包名 _ activity/fragment _ 功能名
- 布局文件中变量:字母全部小写,单词之间用下划线(_)连接,取名以功能和view相结合的方式
- 布局文件中控件的大小需要写在资源文件里(dimens.xml),做好兼容性。
- menu:模块包名 _ activity/fragment _ 功能名(和布局对应)
- style:驼峰法命名,单词首字母全部大写
- color:分为两部分(1):先以颜色色彩命名,驼峰法,首字母小写。
(2)根据具体功能重新生成一个<color/>
标签,根据对应的功能命名,并以color开头,驼峰法。
drawable
类型_功能
- icon:ic _ 功能名
- menu中使用的icon:ic_menu_功能名
- 背景:bg_功能名
编码
- 在自己负责的功能模块下开发,如有新功能模块,建立新的分包。
- 在自己写的每个文件写好注释和作者。
文案
- 写完代码后在README.md文件中写好文件名及对应的解释,作者。
如:MainActivity -> 主页面 linlongxin,方便后期查找,有问题更容易找到作者。
其他
开发中大部分情况下是多人团队合作,每个成员的编码风格经过上面规则可以得到统一,但是对于逻辑的处理,架构的选择(如:mvp,mvc)也应该统一,在每次提交代码后,应该由技术团队技术当担来审核代码的规范性。