Golang新手入门交流会 - 伦敦站

Golang新手入门交流会 - 伦敦站 我是Go语言的新手。学习了Todd McLeod的优秀公开课程,虽然课程很棒,但我觉得对所学内容缺乏实际应用经验,或者说不知道如何将知识付诸实践。

我想参加伦敦的一些Go语言线下聚会,但找到的唯一一个聚会并不适合初学者。因此我在想,是否有兴趣由我在伦敦组织一个面向Go语言初学者的聚会。我们可以一起编写代码,或者邀请专业人士来给我们开设工作坊等。有人对此感兴趣吗?

1 回复

更多关于Golang新手入门交流会 - 伦敦站的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这是一个很棒的想法!作为 Go 语言开发者,我完全理解初学者在理论学习后缺乏实践经验的困境。组织一个面向初学者的 Go 语言线下聚会能有效帮助大家将知识转化为实际技能。

以下是一个简单的 Go 代码示例,适合在初学者聚会中作为练习项目。这个示例展示了如何创建一个基本的 HTTP 服务器,处理 GET 和 POST 请求,并返回 JSON 响应。你可以用它作为工作坊的起点,让参与者动手修改和扩展功能。

package main

import (
    "encoding/json"
    "log"
    "net/http"
    "strconv"
)

type User struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
}

var users = []User{
    {ID: 1, Name: "Alice"},
    {ID: 2, Name: "Bob"},
}

func getUsers(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    if err := json.NewEncoder(w).Encode(users); err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }
}

func addUser(w http.ResponseWriter, r *http.Request) {
    if r.Method != http.MethodPost {
        http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
        return
    }

    var newUser User
    if err := json.NewDecoder(r.Body).Decode(&newUser); err != nil {
        http.Error(w, err.Error(), http.StatusBadRequest)
        return
    }

    newUser.ID = len(users) + 1
    users = append(users, newUser)

    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusCreated)
    if err := json.NewEncoder(w).Encode(newUser); err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }
}

func main() {
    http.HandleFunc("/users", getUsers)
    http.HandleFunc("/users/add", addUser)

    log.Println("Server starting on :8080")
    if err := http.ListenAndServe(":8080", nil); err != nil {
        log.Fatal("Server failed to start: ", err)
    }
}

如何运行和测试:

  1. 将代码保存为 main.go
  2. 在终端运行 go run main.go
  3. 使用工具如 curl 测试端点:
    • 获取用户列表:curl http://localhost:8080/users
    • 添加新用户:curl -X POST -H "Content-Type: application/json" -d '{"name":"Charlie"}' http://localhost:8080/users/add

在聚会中,可以引导参与者扩展这个示例,比如添加数据库集成(使用 SQLite 或 PostgreSQL)、错误处理优化或单元测试。通过实际编码,大家能更快掌握 Go 的核心概念,如并发、接口和包管理。

如果你在伦敦组织这样的活动,我建议定期举办(例如每月一次),并设置不同主题的会话,如 Web 开发、CLI 工具或微服务。这能持续激发初学者的兴趣,并逐步构建本地 Go 社区。祝活动顺利!

回到顶部