chibi929's blog

その一歩先へ。ちびです!猫の名前です!ドラゴンボール好き!純粋なサイヤ人のように生きたいと思っています!IT技術で少しでも多くの人が笑顔になってくれたらいいなと。

負債と共には生きたくない

speee.connpass.com

これに参加しました!!

すごく勉強になる良いイベントでした。

執筆が遅くなりましたが、引っ越し後まだインターネットが繋がっていないんです。

という言い訳です。


負債とは

  • 読むのが辛い/時間がかかる
  • 修正するのが辛い/危ない

過去の自分を含めて全てを疑え

こんな時は負債を背負っているはず

  • そんな複雑なわけがない
  • 1分以上読んでもわからないわけがない
  • 一連の処理で行ったり来たり繰り替えすわけがない

負債返済の下準備のタイミング

  • 調査やリファクタをしたとき
    • コードを読み解きながら感じたこと疑問に思ったことはそのままコメントにしろ
    • WikiやConfに書くのではなくソースコードに書け
      • 常に目に入るところに書くという意味
  • 変更を入れるとき

負債の種類を見極める

  • 負債の払い戻し: 返済するべき負債
  • 負債の転換: ベストではないけどベターに返済
  • 利息のみ支払う: コードと共に生きる

なぜ負債を返済する必要があるのか、返済することで何が変わるのか

まとめ

負債があるのは何故か??

  • 時間的な制約、実装者の技術力の限界。など色々ある。
  • ポジティブに考えると「自分たちの技術力が高いので負債と感じる」
  • 「負債vs人」ではなく「負債vsチーム」とする

負債は少しずつ日々返済していくもの

  • 貯まってしまった負債は現実世界同様、すぐに返すことはできない。
  • 負債を返済する時間がないなら不吉な匂いのするコードにコメントを入れる。
  • コメントを入れる仲間(連帯保証人)を増やす

文化を作ろう

  • 「低品質のコードを書くのが悪い」のではなく「低品質のコードをマージする文化が悪い」
  • 技術的負債を混入しない環境・文化作りが大事。
  • 自分がメンテできないコードは Approve するな!

実装よりもリファクタが大変

  • 技術的負債を返済するときは、とにかく幅広い知識が必要。
  • 遅くなれば遅くなるほど、依存関係が増えるため依存モジュールへの知識も必要であり、
  • 後でリファクタしようとすると死ぬことになる。