2017-2018-1 JaWorld 第六、七周作业
修改需求规格说明书
上次的《需求规格说明书》初稿有哪些不足?
- 王译潇同学回答:
1. 引言和目的性考虑的不是很周全。
2. 应该花时间把要做的产品原型先搞清楚,游戏更应该把功能定义好。
3. 确定前端后端用什么来开发。
4. 不要一个人做太多方面的工作。
5. 不是很容易保证产品不拖延。
6. check时间间隔不能过长。
7. 前期的市场调研不是很充分全面。
8. 用户背景不够全面具有代表性。
- 张师瑜补充:
1. 关于游戏整体的界面设计操作等不够完善。
2. 软件通信接口等需求暂未确定,还待补充。
- 修改后的《用户需求说明书》
后端架构
- 将静态图片作为游戏舞台,把所有移动物体作为精灵,我们定义了Sprite类,即精灵类,游戏中的飞机、子弹、奖励道具等都是继承自该类,我们通过moveTo()、move()等方法控制精灵的位置。
编码规范
原则
统一:统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。
达意:达意是指,标识符能准确的表达出它所代表的意义,比如: newSupplier, OrderPaymentGatewayService等;而 supplier1, service2,idtts等则不是好的命名方式。准确有两成含义,一是正确,而是丰富。如果给一个代表供应商的变量起名是 order,显然没有正确表达。同样的,supplier1, 远没有targetSupplier意义丰富。
简洁:简洁是指,在统一和达意的前提下,用尽量少的标识符。如果不能达意,宁愿不要简洁。比如:theOrderNameOfTheTargetSupplierWhichIsTransfered太长, transferedTargetSupplierOrderName则较好,但是transTgtSplOrdNm就不好了。省略元音的缩写方式不要使用,我们的英语往往还没有好到看得懂奇怪的缩写。
骆驼法则:Java中,除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割。比如: supplierName, addNewContract,而不是 supplier_name, add_new_contract。
英文:尽量使用通俗易懂的英文单词,如果不会可以向队友求助,实在不行则使用汉语拼音,避免拼音与英文混用。比如表示归档,用archive比较好。
包名规范
使用小写和数字组合,不要出现其他字符和符号。例如:com.aps.alg
类名命名规范
首字母大写
后缀命名
方法名命名规范
- 首字母小写,动词在前
变量命名规范
静态常量:全大写用下划线分割
枚举:全大写,用下划线分割
其他:首字母小写,骆驼法则
局部变量: 参数和局部变量名首字母小写,骆驼法则。尽量不要和域冲突,尽量表达这个变量在方法中的意义。
排版风格
规则一:程序块采用缩进风格编写,缩进为4个空格位。排版不混合使用空格和TAB键。
规则二:在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符,后不应加空格。
规则三:函数体的开始,类的定义,结构的定义,if、for、do、while、switch及case语句中的程序都应采用缩进方式。
规则四:功能相对独立的程序块之间或for、if、do、while、switch等语句前后应加一空行。
规则五:if、while、for、case、default、do等语句自占一行。
规则六:若语句较长(多于80字符),可分成多行写,划分出的新行要进行适应的缩进,使排版整齐,语句可读。
规则七:一行最多写一条语句。
规则八:类先成员变量,后内部函数接口;关键字public、protected、private依次按照顺序排版。
规则九:编写条件的时候采用“常量==变量”格式
工作分工
成员 | 分工 | 比例 |
---|---|---|
陈是奇 | 查资料 | 5% |
马平川 | 后端架构 | 5% |
王译潇 | 编码规范 | 30% |
李昱兴 | 查资料 | 5% |
林臻 | 查资料 | 5% |
张师瑜 | 推进工作进展、修改说明书的内容、完成markdown形式以及上传码云、写博客 | 50% |
感想
- 这周事情很多,团队博客进行的较晚。但是即使我每天都督促组内,大部分成员还是周日下午给我导致我准备的很匆忙。希望以后这种现象能够避免。(from 张师瑜)