自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java8与游戏开发(七)

游戏系统会有大量的配置信息,包括从数据库中读取的配置,还有从各种文件中读取的配置,都伴随着抛出NullPointerException的可能,如果能够减少空指针,系统会更加稳定。Java8的Optional能够很好地表示可选数据,但是对于错误导致的数据缺失,无法提供有用的信息,如果仅仅使用Exception来表示错误,又会失去了使用Optional的所有好处。一个可行的方案,就是定义三种对...

2018-07-25 14:15:40 388 1

原创 Java8与游戏开发(六)

游戏系统会有大量的配置信息,包括从数据库中读取的配置,还有从各种文件中读取的配置,都伴随着抛出NullPointerException的可能,如果能够减少空指针,系统会更加稳定。Java8引入了Optional来处理可选数据,把一个有可能缺失的数据放入到一个容器里面,作为Null引用的替代品。一、能够尽快地检测出错误,方便查找原因。//Java8的Optional源码private...

2018-07-25 14:12:05 761

原创 Java8与游戏开发(五)

游戏开发很重要的一点就是系统的并发性能,体现在单位时间内处理的请求数,还有同时连接的最大用户数。基于Java语言实现的Netty不仅并发性能极高,内存的gc效率高,使得它成为Java游戏服务器的首选。Java7之前的java.util.concurrent包就有了Executors线程池,ConcurrentHashMap、ConcurrentSkipListMap等线程安全又高效的数据结...

2018-07-20 21:57:05 9183 1

原创 Java8与游戏开发(四)

要让游戏开发的过程更加Effective,必须遵从一些原则,其实就是平时的开发经验总结出来。一、优先使用工厂模式来创建对象。对于那些可选字段很多的对象,优先使用builder模式。二、谨慎地使用单例模式,Java可以用Enum实现单例模式。三、谨慎地使用缓存。大数据量的缓存,有三种方式避免内存的过度使用: WeakHashMap,更加复杂的缓存,可以用java.lang.re...

2018-07-12 22:08:46 377

原创 Java8与游戏开发(三)

游戏开发中,通常使用"n段式"代表道具和货币,也经常要把字符串转成Uniparam对象。系统一定会频繁地生成UniParam对象,所以加入了WeakHashMap作为缓存,还对比了一下性能的差异。/** * 统一变参参数配置格式 *  * 定义ID : 参数1 & 参数2 & 参数3 & ... *  * 定义ID : [10,20] & [测试...

2018-07-12 22:07:00 475

原创 Java8与游戏开发(二)

游戏开发要使用到一些返回码,所以总结一下经验。开发的时候,会根据条件返回错误码,通常策划还没有配置错误码的数据,应该保留后端和策划两套错误码:/** * 后端与策划的结果码数据独立分来成两套,有利于维护 *  * @author 林子豪 * */public enum ResultCode implements Serializable { SUCCESS(0, "成功"), E...

2018-07-12 22:04:59 446

原创 Java8与游戏开发(一)

游戏开发和Web开发不同的地方在于,游戏对象通常是常驻内存的。当用户登录的时候会一次性把玩家某个模块的数据全部读到内存里面,以后除了维护之外,内存中的数据都不会被释放掉,需要持久化的数据定时批量地写入数据库。经常要为玩家角色存储一些数据,比如神器,装备,时装,他们都是GameObject,就像这样:publicabstractclassGameObject{ public...

2018-07-11 16:43:24 5228

原创 ResultCode类设计

经常要使用到一些返回码,所以总结一下经验。个人的另一个博客: kadima.asia开发的时候,会根据条件返回错误码,通常策划还没有配置错误码的数据,应该保留后端和策划两套错误码:/***后端与策划的结果码数据独立分来成两套,有利于维护**@author林子豪**/publicenumResultCodeimplementsSerializable{ S...

2018-07-06 21:21:07 5891 1

tbl-demo-service-master.zip

此项目为应用领域驱动开发DDD的分层架构的DEMO项目,仅供参考。 领域模型的职责是实现业务逻辑,如果领域模型只是用来处理简单的逻辑(比如贫血模型),那么领域模型的作用微乎其微,甚至可以忽略,数据转换的成本比领域模型带来的好处还多,这种情况其实就是在原有的分层架构中多加了一层,增加了项目的复杂性和工作量。 “领域驱动开发DDD”只有被正确地运用,才能发挥出最大的价值。

2020-08-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除