
从Java到Go
文章平均质量分 88
以多年java开发经验的思想来学习Go。希望两种语言的结合能碰撞出新的火花。
代码产出是一个Go版的游戏服务器
https://github.com/kingston-csj/gforgame
jforgame
技术爱好者,资深服务端开发,对游戏服务器开发有深入的研究。
喜欢Java,Go,Python等语言。
开源游戏服务器框架https://github.com/kingston-csj/jforgame。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于CSP模型实现的游戏排行榜
游戏排行榜作为游戏生态中的核心功能,不仅展示玩家实力,还促进社交互动和用户留存。然而,其技术实现面临并发访问控制和高效数据结构设计两大挑战。Java和Go分别通过ConcurrentSkipListMap和CSP模型(基于Channel的并发设计)实现排行榜容器,前者依赖共享内存和锁机制,后者通过消息传递避免锁竞争,但可能在高并发场景下成为性能瓶颈。原创 2025-05-24 16:49:14 · 734 阅读 · 0 评论 -
Go基于plugin的热更新初体验
对于一个部署在生产环境的项目来说,我们希望当代码出现bug的时候,可以不用重启进程。使用java可以非常方便的进行代码热更新。但,如果采用go呢?原创 2025-05-10 10:39:14 · 984 阅读 · 1 评论 -
Go游戏服务器之每日重置
每日重置是游戏的基本业务。这里分别介绍java与go实现的技术不同点,特别阐述两种语言是如何保证线程安全问题。原创 2025-04-19 13:01:01 · 683 阅读 · 0 评论 -
cocos与游戏服务器如何通信
在 Cocos Creator 中与游戏服务器进行通信,常见的方式有 WebSocket、HTTP/HTTPS,本文主要讲述如何使用websocket方式与服务器进行通信。通过实际代码阐释请求-响应模式,服务器推送模式的逻辑实现。原创 2025-03-29 12:15:00 · 741 阅读 · 0 评论 -
go读取excel游戏配置
游戏服务器,配置数据一般采用csv/excel来作为载体,这种方式,策划同学配置方便,服务器解析也方便。本文讲述如何使用xcel配置格式来加载策划配置。原创 2025-01-19 16:30:00 · 703 阅读 · 0 评论 -
Go基本数据结构
JDK提供了如此多的数据结果,程序员只需了解每种数据结果的特点,即可应付大部分日常开发。而Go以简洁著称,只提供数组、切片以及映射3种基本数据结构。原创 2024-10-07 22:16:50 · 1338 阅读 · 0 评论 -
go项目多环境配置
Spring Boot 提供了一套灵活且强大的机制来加载配置文件,使得开发者能够根据不同的环境和需求轻松地管理配置。本文演示如何使用Go来实现同样的目标,支持多环境配置。原创 2024-09-22 16:15:00 · 939 阅读 · 0 评论 -
Go语言设计的一些优点及缺陷
Go 语言的设计哲学强调简洁和效率。部分特性从代码工程最终的结果来看(静态),确实简洁舒服,然而,从开发过程(动态)来看,难道不会加大开发成本吗?本文尝试列举一些Go语言的优点和缺点,仅代表个人意见。原创 2024-09-22 10:45:00 · 1143 阅读 · 0 评论 -
Go缓存系统
缓存用于提高数据访问速度和系统性能。它通过在快速的存储介质中保存数据的副本,使得数据可以被更快地检索。本文尝试使用bigcache以及原生map,实现一套高效的缓存系统。原创 2024-09-16 18:34:32 · 1138 阅读 · 0 评论 -
Go搭建TcpSocket服务器
不可否认,go在网络服务开发有强大的优势。net库是一个功能强大的网络编程库,它提供了构建TCP、UDP和HTTP服务器和客户端所需的所有基础工具。java创建tcp服务器,需要引入netty,或者mina,学习成本比较大。而go只需要寥寥几十行代码,也可实现一个高性能的网络服务器。原创 2024-09-16 12:49:58 · 1212 阅读 · 0 评论 -
Go日志系统
服务器日志是服务器运行过程中记录的各种信息的集合,它们对于系统管理员和开发人员来说具有重要的意义。例如, 调试,监控,行为分析等等。本文介绍如何使用logrus库创建系统以及运营两大类日志工具。原创 2024-09-08 20:15:00 · 1268 阅读 · 0 评论 -
优雅的创建对象——类Builder模式
在软件工程中,建造者模式(Builder Pattern)是一种设计模式,用于构建复杂对象。这种模式将对象的构建过程与对象的表示分离,使得同样的构建过程可以创建不同的表示。本文分别对Java与Go如何构造复杂对象原创 2024-09-01 15:30:00 · 482 阅读 · 2 评论 -
Go异常处理机制
Go语言的异常处理机制一直是社区讨论和争议的焦点。Go通过返回错误值来处理异常情况,而不是使用传统的 try-catch-finally 异常处理模型。本文主要讨论java与go两种不同的异常处理机制。原创 2024-09-01 10:00:00 · 1963 阅读 · 0 评论 -
介绍Go的三种基本高阶函数
Go的高阶函数高阶函数定义map()函数filter()函数reduce()函数高阶函数定义函数式编程语言将函数作为第一等公民,也就是说,函数可以作为参数,也可以作为返回值。将函数作为参数,或者返回值的特殊函数,就叫做高阶函数。下面介绍三个最基本的高阶函数。分别是map,filter,reduce。由于Golang不支持范型,使用interface{}+反射又显得复杂,下面的例子只使用int类型进行演示。map()函数由于map是Go内置的关键字,所以将map改为mapper函数。func原创 2020-12-19 16:29:13 · 1511 阅读 · 1 评论 -
理解Go面向对象的三大特征
面向对象三大特征:封装,继承,多态。Go不是一门纯面向对象编程语言,它没有class(类)的概念,也就没有继承的说法。但Go也可以模拟面向对象的编程方式。原创 2020-11-29 17:12:29 · 585 阅读 · 0 评论 -
理解Go的Goroutine和channel
go的goroutine和channel组合为解决并发场景提供了新的实现手段。本文主要是帮助读者更好地理解goroutine和channel两个概念。原创 2017-04-21 14:30:39 · 4434 阅读 · 1 评论