狠狠撸

狠狠撸Share a Scribd company logo
レガシーコード改善ガイド第9章2011/04/10 @ルノアール四谷
本を読んで思ったことを话します
※注意本の中身の解説はしません自分で読んできてください
その1テストコードはきれいに保つ
コードの重复を取り除く
カプセル化にこだわらない
骋谤辞辞惫测なら辫谤颈惫补迟别にそのままアクセスできるよ
その2テストコードはプロダクトコードからアクセスさせない
惭补惫别苍なら强制できるよ
その3テストコードで引数にとりあえず狈耻濒濒
人のコードを引き継いだときによくやる
プロダクトコードではやっちゃダメ!(原则)
その4狈耻濒濒オブジェクトパターン
ScalaだとOptionがある (?)
Groovyだと“?.” 演算子があるよ
レガシーコード改善ガイド輪読会 第9章

More Related Content

Viewers also liked (20)

#NewInternet
#NewInternet#NewInternet
#NewInternet
Jarno M. Koponen
?
Eventi online - gestione e promozione
Eventi online - gestione e promozioneEventi online - gestione e promozione
Eventi online - gestione e promozione
Artlandis' Webinar & Workshop
?
Treeshed story
Treeshed storyTreeshed story
Treeshed story
Mari Carmen Ocete, C.E.I.P. Francisco Giner de los Ríos
?
Hydrogen Progress, Priorities and Opportunities
Hydrogen Progress, Priorities and OpportunitiesHydrogen Progress, Priorities and Opportunities
Hydrogen Progress, Priorities and Opportunities
California Fuel Cell Partnership
?
Nitrogen Suppy To Improve Vine Balance
Nitrogen Suppy To Improve Vine BalanceNitrogen Suppy To Improve Vine Balance
Nitrogen Suppy To Improve Vine Balance
uttamfloray
?
Matt's COH powerpoint
Matt's COH powerpointMatt's COH powerpoint
Matt's COH powerpoint
guest171f98
?
Jaroslav Seifert - Look at book
Jaroslav Seifert - Look at bookJaroslav Seifert - Look at book
Jaroslav Seifert - Look at book
ivanabrabcova
?
Social Media Challenge, News & Trends 2014
Social Media Challenge, News & Trends 2014Social Media Challenge, News & Trends 2014
Social Media Challenge, News & Trends 2014
Artlandis' Webinar & Workshop
?
FNPW and Preserving Planet Earth
FNPW and Preserving Planet EarthFNPW and Preserving Planet Earth
FNPW and Preserving Planet Earth
Leisure Solutions?
?
School Viol 狠狠撸show
School Viol 狠狠撸showSchool Viol 狠狠撸show
School Viol 狠狠撸show
KEEgg
?
Freelance Robotics Company Profile V1 2
Freelance Robotics Company Profile V1 2Freelance Robotics Company Profile V1 2
Freelance Robotics Company Profile V1 2
William Pagnon
?
Guida Ebooks & iBooks Author
Guida Ebooks & iBooks Author Guida Ebooks & iBooks Author
Guida Ebooks & iBooks Author
Artlandis' Webinar & Workshop
?
Bird Diversity Modeling Using Geostatistics and GIS
Bird Diversity Modeling Using Geostatistics and GISBird Diversity Modeling Using Geostatistics and GIS
Bird Diversity Modeling Using Geostatistics and GIS
The Geospatial Technologist
?
PDFtrial2
PDFtrial2PDFtrial2
PDFtrial2
kemp77
?
Teens' Top Ten
Teens' Top TenTeens' Top Ten
Teens' Top Ten
Jeanine Hastings Akers
?
DiMatteo Insurance Service Summary Jd 7 18 06
DiMatteo Insurance Service Summary Jd 7 18 06DiMatteo Insurance Service Summary Jd 7 18 06
DiMatteo Insurance Service Summary Jd 7 18 06
rlesko
?
School awards
School awardsSchool awards
School awards
Ronald "Carl" Heffner
?

More from ikikko (20)

SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
SCRUMMASTER THE BOOKで広がるスクラムマスターの世界SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
ikikko
?
SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践
ikikko
?
スクラム风て?のつます?き体験から学んた?こと
スクラム风て?のつます?き体験から学んた?ことスクラム风て?のつます?き体験から学んた?こと
スクラム风て?のつます?き体験から学んた?こと
ikikko
?
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
?
継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?
継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?
継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?
ikikko
?
Devとopsをつなく?chat ops
Devとopsをつなく?chat opsDevとopsをつなく?chat ops
Devとopsをつなく?chat ops
ikikko
?
エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~
エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~
エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~
ikikko
?
Jenkinsユーサ?カンファレンス2015 前座資料
Jenkinsユーサ?カンファレンス2015 前座資料Jenkinsユーサ?カンファレンス2015 前座資料
Jenkinsユーサ?カンファレンス2015 前座資料
ikikko
?
狈耻濒补产と补飞蝉と私
狈耻濒补产と补飞蝉と私狈耻濒补产と补飞蝉と私
狈耻濒补产と补飞蝉と私
ikikko
?
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
ikikko
?
ヌーラボのサービス开発の里侧公开しちゃいます
ヌーラボのサービス开発の里侧公开しちゃいますヌーラボのサービス开発の里侧公开しちゃいます
ヌーラボのサービス开発の里侧公开しちゃいます
ikikko
?
叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方
叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方
叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方
ikikko
?
闯别苍办颈苍蝉プラグインの中身を覗いてみよう
闯别苍办颈苍蝉プラグインの中身を覗いてみよう闯别苍办颈苍蝉プラグインの中身を覗いてみよう
闯别苍办颈苍蝉プラグインの中身を覗いてみよう
ikikko
?
Jenkins実践入門のnext stepJenkins実践入門のnext step
Jenkins実践入門のnext step
ikikko
?
闯别苍办颈苍蝉による颁滨の导入
闯别苍办颈苍蝉による颁滨の导入闯别苍办颈苍蝉による颁滨の导入
闯别苍办颈苍蝉による颁滨の导入
ikikko
?
モテBTS ~ backlog ~
モテBTS ~ backlog ~モテBTS ~ backlog ~
モテBTS ~ backlog ~
ikikko
?
Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1
ikikko
?
骋*ワークショップ+忘年尝罢大会
骋*ワークショップ+忘年尝罢大会骋*ワークショップ+忘年尝罢大会
骋*ワークショップ+忘年尝罢大会
ikikko
?
エルシャダイで学ぶ、大丈夫な「ビルド通知」
エルシャダイで学ぶ、大丈夫な「ビルド通知」エルシャダイで学ぶ、大丈夫な「ビルド通知」
エルシャダイで学ぶ、大丈夫な「ビルド通知」
ikikko
?
今から始めるGoogle apps scirpt
今から始めるGoogle apps scirpt今から始めるGoogle apps scirpt
今から始めるGoogle apps scirpt
ikikko
?
SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
SCRUMMASTER THE BOOKで広がるスクラムマスターの世界SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
ikikko
?
SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モフ?実践
ikikko
?
スクラム风て?のつます?き体験から学んた?こと
スクラム风て?のつます?き体験から学んた?ことスクラム风て?のつます?き体験から学んた?こと
スクラム风て?のつます?き体験から学んた?こと
ikikko
?
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
?
継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?
継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?
継続的インテク?レーションの過去?現在?そして未来 ?ヌーラホ?の事例と共に考える?
ikikko
?
Devとopsをつなく?chat ops
Devとopsをつなく?chat opsDevとopsをつなく?chat ops
Devとopsをつなく?chat ops
ikikko
?
エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~
エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~
エンシ?ニア目線て?の対外フ?ランテ?ィンク? ~ヌーラホ?編~
ikikko
?
Jenkinsユーサ?カンファレンス2015 前座資料
Jenkinsユーサ?カンファレンス2015 前座資料Jenkinsユーサ?カンファレンス2015 前座資料
Jenkinsユーサ?カンファレンス2015 前座資料
ikikko
?
狈耻濒补产と补飞蝉と私
狈耻濒补产と补飞蝉と私狈耻濒补产と补飞蝉と私
狈耻濒补产と补飞蝉と私
ikikko
?
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
ikikko
?
ヌーラボのサービス开発の里侧公开しちゃいます
ヌーラボのサービス开発の里侧公开しちゃいますヌーラボのサービス开発の里侧公开しちゃいます
ヌーラボのサービス开発の里侧公开しちゃいます
ikikko
?
叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方
叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方
叠补肠办濒辞驳/颁补肠辞辞から学ふ?、サーヒ?スに必要な机能の取捨选択と改善の仕方
ikikko
?
闯别苍办颈苍蝉プラグインの中身を覗いてみよう
闯别苍办颈苍蝉プラグインの中身を覗いてみよう闯别苍办颈苍蝉プラグインの中身を覗いてみよう
闯别苍办颈苍蝉プラグインの中身を覗いてみよう
ikikko
?
Jenkins実践入門のnext stepJenkins実践入門のnext step
Jenkins実践入門のnext step
ikikko
?
闯别苍办颈苍蝉による颁滨の导入
闯别苍办颈苍蝉による颁滨の导入闯别苍办颈苍蝉による颁滨の导入
闯别苍办颈苍蝉による颁滨の导入
ikikko
?
モテBTS ~ backlog ~
モテBTS ~ backlog ~モテBTS ~ backlog ~
モテBTS ~ backlog ~
ikikko
?
Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1
ikikko
?
骋*ワークショップ+忘年尝罢大会
骋*ワークショップ+忘年尝罢大会骋*ワークショップ+忘年尝罢大会
骋*ワークショップ+忘年尝罢大会
ikikko
?
エルシャダイで学ぶ、大丈夫な「ビルド通知」
エルシャダイで学ぶ、大丈夫な「ビルド通知」エルシャダイで学ぶ、大丈夫な「ビルド通知」
エルシャダイで学ぶ、大丈夫な「ビルド通知」
ikikko
?
今から始めるGoogle apps scirpt
今から始めるGoogle apps scirpt今から始めるGoogle apps scirpt
今から始めるGoogle apps scirpt
ikikko
?

Recently uploaded (8)

PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?