Go

PHPからGoへ移行するバックエンドエンジニアへの正直なガイド

なぜGoを学んだのか

8年間のPHP/Laravelの後、ポートフォリオサイトのGo/Echoバックエンドを構築し始め、Goを要件とするプラットフォームエンジニアリングポジションも探し始めました。


意外と同じこと

HTTPモデルは本質的に同じです。リクエストが入り、レスポンスが出る。ミドルウェアチェーン。1日で慣れます。

e.GET("/bookings/:id", func(c echo.Context) error {
    id := c.Param("id")
    booking, err := bookingService.Find(id)
    if err != nil {
        return c.JSON(500, map[string]string{"error": err.Error()})
    }
    return c.JSON(200, booking)
})

まとめ

概念PHP/LaravelGo
エラー処理try/catch例外エラー値を返す
DIサービスコンテナ明示的なコンストラクタ注入
並行処理キュー/非同期ゴルーチン+チャネル
起動時間~500ms<10ms