如何集成Golang后端和Javascript(three.js)前端?

如何集成Golang后端和Javascript(three.js)前端?,javascript,3d,go,three.js,Javascript,3d,Go,Three.js,我想用我最喜欢的编程语言Golang编写一个3D应用程序。然而,我不希望直接使用原生OpenGL作为图形前端,因为这将需要比我所能容忍的更大的学习曲线。此外,我真的不想使用go:ngine这样的Golang游戏引擎 在做了一些研究之后,我发现了令人惊叹的WebGL Javascript library three.js,我非常感兴趣,在几个小时内完成了一门Javascript入门课程。我根本不是一个真正的web开发人员,所以我想知道,对于我来说,主要用Go编写应用程序,但使用3.js前端,会有多

我想用我最喜欢的编程语言Golang编写一个3D应用程序。然而,我不希望直接使用原生OpenGL作为图形前端,因为这将需要比我所能容忍的更大的学习曲线。此外,我真的不想使用go:ngine这样的Golang游戏引擎

在做了一些研究之后,我发现了令人惊叹的WebGL Javascript library three.js,我非常感兴趣,在几个小时内完成了一门Javascript入门课程。我根本不是一个真正的web开发人员,所以我想知道,对于我来说,主要用Go编写应用程序,但使用3.js前端,会有多实际

一些具体问题:

  • 像这样使用Javascript/three.js作为Golang服务器的前端是否值得/实用
  • 如果值得的话,我可以在哪里学习如何将两者干净地结合起来
  • 如果真的不值得,我有哪些选择
谢谢,欢迎回复

编辑: 您是否计划在Go中对几何体进行操作,可能是实时操作,并使用WebSocket与Javascript层通信

是的,这就是我现在的想法。我打算我的(Golang)程序根据用户提供的一些参数生成顶点和三角形流。每个“结构”都是在用户提供参数(我在Javascript前端看到的是滑块+输入框)后一次生成的

下面是Go程序可能生成的一个示例,绘制在GNUPlot中:
(来源:)

如果是这种情况,那么您就有点低估了Javascript。您应该用Javascript编写大部分应用程序,并将Go用作经典的后端服务层,如用户帐户、持久状态等

我很乐意这么做,除了以下原因:

核心生成过程基本上取决于goroutine和channels
  • 我对web开发几乎一无所知,包括前端和后端 因此,我想我是在询问以下三种可能性之一的实施细节:
  • 在JS中编写大部分程序,包括生成器,在Go中编写最少的后端
  • 在Go中编写大部分程序,并将JS用作图形前端

  • 还有什么?
  • 您的问题的答案在很大程度上取决于您计划在Go组件和Javascript组件之间划清界限的具体位置。从您描述问题的方式中,我感觉您想用Go编写大部分应用程序,并且只将JS用作显示层?我不建议这样做

    重新表述我的问题:您是否计划在Go中对几何体进行操作,可能是实时操作,并使用WebSocket与Javascript层通信?如果是这种情况,那么您就有点低估了Javascript。您应该用Javascript编写大部分应用程序,并将Go用作经典的后端服务层,如用户帐户、持久状态等


    如果我知道您的具体计划,我可能会给出更具体的答案。

    我建议省略整个Websocket方面,因为这只是一种可能的优化(甚至可能不是这样)

    如果需要依赖Go的并发模型,那么就使用Go编写组件,然后使用Go中的Web服务器获取来自HTML请求的参数,使用它们计算结果并以JSON格式发回数据

    在前端,当用户更改参数时,您将只关注发送此请求,对于JSON数据的显示,您可以立即使用ThreeJS

    不过,您仍然需要学习一些web开发和Javascript。但是,嘿,他们说网络是未来;-)


    我认为这是处理您的案例的方法,因为您的应用程序以一种非常严格的请求-结果方式运行。

    根据您的输入更新了我的问题对我来说听起来像是一个计划;我不介意(最后)学习一点网络开发。你认为HTML、CSS和Javascript会把它裁剪成这样吗?还是有更一般的东西需要我关注?这就是你所需要的。确保你专注于你的核心问题。首先尝试一下简单的ThreeJS设置。然后看看如何通过Javascript向简单的Go服务器发出基本的AJAX请求。