Save 37% off PRO during our Black Friday Sale! »

RAKUSMeetup_202104_返したいけど返せない、大きな技術的負債を返すために

89abc5ef20b31b57f2b12ff489588906?s=47 mickeySTRANGE
April 21, 2021
540

 RAKUSMeetup_202104_返したいけど返せない、大きな技術的負債を返すために

楽楽販売はリリース13年目となる息の長いサービスです。
サービスが続くのは嬉しいことですが、いわゆる技術的負債はどうしても蓄積していってしまいます。
楽楽販売でも長い間、返したいけど返せない負債がありましたが、その中の一部をついに返済する機会がありました。

一般的に、負債の蓄積は避けがたいものであり、リファクタリング等の機会も限られているかと思います。
その中でどう返済チャンスを作っていくべきか、今回の体験から振り返ってみようと思います。

89abc5ef20b31b57f2b12ff489588906?s=128

mickeySTRANGE

April 21, 2021
Tweet

Transcript

  1. #RAKUSMeetup ©2021 RAKUS Co., Ltd. ©2021 RAKUS Co., Ltd. #RAKUSMeetup

    返したいけど返せない、 大きな技術的負債を返すために 開発本部 第二開発部 楽楽販売開発課 水間 淳之
  2. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 自己紹介 •水間 淳之 みずま あつゆき

    •28歳 入社6年目 •楽楽販売の機能開発を担当 2
  3. #RAKUSMeetup ©2021 RAKUS Co., Ltd. #RAKUSMeetup ©2021 RAKUS Co., Ltd.

    1章 システム紹介 3
  4. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 楽楽販売とは? •色々な業務を管理できるWebDBシステム 4

  5. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 楽楽販売とは? 5

  6. #RAKUSMeetup ©2021 RAKUS Co., Ltd. #RAKUSMeetup ©2021 RAKUS Co., Ltd.

    2章 負債について 6
  7. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 秘伝の負債 •なんでも気軽にセッションに保持 •複数タブ操作で競合 たとえば、レコード一覧画面の絞込みの条件 7

  8. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 複数タブ操作で競合 8 株式会社ラクース 情報通信 東京都

    株式会社らくらく堂 卸・小売 東京都 株式会社ラクース 情報通信 東京都 株式会社らくらく堂 卸・小売 東京都 株式会社楽楽マート 卸・小売 大阪府 株式会社ラクース 情報通信 東京都 株式会社らくらく堂 卸・小売 東京都 株式会社楽楽マート 卸・小売 大阪府 株式会社らくらく堂 卸・小売 東京都 ・「東京都」で絞込 セッションに「東京都」の絞込状態を保存 ・「卸・小売」で絞込 セッションにある絞込状態と合わせて レコードを検索 2件のレコードが表示されてほしいが、 「東京都」&「卸・小売り」 の1レコードのみ表示 タブ① タブ②
  9. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 秘伝の負債(技術的な解決) •絞込条件を毎回リクエストパラメータで送るように することで別タブの操作で上書きされなくなる • 例)Amazonで「keyboard」検索、価格昇順のURL

    • https://www.amazon.co.jp/s?k=keyboard&s=price-asc-rank 9
  10. #RAKUSMeetup ©2021 RAKUS Co., Ltd. #RAKUSMeetup ©2021 RAKUS Co., Ltd.

    3章 なぜ対応に踏み切れたか 10
  11. #RAKUSMeetup ©2021 RAKUS Co., Ltd. そもそもなぜ対応に踏み切れなかったか •仕様面 •開発当初(初版リリースが2008年)からタブ対応 しておらず、そのまま •コスト面

    • 数人月はかかるリファクタリングとなり、明確に 釣り合うメリットを作り出せなかった 11
  12. #RAKUSMeetup ©2021 RAKUS Co., Ltd. なぜ対応に踏み切れたか •他の大きな流れの中に組み込んでしまう •返済ひとつだとビジネスサイドと合意できない →無停止リリース 12

  13. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 無停止リリース •サービスに影響なくリリースを実施したい •一部プログラムのみ差し替えでも強制ログアウト が発生していた •

    顧客価値を高める施策として優先度が高めだった 13
  14. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 強制ログアウト •サーバ構成はWeb冗長化 14 ・・・ セッションファイル

    Web DB ・・・ セッションファイル Web
  15. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 強制ログアウト •アクセス切替を行うと… 15 ・・・ セッションファイル

    Web DB ・・・ セッションファイル Web
  16. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 無停止リリース(技術的な課題) •セッションファイルの管理が問題 •DB化をしたいがセッションサイズが大きい →セッションに保持している情報の見直し •セッションから持ち替え

    16 負債を返済できる
  17. #RAKUSMeetup ©2021 RAKUS Co., Ltd. #RAKUSMeetup ©2021 RAKUS Co., Ltd.

    4章 対応中の苦労 17
  18. #RAKUSMeetup ©2021 RAKUS Co., Ltd. 苦労した点 •機能が多く、対応箇所が爆発した •レコード一覧画面以外にもセッション乱用箇所を 対応した •

    全UIをクリックしていくような自動テストがない •総工数 約7人月 18
  19. #RAKUSMeetup ©2021 RAKUS Co., Ltd. #RAKUSMeetup ©2021 RAKUS Co., Ltd.

    5章 さいごに 19
  20. #RAKUSMeetup ©2021 RAKUS Co., Ltd. まとめ •楽楽販売のセッションに関する技術的負債 •プロダクトとして返済の優先度は高くないもの • 他の優先度の高いものと一緒にして返済

    20
  21. #RAKUSMeetup ©2021 RAKUS Co., Ltd. まとめ •技術的負債の返済はそれ単体では難しいが、利 用者のメリットとなる取り組みと一緒にしてし まうことで、チャンスを作ることはできる 21