Slide 1

Slide 1 text

エンジニアリングで負債を返済するための勘所 事業特性にあわせたリファクタリング/リアーキテクティング/リプレイス Feb 19, 2021@Developers Summit 2021  #devsumiA
 19-A-1
 #76008 


Slide 2

Slide 2 text

ITエンジニア本大賞2021 技術書部門大賞 受賞 Engieers in VOYAGEー事業をエンジニアリングする技術者たち #voyagebook

Slide 3

Slide 3 text

おしらせ ● 質問はチャットではなく Sli.do へ、イベントコード #76008 ● 感想は Twitter などへ ● スクショ OK、録画 NG ● ツイート OK、Twitter のハッシュタグは #devsumiA 【追記】当日のツイートを togetterにまとめていただきました デブサミ2021【19-A-1】エンジニアリングで負債を返済するための勘所 ― 事業特性にあわせたリ ファクタリング/リアーキテクティング/リプレイス #devsumiA #devsumi

Slide 4

Slide 4 text

“私は、ソフトウェアを急いで世に出して学びを得たにもかかわらず、その学びをプログラムに反映しない、つまり借 金で言えば全く返済をしないケースが多々あると考えています。 長い間プログラムにただ機能を追加するのみで、それら機能に関して学んだ知識を反映する整理整頓を怠ってい たならば、次第にプログラムからは知識が失われ、作業にかかる時間はひたすら長くなっていきます。言い換える なら、すべて利子で食い潰され、進捗はゼロに近づいていくでしょう。 ” ー Ward Cunningham 負債のメタファ

Slide 5

Slide 5 text

三つのアプローチとその実践 ● リファクタリング ■ ボトムアップにコードを綺麗にしていく ● リアーキテクティング ■ 大きなシステムをサブシステムに分解し、サブシステム単位で置き換えていく ● リプレイス/リライト ■ ゼロから書き直す

Slide 6

Slide 6 text

三つのサービス

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

fluct 紹介 図は「Engineers in VOYAGEー事業をエンジニアリングする技術者たち」から引用
 ● fluctは広告配信システム全体のうち広告が掲載されるメディア側で利用される仕組みを提供。 一般的に「SSP (Supply-Side Platform)」と呼ばれている。
 ● 広告を出す側で利用される「DSP」、もしくは「アドネットワーク」といった別のシステムと連携して 「いい感じ」に広告を出すことが主なお仕事。 
 ● 月間広告配信330億imp以上/1万サイト以上に利用されていて日本最大級のSSP。

Slide 9

Slide 9 text

fluct から 株式会社VOYAGE GROUP / 株式会社fluct プログラマ fluct ローンチ当初から10年近く携わっている開発者 バックエンドからUIまでなんでもやります 仕事はする、育児もする、「両方」やらなくちゃならないってのが 幹部のつらいところだな。覚悟はいいか?俺はできてる @ajiyoshi

Slide 10

Slide 10 text

リアーキテクティング ー Before 広告配信サーバ 配信設定作成 (ECS) 広告配信設定 <問題> ● データを使う配信サーバのソー スを見てもデータの中身が分か りづらい ● どんなデータが入っているかを 一覧するなら作成している方の ソースを読ままいといけない ● どの枠に何の広告を出すかというよう な設定情報ファイル(1GB程度) ● フォーマットはMessagePack(JSON 様のバイナリシリアライズフォーマット)

Slide 11

Slide 11 text

リアーキテクティング ー After 広告配信サーバ 配信設定作成 (ECS) 旧広告配信設定 <対処後> ● スキーマをみればどんなデータ が入っているのか分かる ● スキーマを前提とした単体テス トも書ける 新広告配信設定 リアーキテクティング ● ProtocolBuffersでスキーマを定義 ● 一部の新しいデータのみPB版を提供 ● 徐々に移し替えて移行していく

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

ECナビ 紹介 ECナビ( https://ecnavi.jp )は、2004年スタート、会 員数700万人突破のポイントサイト。 成果報酬型広告、ネットリサーチなどを通じてお得に ポイントが貯められる。

Slide 14

Slide 14 text

ECナビ から 株式会社VOYAGE GROUP / 株式会社VOYAGE MARKETING 
 ポイントメディア事業本部 開発本部長 
 ウェブメディアの開発部門長として、プロダクト開発とレガシー改善とを推進 しています。
 デブサミ2019で登壇してからのその後について、話します。 
 福田 剛広

Slide 15

Slide 15 text

ECナビ システム概要 ● LAMP ● Tables 450個 ● LOC 214万行

Slide 16

Slide 16 text

リアーキテクティング ー Before <問題> ● 広告枠と掲載管理と広告本体 と、重複機能が多数ある 手 動 広告A 手 動 手 動 手 動 自 動 自 動 広告B 広告B 広告本体 3 掲載管理 42 広告枠 119

Slide 17

Slide 17 text

リアーキテクティング ー After <対処後> ● 重複を葬り or 集約 ● インターフェース層を設けて、機 能間依存性を管理 広告A 手 動 手 動 手 動 自 動 広告B 広告B 広告本体 3 → 2 掲載管理 42 → 13 広告枠 119 → 43 葬 り 葬 り 葬 り 葬 り 葬 り 葬 り 葬 り 葬 り 葬り リファクタリング リファクタリング リアーキテクティング

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

サポーターズ 紹介 ● 就活生と企業のマッチングを創出するサービス 
 ● 現在は新卒の就活支援に特化している 
 ● システムは「人と企業とそれを結ぶサービスの集合体」と定義 


Slide 20

Slide 20 text

サポーターズ から 株式会社VOYAGE GROUP システム本部コーポレートエンジニアリ ンググループ(元株式会社サポーターズ ) 別の広告サービスの会社にいたところ、会社ごとお買い上げ頂いて 2015年VOYAGE GROUPに入社。 2017年から当時はサポーターズと別組織だった HR Tech Studioの 親分に就任。チームが正式に組織としてサポーターズに編入された のはサービス入れ替え後。 昨年12月にサポーターズを離れて、現在は CARTA HOLDINGS全 体の人事周りをサポートする新規システムの開発を手掛ける。 技術は薄く広く、CSSの調整からラック設営(最近ないけど)まで。と りあえずWeb屋さんです。 @nekoya

Slide 21

Slide 21 text

リプレイス ー システムの置き換え ● 卒業年によって違うシステムを提供することで影響範囲を限定した

Slide 22

Slide 22 text

アーキテクチャ ー Before → After ● API層を挟むことで複数のクライアント実装に対応しやすくした ● iOS版は書籍出版後の2020年11月にリリース

Slide 23

Slide 23 text

ディスカッション

Slide 24

Slide 24 text

https://twitter.com/golden_lucky/status/1362568600603660292?s=20 【追記】当日の様子と舞台裏