这个网站是用Golang开发的吗?

这个网站是用Golang开发的吗? https://forum.golangbridge.org/ 这个网站是用 Go 语言构建的吗?

6 回复

Go 语言不适合用于网站设计吗?

更多关于这个网站是用Golang开发的吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


据我所知,这个论坛使用的是 Discourse 平台。

Discourse 的后端使用 Ruby on Rails 构建,前端使用 Ember.js。它还使用 PostgreSQL 作为数据库,Redis 用于缓存,以及 JavaScript 来实现额外的前端功能。

Length_Power:

Go 语言不适合用于网站设计吗?

在我看来,Go 语言比大多数其他语言更适合用于网站开发。但这只是个人观点 🙂

Length_Power:

Go 语言不适合做网站设计吗?

这真是个非常有趣的笑话。 我不知道你是怎么得出这个结论的,但很明显你并不了解 Go 语言。 你应该去了解一下 Go 语言被用在哪些项目中,而不是仅仅根据一个网站就妄下结论。

根据你和其他帖子来看,你似乎是编程新手。你可能需要退一步,读一本好的入门书籍,全面了解Go语言和编程。"网页设计"与Go语言无关。Go能提供网页内容吗?它是否拥有模板引擎以及创建Web应用所需的第三方支持?答案是肯定的。

如果你想构建类似Discourse的软件,可以使用Go作为后端来创建RESTful API,并使用某种前端框架来处理用户界面。如果你想看一个后端用Go、前端用React编写的论坛软件示例,可以查看Apache Answer。这里有一个专门用于Go的实例

除了标准库,Web开发还有很多其他选择。你可以使用templ,并可能将其与htmx结合。很多人在开发现代Web应用时使用这种组合,他们希望应用主要是服务器端渲染,但有时又希望它具备单页应用的感觉。

以下是一些供你查看的链接:

像Uber和纽约时报这样的公司已经在Go语言上投入了大量资源。每种语言/生态系统/平台都是一系列权衡的结果,而目前Go在工具链、足够好的性能、编译时间、依赖管理、生态系统等方面取得了相当不错的平衡。它在Web/后端领域尤其出色,部分原因在于其并发模型以及处理IO流的方式等。它非常适合网络类应用,而Web正是其中之一。

是的,https://forum.golangbridge.org/ 这个网站确实是使用 Go 语言构建的。它基于开源的 Go 语言论坛软件 Flarum,但后端使用了 Go 语言实现。

具体来说,这个网站使用了以下技术栈:

  • 后端:Go 语言(使用标准库和第三方包处理 HTTP 请求、数据库操作等)
  • 前端:JavaScript(React 框架)和 CSS
  • 数据库:PostgreSQL 或 MySQL(用于存储用户数据、帖子内容等)

以下是一个简化的 Go 代码示例,展示了如何使用 Go 处理 HTTP 请求并返回论坛页面(模拟类似功能):

package main

import (
    "fmt"
    "net/http"
    "log"
)

func main() {
    // 注册路由处理函数
    http.HandleFunc("/", homeHandler)
    http.HandleFunc("/topic/", topicHandler)
    
    // 启动服务器
    port := ":8080"
    fmt.Printf("论坛服务器运行在 http://localhost%s\n", port)
    log.Fatal(http.ListenAndServe(port, nil))
}

// 首页处理函数
func homeHandler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "text/html; charset=utf-8")
    fmt.Fprintf(w, `
        <h1>Go 语言论坛</h1>
        <p>这是一个使用 Go 语言构建的论坛示例。</p>
        <a href="/topic/1">查看示例话题</a>
    `)
}

// 话题页面处理函数
func topicHandler(w http.ResponseWriter, r *http.Request) {
    topicID := r.URL.Path[len("/topic/"):]
    w.Header().Set("Content-Type", "text/html; charset=utf-8")
    fmt.Fprintf(w, `
        <h1>话题 #%s</h1>
        <p>这是使用 Go 处理动态路由的示例。</p>
        <a href="/">返回首页</a>
    `, topicID)
}

运行这个示例后,访问 http://localhost:8080 可以看到一个简单的论坛界面。实际论坛网站(如 golangbridge.org)的实现会更复杂,包括用户认证、数据库集成、实时更新等功能,但核心是基于 Go 的 HTTP 服务器处理请求。

回到顶部