From e9c3eba15c529543aee3bebf3da2eac6f5f2b00e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=94=E6=B0=91=E5=B0=8F=E9=95=87?= <262610965@qq.com> Date: Mon, 8 Jul 2024 11:06:58 +0800 Subject: [PATCH] =?UTF-8?q?:whale:=20[=E5=AF=B9=E6=8E=A5=E6=96=87=E6=A1=A3?= =?UTF-8?q?]=20fix=20=E6=BA=90=E7=A0=81=E4=B8=8D=E5=9C=A8=E5=90=8C?= =?UTF-8?q?=E5=8C=85=E4=B8=8B=EF=BC=8C=E8=A7=A3=E6=9E=90=E5=87=BA=E9=94=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++++++++++++++- .../skeleton/core/doc/DocumentAnalyseKit.java | 5 ++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 60d981bf6..3331c835c 100644 --- a/README.md +++ b/README.md @@ -579,7 +579,21 @@ ioGame 具备[全链路调用日志跟踪](https://www.yuque.com/iohao/game/zuru -与前端对接联调方面,ioGame 提供了[游戏文档生成](https://www.yuque.com/iohao/game/irth38)的辅助功能,可以做到**代码即对接文档**。简单地说,当业务代码编写完后,框架会自动生成最新的文档。如果没有游戏文档的生成,那么你将要抽出一些时间来编写、维护对接文档的工作,而且当团队人数多了之后,文档就会很乱、不同步、不是最新的、忘记更新等情况就会出现。 +与前端对接联调方面,ioGame 提供了[游戏文档生成](https://www.yuque.com/iohao/game/irth38)的辅助功能,可以做到**代码即对接文档**。简单地说,当业务代码编写完后,框架会自动生成最新的文本文档。ioGame 除了能提供文本文档的生成外,还能支持生成与客户端联调的代码(即代码文档)、并且是可扩展的。通常,客户端联调代码有: + +1. 支持生成 C# 客户端的联调代码,通常用在 Unity、Godot 客户端,具体可阅读 [SDK C# 代码生成](https://www.yuque.com/iohao/game/fgrizbhz4qqzd1vl)。 +2. 支持生成 TypeScript 客户端的联调代码,通常用在 cocos、laya 客户端,具体可阅读 [SDK TypeScript 代码生成](https://www.yuque.com/iohao/game/mywnvkhemv8wm396)。 + + + +与前端对接联调方面,ioGame 提供了[生成与客户端联调的代码](https://www.yuque.com/iohao/game/mywnvkhemv8wm396)。代码生成可为客户端开发者减少巨大的工作量,并可为客户端开发者屏蔽路由等概念。直接面向接口编程,面向接口编程的几个优点 + +1. 帮助客户端开发者减少巨大的工作量。 +2. 为双方联调**减少心智负担**。联调代码使用简单,与本地方法调用一般丝滑。 +3. 帮助客户端开发者屏蔽与服务器交互部分,将更多的精力放在真正的业务上。 +4. 方法**参数类型安全、明确**。可有效避免安全隐患,从而减少联调时的低级错误。 +5. 减少服务器与客户端双方对接时的沟通成本,**代码即文档**。生成的联调代码中有文档与使用示例,即使是新手,也能将使用成本拉到 0。 +6. 抛弃传统面向协议的对接方式,使用直观易用面向接口的对接方式。传统的对接方式,在客户端发送请求后并不能知道该请求会返回什么,这通常需要在协议文件中阅读与查找。如果协议较少时,这样做的问题并不大,但如果有数百个协议时,这样的工作方式是低效的,因为协议文件中存在着大量的干扰因素。 diff --git a/common/common-core/src/main/java/com/iohao/game/action/skeleton/core/doc/DocumentAnalyseKit.java b/common/common-core/src/main/java/com/iohao/game/action/skeleton/core/doc/DocumentAnalyseKit.java index 9633f0d8d..8bd915f43 100644 --- a/common/common-core/src/main/java/com/iohao/game/action/skeleton/core/doc/DocumentAnalyseKit.java +++ b/common/common-core/src/main/java/com/iohao/game/action/skeleton/core/doc/DocumentAnalyseKit.java @@ -59,7 +59,10 @@ JavaClass analyseJavaClass(Class clazz) { String srcPath = sourceFilePathFun.apply(resource).replace("class", "java"); File file = new File(srcPath); - javaProjectBuilder.addSourceTree(file); + // 源码在此包才做处理 + if (file.exists()) { + javaProjectBuilder.addSourceTree(file); + } return javaProjectBuilder.getClassByName(clazz.getName()); }