少三2后端代码的重构之路

前言 作为程序猿,我们的工作就是编写代码,每个项目对代码质量的要求不一,每个人对代码质量的重视度也不一样,很多人将项目中的代码质量不高归咎于项目组的领导重视度不高。是的,对于项目组来说,大家的关注点都在项目进度及功能完成度上面,至于你的逻辑代码是怎么写的,只有程序猿自己知道,即使是……

阅读全文

手游开发中如何进行版本管理

版本控制的目的 如今软件行业中,版本控制软件的使用已经相当普及了,就算是个人项目,也会选择github这样的网站进行代码托管。回头想想,我们为什么要进行代码版本管理呢?软件版本控制的目的到底是什么? 1. 版本代码备份 想想没有版本控制软件的时代,如何进行历史版本代码的备份?我想大概是这样……

阅读全文

分区分服类手游如何应对OB瞬间流量

前言 少三2成功 OB 已经一年多了,19年12月份,我们还在为项目 OB 艰苦奋斗呢。转眼间就过去一年多了,虽然在公司内部也做过一些 OB 期的技术问题总结,但都比较泛。今天有时间,想着还是从更细的角度深入总结一下,OB 时面临的技术难点在哪里?好好思考一下,我们下一个项目 OB 的时候,是否可以更稳更安……

阅读全文

卡牌游戏理想中的数据存储方案

卡牌游戏后端架构特色 分区分服运营 开服节奏快,滚服玩家多,老服玩家流失率高,造成存储数据中有效率较低。 开服时创角压力大 OB时流量迅猛,写压力相对较高。 平时在线量低,活动节点在线量暴增 平时数据库读写压力小,0点及部分活动时间,活跃玩家人数暴增,数据库读写压力也会暴增。 离线玩法多 离线数……

阅读全文

结构体内嵌造成的编译资源消耗问题总结

何为结构体内嵌 golang 中允许定义不带名称的结构体成员,只需要指定类型即可,这种结构体成员称作匿名成员。将一个命名结构体当做另一个结构体类型的匿名成员使用,即为结构体内嵌。如下示例中,Circle 和 Wheel都拥有一个匿名成员,Point 被内嵌到 Circle 中,Circle 被内嵌到 Wheel 中。 1 2 3 4 5……

阅读全文

项目中应该禁用fallthrough

fallthrough的用途 在其他语法(非Go,C,PHP)中,switch 有一个特定的现象,就是向下穿越,指的是一旦一个分支 case 满足,则后续分支代码都会被执行。而Go语言中,默认分支执行完毕,switch 执行完毕。使用 fallthrough 语法,可以达到穿越下一个 case 分支的目的。 fallthrough 需要出现在分支语句块……

阅读全文

浅述TODO的作用

前言 很多人都知道,代码中待办的事项会用TODO注释,标记还未完成的待办项。但事实上,很多项目中TODO已经烂大街了。我们后端项目中,仅仅游戏业务代码中就存在近百处TODO(上线之前曾经治过,只是又复发了),并且还在持续增加中。长此以往下去,TODO已经和常规注释没有差别了。 TOD……

阅读全文