Go Conference 2023 Online にシルバースポンサーとして参加します!メンバーも登壇します!

こんにちは。テックリードをしている、みっきーです。

私達Voicyは、2023年6月2日(金)に開催されるGo Conference 2023のシルバースポンサーとして参加することを喜んでお知らせいたします。Voicyのバックエンドはプログラミング言語Goで書かれており、このイベント関われる機会を頂き、心から感謝しております。

Go Conference 2023のイベント申し込みはこちら

スポンサーは昨年に引き続き2回目になります。また、弊社から発表者としてバックエンドエンジニアのたくみんがプロポーザルが採択され、18時20分からRoomA:LT8 列挙型の作り方を再考するで発表いたします。

公式ドキュメントのEffective Goで推奨されているように、iotaを使ったやり方で列挙型と列挙子を表現すると、 - 列挙型が一つ存在し - その列挙型を持つ定数が複数存在する というような構成になる。

列挙子の一覧を出すだけならこのやり方は確かに手軽だが、それぞれの列挙子に更に何らかの挙動を定義するとなると、 メソッドごとに「既知のこの列挙子についてはこういった処理を行う」という形の条件分岐が登場することになり、 これはすなわち、列挙子を追加することになったら、そのたびにすべてのメソッドが影響を受けてしまう、ということを意味する。

このような問題点を受け、 - 列挙型を表すインターフェイスを一つ定義し - 列挙子ごとに、列挙型のインターフェイスを実装した型を定義する というような構成にしてみると、

  • 特定の列挙子が持つ挙動はその列挙子の周りに集まり(凝集度の向上)
  • ポリモーフィズムで条件分岐を消すことができ
  • 既存のコードに触らずに列挙子を新たに追加することができる(Open-Closed Principleの体現) といったメリットが得られるのである。

たくみんは、技術書展のVoicy Tech Story Vol.5 にも執筆者として参加しており「Chapter 5 外側の依存関係も整理してみよう」こちらも発表を聞いて興味を持ってくれ方は書籍の購入もよろしくお願いします!

私とたくみんと一緒に、voi-chordでも発信していますので、ぜひ聞いてください!

Goのエンジニアの皆様と一緒にGoConference2023を一緒に参加できることを楽しみにしています!