今日进度
今日进度不多。
1、设计方面:陈其华同学稳定产出,完成了卡堆、进度条的设计。
2、前端方面:欧阳炳濠同学进行了人物移动的设计。
3、后端方面:朱池苇同学重新梳理了多线程控制中synchronize、wait、notify的用法,推进God进度。
燃尽图(上周四5月24日至今)
工具:EXCEL
后端燃尽图(5月25日和5月30日进度有些停滞)
前端燃尽图(前端进度较好)
架构更新
java package game{ class God /* * control the game (统领子系统) * receive & send & loop control * 1.All kinds of rule systems : Checker * 2.hold all the states * God disappears after a game ends */ class SkillsChecker // skills of characters class MapChecker // include the structure and setting of a map |-class MapUnit // the unit of one map block |-class MapEdge // the edge that connect two units |-class CreateMap // create a map using json |-class Factor // key element on the map class GambleChecker // judge the win&lose of gamble class PlayerChecker // include all rules about players |-class Players class Tests // all unit tests }
scala
package server{
object Server
/* log
* about server
*/
}
package game{
object GodController
/*
* serialization & deserialization
*/
object UsersModel
/*
* long-lasting static database
* hold players' information
* 1.auth
* 2.stats
*/
object UserController
/*
* operation about users
* such as register or change password
*/
object SessionsController
/*
* mathc players
* 1.interact with systems out of package game
* 2.send msg to other game system
* contact with player
*/
}
package common{
class Bimap // a two-way map
object mail // process about email
trait MyJsonProtocol // implicit vals about json
object MyUtils // utility functions
}
关于架构的说明和开发规范
一、关于Checkers作一些更进一步的解释。
“Checkers”的意思是“用于Check的内容“,即规则将根据类别分为四个静态的类,Checkers应该不随其外部变量的改变而发生变化。
这种特点反映在具体的特征上,即为以下两点:
1、无状态,即尽可能不要定义全局变量,其有可能导致规则本身的变化。
2、类中的方法不依赖于实例,而直接依附于类。
二、开发规范
1、开发过程中自顶而下、自底而上的开发思路都可以使用。
2、类中函数运行结果应该相对独立,即类中每个函数的功能尽可能精确且单一,而复杂的功能可以通过组合这些函数得到。
3、遵循阿里Java开发规范(例如:不要同一个变量具有多个语义、函数命名使用lower camel case、类名upper camel case,函数名动词+名词等),与其不同的是变量命名风格使用Unix风格。
4、数据类不要有与整体逻辑相关的函数(可以有单纯处理本身数据得函数),类成员直接暴露。
5、尽可能在写函数体前,定义好函数的接口,并且据此编写单元测试。
6、git开发流程