Go言語 実践ハンズオン

#プログラミング言語・ツール

Go言語 実践ハンズオン 〜Web API実装からテスト自動化まで、Goで作りきる2日間〜

「書ける」から「設計できる」Go言語へ。

Overview

研修概要

Go言語 実践ハンズオンは、Goで業務Webシステムを構築するための「標準構成で組み立てる実装力」と「テストで品質を守る検証力」の習得を目標とした実践型研修です。文法の学習を終えた段階の方に、次に必要となる実装の型を提供します。

API実装・データベース連携・画面表示・テスト自動化までを、2日間で一気通貫に扱います。設計の型としてDDD、テストの型としてBDDを実装の中に織り込むことで、動くだけのコードから脱却できる開発体制を確立させます。

Issues

こんな課題を持つ企業におすすめ

開発現場

  • Goの文法研修は終えたものの、実務規模のアプリケーションを組み立てる手順がわからず、実案件への投入に踏み切れていない。
  • Goで開発を始めたが、ビジネスロジックがHandlerに集中した”スパゲッティコード”になり、修正のたびに影響範囲の調査へ時間を取られている。
  • テストは書いているが、「何をテストすべきか」の基準がなく、リリース前の品質判断に自信が持てない状態が続いている。
  • Goの採用実績が社内に少なく、ライブラリ選定やディレクトリ構成の判断が特定の担当者に依存している。
Goals

本研修の到達目標

For Engineers

開発現場

  • 1 GoでWeb APIを構築できるようになります GinとGORMを使い、ルーティングからデータベース操作までを実装できるようになります。あわせてDDDの層分割を設計の型として扱い、責務が明確なGoコードを書けるようになります。
  • 2 Goのテストを実務水準で書けるようになります テストフレームワークGinkgoでBDD形式のテストを実装します。振る舞い単位でテスト対象を定義することで、テスト漏れのない品質担保ができるようになります。
  • 3 Goでアプリケーション全体を組み立てられるようになります DIコンテナ(Uber fx)とテンプレートエンジン(Jet)を使い、API・画面・テストが連携する構成を実装します。自社プロジェクトの構成を自ら設計できるようになります。
Features

本研修の特長

Feature 01

現場採用率の高いGoライブラリを実装で網羅

Gin・GORM・Ginkgo・Uber fx・Jetといった、実務で採用されるライブラリをGo 1.24環境で扱います。個別の使い方の解説にとどまらず、組み合わせて1つのWebシステムとして完成させるところまで提供します。

Feature 02

設計とテストの型をGoのコードとして習得

DDDやBDDを概念として解説するのではなく、Goの実装として書き下ろします。用語を覚える研修ではなく、Goで書く際の判断基準として現場に持ち帰れる構成です。

Feature 03

Playwright for Goによるブラウザ自動テスト

国内の研修コースではほぼ扱われていないPlaywright for Goを採用し、GoエンジニアがE2Eテストを自ら書く実践を提供します。QA担当に依存しない自動テスト体制への第一歩を、研修内で実装まで完結させます。

Curriculum

研修カリキュラム

期間:2日間 / 使用言語:Go 1.24

日程 章・学習テーマ 学習内容・習得スキル
1日目 第1章:Go開発環境のセットアップ

Rancher Desktop(またはDocker Desktop)でコンテナ環境を構築します。Go 1.24・VSCode・各種ライブラリを導入し、動作確認まで行います。

第2章:Goによるアプリケーション構造の設計

Goの型システムとインターフェイスを使い、役割ごとにコードを分割する構造を実装します。ここではDDDのEntity・Value Object・Repositoryを、Goで書く際の設計の型として扱います。

第3章:Gin × GORMによるWeb API実装

WebフレームワークGinでルーティングとハンドラを実装します。O/RマッパーGORMでデータベース操作を行い、Handler・Service・Repositoryの責務分離を体験します。

第4章:Uber fxによる依存性注入

Uber社製DIコンテナ「fx」で、コンポーネントの組み立てを外部から制御します。差し替えやすくテストしやすいGoの構成を構築します。

2日目 第5章:Ginkgoによるテストコードの実装

GoのテストフレームワークGinkgoを使い、振る舞い単位でテストを記述します。BDDの記法を用いることで、テストの意図と網羅性を担保する基準の作り方を習得します。

第6章:Jetによる画面実装とサービス分割

GoのテンプレートエンジンJetでフロント画面を実装します。APIサーバーとフロントを独立したコンテナとして分割し、サービス間通信とマルチコンテナ管理を構築します。

第7章:Playwright for GoによるE2Eテスト

Playwrightのgo版で、ユーザー操作シナリオをGoコードから自動再現します。手動テストを自動化し、リリース品質を担保する仕組みを構築します。

第8章:総合演習・コードレビュー

2日間で構築したシステムを通しで確認します。ライブラリ選定と構造化の判断理由を言語化し、自社プロジェクトへの適用方針を整理します。

研修内容のカスタマイズについて 本研修で利用するWebフレームワーク(Gin)・O/Rマッパー(GORM)・DIコンテナ(Uber fx)・テンプレートエンジン(Jet)等のライブラリについては、御社の実際の開発環境やプロジェクトの技術スタックに合わせてカスタマイズした内容での実施も可能です。日程を3日間に拡張し、演習時間を増やした構成にも対応いたします。ぜひお気軽にご相談ください。
Environment

必要な受講環境と前提知識

受講環境

本研修はコンテナ環境を使ったハンズオン形式です。受講者ご自身のPCに以下の環境をご用意ください。

OS Windows 11 以上
コンテナ環境 Rancher Desktop(推奨)または Docker Desktop
エディタ Visual Studio Code(Go拡張機能インストール済み)
Go バージョン Go 1.24以上
メモリ 16GB RAM以上(Dockerコンテナ複数起動のため)
ネットワーク GitHubおよびDocker Hubへのアクセスが可能な環境

前提知識

  • Go言語:変数・型・関数・インターフェイスなど、基本文法を習得していること。未習得の方には、事前に「Go言語基礎」の受講を推奨します。
  • Web開発の基礎:HTTPリクエスト/レスポンス・REST APIの概念を理解していること。
  • データベース:SQLの基本的な読み書き(SELECT・INSERT・UPDATE・DELETE)ができること。
  • Docker:コンテナの概念を理解し、基本的なコマンド操作(docker run・docker compose up等)ができること。
Contact

お問い合わせ

本研修に関するご質問・お申し込みは、以下のフォームよりお問い合わせください。
担当者より2営業日以内にご連絡いたします。

必須 プライバシーポリシーを確認し、同意する