2023(完)

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 ServerGlobal Server就够了。

Role ServerGlobal Server只是代表数据的职责,并不局限于某种具体的业务逻辑。

Role Server只用来处理所有和玩家自身相关的数据,而Global Server用来处理玩家和玩家之间的交互数据。

当然这只是一种猜想,如果有可能我2024年会实现出来以做验证。

虽然过去任务总是没法完全完成,但是这并不能阻止我定下2024的目标:

  1. silly增加完etcd相关的支持。
  2. 实现并验证上述服务器框架的猜想。
  3. 探索如何将这套框架实施在K8S上,以学习K8S。
  4. 继续优化silly的log模块,学习ELK,尽量能实现建议的分布式追踪功能。
  5. 如果还有时间,继续学习ECS,研究ECS在网络同步和服务器端的应用。

发表评论

eighty two − = 77