【Go】実践 Web アプリケーション入門 〜便利な仕組みを実装しよう〜
主森 理
推奨スキル
Go
MISSIONについて
要件定義
この MISSION は、Go の Railway の題材を用いて行うため、Rank3の方は、 Railway 未クリアの人はGoのRailway をクリアした後にチャレンジしてください。
Go の Railway では利用者向けに TODO 機能を実装してもらいましたが、この MISSION では Web アプリケーションを運用していく上で開発者向けの便利な仕組みを幾つか実装してもらいます。 実装する項目 - Panic が発生してもアプリケーションが動き続ける仕組みの実装 - HTTP Request 毎の個別の値を伝播し、後続の処理で利用する仕組みの実装 - API の処理前後で任意のロジックを動かす仕組みの実装 - [Extra Stage] Web アプリケーションの安全な終了処理の実装
学べること
- Middleware の設計理解と実装方法
- Context パッケージを利用方法とHTTP Request 毎の固有値の伝播
- [Extra Stage] Web アプリケーションの安全に終了する方法 (Graceful Shutdown) と Go の便利な仕組み
MISSIONを進める上でのヒント
- 新しいアイデアを捻り出す必要はありません、GitHub 上に同じようなコードがたくさんあります。
- コピペするのは構いませんが、Accountability を持ってコピペしないとメンターとの面談で困ることが想定されます。
- 要件として課題を出していますが、課題を進めていく中で思いついた機能は積極的に実装して面談でメンターにアドバイスを貰ってみてください。
MISSIONコンプリートまでのステップ
1
2
3
4
5
6
企業情報
Message
この MISSION は、当初 Go の Railway に入る想定でしたが別の単元として切り出すことで、より STEP by STEP で Go を学べると思い MISSION という形になりました。Go の Railway では、具体的なアプリケーションとして TODO 機能の実装を熟してもらいましたが、この MISSION で Focus しているのは便利な仕組みです。
愚直に実装するのも構わないのですが、仕組み化を行うことで再利用性や、メンテナビリティ向上、テストコード量の低減など多くの恩恵を受けることができます。また、コードを書けば書くほどバグが生まれる可能性が向上するので、シンプルにすることでバグ発見の手間も低く抑えることができます。
ぜひ、この MISSION をクリアして仕組み化の恩恵を感じてみてください。