团队作业第二周
团队作业第二周
一、修改《需求规格说明书》
对于上周所写的《需求规格说明书》,我们将其做了很多的修改:
1.第一版《需求规格说明书》有着很多的漏洞,那时的我们对于我们的项目还有点迷糊,因为是首次做这类项目,所以我们的构思,还有对项目所要实现的东西还有点犹豫,所以整体来看,写的很混乱。
2.在《需求规格说明书中》中,我觉得对于用户需求这方面的分析并不好写,因为我们这个项目并不是一个要推广到外界去供大众使用的项目,而是一个我们为了熟悉项目实现而写一个案例。
3.在《需求和规格说明书》中,产品功能介绍我觉得第一次写的太过于敷衍,但是因为我们的成品还没有完成,所以我觉得提前写出来,后期又实现不了就太尴尬了,所以我会在每实现一部分功能后,将其更新一遍。
4.团队分工,第一版《需求规格说明书》我们的团队分工并不明确,所以我在第二版中重新进行了说明。
二、制定团队的编码规范
命名规范要望文知义,简单明了。
命名规范定制太多,就会让人心烦,反而没人遵守了。
---《APP研发录》
先介绍两种命名规则:
- 驼峰命名法:又称小驼峰命名法。除了首个单词首字母小写除外,其余所有单词所有首字母都要大写。
- 帕斯卡命名法:又称大驼峰命名法。所有单词首字母大写。
对于我们团队,我们将严格执行以上两个规则,下面是详细解释:
包的命名规范
包名一律小写
建议采用如下规则:【com】.【公司名/组织名】.【项目名称】.【模块名】
比如:com.jacksen.mvp.demo。然后在这个目录下根据业务逻辑进行分层。
常见的包分层结构如下:
com.xxx.xxx.view –> 自定义view 或者是View接口
- com.xxx.xxx.activities –> activity类
- com.xxx.xxx.fragments –> fragment类
- com.xxx.xxx.adapter –> 适配器相关
- com.xxx.xxx.utils –> 公共工具类
- com.xxx.xxx.bean –> 实体类
- com.xxx.xxx.service –> service服务
- com.xxx.xxx.broadcast –> 广播接收器
- com.xxx.xxx.db –> 数据库操作类
- com.xxx.xxx.persenter –> 中间对象
- com.xxx.xxx.model –> 数据处理类
类的命名规范
Android中类的命名与JAVA开发采用一致的规范即可。
大驼峰命名法,即所有单词首字母大写。
- Activity –> xxxActivity.java
- Application –> xxxApplication.java
- Fragment –> xxxFragment.java
- Service –> xxxService.java
- BroadcastReceiver –> xxxBroReceiver.java
- ContentProvider –> xxxProvider.java
- Adapter –> xxxAdapter.java
- Handler –> xxxHandler.java
- 接口 –> xxxInter.java
- 接口实现类 –> xxxImpl.java
- Persenter –> xxxPersenter.java
- 公共父类 –> BaseActivity.java、BaseFragment.java、- BaseAdapter.java等
- util类 –> LogUtil.java
- 数据库类 –> BaseSQLiteDBHelper.java
变量的命名规范
采用驼峰命名规则。
Java普通变量:
- resultString
- userBean
- loginPresenter
Android控件变量:
- loginBtn
- inputPwdEt
- showNameTv
有些人建议采用【控件缩写】+【控件逻辑名称】的方式,比如btnLogin。不过我个人比较习惯反过来写,比如loginBtn。与类的命名类似,把逻辑名称写在前面。
常用控件的缩写:
控件 | 布局文件中缩写 | 代码中缩写 |
---|---|---|
LinearLayout | xxx_layout | xxxLLayout |
RelativeLayout | xxx_layout | xxxRLayout |
FrameLayout | xxx_layout | xxxFLayout |
TextView | xxx_tv | xxxTv |
EditText | xxx_et | xxxEt |
Button | xxx_btn | xxxBtn |
ImageView | xxx_iv | xxxIv |
CheckBox | xxx_chk | xxxChk |
RadioButton | xxx_rbtn | xxxRbtn |
ProgressBar | xxx_pbar | xxxPbar |
ListView | xxx_lv | xxxLv |
WebView | xxx_wv | xxxWv |
GridView | xxx_gv | xxxGv |
常见单词缩写:
单词 | 缩写 |
---|---|
icon | ic |
background | bg |
foreground | fg |
initial | init |
information | info |
success | succ |
failure | fail |
error | err |
image | img |
library | lib |
message | msg |
password | pwd |
length | len |
buffer | buf |
position | pos |
常量命名:
全部单词采用大写,每个单词之间用“_”分割。
public static final String API_URL = "http://apis.baidu.com/heweather/weather/free";
方法的命名规范
与java开发类似,采用驼峰命名规则。首单词首字母小写,其余单词首字母大写。尽量不要使用下划线。
举例:
- setxxx()
- getxxx()
- loginxxx()
- onCreate()
- onDestory()
- isxxx() –> 返回值是boolean类型
- checkxxx()
方法的命名规范
全部采用小写,单词之间使用下划线分割。
布局文件:
- activity_login.xml
- fragment_first_tab.xml
- item_choose_city.xml
- dialog_choose_city.xml
- common_footer.xml
- popup_xxx.xml
控件ID:
上面【常用控件的缩写】表格中基本列出了常用控件的ID写法。
- login_btn
- input_phone_et
- input_pwd_et
- login_pbar
drawable目录下的命名规范
全部单词小写,单词之间采用下划线分割。
- 图标 – > ic_xxx.png –> ic_logo.png
- 背景图 –> bg_xxx.jpg –> bg_splash.jpg
- selector –> selector_login_btn.xml
- shape –> shape_login_btn.xml
- 图片状态 –> bg_login_btn_pressed.jpg & - bg_login_btn_unpressed.jpg
anim目录下的命名规范
单词全部小写,单词之间采用下划线分割。
- fade_in.xml
- fade_out.xml
- slide_in_from_left.xml
- slide_in_from_top.xml
- slide_out_to_right.xml
- slide_out_to_bottom.xml
编码规范
- 代码中尽量不要出现中文。注释和除外。代码中通过strings.xml引用来显示中文。
- 控件声明放在activity级别,这样在activity其他地方可以使用。
- 在一个View.OnClickListener中处理所有的点击事件逻辑,这样看起来很集中和直观。
- strings.xml中使用%1ssd等实现字符串的通配。
- 布局文件中的字体大小,都定义在dimens.xml中。
- 有关margin和padding的值也都放在dimens.xml中。
- 界面之间传值尽量使用intent方式。少用全局变量。
- 不建议在布局文件中添加点击事件。
- 数据类型转换一定要校验。
- 使用常量代替枚举。
- 实体不要在不同模块间共享,但是可以在统一模块下的不同页面共享。
- 建议采用左括号与方法名称在同一行的代码格式来进行代码的编写和格式化。
- 业务稍微复杂一些,都有可能提炼一个BaseActivity或BaseFragment出来做为公共父类。
- 类注释一定要写,管家的方法也要写方法注释。常量尽量写注释。
三、使用Powerdesigner绘制ER图
由于我们的团队项目没有设计数据库的内容,所以只针对其他方面制定了ER图:
四、项目的后端架构设计
功能介绍
序号 | 基础功能 | 功能介绍 |
---|---|---|
1 | 背景音乐 | 在玩游戏过程中有音乐伴随,与大多数游戏的BGM相类似 |
2 | 音量设定 | 控制游戏BGM的音量 |
3 | 菜单界面 | 选择开始游戏(选择难度-待后续开发),并有关于,音量,退出游戏 |
4 | 游戏界面 | 设有战斗界面(血条)和消消乐矩阵,暂停,设置,退出 |
五、团队分工
学号 | 姓名 | 负责工作 |
---|---|---|
20172327 | 马瑞蕃 | 项目总结博客,日常管理,代码质量测试 |
20172316 | 赵乾宸 | 组长,项目 主要 代码 |
20172320 | 李闻洲 | 项目部分代码,代码质量测试 |
20172317 | 蒋子行 | 日常统计 |
- 需求功能优先级象限图:
六、TODOList及燃尽图
-
TODOList:
-
码云上的Issue:
-
github上的Issue:
-
燃尽图:(仅本周任务)
小组会议及交互总结
- 本周小组会议为站立式会议,在育才407寝室举行,在会议上,我们主要讨论了上周需求规格说明书的问题,并在会后进行了修改,内容较少。
- 本周会议记录为蒋子行同学整理
- 组员对本周的感悟:
李闻洲:用工较少,有点遗憾,将会在之后补上
赵乾宸:BUG有点麻烦,还解决中!
马瑞蕃:团队建设和博客有点麻烦,但我还是完成了,加油!
蒋子行:共同努力,做好项目!
- 整体总结:
对于第一周的工作,我们觉得并不满意,首先在游戏代码方面, 遇到了一个难以解决的问题,耗了许多时间,所以,项目的进度有些迟滞,我们会在之后抓紧时间,将进度补上。 - 下周计划:
对于较难问题,我们将建立联合突破小组,多人协商共同完成,将在本周完成大部代码的实现工作。
本次分工及工作量比例
|成员 |个人贡献及完成度 |用时 | 比例 | |
| -------- | :----------------: |:----------------: | :----------------------------: |
|马瑞蕃 | 确定任务、分配任务、检查汇总整理(markdown 及 pdf)、编辑博客、项目github燃尽图 使用Powerdesigner绘制ER图、界面设计 列出TODOList、项目燃尽图【100%】 | 16h | 70% |
|李闻洲 | 使用象限法设计优先级图、功能介绍图(WBS)【100%】 | 2h | 10% |
|赵乾宸 | 制定开发开发过程中代码规范、项目的后端架构设计【100%】 | 4h | 10% |
|蒋子行 | 交互、对接其他小组,会议记录 【100%】 | 1h | 10% |
参考资料汇总
PowerDesigner16.5中文版(附汉化补丁) 免费版
流程图
todolist使用教程
powerdesigner画ER图
分而治之