2023年又已经走完了最后一秒。相比2022年,技术上的收获更少了,令我醍醐灌顶的突破已经很久没有出现过了。
回顾历年来的blog,我发现这几年的技术增长趋势越发的平缓,2023年更是几乎趋近于直线。
虽然技术突破几乎没有,经验总算还有一点点增加。
虽然现在工作语言已经切换为Go语言,但是我依然没有放弃对Silly的开发。
我常常反思并比较,,探究使用silly来实现工作中的业务逻辑的优势和劣势。
在这个过程中,我发现即使Silly框架只存在竞争而非并发问题,抽象出一个mutex也能大幅减轻业务逻辑的抽象负担。
在为Silly增加对prometheus的支持时,我也发现了自己的一个盲点。
尽管我对操作系统和硬件电路的宏观运作流程有清晰的认识,但对具体细节却知之甚少。
这个缺点或许与我多年来的学习习惯有关,我总习惯于先了解全局再深入细节,但现在看来应该适时深挖一下操作系统相关的知识了。
在过去一年的业务开发中,收获不多,能够抽象成通用模式的更是只有一种而已,那是一种在分布式中如何稳定同步数据源的思路。
我继续对silly增加etcd支持的过程中,我下定决心为timer增加了取消功能。值得一提的是,增加这个取消功能在实现上并没有花费太大代价。
在编写Go语言代码的过程中,我最羡慕的不是他的各种特性,而是其便捷的性能分析器。
有了这个性能分析器,我可以更从容地遵循过早的优化是万恶之源
这一箴言。
因此,我非常期待也能在编写Lua代码时也可以Don't do it yet.
。
正巧我也有学习eBPF和Rust的需求。因此,我决定使用Rust编写eBPF代码,以实现Lua性能分析器的功能。 当然,同时学习两种未知领域的过程必然充满挑战,但痛苦终究是短暂的。
除了上述稍显具体的收获外,还有一种无法言喻的成长,那就是我的“性能追求症”得到了极大改善。
在工作中,由于一些特殊限制,我经常会编写那些以前因时间复杂度较高而避免的代码。
然而这些代码上线之后并没有出现性能问题。这大大增加了我对过早的优化是万恶之源
的信心。
除此之外,我对游戏服务器框架有了新的理解。
我认为整个游戏服务器其实只需要分为Role Server
和Global Server
就够了。
Role Server
和Global Server
只是代表数据的职责,并不局限于某种具体的业务逻辑。
Role Server
只用来处理所有和玩家自身相关的数据,而Global Server
用来处理玩家和玩家之间的交互数据。
当然这只是一种猜想,如果有可能我2024年会实现出来以做验证。
虽然过去任务总是没法完全完成,但是这并不能阻止我定下2024的目标: