软件开发过程
准备事项之工作环境搭建
- 新人参考请阅读:新人操作指南-新人必读
- 开发语言:Go 使用版本:1.9
- https://books.studygolang.com/gopl-zh/index.html
- 在https://studygolang.com/dl中下载1.9版本的安装包,根据文档进行安装
- 编辑器推荐:VSCode
- https://www.cnblogs.com/justdoyou/p/9853520.html VSCode安装Go插件
- 工作环境搭建:参考Golang工作环境安装准备
准备事项之Git
- 我们使用git进行代码的管理,git是一款分布式版本控制系统
- 人事会准备各自的git账号,git的各种操作都需要登录
一些常用的git命令:
- git clone + 地址 拷贝代码 git pull 拉取最新代码
- git add . 添加修改的文件 git commit –m 本地提交修改的文件
- git push 推送修改的文件
- git checkout –b 新建分支 git checkout+分支名 切换到某一分支
- git merge+分支名 将当前分支与目标分支合并
开发流程之立项
- 开发一个新项目,首先是确定玩法规则和需求,这个部分由产品部门的同事负责,当规则初步确定之后,一般会将有关开发人员拉进专门的微信或者QQ工作群中,方便工作进度的确认和解答有关规则的各种疑问。
- 按上面的步骤填完表申请,批准之后就立项成功。手机上的OA也有这个功能
- 项目能否发起OA立项由产品和部门负责人确定,一般用于重大项目立项。
开发流程之TAPD
- Tapd是接收需求的唯一渠道,禁止一切口头需求交流,技术需求一律跟产品进行沟通交接。技术人员通过查看tapd可以看到自己的工作内容。
- Tapd需求单一般由产品或者市场发起指给相关服务,检查开发人员是否包括自己的名字,要注意和处理人的区别,处理人是当前需求流转到谁那里,只有处理人能看到相关需求,开发人员则是整组人员,用于工作量统计的。
- 子游戏仓库master分支每一次代码提交必须附上相关tapd链接,保证每次更新项目都有依据可循,项目开发规范请参考:技术规范化措施
- TAPD使用手册请参考:平台需求规范-Tapd使用文档
- 必须严格准守技术相关规范,会定期进行项目抽查,若发现随意提交更新代码情况,将会影响本年度绩效考评成绩。
开发流程之开发
- 在成功立项之后,部门主管会建立该项目的仓库。git clone该仓库到本地之后,即可开始开发。
- 建议开发时拷贝玩法类似的项目代码到空仓库中,在该代码上进行修改开发。能更快的熟悉代码结构,需要修改的地方比较少。
- 开发时对规则玩法有疑问,可以在工作群中询问代理或者产品人员。一定要询问清楚,减少之后的返工工作量,合理预估开发周期,避免工期预估错误导致市场推广出问题。
- 根据玩法选项和需要的交互操作,修改协议文件。我们与客户端的交互通过protobuf协议,相关文件放在protocol文件夹,Proto文件通过 protoc --go_out ./ xxx.proto 命令编译成对应的pb文件。
- 大部分麻将和扑克的流程都是一样的,麻将的难点在于牌型的判断,各种牌型的算分,一些额外的加分项的计算。
- 扑克的难点在于牌型的构建、牌型大小比较、牌型算分。
开发流程之联调
- 服务开发完成之后,下一步是与客户端联调,确保数据交流、动作交互、界面展示不会出问题。
- 联调之前,需要把服务部署到测试服务器,具体步骤参考测试服环境配置文档。
- 与客户端的交互通过protobuf协议,相关文件放在protocol文件夹,务必确保和客户端使用的是同一份proto文件。
- 多沟通交流,联调是一个合作的过程,遇到问题在所难免,多沟通找到最好的解决方案,提高工作效率。
开发流程之自测
- 与客户端联调完成,基本流程都能跑通之后,可以交付给测试。
- 交付给测试之前,确保程序不会出现频繁的卡死或者报错,确保测试的顺利工作。
- 自己进行单元测试,Go提供了单元测试的机制,重点测试牌型分数和牌型判断,尤其是很难出现的牌型,具体参考游戏服务开发测试要点文档。
- 在关键的函数或者步骤中输出日志,能够快速的定位问题。
- 记录测试提出的问题,修复之后一一对照,避免遗漏。
开发流程之项目测试
- 完成项目自测后,就把tapd转给测试,及时解决项目问题,保证项目按时上线,如果因为自身或其他原因项目不能准时上线,请自觉加班推动上线进度,如过给公司造成重大损失,记录员工档案,后果自负。
开发流程之正式上线
- 测试通过之后,即可将项目部署到正式服。
- 将代码提交到git之后,登录xxx网站,没有限相关平台权限请走oa申请,对平台项目进行编译。
- 编译成功登陆xxx网站,部署线上游戏房间,没有限相关平台权限请走oa申请。
- 正式服权限申请流程登陆OA-新建流程-运维操作-应用系统权限新增及变更申请流程(系统包括:jenkins,jumpserver,自动部署平台,jumpserver申请时请标明相关平台ip地址)
- 具体更新步骤参考正式服游戏更新流程文档。
开发流程之优化维护
- 维护渠道一般通过微信、QQ群反馈相关问题。
- 附赠:游戏服务踩坑宝典在线文档(方便实时记录问题)xxx
- 文档输出:游戏规则文档及游戏时序图。
代码注释标准: - 要求给函数注释,注释内容包括输入参数、输出参数、函数功能介绍。
- 较复杂逻辑处理或者特殊处理部分需要进行函数注释,比如说函数递归、容错处理等。
- 常量注释、结构体注释。
工作禁止出现操作
- 禁止和玩家有任何私下沟通,严禁出现参与玩家活动的一切行为,若是出现相关违规操作一律开除并且追究其法律责任。
- 公司电脑禁止安装盗版或者破解版本软件。
- 工作开发流程规范必须遵守且严格执行,如果未按照相关规定导致出现任何重大异常,由本人全权负责,并且影响本年度年终考核。
- 禁止账号借给他人使用情况,平台权限一律需要oa申请。
- 禁止出现任何侵害公司利益行为,违者一律开除处理。