Upgrade to Pro — share decks privately, control downloads, hide ads and more …

現場のいちメンバーの視点からの技術的負債への向き合い方 / My approach to t...

現場のいちメンバーの視点からの技術的負債への向き合い方 / My approach to technical debt as an individual team member

More Decks by コドモン開発チーム

Transcript

  1. 2 経歴 請求関連チームに所属、請求計算や打刻周りの機能を担当 PHPが (自分にとってはほど良く & 生い立ちを含めて) 好き 自己紹介 福井

    将之 ふくい まさゆき 2023.12 コドモンにソフトウェアエンジニアとして入社 日々プロダクト開発に勤しんでいます
  2. 5

  3. 7

  4. 11 日々取り組んでいる対応の一例(1/3) • ルールに合わないディレクトリ・ファイル構成を見直す • 修正前に linter, formatter を適用する •

    require_once の見直し、依存するファイルを減らす • 可能ならクラスに final を付ける、readonly にする • PHP, PHPUnit の古い記法を書き換える • スーパーグローバル、グローバル変数への依存を減らす • デッドコードを消す
  5. 14 日々取り組んでいる対応の一例(2/3) • 自動テストを書く/追加する/消す/移動する • Web、アプリ、バッチのテスト • APIのテスト • ユニットテスト

    • 名前空間の定義のないファイルを名前空間で区切る • クラスが使われていない構成をクラスに切り出す • クラスを分割する、メソッドに切り出す
  6. 15 日々取り組んでいる対応の一例(3/3) • PHP や依存するライブラリ群をアップグレードする • 引数、返却値に型を付け、厳密な型付けを有効化する • PDO の利用をクエリービルダーに徐々に切り替える

    • 不必要な可変変数を除去して置き換える • 複雑な連想配列をクラスに置き換える • API をまるっと保守しやすい構成に漸近的に置き換える など..
  7. 22 学びを得られる感謝と驚き • 動くことで価値を生み続けている ◦ まずは価値あるプロダクトを作り出した先人に感謝と尊敬を ◦ 後から来た人は何もしないなら ただ乗り しているだけ

    • こんなに複雑なコードなのに、 ◦ ちゃんと動作しているだけで本当にすごい! • 知らないことや先人の生きた知恵を学べる ◦ 生きている悪いコードはリファクタリングの最良のサンプル
  8. 25 • 批判的に見る • ラフに見る • 丁寧に見る • ひたすら見て頭の中のものを外に出す(図にまとめるなど) •

    自分ならどう書くか? を考える • 頭の中にモデルを作る、引き出しを作る 自分のものにするために見る
  9. 26

  10. 30 問い合わせ対応を率先して対応する • 障害対応と似ている ◦ 人は 切羽詰まらないと 本気になれない (少なくとも私は.. ◦

    より利用者に近い肌感覚で業務やシステムを理解できる ◦ 場合によっては内外の方からの感謝が得られる ◦ ただし感謝という報酬は 諸刃の剣 になりうるので注意