游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解

AutoSAR软件组件之模块化、 可配置性与可移植性(初级) #我们来聊聊AutoSAR软件组件的模块化、可配置性与可移植性那些事儿。 #如果你看过博主之前发布的文章,那么对这张图片应该不感到陌生,该图片来自AutoSAR的官方网站(Picture source:AutoSAR Portal)。 从这张图中,可以看出AutoSAR的基础架构包含以下几个方面: 1)RTE:运行时间环境,也可以叫VFB-虚拟功能总线或者叫中间件,为应用层提供通讯服务。 2)BSW:基础软件层,为应用层和RTE提供接口服务 3)Service :服务层,用于存储、诊断和状态管理等 4)EC 阅读详情

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解

码客 卢益贵 ygluu

关键词:游戏策划 可配置化 模块化配置 数据引擎 条件系统 红点系统

一、前言

在插件式模块化软件开发当中,既要模块高度独立(解耦)又要共享模块数据,最好的方法是有个中间平台(中间件)提供标准的接口来进行数据的交换,这在很多行业软件开发中已经广泛应用。但是,由于中间件的抽象和封装没有具备通用性的前提,使得在实际应用中受到了很大的制约。

本文将以“数据引擎”的概念来阐述通用数据中间件的理论和构成,以及以“通用数据引擎在游戏开发中的应用构想”来作为其的应用范例。

本文主要针对服务端开发,但客户端也可以参考。

二、模块化与插件

有关模块化软件开发的详细介绍这里不再做赘述(网上有很多参考资源[1])。

1、常规模块化


 图1

2、插件式模块化(插件开发)


 图2

三、通用数据引擎理论与构成

数据引擎是业界常用方法的集合(包含名字系统、数据仓库、条件系统、公式系统、运算集合、流程步骤控制系统、监听系统(数据变化监听和条件监听)、自定义函数系统、Go数学函数库、数据工作站),是为系统数据和模块数据提供统一交互接口的中间件(参考 data-e 源码[2])。

 图3  数据引擎结构及数据交互模式

1、名字系统(数据类型)

名字系统是数据引擎的基础核心,它将系统所有数据进行命名和ID编号。

 图4 数据名称配置表(可根据分类进行分表配置)

 图5 数据ID编码方式

2、数据仓库(数据持久化)

数据仓库为数据提供了标准的Get/Set/Save/Load接口。

 图6 数据统一持久化

3、监听器(事件与订阅-通知模型,观察者模式)

监听器是采用订阅-通知模型[3]而做的,是模块监听数据变化和做出及时响应处理的管理单元。

 图7

4、生产-消费模型

事实上所有活动都是消费-生产的过程。在信息化系统里面,消费不一定是消耗。比如我们0元购买合法的商业信息,但这个信息并没有改变,我们仅是获得信息副本,但对提供信息的商家来说你的行为就是对这个信息的消费行为。也就是说GetValue和Value=Value-1都是消费行为。

图8 生产消费模型

再对消费-生产[4]进行一个概念的升级就是:依据什么条件(消费数据)做什么事情(生产数据),即On-Do,就此引入条件系统[5]。

 图9 消费-生产配置表

图10 消费-生产模型实现代码

 由图9和图10可见,模型化的生产-消费方式实现了高度可配置化——代码层并不知道具体执行什么。

5、公式系统[6]、条件系统[5]、运算集合、流程控制系统

数据引擎将四则运算表达式统称为公式。公式表达、条件表达、运算集合表达式关系如图11:

 图11 公式、条件、运算集合表达式关系

流程控制表达式包含了运算集合和控制指令(计算控制和行为控制),如果图12:

 图12 流程控制表达式

6、数据工作站

数据工作站是每个模块操作数据的个体实例,当生产数据时该模块的工作站会记录相关数据ID,便于条件符合时对该模块所生产的数据进行清理操作,并同时提供对数据的监听操作。

四、通用数据引擎在游戏开发中的构想

通用数据引擎在模块化开发中的应用场景很广,以下以游戏开发的应用构想为例。

1、游戏的高度信息化(系统数据、玩家数据和行为信息的大统一)

游戏中各种数据都是已经数字化的,但数字化不一定就能信息化,信息化离不开交互环节。当我们把游戏数据都纳入到数据引擎的管辖范围以后,才能够实现信息的无障碍交互。

 图13 游戏数据的高度信息化

2、游戏服务端与客户端数据同步(红点系统)

依托标准数据同步接口和客户端数据引擎,服务端可以有超过50%以上的数据无需再编程实现和客户端的交换,客户端也可以依赖条件系统在红点处理方面减少开发工作量,能够进一步提升开发效率。

 图14 游戏服务端与客户端数据同步

3、基础数据与衍生数据

每个一款游戏都有固定的基础数据和信息(比如属性等数据、进入离开地图和杀敌等事件)。无论是游戏业务模块还是游戏框架模块,玩家行为产生的仅是基础数据,由基础数据衍生的数据放在配置层来实现:

 图15 游戏基础数据与衍生数据

 如果图15所示,在配置层配置条件表达式“当次充值>0”和数据表达式“总充值+当次充值;日充值+当次充值;周充值+当次充值”,并加载到数据引擎的监听器中,当条件满足时即可衍生出“总充值、日充值、周充值”等衍生数据。以此类推,依托框架模块和业务模块的基础数据可以在配置层衍生出任意所需的数据。

4、数据维度空间模型与游戏的高度可配置化

以往,我们习惯于在玩家的各个行为事件环节用代码实现游戏数据的加工和逻辑控制。假如我们以一种模型的角度来现实,它产生效果是意想不到的。在此引用本人在数学建模的案例插图说明一下维度空间模型(见《可配置化数学建模的应用案例图解》[7]):

图16 数据维度空间模型 

图17 数据维度空间模型的配置项样例 

由图16和图17可见,在模型方式下,在代码层不再执行具体的数据运算和流程控制,而放在了配置层,依托数据引擎对配置表达式的解析和执行,我们游戏的可配置化程度再提升到了一个新的高度,并且也减少了大量的编码工作。

关于游戏的完整数据维度空间模型在此不多做举例,仅以玩家登录后在地图杀敌为例:

图18 数据维度空间模型及高度可配置化

由图18可见,依据代码层提供的基础数据,在配置层衍生了玩家杀敌需要的时长(可统计敌我实际战力平衡指数)、每日杀敌数量、总杀敌数量、赛季杀敌数量等,这些数据可应用于福利模块、任务模块等以满足一连串的策划需求。

5、成长线、活动、任务等策划需求的抽象和配置实现

这是本文重点的重点。

通过对成长线、活动、任务等策划需求的分析,结合相关数据特性,可以抽象出两类数据管理对象:递进式和并列式数据管理对象,根据对数据的响应方式可以抽象出观察者模式、探测者模式。

递进式数据管理对象可以用于成长线(皮肤晋级、技能升级等)、七日福利、任务等等,而成长线、七日福利属于探测者模式(玩家请求后从数据引擎探测条件是否满足再执行),任务模块则是属于观察者模式(把条件提交给数据引擎的监听器,条件满足后自动执行相应的任务配置表达式)。

并列式数据管理对象可用于宝石系统等,各类颜色的宝石激活后即可叠加给属性加成,而每个颜色的宝石又是一个递进式的数据(宝石有升级需求),所以并列式的数据管理对象包含了递进式的数据管理对象。

上述抽象描述有点难理解,以图例说明(前述抽象的封装对象可以轻松完成以下例子的配置):

 图19 成长线、活动、任务等策划需求的抽象和配置实现

从图19的需求范例可以看出,我们只需抽象出两类数据管理对象即可实现多数的策划需求,因为多数的策划需求不外乎消费什么数据来生产什么数据,所以无论可配置化率还是开发效率都是极度的提升。

6、抽象的八二法则与高效开发

俗话说没有100%绝对的事情。如果抽象能解决80%(多数)问题那么就是正确的(剩下20%(少数)问题再具体问题解决解决),如果优化能减少80%(多数)繁琐细节那么他也是正确的。

图20 八二法则(图片来源于网络) 

7、游戏模块(插件)的冷热拔插

系统初始化有代码单元初始化、线程初始化、模块依赖初始化,只要遵循一定框架规范,任意一个游戏模块都可以在运营时关闭和启动,当关闭时其他模块对它的数据取值返回为0而已,只是相关功能不能操作,不影响系统正常运营。

8、留给给策划更广阔的想象空间

高度可配置化可以留给策划更广阔的想象空间,可以轻松设定和实现数值模型,并且能深度发掘需求潜力。

图21 想象空间(图片来源于网络)

9、程序员的思维转换和工作转移

相对于传统方式,生产-消费模型需要程序员转变思维方式。成熟的插件开发框架能让程序开发更加容易和轻松,所以程序员的工作方向转移到配合策划进行配置表配置。

五、通用数据引擎的应用问题与前景展望

1、应用问题1:中间商赚差价

但凡有中间商都会被赚取差价。所以中间件对性能是有损耗的,但以当下的CPU算力,多数系统是绝对能接受的(其实实际开发中有很多不良的编码方式导致很大的性能消耗),也就是说在性能可接受的前提下开发效率为王。

2、应用问题2:细节与方法论

确定了插件式的软件开发方向,往往很多细节问题会让人无所适从,解决问题无外乎方法论,而方法源于经历和阅历。

3、前景展望1:公司内部插件式软件开发框架

在优秀的抽象和逻辑能力下,随着时间迭代,基于数据引擎的软件系统就会形成一个成熟的软件框架,插件式开发可为企业提高可观的开发效率。

4、前景展望2:云插件及云IDE服务商(插件式模块化游戏云开发平台)

更乐观一些的,依托于docker、k8s、grafana和成熟软件框架及编辑器(如捕鱼游戏框架、棋牌游戏框架、MMO游戏框架等)可组成一个云插件游戏开发平台,其他公司或工作室只需开发具体游戏业务的插件,平台托管插件代码和负责运营并按比例抽成。

六、相关知识与链接

[1] 模块化参考链接:插件式模块化软件框架的思想图解(一、二、三)

https://blog.youkuaiyun.com/guestcode/article/details/119701789?spm=1001.2014.3001.5501

https://blog.youkuaiyun.com/guestcode/article/details/119981524?spm=1001.2014.3001.5501

https://blog.youkuaiyun.com/guestcode/article/details/124780626?spm=1001.2014.3001.5501

[2] 数据引擎(data-e))源码:

https://github.com/ygluu/data-e

[3] 订阅-通知模型(观察者模式)介绍

https://baike.baidu.com/item/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F/5881786?fr=aladdin

[4] 生产-消费模型 (线程队列模式)参考链接

https://wenku.baidu.com/view/38b499c85df7ba0d4a7302768e9951e79b89691f.html?_wkts_=1677317893084&bdQuery=%E7%94%9F%E4%BA%A7%E6%B6%88%E8%B4%B9%E6%A8%A1%E5%9E%8B

https://blog.youkuaiyun.com/weixin_34409703/article/details/92112762

[5] 条件系统参考链接

https://baike.baidu.com/item/%E6%9D%A1%E4%BB%B6%2F%E4%BA%8B%E4%BB%B6%E7%B3%BB%E7%BB%9F/53173668?fr=aladdin

https://blog.youkuaiyun.com/weixin_34409703/article/details/92112762

[6] 公式系统参考链接

https://studygolang.com/articles/24125?fr=sidebar

[7] 可配置化数学建模的应用案例图解

https://blog.youkuaiyun.com/guestcode/article/details/127469191?spm=1001.2014.3001.5501

基于Spring可扩展Schema提供自定义配置支持 在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的时候,会显得非常笨拙。一般的做法会用原生态的方式去解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有问题,但实现起来比较繁琐,特别是是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案,完成一个自定义配置一般需要以下步骤:设计配置属性和JavaBean编写XSD文件编写Namespac 阅读详情

相关推荐

透明、可解释与可配置AI的实践与设计原则

本文深入探讨了透明AI、可解释AI和可配置AI的概念,强调了负责任AI的必要性以及在设计和实现AI系统时应遵循的关键原则。透明性和可解释性是建立用户信任的基础,而可配置性则允许AI更好地适应不同用户的需求。文章还指出,要确保AI系统不延续偏见或歧视,并且在各种应用中是安全和可靠的,需要负责任的设计和使用。

weixin_42620563的博客 1018

单据架构—实现页面可配置化

在金融、外贸、财务行业的软件中,往往会存在数据量特别大的表单,传统的开发方式就不适用了,为了解决业务开发中的痛点,迸发灵感,抽象思维,研发单据架构,把创意开发落地。

heyYouU的博客 726

基于激光雷达的目标跟随功能移植到自己的ROS机器人小车上

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载目标跟随的源码二、修改话题名称1.修改/cmd_vel话题名称2.修改/scan话题名称3.修改双电机正反转4.目标跟随功能测试 前言 本人尝试把github上的一个目标跟随项目移植到自己的机器人小车上,并且成功了,最终小车可以跟着人移动,在这里分享一下心得。基于激光雷达的目标跟随,通过获取激光雷达的信息,跟随最近的物体。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载目标跟随的源码 源码地址:https:

weixin_44574633的博客 4461

可配置化软件架构探析及实操秘诀

原文地址:http://www.sohu.com/a/111846238_211120 下一代软件架构是服务化、组件化、可配置化,可配置化成为了软件架构的最高级别。可配置化架构是软件架构努力的方向。可配置化架构是指利用可配置的方式构建软件的方法。它是在领域建模的基础上,以配置表述业务,以配置组织架构元素(服务、组件、数据),并对配置进行规范化、自动化的管理。 软件系统最基本的三个层次是表示层、...

金石软件 3346

2019年数学建模美赛经验总结

北京时间2019年1月29号上午9时,数模美赛结束。美赛结束已经10多天了,我在这次竞赛中负责建模和编程,趁现在记忆还比较清晰,写下这篇博客记录第一次参加数学建模美赛的经历。 补更:2019年4月20日公布成绩,笔者最终获得了美赛一等奖 目录 1、基本情况 2、选题 3、分工合作 4、论文写作 5、建模 6、编程 7、入门资源 ...

Smallactive 7万+

《深入浅出强化学习原理入门》学习笔记(三)机器人找金币应用实例

《深入浅出强化学习原理入门》学习笔记(三)MDP应用实例

lxs3213196的博客 3186

架构方法论-配置化

软件配置是指在软件开发和部署过程中,用于控制软件行为、外观和其他特性的设置和选项。软件配置可以包括各种参数、选项、设置和属性,这些配置可以影响软件的运行方式、外观和功能。环境配置:包括了软件在不同环境(开发、测试、生产)中的配置选项,例如数据库连接信息、日志级别、调试模式等。功能配置:控制软件功能开关的配置,例如开启或关闭特定功能模块、插件或扩展。外观配置:控制用户界面的外观和布局的配置选项,例如主题、颜色、字体等。数据配置:控制数据源、存储路径、文件格式等数据相关的配置选项。

rangdizhen1783的博客 2850

PL/SQL 中的数据导入和导出:CSV 文件格式详解

在 PL/SQL 开发中,数据的导入和导出是常见的操作。本文将深入探讨如何使用 PL/SQL 导入和导出 CSV 文件格式的数据,帮助你轻松地实现数据迁移、备份和数据交换等需求。CSV(Comma-Separated Values)是一种常见的文本文件格式,它以逗号作为字段的分隔符,每行表示一个记录。使用 CSV 格式可以方便地在不同的系统之间共享和传输数据。下面我们将分步介绍如何在 PL/SQL 中导入和导出 CSV 文件格式的数据。

pleaseprintf的博客 8835

游戏引擎中的通用编程技术(一)

你是否正在考虑构建一个游戏引擎呢?你对如何构建一个游戏引擎是否已经有了一个明确的计划呢?你是否已经对如何组织游戏引擎各个模块之间的关系有了一个通盘的考虑?如果没有,那么本文将对你建立一个良好的游戏架构提出一些有益的方案,如果你已经对上面的问题有了一个明确的答案,那么本文不是你需要阅读的内容。本文的目的是给那些没有任何建立完整游戏引擎经验的人提供一些入门性的知识,使他们初步了解一下如何来构建一个游戏

csdn_gamedev的专栏 4901

论文选题难?7种AI加持的万能选题法(全专业通用+工具实测)

AI时代学术选题新范式:7大智能方法破解研究痛点 传统选题方法面临范围失控、资料难寻、创新不足三大痛点,本文提出AI赋能的7种选题方法论: 1.现象+群体法:自动抓取热点与人群特征 2.理论+场景法:经典理论与新兴场景匹配 3.技术+问题法:前沿技术与领域痛点结合 4.对比+变量法:时空维度与变量关系分析 5.热点+理论法:事件传播与理论深挖融合 6.微调+变量法:已有选题变量置换创新 7.AI全流程法:关键要素智能迭代生成 同时警示AI使用的伦理边界,需规避虚构文献、伪造数据等风险,并提供针对本科生、研究

Conan_0728的博客 1876

从机械臂示教到厨房做饭:ACT模仿学习如何让机器人更“人性化”?

本文探讨了ACT(Action Chunking with Transformers)模仿学习技术如何让机器人更“人性化”,特别是在厨房等复杂场景中的应用。通过动作分块(Action Chunking)和时态融合(Temporal Ensemble)技术,机器人能够像人类一样记忆和执行复杂任务,如烹饪。文章还分析了ACT在家庭场景中的落地挑战及其在康复医疗、柔性制造等领域的跨领域应用潜力。

weixin_30613343的博客 255

HarmonyOS ArkTS API 24:构建智能学习笔记管理与复习规划平台“接口定义数据契约 + 类实现可观察行为“的设计模式在 ArkTS 中非常常见,它实现了数据结构与行为能力的分离

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2301_79516720的博客 157

【学习系列】SAP RAP 1:关于RAP的一些基本介绍

摘要:SAP RAP和CAP是两种不同的开发模型。RAP(RESTful ABAP)用于在S/4HANA等ABAP平台上构建现代业务应用,基于CDS+OData,适合ABAP开发者扩展核心业务。CAP(云应用编程模型)是BTP上的云原生框架,支持Node.js/Java,适合构建跨系统集成应用。RAP优势在于与S/4HANA深度集成,CAP则更灵活,支持多云环境。选择依据主要取决于开发平台(S/4HANA或BTP)、技术栈(ABAP或Node.js/Java)及应用场景(核心扩展或云原生开发)。

DeveloperMrMeng的博客 1160

游戏设计中的配置文件

游戏设计中的配置文件   1、概述 游戏开发中,会使用到很多配置文件。适当的利用配置文件,可以有效实现程序设计的灵活性,避免对程序功能的不断修改,降低程序开发人员与策划人员之间的沟通成本,提高效率。对策划人员来说,也可以方便的进行数值测试,以达到设计目的。 2、问题 但随着项目的推进,配置文件的数量以及需要配置的项目越来越多,维护变得越来越困难,出错几率就会增加。当然,通过自动化配置、自

比特南柯的专栏 8473

Python爬虫实战:利用Selenium与异步技术高效获取雪球财经数据

雪球财经作为国内领先的投资社交平台,汇聚了大量股票数据、财经资讯和投资者观点。对于金融数据分析师、量化投资者和研究人员来说,获取雪球平台的实时数据具有重要价值。然而,雪球网站采用了多种反爬虫机制,包括动态内容加载、请求频率限制和用户行为检测等,使得传统爬虫技术难以有效获取数据。本文将介绍如何使用Python的最新爬虫技术,包括Selenium WebDriver、异步请求处理和智能等待策略,来高效、稳定地爬取雪球财经数据。我们将重点解决以下几个技术难点:动态加载内容的处理登录状态维持与模拟。

2201_76125261的博客 1106

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SoonFx Runtime表达式引擎实战:5个游戏数值计算高级技巧

🎮 作为一款专为RPG和策略游戏设计的TypeScript游戏数值引擎,SoonFx Runtime表达式引擎为开发者提供了强大的数值计算和公式解析能力。本文将分享5个实用的高级技巧,帮助你更好地利用这个零依赖、类型安全的游戏数值引擎来优化游戏开发流程。 ## 🎯 为什么选择SoonFx Runtime表达式引擎? 在游戏开发中,数值计算是核心环节。传统的硬编码方式往往导致代码难以维护、迭

gitblog_00838的博客 422

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

干货!深度解析游戏引擎开发中的算法

https://www.fgba.net/sitemap.xml

ludongguoa的博客 990

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

游戏数据定义是引擎的核心部分

虽然这个是很明显的道理 ,但是最近想基于魔兽世界美工资源写个游戏的时候感触非常明显。记得《the art of unix programming》上有说“数据是程序的灵魂”,手里的参照代码必须只能用其基本道理,具体实现都需要根据数据类型重新实现。游戏需求和程序员实现能力决定游戏的渲染pipeline,进而决定数据类型和制作工具。好的引擎从数据与工具上即可看出来。

安柏霖的专栏 1340

前端配置化开发的设想

如何屏蔽一层层的底层代码,抽象出一个绝对高级的接口,使得设计人员使用这个接口就可以设计网站和App,顺着这个思路,可以想象也许有一天会解放前端的生产力,成为设计上的基本工具。 配置化与中间代码解释执行的性能问题界面功能设计的范围与准确性后台数据的对接与交互中间状态下的交互设计 配置化与中间代码 将常用的前端内容通过配置进行展现,配置由静态字符串与表达式组成,配置可以设计的比源代码简单易懂

L472547033的博客 3017

关于可配置程序设计的简单理解

写这篇文章的目的,不在于说明相应的细节,而在于理解可配置的一些含义。代码编写中存在的一些问题 在程序设计中,通过代码编写的逻辑是存在这样子的一个问题的。 假如你将程序的逻辑全部放在代码中(即使是字符串),那么这样子造成的影响会使得你的程序变得十分的不灵活。为什么呢? 每次你对于程序的一些改动,都需要进行重新编译的。这就会为开发人员带来很大的不便。可配置的程序设计就是为了

课桌 5065

重构校验逻辑可配置化

业务彼此隔离 业务与业务的隔离需要有一个标识来唯一标志 1.1 在业务处理过程中,可以知道这个业务线需要的具体业务策略和处理规则 为什么要实现业务之间的彼此隔离? 2.1 业务之间的互不影响:将变化的东西缩小到业务线内,不可能改动一个业务线的需求,结果把其它业务线影响了 2.2 业务的可扩展性:比较好的状态就是具备可配置,稍微配置一下,一个新业务线就接入 不同业务线之间有一条共性的业务流程,这个业务流程是业务的生命周期 3.1 在优惠券中,核心的业务流程就四个:建券、发券、用券、退券,不管什么

snail-jie的博客 1305

业务逻辑配置化的可选技术方案

问题 在很多业务应用中,往往有很多文案及按钮的业务逻辑,很容易因为产品的策略变更而变化,或因为来了新业务而新增条件判断,或因为不同业务的差异性而有所不同。如果通过代码来实现,通常要写一串if-elseif-elseif-else语句,且后续修改扩展比较容易出错,需要重新发布,灵活性差。 可采用配置化的方法来实现按钮逻辑,从而在需要修改的时候只要变更配置即可。业务逻辑的代码形式一般是: p...

weixin_30715523的博客 944

可配置化 CRUD 服务调研

前期产品已为数据分析提供了较好的数据查询服务,但对于新增、修改和删除暂未实现。故尝试在这次新版本中提供完整的 CRUD 服务,以便提高效率。

zhangxin09的专栏 666

16. 在工厂方法中读取配置,生成可配置化的对象

在工厂方法中读取配置,生成可配置化的对象

enlyhua的专栏 539

游戏数值——LOL篇 以LOL为起点-说游戏数值设计核心思路

附文 文档在今年三月份我动笔写了一小部分,但当时思路凌乱,行文梗阻,于是丢在一边构思了半年,现在又回过头来慢慢写,希望能写好写完吧,初衷是希望即时萌新也能看懂,但是好像并不能行——本来几个数据就能弄好的东西,我不得不用文字把他们阐述清楚(可是如果不说清楚,只留下一串数据那就毫无意义可言——比如RPG中装备掉落率,如果不说清楚的掉落率...

ddz777751的博客 3380
上一篇: 一个单生产-多消费模式下无锁方案(ygluu/卢益贵)
下一篇: 游戏高度可配置化(二)用“模型抽象”化解游戏策划和程序员的江湖恩怨
ygluu
博客等级 码龄17年 300粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值