SlideShare a Scribd company logo
1 of 10
Download to read offline
コードチェンジ Powered by Rabbit 2.1.7
コードチェンジ
須藤功平
株式会社クリアコード
実践リーダブルコード
2015-03-06
コードチェンジ Powered by Rabbit 2.1.7
目的
リーダブルな
コードを探す
コードチェンジ Powered by Rabbit 2.1.7
おさらい:今日の体験内容
「まず自分が読み始める」✓
「リーダブルコードを探す」
(読みにくいコードは今は置いておく)
✓
「リーダブルの基準を共有」✓
コードチェンジ Powered by Rabbit 2.1.7
ポイント
リーダブルじゃないコードより
リーダブルなコード
コードチェンジ Powered by Rabbit 2.1.7
リーダブルじゃないコード
見つけやすい
異質✓
読んでいると詰まる✓
✓
今日のチャレンジ
気をとられない✓
✓
コードチェンジ Powered by Rabbit 2.1.7
リーダブルなコード
見つけにくい
まわりのコードになじんでいるから✓
すーっと理解できてひっかからない✓
✓
今日のチャレンジ
意識して見つけよう!✓
✓
コードチェンジ Powered by Rabbit 2.1.7
やること
他の人のリポジトリーをfork✓
どこまで進んでいるかを把握
リーダブルコードを探す✓
✓
開発を継続(改良)
リーダブルコードを探す✓
✓
コードチェンジ Powered by Rabbit 2.1.7
リーダブルコードを発見!
メモに残す✓
既存のmemo.mdに追記してpush✓
↓を含める
実際のコードのURL✓
リーダブルな理由✓
見つけたきっかけ✓
✓
コードチェンジ Powered by Rabbit 2.1.7
メモ例
## 統一されたスタイル ← リーダブルな書き方の名前
URL: https://github.com/kou/.../commit/eb02be
コード:
@@ -64,7 +64,7 @@ void add_recipe_to_RecipeList(...) {
void open_RecipeList(RecipeList *list, char *path) {
FILE *fp;
/* ファイルを開く */
- if ((fp = fopen(path , "r")) == NULL){
+ if ((fp = fopen(path , "r")) == NULL) {
fprintf (stderr, "ファイルが開けませんn");
fclose(fp);
exit(EXIT_FAILURE);
理由:
ファイル内でスタイルを統一しているので読みやすくなっている。
コードチェンジ Powered by Rabbit 2.1.7
リーダブルコードとは
読む人基準
「読む人」が 読みやすいなら
リーダブル
✓
✓
読む人(=自分)基準でよい
自分はどんなコードが
リーダブルだと思うのか
言語化してみよう
✓
凝った書き方を見つけるのは
目的ではない!
✓
✓

More Related Content

What's hot

What's hot (6)

リーダブルコード勉強会 in 筑波大のグループふりかえり
リーダブルコード勉強会 in 筑波大のグループふりかえりリーダブルコード勉強会 in 筑波大のグループふりかえり
リーダブルコード勉強会 in 筑波大のグループふりかえり
 
クリアなコードの作り方 - How to make clear code
クリアなコードの作り方 - How to make clear codeクリアなコードの作り方 - How to make clear code
クリアなコードの作り方 - How to make clear code
 
SEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめSEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめ
 
リーダブルコード
リーダブルコードリーダブルコード
リーダブルコード
 
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
 
LT資料「リーダブルコードまとめ」
LT資料「リーダブルコードまとめ」LT資料「リーダブルコードまとめ」
LT資料「リーダブルコードまとめ」
 

Viewers also liked

Viewers also liked (16)

Mroonga!
Mroonga!Mroonga!
Mroonga!
 
The Power Series - Exceptional Customer Service
The Power Series - Exceptional Customer ServiceThe Power Series - Exceptional Customer Service
The Power Series - Exceptional Customer Service
 
リーダブルコード勉強会 in 筑波大のアイスブレイク
リーダブルコード勉強会 in 筑波大のアイスブレイクリーダブルコード勉強会 in 筑波大のアイスブレイク
リーダブルコード勉強会 in 筑波大のアイスブレイク
 
Szkoła Podstawowa im. Wł.Broniewskiego w Szczuczynie - Klasa IIIc
Szkoła Podstawowa im. Wł.Broniewskiego w Szczuczynie - Klasa IIIcSzkoła Podstawowa im. Wł.Broniewskiego w Szczuczynie - Klasa IIIc
Szkoła Podstawowa im. Wł.Broniewskiego w Szczuczynie - Klasa IIIc
 
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
 
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
 
DISTRITOS TURISTICOS DE LA PROVINCIA DE MELGAR
DISTRITOS TURISTICOS DE LA PROVINCIA DE MELGARDISTRITOS TURISTICOS DE LA PROVINCIA DE MELGAR
DISTRITOS TURISTICOS DE LA PROVINCIA DE MELGAR
 
PGroongaの実装
PGroongaの実装PGroongaの実装
PGroongaの実装
 
The Power Series - Negotiation
The Power Series - NegotiationThe Power Series - Negotiation
The Power Series - Negotiation
 
The Power Series - The Power Close
The Power Series  - The Power CloseThe Power Series  - The Power Close
The Power Series - The Power Close
 
Power Series - Powerful Sales Presentations
Power Series - Powerful Sales PresentationsPower Series - Powerful Sales Presentations
Power Series - Powerful Sales Presentations
 
The Power Series Making Appointments and Selling over the Telephone
The Power Series  Making Appointments and Selling over the TelephoneThe Power Series  Making Appointments and Selling over the Telephone
The Power Series Making Appointments and Selling over the Telephone
 
The Power Series - Future Rep
The Power Series - Future RepThe Power Series - Future Rep
The Power Series - Future Rep
 
The Power Series - The Success Factor
The Power Series  - The Success FactorThe Power Series  - The Success Factor
The Power Series - The Success Factor
 
Selling at your higher price
Selling at your higher priceSelling at your higher price
Selling at your higher price
 
The power series selling face to face
The power series  selling face to faceThe power series  selling face to face
The power series selling face to face
 

Similar to 実践リーダブルコードのコードチェンジ

TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
 

Similar to 実践リーダブルコードのコードチェンジ (20)

実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり
 
リーダブルコードを読んだ後
リーダブルコードを読んだ後リーダブルコードを読んだ後
リーダブルコードを読んだ後
 
SEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジSEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジ
 
リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要
 
開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?
 
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
 
リーダブルコード勉強会 in 筑波大 - 練習
リーダブルコード勉強会 in 筑波大 - 練習リーダブルコード勉強会 in 筑波大 - 練習
リーダブルコード勉強会 in 筑波大 - 練習
 
SEゼミ2015 - 練習
SEゼミ2015 - 練習SEゼミ2015 - 練習
SEゼミ2015 - 練習
 
SEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめSEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめ
 
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
 
リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方
 
"レガシーコード"再考
"レガシーコード"再考"レガシーコード"再考
"レガシーコード"再考
 
リーダブルコード 1.0'
リーダブルコード 1.0'リーダブルコード 1.0'
リーダブルコード 1.0'
 
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
 
分散Key/Valueストア Kai 事例紹介
分散Key/Valueストア Kai事例紹介分散Key/Valueストア Kai事例紹介
分散Key/Valueストア Kai 事例紹介
 
レガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamuraiレガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamurai
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
 
実践リーダブルコードのまとめ
実践リーダブルコードのまとめ実践リーダブルコードのまとめ
実践リーダブルコードのまとめ
 
SEゼミ2014 - リーダブルコード勉強会のグループふりかえり
SEゼミ2014 - リーダブルコード勉強会のグループふりかえりSEゼミ2014 - リーダブルコード勉強会のグループふりかえり
SEゼミ2014 - リーダブルコード勉強会のグループふりかえり
 

More from Kouhei Sutou

Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 

More from Kouhei Sutou (20)

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
 
Apache Arrow 2019
Apache Arrow 2019Apache Arrow 2019
Apache Arrow 2019
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroonga
 
My way with Ruby
My way with RubyMy way with Ruby
My way with Ruby
 
Red Data Tools
Red Data ToolsRed Data Tools
Red Data Tools
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!
 

実践リーダブルコードのコードチェンジ

  • 1. コードチェンジ Powered by Rabbit 2.1.7 コードチェンジ 須藤功平 株式会社クリアコード 実践リーダブルコード 2015-03-06
  • 2. コードチェンジ Powered by Rabbit 2.1.7 目的 リーダブルな コードを探す
  • 3. コードチェンジ Powered by Rabbit 2.1.7 おさらい:今日の体験内容 「まず自分が読み始める」✓ 「リーダブルコードを探す」 (読みにくいコードは今は置いておく) ✓ 「リーダブルの基準を共有」✓
  • 4. コードチェンジ Powered by Rabbit 2.1.7 ポイント リーダブルじゃないコードより リーダブルなコード
  • 5. コードチェンジ Powered by Rabbit 2.1.7 リーダブルじゃないコード 見つけやすい 異質✓ 読んでいると詰まる✓ ✓ 今日のチャレンジ 気をとられない✓ ✓
  • 6. コードチェンジ Powered by Rabbit 2.1.7 リーダブルなコード 見つけにくい まわりのコードになじんでいるから✓ すーっと理解できてひっかからない✓ ✓ 今日のチャレンジ 意識して見つけよう!✓ ✓
  • 7. コードチェンジ Powered by Rabbit 2.1.7 やること 他の人のリポジトリーをfork✓ どこまで進んでいるかを把握 リーダブルコードを探す✓ ✓ 開発を継続(改良) リーダブルコードを探す✓ ✓
  • 8. コードチェンジ Powered by Rabbit 2.1.7 リーダブルコードを発見! メモに残す✓ 既存のmemo.mdに追記してpush✓ ↓を含める 実際のコードのURL✓ リーダブルな理由✓ 見つけたきっかけ✓ ✓
  • 9. コードチェンジ Powered by Rabbit 2.1.7 メモ例 ## 統一されたスタイル ← リーダブルな書き方の名前 URL: https://github.com/kou/.../commit/eb02be コード: @@ -64,7 +64,7 @@ void add_recipe_to_RecipeList(...) { void open_RecipeList(RecipeList *list, char *path) { FILE *fp; /* ファイルを開く */ - if ((fp = fopen(path , "r")) == NULL){ + if ((fp = fopen(path , "r")) == NULL) { fprintf (stderr, "ファイルが開けませんn"); fclose(fp); exit(EXIT_FAILURE); 理由: ファイル内でスタイルを統一しているので読みやすくなっている。
  • 10. コードチェンジ Powered by Rabbit 2.1.7 リーダブルコードとは 読む人基準 「読む人」が 読みやすいなら リーダブル ✓ ✓ 読む人(=自分)基準でよい 自分はどんなコードが リーダブルだと思うのか 言語化してみよう ✓ 凝った書き方を見つけるのは 目的ではない! ✓ ✓