#ccc_r11
リファクタリング:技術的負債
の返済
2015/8/4
大中浩行
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
• 大中浩行(Ohnaka,Hiroyuki)
• TDDBC横浜(2011~2013)主宰
• yokohama.devtesting / devtesting-ja
• グロースエクスパートナーズ(株)
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
どうしてこうなった
「何がまずかったのだろう?あの頃は素敵でシ
ンプルで使いやすいと思っていたコードはどう
して、かくも不格好に肥大した、厄介なものへ
と変貌してしまったのだろうか?
ーそろそろ技術的負債と呼ばれている考えを
学ぶときが来たようだ。」
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
技術的負債
技術的負債(英: Technical debt)とは、行き
当たりばったりなソフトウェアアーキテクチャ
と、余裕のないソフトウェア開発が引き起こす
結果のことを指す新しい比喩である。
https://ja.wikipedia.org/wiki/%E6%8A%80%E8%A1%93%E7%9A%84%E8%B2%A0%E5%82%B5
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
技術的負債
「手抜き、ハック、重複などなど、開発速度と
記述の名の下に、私たちは数々の狼藉をコード
ベースにコミットしている。技術的負債とは、
そうした狼藉が時間とともに積み重なったもの
だ」
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
…技術的負債?
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
その結果...
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%91%E3%82%B2%E3%83%86%E3%82%A3%E3%83%97%E
3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
我々はなぜここにいるのか
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
リファクタリングで技術的負債を完済する
「すなわち、ソフトウェアを書き、メンテナン
スするのは私や君みたいなプログラマだ、って
ことなんだ」
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
リファクタリングのジレンマ
「リファクタリングしたい」というとリファク
タリングできない
「リファクタリングした」なら言ってもいい...?
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
「躊躇なくリファクタリングする」
http://www.slideshare.net/uasano/agile-samuraibasecamp-tdd-keynote/43
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
リファクタリングの重要性
「もしチームが、緊急のバグ修正や、システム
に大きな影響をおよぼす変更を加えねばならな
いときに、きちんと、早く、低コストに対応で
きたとしたら、それはこれまでのリファクタリ
ングの成果だからだ。」
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
大がかりなリファクタリングをどう進めるか
• リファクタリングは、アーキテクチャーの手
抜きをなんとかするための魔法の呪文ではな
い
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
https://twitter.com/kompiro/status/628021878339178496
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
大がかりなリファクタリングをどう進めるか
• アーキテクチャー重要
• 開発の中でボトルネックになっていることは
なにか、何を解決すべきか
• ローマは一日にしてならず
#ccc_r11
Copyright 2015 Hiroyuki Ohnaka
リファクタリングのアンチパターン
「リファクタリングのためにメソッドの引数が
変わりました」
「こんな糞コードはリファクタリングしてや
る!」
「技術的負債をなくそう」
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
参考書籍
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
新装版 リファクタ
リング 既存のコー
ドを安全に改善する
http://shop.ohmsha.
co.jp/shopdetail/000
000003881/
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
レガシーコード改善
ガイド
http://www.shoeisha
.co.jp/book/detail/9
784798116839
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
リーダブルコード
http://www.oreilly.c
o.jp/books/9784873
115658/
#ccc_r11
Copyright 2014 Hiroyuki Ohnaka
ディスカッション

アジャイルサムライ横浜道場「リファクタリング:技術的負債の返済」

  • 1.
  • 2.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka • 大中浩行(Ohnaka,Hiroyuki) • TDDBC横浜(2011~2013)主宰 • yokohama.devtesting / devtesting-ja • グロースエクスパートナーズ(株)
  • 3.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka どうしてこうなった 「何がまずかったのだろう?あの頃は素敵でシ ンプルで使いやすいと思っていたコードはどう して、かくも不格好に肥大した、厄介なものへ と変貌してしまったのだろうか? ーそろそろ技術的負債と呼ばれている考えを 学ぶときが来たようだ。」
  • 4.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka 技術的負債 技術的負債(英: Technical debt)とは、行き 当たりばったりなソフトウェアアーキテクチャ と、余裕のないソフトウェア開発が引き起こす 結果のことを指す新しい比喩である。 https://ja.wikipedia.org/wiki/%E6%8A%80%E8%A1%93%E7%9A%84%E8%B2%A0%E5%82%B5
  • 5.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka 技術的負債 「手抜き、ハック、重複などなど、開発速度と 記述の名の下に、私たちは数々の狼藉をコード ベースにコミットしている。技術的負債とは、 そうした狼藉が時間とともに積み重なったもの だ」
  • 6.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka …技術的負債?
  • 7.
  • 8.
  • 9.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka その結果...
  • 10.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%91%E3%82%B2%E3%83%86%E3%82%A3%E3%83%97%E 3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0
  • 11.
  • 12.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka 我々はなぜここにいるのか
  • 13.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka リファクタリングで技術的負債を完済する 「すなわち、ソフトウェアを書き、メンテナン スするのは私や君みたいなプログラマだ、って ことなんだ」
  • 14.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka リファクタリングのジレンマ 「リファクタリングしたい」というとリファク タリングできない 「リファクタリングした」なら言ってもいい...?
  • 15.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka 「躊躇なくリファクタリングする」 http://www.slideshare.net/uasano/agile-samuraibasecamp-tdd-keynote/43
  • 16.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka リファクタリングの重要性 「もしチームが、緊急のバグ修正や、システム に大きな影響をおよぼす変更を加えねばならな いときに、きちんと、早く、低コストに対応で きたとしたら、それはこれまでのリファクタリ ングの成果だからだ。」
  • 17.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka 大がかりなリファクタリングをどう進めるか • リファクタリングは、アーキテクチャーの手 抜きをなんとかするための魔法の呪文ではな い
  • 18.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka https://twitter.com/kompiro/status/628021878339178496
  • 19.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka 大がかりなリファクタリングをどう進めるか • アーキテクチャー重要 • 開発の中でボトルネックになっていることは なにか、何を解決すべきか • ローマは一日にしてならず
  • 20.
    #ccc_r11 Copyright 2015 HiroyukiOhnaka リファクタリングのアンチパターン 「リファクタリングのためにメソッドの引数が 変わりました」 「こんな糞コードはリファクタリングしてや る!」 「技術的負債をなくそう」
  • 21.
  • 22.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka 新装版 リファクタ リング 既存のコー ドを安全に改善する http://shop.ohmsha. co.jp/shopdetail/000 000003881/
  • 23.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka レガシーコード改善 ガイド http://www.shoeisha .co.jp/book/detail/9 784798116839
  • 24.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka リーダブルコード http://www.oreilly.c o.jp/books/9784873 115658/
  • 25.
    #ccc_r11 Copyright 2014 HiroyukiOhnaka ディスカッション