SlideShare a Scribd company logo
1 of 20
Download to read offline
まとめと次のステップ Powered by Rabbit 2.1.3
まとめと次のステップ
須藤功平
株式会社クリアコード
実践リーダブルコード
2015-06-24
まとめと次のステップ Powered by Rabbit 2.1.3
講座の目的
自分の開発チームに✓
リーダブルなコードが
当たり前な文化の作り方を
✓
持ち帰る✓
まとめと次のステップ Powered by Rabbit 2.1.3
リーダブルコードの必要性
チームの開発速度の維持のため
継続的に改良・修正したい✓
それも現実的なコストで✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
変更コストと開発速度
時間
開発
速度
リーダブルじゃない場合
リーダブルな場合
開発速度が落ちにくい
開発速度が落ちやすい
まとめと次のステップ Powered by Rabbit 2.1.3
文化の作り方の流れ(1)
チームでリーダブル基準を育む
「読む人」が
読みやすいなら
リーダブル
✓
「読む人」が変われば基準が変わる✓
→読む人が違うのでチーム毎に違う✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
文化の作り方の流れ(2)
基準の育て方
各メンバーがコードを読む✓
リーダブルだと思ったコードを共有✓
チームとしてリーダブルかを判断✓
→チームの基準に加わる✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
基準の育て方(1)
コードを読む文化を作る
まず自分が読み始める✓
リーダブルなコードを探す✓
見つけたリーダブルなコードを
他のメンバーに伝える(後述)
✓
→コードが読まれるという自覚が
チームに浸透
✓
✓
今日やったのはここまで
まとめと次のステップ Powered by Rabbit 2.1.3
基準の育て方(2)
次のステップ
コミットを読む
コード全体ではなく差分を読む✓
設計の仕方ではなく
開発の仕方が見える
✓
リーダブルなコードを
見つけるには適切
✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
基準の育て方(3)
コミットの読み方
pull型よりpush型がよい
(Git用のオススメツールあり:git-commit-mailer)
(Subversion用のツールもあり:同梱されている)
✓
読むコストが下がる✓
流し読む(負担が多いと続かない)✓
問題探し視点では読まない
(必要ならコードレビューを実施)
✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
基準の育て方(4)
リーダブルコードの伝え方
Wikiに書く(全チームで有効)✓
コードで伝える(上級チーム向け)✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
基準の育て方(5)
Wikiに書いて伝える
Wikiもdiffを通知できるようにする
(RedmineとGitHub用はツールあり)
✓
後で参照できるため✓
更新もできるため
(リーダブルコードの基準は変わることもある!)
✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
基準の育て方(6)
コードで伝える
上級チーム向け
(チームにコードを読む文化が根付いた後)
✓
リーダブルコードを真似てコミット✓
→他の人:「またこの書き方だ」✓
→真似する人増加→チームが合意✓
→チームが合意→Wikiにまとめる✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
コードを読む文化
新人の受け入れにも有用✓
人の入れ替えにも有用✓
まとめと次のステップ Powered by Rabbit 2.1.3
どうして有用か
開発を通じて↓を伝えられる
(ただし、上級チームになってから)
チームが大事にしていること
チームのリーダブル✓
チームの開発スタイル✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
コードを読む文化
チームが大事にしていることを
開発を通じて伝えられる
↓
新人の受け入れにも有用
開発速度低下を抑えられる✓
✓
人の入れ替えにも有用
リーダブル見直しのよい機会✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
これからやること
この講座をチームでもやる
資料はすべて再利用可能✓
✓
自分がコードを読み始める
自分が変更するコードの周辺から
リーダブルコードを探す
✓
見つけたリーダブルなコードを
他のメンバーに伝える
✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
サポート(1)
今日の資料はすべて再利用可能
チーム内で同じ講座をできる✓
✓
無料のフォローアップ面談
チームで実践→悩み
↑の相談に乗る
✓
受講後3ヶ月以内、1回限り✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
サポート(2)
コミット読みの支援
OSSとしてツールを公開✓
コミット毎にメールで通知(diff入り)✓
Git、Subversionで使える✓
GitHub、GitLab連携もできる✓
✓
まとめと次のステップ Powered by Rabbit 2.1.3
おしらせ
コードリーダー育成支援
http://www.clear-code.com/services/code-reader/
リーダブルなコードが
当たり前な文化づくりを支援
まとめと次のステップ Powered by Rabbit 2.1.3
クリアコード
クリアなコードが大切
クリア == clear == 意図が明確✓
クリアなコードはリーダブルコード✓
✓
みなさんのチームが
リーダブルコードが当たり前な
チームになることを応援します!

More Related Content

Viewers also liked

名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こうKouhei Sutou
 
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめリーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめKouhei Sutou
 
実践リーダブルコードの概要
実践リーダブルコードの概要実践リーダブルコードの概要
実践リーダブルコードの概要Kouhei Sutou
 
リーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめましたリーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめましたTakumi Sato
 
実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジKouhei Sutou
 
リーダブルコード勉強会
リーダブルコード勉強会リーダブルコード勉強会
リーダブルコード勉強会TAKUYA YAMAMOTO
 
リーダブルコード
リーダブルコードリーダブルコード
リーダブルコードKeita Otsuka
 
リーダブルコード勉強会
リーダブルコード勉強会リーダブルコード勉強会
リーダブルコード勉強会norimatsu2012
 

Viewers also liked (8)

名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
 
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめリーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめ
 
実践リーダブルコードの概要
実践リーダブルコードの概要実践リーダブルコードの概要
実践リーダブルコードの概要
 
リーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめましたリーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめました
 
実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ
 
リーダブルコード勉強会
リーダブルコード勉強会リーダブルコード勉強会
リーダブルコード勉強会
 
リーダブルコード
リーダブルコードリーダブルコード
リーダブルコード
 
リーダブルコード勉強会
リーダブルコード勉強会リーダブルコード勉強会
リーダブルコード勉強会
 

Similar to 実践リーダブルコードのまとめ

リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方Kouhei Sutou
 
リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要Kouhei Sutou
 
リーダブルコード勉強会 in 筑波大 - 練習
リーダブルコード勉強会 in 筑波大 - 練習リーダブルコード勉強会 in 筑波大 - 練習
リーダブルコード勉強会 in 筑波大 - 練習Kouhei Sutou
 
SEゼミ2015 - 練習
SEゼミ2015 - 練習SEゼミ2015 - 練習
SEゼミ2015 - 練習Kouhei Sutou
 
SEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジSEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジKouhei Sutou
 
20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリングInnova Inc.
 
テスト駆動開発を文化として定着させるために
テスト駆動開発を文化として定着させるためにテスト駆動開発を文化として定着させるために
テスト駆動開発を文化として定着させるためにYudai Tsuyuzaki
 
チーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティスチーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティスTsubasa Hirota
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~InnovationSprint2011
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
MicroServiceArchitecture
MicroServiceArchitectureMicroServiceArchitecture
MicroServiceArchitectureKaseya Hiroshi
 
リーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジリーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジKouhei Sutou
 
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発HIDEKAZU MATSUURA
 
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組みJumpei Miyata
 
Railsガイドを支える技術 (30分版)
Railsガイドを支える技術 (30分版)Railsガイドを支える技術 (30分版)
Railsガイドを支える技術 (30分版)Yohei Yasukawa
 
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...de:code 2017
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進めDai FUJIHARA
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進めRakuten Group, Inc.
 

Similar to 実践リーダブルコードのまとめ (20)

リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方
 
リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要
 
リーダブルコード勉強会 in 筑波大 - 練習
リーダブルコード勉強会 in 筑波大 - 練習リーダブルコード勉強会 in 筑波大 - 練習
リーダブルコード勉強会 in 筑波大 - 練習
 
SEゼミ2015 - 練習
SEゼミ2015 - 練習SEゼミ2015 - 練習
SEゼミ2015 - 練習
 
SEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジSEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジ
 
20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング
 
テスト駆動開発を文化として定着させるために
テスト駆動開発を文化として定着させるためにテスト駆動開発を文化として定着させるために
テスト駆動開発を文化として定着させるために
 
チーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティスチーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティス
 
[Biz reach qa meetup] qa team_build
[Biz reach qa meetup] qa team_build[Biz reach qa meetup] qa team_build
[Biz reach qa meetup] qa team_build
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
MicroServiceArchitecture
MicroServiceArchitectureMicroServiceArchitecture
MicroServiceArchitecture
 
リーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジリーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジ
 
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発
 
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み開発者の生産性向上を妨げる障壁とサイボウズの生産性向上チームの取り組み
開発者の生産性向上を妨げる障壁と サイボウズの生産性向上チームの取り組み
 
To be sn agile enterprise
To be sn agile enterpriseTo be sn agile enterprise
To be sn agile enterprise
 
Railsガイドを支える技術 (30分版)
Railsガイドを支える技術 (30分版)Railsガイドを支える技術 (30分版)
Railsガイドを支える技術 (30分版)
 
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
 
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
 

More from Kouhei Sutou

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 ArrowKouhei Sutou
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Kouhei Sutou
 
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 ArrowKouhei Sutou
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアKouhei Sutou
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかKouhei Sutou
 
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 dataKouhei Sutou
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像Kouhei Sutou
 
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 dataKouhei Sutou
 
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.6Kouhei Sutou
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームKouhei Sutou
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムKouhei Sutou
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroongaKouhei Sutou
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Kouhei Sutou
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムKouhei Sutou
 
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!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.3 まとめと次のステップ 須藤功平 株式会社クリアコード 実践リーダブルコード 2015-06-24
  • 2. まとめと次のステップ Powered by Rabbit 2.1.3 講座の目的 自分の開発チームに✓ リーダブルなコードが 当たり前な文化の作り方を ✓ 持ち帰る✓
  • 3. まとめと次のステップ Powered by Rabbit 2.1.3 リーダブルコードの必要性 チームの開発速度の維持のため 継続的に改良・修正したい✓ それも現実的なコストで✓ ✓
  • 4. まとめと次のステップ Powered by Rabbit 2.1.3 変更コストと開発速度 時間 開発 速度 リーダブルじゃない場合 リーダブルな場合 開発速度が落ちにくい 開発速度が落ちやすい
  • 5. まとめと次のステップ Powered by Rabbit 2.1.3 文化の作り方の流れ(1) チームでリーダブル基準を育む 「読む人」が 読みやすいなら リーダブル ✓ 「読む人」が変われば基準が変わる✓ →読む人が違うのでチーム毎に違う✓ ✓
  • 6. まとめと次のステップ Powered by Rabbit 2.1.3 文化の作り方の流れ(2) 基準の育て方 各メンバーがコードを読む✓ リーダブルだと思ったコードを共有✓ チームとしてリーダブルかを判断✓ →チームの基準に加わる✓ ✓
  • 7. まとめと次のステップ Powered by Rabbit 2.1.3 基準の育て方(1) コードを読む文化を作る まず自分が読み始める✓ リーダブルなコードを探す✓ 見つけたリーダブルなコードを 他のメンバーに伝える(後述) ✓ →コードが読まれるという自覚が チームに浸透 ✓ ✓ 今日やったのはここまで
  • 8. まとめと次のステップ Powered by Rabbit 2.1.3 基準の育て方(2) 次のステップ コミットを読む コード全体ではなく差分を読む✓ 設計の仕方ではなく 開発の仕方が見える ✓ リーダブルなコードを 見つけるには適切 ✓ ✓
  • 9. まとめと次のステップ Powered by Rabbit 2.1.3 基準の育て方(3) コミットの読み方 pull型よりpush型がよい (Git用のオススメツールあり:git-commit-mailer) (Subversion用のツールもあり:同梱されている) ✓ 読むコストが下がる✓ 流し読む(負担が多いと続かない)✓ 問題探し視点では読まない (必要ならコードレビューを実施) ✓ ✓
  • 10. まとめと次のステップ Powered by Rabbit 2.1.3 基準の育て方(4) リーダブルコードの伝え方 Wikiに書く(全チームで有効)✓ コードで伝える(上級チーム向け)✓ ✓
  • 11. まとめと次のステップ Powered by Rabbit 2.1.3 基準の育て方(5) Wikiに書いて伝える Wikiもdiffを通知できるようにする (RedmineとGitHub用はツールあり) ✓ 後で参照できるため✓ 更新もできるため (リーダブルコードの基準は変わることもある!) ✓ ✓
  • 12. まとめと次のステップ Powered by Rabbit 2.1.3 基準の育て方(6) コードで伝える 上級チーム向け (チームにコードを読む文化が根付いた後) ✓ リーダブルコードを真似てコミット✓ →他の人:「またこの書き方だ」✓ →真似する人増加→チームが合意✓ →チームが合意→Wikiにまとめる✓ ✓
  • 13. まとめと次のステップ Powered by Rabbit 2.1.3 コードを読む文化 新人の受け入れにも有用✓ 人の入れ替えにも有用✓
  • 14. まとめと次のステップ Powered by Rabbit 2.1.3 どうして有用か 開発を通じて↓を伝えられる (ただし、上級チームになってから) チームが大事にしていること チームのリーダブル✓ チームの開発スタイル✓ ✓
  • 15. まとめと次のステップ Powered by Rabbit 2.1.3 コードを読む文化 チームが大事にしていることを 開発を通じて伝えられる ↓ 新人の受け入れにも有用 開発速度低下を抑えられる✓ ✓ 人の入れ替えにも有用 リーダブル見直しのよい機会✓ ✓
  • 16. まとめと次のステップ Powered by Rabbit 2.1.3 これからやること この講座をチームでもやる 資料はすべて再利用可能✓ ✓ 自分がコードを読み始める 自分が変更するコードの周辺から リーダブルコードを探す ✓ 見つけたリーダブルなコードを 他のメンバーに伝える ✓ ✓
  • 17. まとめと次のステップ Powered by Rabbit 2.1.3 サポート(1) 今日の資料はすべて再利用可能 チーム内で同じ講座をできる✓ ✓ 無料のフォローアップ面談 チームで実践→悩み ↑の相談に乗る ✓ 受講後3ヶ月以内、1回限り✓ ✓
  • 18. まとめと次のステップ Powered by Rabbit 2.1.3 サポート(2) コミット読みの支援 OSSとしてツールを公開✓ コミット毎にメールで通知(diff入り)✓ Git、Subversionで使える✓ GitHub、GitLab連携もできる✓ ✓
  • 19. まとめと次のステップ Powered by Rabbit 2.1.3 おしらせ コードリーダー育成支援 http://www.clear-code.com/services/code-reader/ リーダブルなコードが 当たり前な文化づくりを支援
  • 20. まとめと次のステップ Powered by Rabbit 2.1.3 クリアコード クリアなコードが大切 クリア == clear == 意図が明確✓ クリアなコードはリーダブルコード✓ ✓ みなさんのチームが リーダブルコードが当たり前な チームになることを応援します!