体はドクペで出来ている

インフラ、Goの割合が多い技術ブログ

Go言語によるWebアプリケーション開発 第3章で得られたことと感想

Go言語によるWebアプリケーション開発 第3章「プロフィール画像を追加する3つの方法」が終わったので得られた事と感想をまとめます。

得られたこと

  • OAuth2認証からアバター画像を取得する方法
    • 認証プロバイダーから提供される画像URL
    • GravatarからOAuth2認証で得たメールアドレスで取得
    • Webアプリ内の機能として画像をアップする
  • MD5ハッシュの使い方
  • 静的ファイルのレスポンス方法
  • インターフェースの実装を差し替える技法
  • 単体テストがあるとリファクタリングしやすい(というか無いとできない)
  • 具象型から抽象型(インターフェース)へ転換するタイミングの判断

所感

第3章の前半は引き続き実際のWebアプリで使いそうな内容が多く、これも初学者には有益だと思います。

後半部分にはインターフェースを使った差し替えの具体的なやり方が出てきますが、これはGolangのコードを書くときにとても大事な概念なので必ず理解すべきと思います。これを書いている現在4章が終わっている状態ですが、今のところこの書籍から得た最も重要な部分だと思っています。

インターフェースは「出入口は一緒だけど中の処理を変える必要がある」というケースで威力を発揮し、実際にこのアプリでもそのような流れでコードを書いて行きます。

アバターの画像を取得する際に出てくるものは「画像の在り処(=URL)」ですがその取得方法が3パターンそれぞれで違うため、ここをインターフェースによって抽象化しておくと様々な状況に柔軟に対応することができる、という筋書きです。

この考え方は他の部分にも応用することができ、アプリケーション設計でレイヤー化を行ったりDI的な事をする際に重要な素養になります。繰り返しになりますがこれからもGolangを書いて行くのであれば絶対に理解した方がいいです。

単体テストがあればリファクタリングを行いやすいこと等も含め、3章は技術的な実装云々よりももっと大枠なプログラミング的な意味合いで得るものが大きい章だったと思います。