SlideShare a Scribd company logo
1 of 52
Download to read offline
進め方 Powered by Rabbit 2.1.3
進め方
須藤功平
株式会社クリアコード
SEゼミ2014 - リーダブルコード勉強会1
2014/06/22
進め方 Powered by Rabbit 2.1.3
今日の流れ - 午前
10:00- 進め方の説明✓
11:00- 実装✓
12:00- ランチ✓
進め方 Powered by Rabbit 2.1.3
今日の流れ - 昼下がり
13:00- コード解説✓
13:20- チェンジして実装✓
15:00- グループふりかえり✓
16:10- グループ発表✓
進め方 Powered by Rabbit 2.1.3
今日の流れ - 夕方
17:10- まとめ✓
17:20- スポンサーセッション✓
18:00- 懇親会✓
進め方 Powered by Rabbit 2.1.3
メンター紹介
参加者のサポート係✓
現役超優秀エンジニア✓
参加者がわからない
→聞くと助けてくれる✓
→モジモジしてると声をかけてくる✓
✓
進め方 Powered by Rabbit 2.1.3
メンター紹介1
たなべさん
DeNA社員✓
C系グループ担当✓
進め方 Powered by Rabbit 2.1.3
メンター紹介2
まきもとさん
クックパッド社員✓
Javaグループ担当✓
進め方 Powered by Rabbit 2.1.3
メンター紹介3
結城さん
クリアコード社員✓
Pythonグループ担当✓
進め方 Powered by Rabbit 2.1.3
メンター紹介4
沖元さん
クリアコード社員✓
Rubyグループ担当✓
進め方 Powered by Rabbit 2.1.3
メンター紹介5
川原さん
楽天社員✓
C系とPythonグループ担当(午前)✓
JavaとPythonグループ担当(午後)✓
進め方 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
実現方法
やること
コードを書いて読んでまた書く✓
✓
やらないこと
リーダブルコードを書くための
テクニックをたくさん伝授
✓
✓
進め方 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
将来を重視
時間
リーダブルコード力
今日
将来を重視
半年後
進め方 Powered by Rabbit 2.1.3
どうして将来を重視?
魚のたとえ話
昔話✓
✓
高速道路と大渋滞
将棋の羽生さんの話
http://japan.cnet.com/blog/umeda/2004/12/06/
entry_post_203/
✓
✓
進め方 Powered by Rabbit 2.1.3
魚のたとえ話
魚を与える
その日は空腹を満たせる✓
でも、明日には飢える✓
✓
魚の獲り方を教える
最初はうまくいかないかも✓
でも、身につければ一生飢えない✓
✓
進め方 Powered by Rabbit 2.1.3
当てはめると
魚 = テクニック
魚を与える
テクニックを伝える✓
✓
魚の獲り方を教える
テクニックの開発方法を伝える✓
✓
進め方 Powered by Rabbit 2.1.3
高速道路と大渋滞
インターネットの普及
情報量大・いつでも対局できる✓
将棋が強くなるための高速道路✓
✓
高速道路の先は大渋滞
高速道路に終わりがある✓
次の世代も高速道路を走ってくる✓
終わった場所から抜け出せない✓
✓
進め方 Powered by Rabbit 2.1.3
高速道路と大渋滞:イメージ
世代
棋力
大渋滞
世代3世代1 世代2
高速道路
高速
超高速
超絶高速
進め方 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.
新規にテクニックを発明
リーダブルでないコードを発見→
改善案を発明
✓
2.
進め方 Powered by Rabbit 2.1.3
本から学ぶ
既存のテクニックの習得
本から学ぶ ←各自やって✓
野生のコードを読む→
リーダブルコードを発見→
吸収
✓
1.
新規にテクニックを発明
リーダブルでないコードを発見→
改善案を発明
✓
2.
進め方 Powered by Rabbit 2.1.3
野生のコードから発見
既存のテクニックの習得
本から学ぶ✓
野生のコードを読む→
リーダブルコードを発見→
吸収 ↑今日のターゲット
✓
1.
新規にテクニックを発明
リーダブルでないコードを発見→
改善案を発明
✓
2.
進め方 Powered by Rabbit 2.1.3
改善案を発明
既存のテクニックの習得
本から学ぶ✓
野生のコードを読む→
リーダブルコードを発見→
吸収
✓
1.
新規にテクニックを発明
リーダブルでないコードを発見→
改善案を発明 ←別の機会で
✓
2.
進め方 Powered by Rabbit 2.1.3
リーダブルコードの発見
本の内容→世界の一部✓
世界
野生のリーダブルコードがたくさん✓
✓
リーダブルコードがある場所
OSSのコード✓
大学・会社の仲間のコード✓
✓
進め方 Powered by Rabbit 2.1.3
発見方法
書いて読んで
書いて読んで
書いて読んで
進め方 Powered by Rabbit 2.1.3
理由
読まないとコードのサンプルが0
サンプルがないと見つけられない✓
✓
書かないと身につかない
知識だけで終わらせない✓
自分のスキルにする✓
✓
進め方 Powered by Rabbit 2.1.3
今日やること
書いて1.
読んで2.
書いて3.
進め方 Powered by Rabbit 2.1.3
書いて読んで書いて
11:00- 課題を開発
書く✓
✓
13:20 実装をチェンジ✓
13:20- 他の人の実装で開発継続
読む・書く✓
読まないと変更できない✓
✓
進め方 Powered by Rabbit 2.1.3
1: 初期状態
書いて←自己流で本気をだす1.
読んで2.
書いて3.
進め方 Powered by Rabbit 2.1.3
2: 吸収
書いて←自己流で本気をだす1.
読んで←他のコードから吸収2.
書いて3.
進め方 Powered by Rabbit 2.1.3
3: レベルアップ
書いて←自己流で本気をだす1.
読んで←他のコードから吸収2.
書いて←↑を活用して成長3.
進め方 Powered by Rabbit 2.1.3
明日からは自分たちで
時間
リーダブルコード力
今日
読み
書き
レベルアップ
継続的に
習慣にして
進め方 Powered by Rabbit 2.1.3
ここまでのまとめ
リーダブルコードの
発見方法を紹介
書いて読んで書いて…✓
✓
今日やることの説明
書いて読んで書いて✓
1ターンだけ✓
2ターン目以降は各自がんばって!✓
✓
進め方 Powered by Rabbit 2.1.3
書いた後にやること
15:00- グループふりかえり
各自:リーダブルコードを発見済✓
各自からグループに共有✓
✓
16:10- グループ発表
グループ:リーダブルコードを発見済✓
グループから全体に共有✓
✓
進め方 Powered by Rabbit 2.1.3
最後
17:10- まとめ
成功だった?(発見できた?)✓
✓
17:20- スポンサーセッション✓
18:00- 懇親会
積極的に情報交換してね
参加者同士✓
メンターの人に質問←参考になるはず✓
✓
✓
確認
進め方 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
目標
コードを読んで
リーダブルコードを発見
↑が習慣になる
進め方 Powered by Rabbit 2.1.3
目標達成の判断基準例
今後はOSSのコードを毎日読む1.
面接時に↓を質問
コードを見せてください✓
チーム内で
コードを読みあっている?
✓
2.
進め方 Powered by Rabbit 2.1.3
忘れないで
プログラミングが好きなことは
とても大切にして欲しいこと
誰かのコードから
リーダブルコードを見つける事は
辛い事でなく楽しい事になるはず

More Related Content

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!
 

Recently uploaded

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 

Recently uploaded (11)

2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 

SEゼミ2014 - リーダブルコード勉強会の進め方

  • 1. 進め方 Powered by Rabbit 2.1.3 進め方 須藤功平 株式会社クリアコード SEゼミ2014 - リーダブルコード勉強会1 2014/06/22
  • 2. 進め方 Powered by Rabbit 2.1.3 今日の流れ - 午前 10:00- 進め方の説明✓ 11:00- 実装✓ 12:00- ランチ✓
  • 3. 進め方 Powered by Rabbit 2.1.3 今日の流れ - 昼下がり 13:00- コード解説✓ 13:20- チェンジして実装✓ 15:00- グループふりかえり✓ 16:10- グループ発表✓
  • 4. 進め方 Powered by Rabbit 2.1.3 今日の流れ - 夕方 17:10- まとめ✓ 17:20- スポンサーセッション✓ 18:00- 懇親会✓
  • 5. 進め方 Powered by Rabbit 2.1.3 メンター紹介 参加者のサポート係✓ 現役超優秀エンジニア✓ 参加者がわからない →聞くと助けてくれる✓ →モジモジしてると声をかけてくる✓ ✓
  • 6. 進め方 Powered by Rabbit 2.1.3 メンター紹介1 たなべさん DeNA社員✓ C系グループ担当✓
  • 7. 進め方 Powered by Rabbit 2.1.3 メンター紹介2 まきもとさん クックパッド社員✓ Javaグループ担当✓
  • 8. 進め方 Powered by Rabbit 2.1.3 メンター紹介3 結城さん クリアコード社員✓ Pythonグループ担当✓
  • 9. 進め方 Powered by Rabbit 2.1.3 メンター紹介4 沖元さん クリアコード社員✓ Rubyグループ担当✓
  • 10. 進め方 Powered by Rabbit 2.1.3 メンター紹介5 川原さん 楽天社員✓ C系とPythonグループ担当(午前)✓ JavaとPythonグループ担当(午後)✓
  • 11. 進め方 Powered by Rabbit 2.1.3 トレーナー紹介 須藤 クリアコード代表取締役✓ リーダブルコード(本)の 「解説」の著者 ✓ 進行と全体を気にかける係✓
  • 12. 進め方 Powered by Rabbit 2.1.3 勉強会の目的 参加者の リーダブルコード力の レベルアップ
  • 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 テクニック伝授は範囲外 時間 リーダブルコード力 今日 今日の増加分の 目指さない 最大化
  • 18. 進め方 Powered by Rabbit 2.1.3 やること コードを 書いて読んで また書く
  • 19. 進め方 Powered by Rabbit 2.1.3 「書き読み書き」の狙い 時間 リーダブルコード力 今日 傾きを大きく 狙い
  • 20. 進め方 Powered by Rabbit 2.1.3 将来を重視 時間 リーダブルコード力 今日 将来を重視 半年後
  • 21. 進め方 Powered by Rabbit 2.1.3 どうして将来を重視? 魚のたとえ話 昔話✓ ✓ 高速道路と大渋滞 将棋の羽生さんの話 http://japan.cnet.com/blog/umeda/2004/12/06/ entry_post_203/ ✓ ✓
  • 22. 進め方 Powered by Rabbit 2.1.3 魚のたとえ話 魚を与える その日は空腹を満たせる✓ でも、明日には飢える✓ ✓ 魚の獲り方を教える 最初はうまくいかないかも✓ でも、身につければ一生飢えない✓ ✓
  • 23. 進め方 Powered by Rabbit 2.1.3 当てはめると 魚 = テクニック 魚を与える テクニックを伝える✓ ✓ 魚の獲り方を教える テクニックの開発方法を伝える✓ ✓
  • 24. 進め方 Powered by Rabbit 2.1.3 高速道路と大渋滞 インターネットの普及 情報量大・いつでも対局できる✓ 将棋が強くなるための高速道路✓ ✓ 高速道路の先は大渋滞 高速道路に終わりがある✓ 次の世代も高速道路を走ってくる✓ 終わった場所から抜け出せない✓ ✓
  • 25. 進め方 Powered by Rabbit 2.1.3 高速道路と大渋滞:イメージ 世代 棋力 大渋滞 世代3世代1 世代2 高速道路 高速 超高速 超絶高速
  • 26. 進め方 Powered by Rabbit 2.1.3 当てはめると 高速道路 = テクニック集 高速道路を走る 先人が整理したテクニック集を学ぶ✓ ✓ 大渋滞 未整理のテクニックを活かせない✓ ✓
  • 27. 進め方 Powered by Rabbit 2.1.3 ここまでのまとめ タイムテーブル説明✓ メンバー紹介✓ 勉強会で目指すことを共有 目的: リーダブルコード力アップ✓ ポイント: 今ではなく将来を意識✓ ✓
  • 28. 進め方 Powered by Rabbit 2.1.3 将来を見据える テクニックを 自ら開発できる
  • 29. 進め方 Powered by Rabbit 2.1.3 テクニックの開発方法 既存のテクニックの習得 本から学ぶ✓ 野生のコードを読む→ リーダブルコードを発見→ 吸収 ✓ 1. 新規にテクニックを発明 リーダブルでないコードを発見→ 改善案を発明 ✓ 2.
  • 30. 進め方 Powered by Rabbit 2.1.3 本から学ぶ 既存のテクニックの習得 本から学ぶ ←各自やって✓ 野生のコードを読む→ リーダブルコードを発見→ 吸収 ✓ 1. 新規にテクニックを発明 リーダブルでないコードを発見→ 改善案を発明 ✓ 2.
  • 31. 進め方 Powered by Rabbit 2.1.3 野生のコードから発見 既存のテクニックの習得 本から学ぶ✓ 野生のコードを読む→ リーダブルコードを発見→ 吸収 ↑今日のターゲット ✓ 1. 新規にテクニックを発明 リーダブルでないコードを発見→ 改善案を発明 ✓ 2.
  • 32. 進め方 Powered by Rabbit 2.1.3 改善案を発明 既存のテクニックの習得 本から学ぶ✓ 野生のコードを読む→ リーダブルコードを発見→ 吸収 ✓ 1. 新規にテクニックを発明 リーダブルでないコードを発見→ 改善案を発明 ←別の機会で ✓ 2.
  • 33. 進め方 Powered by Rabbit 2.1.3 リーダブルコードの発見 本の内容→世界の一部✓ 世界 野生のリーダブルコードがたくさん✓ ✓ リーダブルコードがある場所 OSSのコード✓ 大学・会社の仲間のコード✓ ✓
  • 34. 進め方 Powered by Rabbit 2.1.3 発見方法 書いて読んで 書いて読んで 書いて読んで
  • 35. 進め方 Powered by Rabbit 2.1.3 理由 読まないとコードのサンプルが0 サンプルがないと見つけられない✓ ✓ 書かないと身につかない 知識だけで終わらせない✓ 自分のスキルにする✓ ✓
  • 36. 進め方 Powered by Rabbit 2.1.3 今日やること 書いて1. 読んで2. 書いて3.
  • 37. 進め方 Powered by Rabbit 2.1.3 書いて読んで書いて 11:00- 課題を開発 書く✓ ✓ 13:20 実装をチェンジ✓ 13:20- 他の人の実装で開発継続 読む・書く✓ 読まないと変更できない✓ ✓
  • 38. 進め方 Powered by Rabbit 2.1.3 1: 初期状態 書いて←自己流で本気をだす1. 読んで2. 書いて3.
  • 39. 進め方 Powered by Rabbit 2.1.3 2: 吸収 書いて←自己流で本気をだす1. 読んで←他のコードから吸収2. 書いて3.
  • 40. 進め方 Powered by Rabbit 2.1.3 3: レベルアップ 書いて←自己流で本気をだす1. 読んで←他のコードから吸収2. 書いて←↑を活用して成長3.
  • 41. 進め方 Powered by Rabbit 2.1.3 明日からは自分たちで 時間 リーダブルコード力 今日 読み 書き レベルアップ 継続的に 習慣にして
  • 42. 進め方 Powered by Rabbit 2.1.3 ここまでのまとめ リーダブルコードの 発見方法を紹介 書いて読んで書いて…✓ ✓ 今日やることの説明 書いて読んで書いて✓ 1ターンだけ✓ 2ターン目以降は各自がんばって!✓ ✓
  • 43. 進め方 Powered by Rabbit 2.1.3 書いた後にやること 15:00- グループふりかえり 各自:リーダブルコードを発見済✓ 各自からグループに共有✓ ✓ 16:10- グループ発表 グループ:リーダブルコードを発見済✓ グループから全体に共有✓ ✓
  • 44. 進め方 Powered by Rabbit 2.1.3 最後 17:10- まとめ 成功だった?(発見できた?)✓ ✓ 17:20- スポンサーセッション✓ 18:00- 懇親会 積極的に情報交換してね 参加者同士✓ メンターの人に質問←参考になるはず✓ ✓ ✓
  • 46. 進め方 Powered by Rabbit 2.1.3 目的 参加者の リーダブルコード力の レベルアップ
  • 47. 進め方 Powered by Rabbit 2.1.3 ポイント 今よりも将来
  • 48. 進め方 Powered by Rabbit 2.1.3 やること テクニックを 開発する方法を 体験
  • 49. 進め方 Powered by Rabbit 2.1.3 具体的なやること コードを読んで リーダブルコードを発見
  • 50. 進め方 Powered by Rabbit 2.1.3 目標 コードを読んで リーダブルコードを発見 ↑が習慣になる
  • 51. 進め方 Powered by Rabbit 2.1.3 目標達成の判断基準例 今後はOSSのコードを毎日読む1. 面接時に↓を質問 コードを見せてください✓ チーム内で コードを読みあっている? ✓ 2.
  • 52. 進め方 Powered by Rabbit 2.1.3 忘れないで プログラミングが好きなことは とても大切にして欲しいこと 誰かのコードから リーダブルコードを見つける事は 辛い事でなく楽しい事になるはず