5月30日进度

时间:2021-03-26 14:17:40

今日进度

今日进度不多。

1、设计方面:陈其华同学稳定产出,完成了卡堆、进度条的设计。

2、前端方面:欧阳炳濠同学进行了人物移动的设计。

3、后端方面:朱池苇同学重新梳理了多线程控制中synchronize、wait、notify的用法,推进God进度。

 

燃尽图(上周四5月24日至今)

工具:EXCEL

5月30日进度

后端燃尽图(5月25日和5月30日进度有些停滞)

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开发流程