Golang新手开发者求助:常见问题解答指南

Golang新手开发者求助:常见问题解答指南 你好。我是一名软件开发者,主要从事专有ERP SQL开发(Peoplesoft),过去也接触过一些C和VB语言。现在我想学习一些新东西,为本地创客空间开发一个简单的个人使用的Web应用。我希望能在求职论坛上发布信息,找到一个能帮我搭建基础Web应用的人,以便我后续在此基础上进行开发。同时,我也希望能在这里获取一些信息,来完善我的需求。

我已经阅读了帮助论坛顶部的资源指南(顺便说一句,这是个很棒的资源),里面有很多关于语言基础、书籍和IDE的优秀参考资料,但有些领域让我不太清楚该从哪里入手。

最终,我想开发一个基于Web的数据库应用程序,本质上是一个维护会员数据并允许会员登录和更新其信息的系统。

我看到的许多示例视频都是在命令行层面操作的,这不是我偏好的环境,所以市面上存在的IDE对我来说是个好消息。目前有没有大家普遍偏爱的IDE?

另外,在数据库方面,有没有首选的平台,比如NoSQL或MySQL?最好是有用于构建表的IDE。我尝试过在Visual Studio中使用MySQL,版本问题简直是一场噩梦,我认为Go会更简单一些(这是我的假设)。

如果我打算将其做成一个Web应用,我是应该直接在服务器/云上开始开发,还是先在本地托管然后发布?由于我对这个平台比较陌生,我对过渡过程有些担忧,特别是如果我计划雇人来让核心应用运行起来的话。虽然我不介意最终付费租用服务器来托管它,但我希望能找到一个像Pantheon支持Drupal那样的免费开发环境。

最后一个问题……我知道Web/HTML是独立的东西,但是否有一些Go模块/包可以配合使用的默认“模板”,这样我就不必非得成为CSS专家了?

提前感谢。


更多关于Golang新手开发者求助:常见问题解答指南的实战教程也可以访问 https://www.itying.com/category-94-b0.html

7 回复

看看《Let’s Go》这本书吧!它真的会很有帮助!

https://www.alexedwards.net/

更多关于Golang新手开发者求助:常见问题解答指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


顺便提一下,我已经解决了部分疑问。数据库选用MongoDB,集成开发环境使用VSCode。不过对于网页模板还有些好奇,我会继续搜索了解的。

很好的建议。我在 PeopleSoft 中处理 REST 接口,所以对此比较熟悉,但仅限于 PS 框架内。后一种方法更有可能让我坚持下去而不会感到沮丧。我也赞同从简单开始再逐步扩展的方法。谢谢。

感谢您的回复。经过搜索,我认为我的术语使用有误。是的,我会想使用标准模板,但我可能想表达的意思是“主题”。基本上,就是一个具有特定样式的网页组件的大致结构,这样我就不必从头开始构建所有的HTML。这样理解对吗?还是说标准模板包也具备这个功能?

看起来你正走在正确的道路上……

如果你想利用你的SQL经验,可以尝试使用 GORM + sqlite。

对于Web模板,我会直接使用标准库。你所需的一切都在 net/httpencoding/json 中(或者,如果你更喜欢在服务器端进行渲染,也可以使用 html/template)。

祝你在探索之旅中好运,并享受其中!

所以,你的问题其实不是一个Go语言的问题,而更像是一个关于前端开发的问题。 这不是我日常工作会做的事情,也不是我了解很多的领域。 但对于我的个人项目,我会使用Twitter Bootstrap来获得看起来不错的网页。

就Web应用的机制(而非设计)而言,有两种方法。 一种是提供一个处理数据的REST API,然后用某个JavaScript框架编写一个应用,该应用与API通信并在浏览器中漂亮地渲染数据。 另一种是直接使用html/template包在服务器端生成HTML。 前一种方法允许更动态的网页,更容易测试后端,并提供一个API接口(你最终总是会需要它),并且在表示层和业务逻辑层之间提供了良好的分离。 后一种方法更容易上手,并且不需要折腾JavaScript或费力学习其框架。

我想说,从简单的开始。让一些基础的东西运行起来。然后迭代。 最重要的是,享受乐趣!

对于你的需求,Go语言是一个很好的选择,它特别适合构建高性能的Web应用和API。以下是一些针对你问题的具体解答和示例代码:

1. IDE推荐

  • GoLand:JetBrains出品,功能全面,对Go语言支持最好,但需要付费。
  • Visual Studio Code (VS Code):免费,通过Go扩展提供优秀的支持,包括代码补全、调试和测试工具。
  • LiteIDE:轻量级,专为Go设计,适合偏好简洁环境的开发者。

2. 数据库选择

  • MySQL:关系型数据库,成熟稳定,Go有官方database/sql包和第三方驱动如github.com/go-sql-driver/mysql支持。
  • PostgreSQL:另一个强大的关系型数据库,驱动如github.com/lib/pq
  • NoSQL:如MongoDB,适合非结构化数据,驱动如go.mongodb.org/mongo-driver
  • 示例:使用MySQL和Go连接数据库:
    package main
    import (
        "database/sql"
        _ "github.com/go-sql-driver/mysql"
    )
    func main() {
        db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
        if err != nil {
            panic(err)
        }
        defer db.Close()
    }
    

3. 开发环境部署

  • 建议先在本地开发,使用Docker容器化数据库和Go应用,确保环境一致性。
  • 本地测试后,再部署到云服务器(如AWS、Google Cloud、Heroku)或VPS。Heroku提供免费层,适合初期部署。

4. Web模板和CSS

  • Go标准库html/template支持模板渲染,可嵌入HTML和CSS。
  • 第三方库如github.com/gin-gonic/gin(Web框架)内置模板支持,简化开发。
  • 示例:使用html/template渲染简单页面:
    package main
    import (
        "html/template"
        "net/http"
    )
    func main() {
        tmpl := template.Must(template.ParseFiles("template.html"))
        http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
            tmpl.Execute(w, nil)
        })
        http.ListenAndServe(":8080", nil)
    }
    
  • 结合前端框架如Bootstrap,可快速构建UI,无需深入CSS。

5. 会员系统示例

以下是一个简单的会员登录和更新信息的Go Web应用框架,使用MySQL和Gin框架:

package main
import (
    "github.com/gin-gonic/gin"
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func initDB() {
    var err error
    db, err = sql.Open("mysql", "user:password@tcp(localhost:3306)/membership")
    if err != nil {
        panic(err)
    }
}
func main() {
    initDB()
    defer db.Close()
    r := gin.Default()
    r.LoadHTMLGlob("templates/*")
    r.GET("/login", showLoginPage)
    r.POST("/login", handleLogin)
    r.GET("/profile", showProfile)
    r.POST("/profile", updateProfile)
    r.Run(":8080")
}
func showLoginPage(c *gin.Context) {
    c.HTML(200, "login.html", nil)
}
func handleLogin(c *gin.Context) {
    // 验证登录逻辑
}
func showProfile(c *gin.Context) {
    // 显示会员信息
}
func updateProfile(c *gin.Context) {
    // 更新会员信息
}

6. 免费开发环境

  • 使用GitHub Codespaces或Gitpod,提供在线的Go开发环境。
  • 本地可搭配Docker,模拟生产环境。

这些示例和工具能帮助你快速起步。Go语言的简洁性和强大标准库,使得构建Web应用变得高效。

回到顶部