第四次团队作业——系统设计
一、《需求说明书修改》
上周的《需求规格说明书》初稿存在的不足:
1.没有考虑到管理员也算是用户
2.没有考虑到对注册和发布招聘信息进行审核
3.在截止日期前已有人应聘,是否算失效
4.需要对信息是否合法进行审核
5.没有体现我们是为计算机专属设计
改进:1.添加上管理员用户,对注册和发布招聘信息进行审核
2.在截止日期前若招聘到心仪足够的人选,该招聘失效
3.通过审核和专业测评体现APP为计算机专属设计
附录:需求规格说明书
二、代码规范、编码原则
TAC组Android代码规范
Java通用编码规范:
1. 包:
采用反域名命名规则,本组采用com.tac.<所属功能区域>.<功能模组>.<内部子功能>
命名
例如com.tac.UI.GiveJobs
2. 类:
名词,采用大驼峰命名法,且不允许自定义缩写,除非是HTML、URL等已经约定的缩写,而如果包含了单词缩写,则该缩写所有字母大写。
例如:UnvalidJobContent
3. 接口:
同样与类一样采用大驼峰命名法,但是尽量使用able或者ible结尾
例如:Runnable
4. 方法:
采用小驼峰命名法,即第一个单词首字母小写,而其余所有单词首字母大写。
例如:getValidJobContent
5. 变量:
采用小驼峰命名法,特别的,如果该变量对应布局.中的某个控件,则其名字必须与该控件的id一致。
局部变量名、静态成员变量名:只能包含字母,大驼峰命名法。
常量:全部大写,并且在不同单词间加入_
前端独有编码规范:
1. 资源文件:
全部小写,在不同单词间加入_,加入前缀区:控件名_逻辑名称
2. 资源布局文件:
包括layout布局文件
全部小写,下划线命名法
例如:app_main.xml
3. 资源ID命名:
包括string.xml,style.xml等
activity名称_功能模块名称_逻辑名称
activity名称_逻辑名称 common_逻辑名称
4. layout中的id命名法:
view缩写_模块名称_view的逻辑名称
例如:tv_job_detail、btn_accpet_worker
TAC组编码原则
1. 网络请求优化
http用gzip压缩,设置连接超时时间和响应超时时间
http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读。
2. listview 性能优化
(1).复用convertView
在getItemView中,判断convertView是否为空,如果不为空,可复用。如果couvertview中的view需要添加listerner,代码一定要在if(convertView==null){}之外。
(2).异步加载图片
item中如果包含有webimage,那么最好异步加载
(3).快速滑动时不显示图片
当快速滑动列表时(SCROLL_STATE_FLING),item中的图片或获取需要消耗资源的view,可以不显示出来;而处于其他两种状态(SCROLL_STATE_IDLE 和SCROLL_STATE_TOUCH_SCROLL),则将那些view显示出来
3. 避免阻塞主线程
使用线程池,分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池,避免耗时任务阻塞线程池后,导致所有异步任务都必须等待
4. 多线程注意事项
异步任务,分为核心任务和普通任务,只有核心任务中出现的系统级错误才会报错,异步任务的UI操作需要判断原activity是否处于激活状态
5. 资源耗用控制
尽量避免static成员变量引用资源耗费过多的实例,比如Context
6. UI布局优化
(1) layout组件化,尽量使用merge及include复用
(2) 使用styles,复用样式定义
(3) 复杂布局使用RelativeLayout
(4) 自适应屏幕,使用dp替代pix
(5) 使用android:layout_weight或者TableLayout制作等分布局
附录:TAC组安卓编码规范
三、数据库设计以及相应ER图。
数据库设计文件
ER图片
四、描述组员在上述任务中的分工和工作量比例。
1.需求规格书的修改 胡泽善
2.代码规范、编码原则的编撰 胡泽善
3.Powerdesigner的数据库设计,建立ER图 彭 巍
4.体系结构设计,界面设计 洪佳铭
5.随笔的编写 吴宇轩
6.小组讨论 全 体
031402330 吴宇轩 0.20
031402509 胡泽善 0.23
031402224 彭 巍 0.22
031402230 张建明 0.15
031402508 洪佳铭 0.20