GO框架设计与实践笔记 | 青训营

53 阅读3分钟

GO是一个基于 JVM的前端框架,在实现上, GO可以实现许多 JVM不支持的功能。其中包括:

使用 GOPub的远程方法调用,使用 GOLF的远程方法调用,使用 GOSETTINGS的本地方法调用,使用 GORUPAR的本地方法调用等。另外, GO还支持多种异步操作(例如异步收发 JSON格式消息),这些操作在其他框架中都不能实现。

下面我们就来深入分析下 GO框架的设计思想和实践要点。

  1. 应用框架

在应用框架中,我们通过使用 JavaScript模板实现了服务端代码和客户端代码的解耦,从而使得服务端代码不需要与客户端代码解耦。

我们可以将服务端的代码(服务注册、服务卸载等)放在一个文件中,然后通过调用这些文件中的方法来实现相应功能。

这样做有两个好处,一是通过调用这些文件中的方法来实现相应功能,我们只需要对调用文件进行编译就可以了,大大简化了开发难度;二是通过调用这些文件中的方法来实现相应功能,我们只需要关心 API接口,而不需要关心具体的实现细节。

因为应用框架中不需要创建任何单独的类,所以应用框架中的类不会成为应用程序运行时的负担,从而使得应用框架更加轻量级。

  1. 文件系统

GO的文件系统基于 Java虚拟机。它的设计非常好,能够处理不同类型的文件。它的特点是:

与其他 Java文件系统相比,它没有额外的头文件;

使用了一种简单的垃圾收集机制;

在 GROUP BY模式下,所有类型的文件都会被索引到一个列表中。

  1. 日志系统

日志系统是一个重要的组件,它负责记录用户的操作(例如刷新页面),以及服务器对请求的响应。日志系统会生成一个日志记录(pagerank),并将其发送到一个独立的数据库中。通过这个数据库,用户可以查询日志记录,并且可以将日志记录下载到本地。

在实践中,我们使用 GO框架进行了以下几种类型的日志系统实现:

  1. 注册与解析

GO框架提供了一个注册中心,在注册中心中,可以用来注册与解析来自于不同服务的请求。我们在前面也提到过,由于 JVM与 Go是不一样的,所以在注册中心中,会根据请求的来源提供一个统一的解析入口。

这一部分主要是解决了 JVM与 Go不兼容的问题,通过它我们可以很方便地使用 GO进行 JSON格式的消息收发。

在上面的案例中,我们使用了 googlewriter. handler ()方法对请求进行解析和处理。

  1. 调试器

调试器是用于调试 GO代码的一个工具。使用调试器可以直接调试 GO代码,从而更好地理解 GO代码。

调试器是使用 JavaScript编写的,使用调试器时,只需在调用时传递参数,并在调试器中查看参数即可。但如果想要调试更深层次的功能,例如读写数据库,那么就需要使用一个框架。例如 TypeScript,它是一个基于 Java的 Java调试器。使用 TypeScript时,可以在调试器中查看所有的调试信息。你还可以在调试器中创建一个调试日志文件(。 py),记录调试器中的所有信息(包括所有错误信息和日志)。