Slide 1

Slide 1 text

2024.01.25 @ TechBrew in 東京 株式会社ワンキャリア ⼭⼝拓弥 ONE CAREER にあえて残している 技術的負債の紹介

Slide 2

Slide 2 text

⼭⼝ 拓弥(@yamat47) 名前・X 株式会社ワンキャリア 所属 Senior EM / PdM for ONE CAREER 役割 得意なこと Ruby on Rails / 開発プロセス改善 今思っていること 美味しいビールで酔いはじめてます 2

Slide 3

Slide 3 text

⼈の数だけ、 キャリアをつくる。 MISSION

Slide 4

Slide 4 text

Copyright © ONE CAREER Inc. これまで可視化されていなかった「キャリアデータ」を活用し、就職・採用の意思決定を サポート サービスと開発の歴史 人事向け採用クラウド HRアワード2020 人材採用・雇用部門1 最優秀賞 中途採用メディア 以上 4000件 転職体験談 社員クチコミ 2万件 以上 新卒採用メディア 学生の利用率/ 使いやすさ2 1位 学生が最も 利用した 就職サイト3 2位 1. 日本の人事部「HRアワード2020」にてプロフェッショナル部門(人材採用・雇用部門)で最優秀賞を受賞。 2. NewsPicks発表「【図解】20サービスを徹底比較。本当に役立つ「就活サイト」一覧より。 3. ProFuture株式会社/HR総研「HR総研×楽天みん就:2022年卒学生の就職活動動向調(6月)結果報告【就職活動編】」(https://www.hrpro.co.jp/research_detail.php?r_no=311)より。

Slide 5

Slide 5 text

Copyright © ONE CAREER Inc. 本題へ 5

Slide 6

Slide 6 text

Copyright © ONE CAREER Inc. 6 ONE CAREER に あえて のこしている 技術的負債の紹介

Slide 7

Slide 7 text

Copyright © ONE CAREER Inc. 7

Slide 8

Slide 8 text

Copyright © ONE CAREER Inc. 8

Slide 9

Slide 9 text

Copyright © ONE CAREER Inc. 9 https://x.com/hiroki_daichi/status/1308991986687520770?s=20

Slide 10

Slide 10 text

Copyright © ONE CAREER Inc. 10 ONE CAREER に あえて のこしている 技術的負債の紹介

Slide 11

Slide 11 text

Copyright © ONE CAREER Inc. TechBrew in 東京 - ONE CAREER にあえて残している技術的負債の紹介 負債 ①︓スロークエリが原因で遅い API エンドポイントを あえて そのままにしている 11 API のとあるエンドポイントでスロークエリが観測された。 Datadog を使ってパフォーマンスを調べてみると、確かに p99 で 4036.4 ms と⾮常に悪い状態だった。 起きている事象 パフォーマンスが悪くなる条件が⾮常に稀(⾮常に古くから登録 しているユーザーのみ)だった。 またレスポンスが悪いときに、それがユーザー体験やプロダクト KPI に与える悪影響が⼩さかった。 影響が⼩さいなら、負債解消をするのは後回しにしよう︕ 「あえて」の理由

Slide 12

Slide 12 text

Copyright © ONE CAREER Inc. TechBrew in 東京 - ONE CAREER にあえて残している技術的負債の紹介 負債 ②︓使っていない I18n のキーが⼤量に残っているのを あえて そのままにしている 12 Rails の I18n の仕組みとして CopyTuner (※) を利⽤している。 翻訳のための辞書に登録されているものに、実際にアプリケーシ ョンで呼び出していないものが⼤量に残っていた。 起きている事象 CopyTuner の利⽤をやめて、Rails 標準の I18n の仕組みにリプ レイスを予定している(絶賛対応中)。 移⾏を完了したのちに、glebm/i18n-tasks を使って辞書ファイル の棚卸しを⼀気に実施する想定。 使⽤技術を置き換えるのを待ってから、負債を解消しよう︕ 「あえて」の理由 ※ CopyTuner … Sonic Garden 社が運⽤しているサービス。辞書データを Web 上で更新 してすぐに反映できるのが特徴。

Slide 13

Slide 13 text

Copyright © ONE CAREER Inc. 認証基盤を置き換えるプロジェクトに今年着⼿予定。 移⾏をしたのちに、ワンタイムトークンの実装などより安定した 認証⽅法にあわせて移⾏する。 ⼤元の仕組みを置き換えるのを待ってから、負債を解消しよう︕ React Native の HTTP クライアントとして axios を使っている。 ユーザー認証として Cookie を使っているがこの認証⽅法が不安定 で、ワークアラウンドを⼊れて無理やり使っている。 (100 ms 待ってリトライという処理をしています...) TechBrew in 東京 - ONE CAREER にあえて残している技術的負債の紹介 負債 ③︓相性の悪い React Native - axios(Cookie 認証)の組み合わせを あえて 使いつづけている 13 起きている事象 「あえて」の理由 https://github.com/facebook/react-native/issues/38025

Slide 14

Slide 14 text

Copyright © ONE CAREER Inc. TechBrew in 東京 - ONE CAREER にあえて残している技術的負債の紹介 負債 ④︓関連しないドメインがモノリシックに実装されているが あえて そのままにしている 14 詳しくはこちら︓https://logmi.jp/tech/articles/329876 10 年以上開発される中で機能が増えたが、いまだにモノリシック な構成のまま開発を続けている。 変更の影響範囲の特定が⽇に⽇に難しくなっている。 起きている事象 しばらくは新機能の開発が多く、苦しむ場⾯が少なそうだった。 解消に動く投資をする上でのリターンが⼩さい状態。 知⾒のあるメンバーもほとんどおらず、今着⼿するにはリターン と⽐べてリスクがとても⼤きい状態。 リターンが⼤きくなってくるまでに、実験して知⾒を貯めよう︕ 「あえて」の理由

Slide 15

Slide 15 text

Copyright © ONE CAREER Inc. 15 ONE CAREER に あえて のこしている 技術的負債の紹介

Slide 16

Slide 16 text

Copyright © ONE CAREER Inc. 16 ONE CAREER に あえて のこしている 技術的負債の紹介 で解消した

Slide 17

Slide 17 text

1 Copyright © ONE CAREER Inc. 2 3 17 TechBrew in 東京 - ONE CAREER にあえて残している技術的負債の紹介 ONE CAREER で解消した技術的負債の紹介 in 2023 CI / CD の拡充 パフォーマンスの 最適化 開発者体験の向上 ● 静的型解析(tsc)の導⼊、型エラーの解消 ● 落ちていても無視されていた⾃動テスト・リンターの復活 ● Blue - Green Deployment、Feature Flag ● ユーザー影響が⼤きかったスロークエリの解消 ● KVS を使ったクエリ結果のキャッシング ● ファーストビューから外れた要素の遅延レンダリング ● 起動できなかった docker-compose.yml の調整 ● E2E テスト(Capybara)の実⾏環境の準備 on ローカルマシン ● Ruby, Rails, Node, Vue, Nuxt などのアップデート

Slide 18

Slide 18 text

Copyright © ONE CAREER Inc. いつものやつ 18

Slide 19

Slide 19 text

Copyright © ONE CAREER Inc. 19 We are Hiring!!

Slide 20

Slide 20 text

Copyright © ONE CAREER Inc. X、EntranceBookで情報を発信中 🚀 興味のある方はぜひ! 20 Copyright © ONE CAREER Inc. All Rights Reserved.

Slide 21

Slide 21 text

2024.01.25 @ TechBrew in 東京 株式会社ワンキャリア ⼭⼝拓弥 ONE CAREER にあえて残している 技術的負債の紹介