hitode909の日記

趣味はマリンスポーツですの日記です

YAPC::Nagoya::Tiny 2019で「似ているけどちょっと違うものたちをモデリングする技術 」という話をします!!来てくれ!!!

トーク採択されました。来てください。ここ2年間くらいマンガチームで仕事しているのでその話をします。
名古屋行ったことなくて、唯一行ったことあるのは中学生の時?に愛知万博に行ったくらい、なので楽しみ。モリゾーのTシャツ買ってきて大学入るまでくらい着ていた。
yapcjapan.connpass.com

はてなマンガチームで開発しているGigaViewerは、マルチテナント型アーキテクチャを採用しており、複数の漫画サイトのコードベースを共通化して、集約して開発しつつも、柔軟なカスタマイズを可能にしているプロダクトです。
本発表では、GigaViewerで配信しているサイト同士の微妙な差異=似ているけどちょっと違うものたち、をどのようにモデリングしてきたか、について語ります。

アジェンダ

  • 似ているけどちょっと違うものたちの紹介
    • 無料のマンガ配信だけのサイトから、ユーザー登録、課金のあるサイトまで
    • 現状の構成や、検討したけど採用しなかった設計の紹介
  • 似ているけどちょっと違うものたちに立ち向かうための設計
    • サイトごとの差異を前提としたネームスペース
    • 重要なオブジェクトをみつけて知識を集約する
  • サイトごとの機能リストを宣言し、ありとあらゆることに使う
    • 画面の出し分けに利用する
    • メソッド呼び出し時の権限チェックに利用する
    • ルーティングにも利用する
    • フィーチャートグルとの関係性
  • 似ているけどちょっと違うものがある前提の暮らし
    • パターン集をドキュメント化する
    • ループを避け、ルールベースで共通化する
    • 値置き場を定義ファイルに追い出す
  • 困っていることを紹介して会場の識者の皆様にアドバイスを頂くコーナー
    • 困りごとベスト3を共有する

この発表のゴール

  • 似ているけどちょっと違うものたちに対面したときにうろたえなくなる
  • 似ているけどちょっと違うものに立ち向かうためのリファクタリングができるようになる