= 進め方 : author 須藤功平 : institution 株式会社クリアコード : content-source SEゼミ2014 - リーダブルコード勉強会1 : date 2014/06/22 : allotted-time 30m : theme clear-code = 今日の流れ - 午前 * 10:00- 進め方の説明 * 11:00- 実装 * 12:00- ランチ = 今日の流れ - 昼下がり * 13:00- コード解説 * 13:30- チェンジして実装 * 15:00- グループふりかえり * 16:00- グループ発表 = 今日の流れ - 夕方 * 17:00- まとめ * 17:30- 懇親会 = メンバー紹介 * 須藤 * トレーナー * クリアコード代表取締役 * リーダブルコードの「解説」の著者 = メンター紹介1 * 沖元さん * メンター * クリアコード社員 * Rubyコミッター * ○○グループ担当 = メンター紹介2 * 結城さん * メンター * クリアコード社員 * Firefoxアドオンを何十個も開発 * ○○グループ担当 = メンター紹介3 * ○○さん * メンター * 楽天社員 * XXX * ○○グループ担当 = 勉強会の目的 (('tag:center'))(('tag:large')) 参加者の\n リーダブルコード力の\n レベルアップ ((' ')) = レベルアップ後のイメージ # blockquote 自分が書いたコードってどのくらい覚えているんですか? # blockquote ほとんど覚えていないですよ。 = レベルアップ後のイメージ # blockquote 直すときどうするんですか?わからなくなってるじゃないですか。 # blockquote 忘れても見たら簡単にわかるように書いておくんですよ。 = 実現方法 * やること * コードを書いて読んでまた書く * やらないこと * リーダブルコードを書くための\n テクニックをたくさん伝授 = やらないこと (('tag:center')) リーダブルコードを書くための\n テクニックをたくさん伝授 ((' ')) = テクニック伝授は範囲外 # image # src = images/many-tips-are-not-important.svg # relative_height = 100 == プロパティー : enable-title-on-image false = やること コードを\n 書いて読んで\n また書く = 「書き読み書き」の狙い # image # src = images/expected-by-reading-writing-reading.svg # relative_height = 100 == プロパティー : enable-title-on-image false = 将来を重視 # image # src = images/goal.svg # relative_height = 100 == プロパティー : enable-title-on-image false = どうして将来を重視? * 魚のたとえ話 * 昔話 * 高速道路と大渋滞 * 将棋の羽生さんの話\n (('note:http://japan.cnet.com/blog/umeda/2004/12/06/entry_post_203/')) = 魚のたとえ話 * 魚を与える * その日は空腹を満たせる * でも、明日には飢える * 魚の獲り方を教える * 最初はうまくいかないかも * でも、身につければ一生飢えない = 当てはめると (('tag:center'))(('tag:margin-bottom * 2')) 魚 = テクニック * 魚を与える * テクニックを伝える * 魚の獲り方を教える * テクニックの開発方法を伝える = 高速道路と大渋滞 * インターネットの普及 * 情報量大・いつでも対局できる * 将棋が強くなるための高速道路 * 高速道路の先は大渋滞 * 高速道路に終わりがある * 次の世代も高速道路を走ってくる * 終わった場所から抜け出せない = 高速道路と大渋滞:イメージ # image # src = images/highway-and-major-traffic-jam.svg # relative_height = 100 == プロパティー : enable-title-on-image false = 当てはめると (('tag:center'))(('tag:margin-bottom * 2')) 高速道路 = テクニック集 * 高速道路を走る * 先人が整理したテクニック集を学ぶ * 大渋滞 * 未整理のテクニックを活かせない * →((*自分でテクニックを開発しないと*)) = 将来を重視する理由 * 魚のたとえ話 * 昔話 * 高速道路と大渋滞 * 将棋の羽生さんの話\n (('note:http://japan.cnet.com/blog/umeda/2004/12/06/entry_post_203/')) = テクニックの開発方法 (1) 既存のテクニックの習得 * 本から学ぶ * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 = 本から学ぶ (1) 既存のテクニックの習得 * 本から学ぶ ←((*各自やって*)) * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 = 野生のコードから発見 (1) 既存のテクニックの習得 * 本から学ぶ * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 ↑((*今日のターゲット*)) (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 = 改善案を発明 (1) 既存のテクニックの習得 * 本から学ぶ * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 ←((*別の機会で*)) = 勉強会成功の判断基準 (('tag:center'))(('tag:large')) リーダブルコードを\n 発見できるようになったか ((' ')) = ここまでのまとめ * タイムテーブル説明 * メンバー紹介 * 目的と実現方法を共有 * 目的: リーダブルコード力アップ * 実現方法: 書いて読んで書く * ポイント: 将来を見据える = リーダブルコードの発見 * 本の内容→世界の一部 * 世界 * 野生のリーダブルコードがたくさん * リーダブルコードがある場所 * OSSのコード * 大学・会社の仲間のコード = 発見方法 書いて読んで\n 書いて読んで\n 書いて読んで = 理由 * 読まないとコードのサンプルが0 * サンプルがないと見つけられない * 書かないと身につかない * 知識だけで終わらせない * 自分のスキルにする = 発見方法 書いて読んで\n 書いて読んで\n 書いて読んで = 今日やること (1) 書いて (2) 読んで (3) 書いて = 書いて読んで書いて * 11:00- 課題を開発 * ((*書く*)) * 13:30 実装をチェンジ * 13:30- 他の人の実装で開発継続 * ((*読む*))・((*書く*)) * 読まないと変更できない = 1: 初期状態 (1) 書いて←((*自己流で本気をだす*)) (2) 読んで (3) 書いて = 2: 吸収 (1) 書いて←自己流で本気をだす (2) 読んで←((*他のコードから吸収*)) (3) 書いて = 3: レベルアップ (1) 書いて←自己流で本気をだす (2) 読んで←他のコードから吸収 (3) 書いて←((*↑を活用して成長*)) = 明日からは自分たちで # image # src = images/level-up-cycle.svg # relative_height = 100 == プロパティー : enable-title-on-image false = ここまでのまとめ * リーダブルコードの\n 発見方法を紹介 * 書いて読んで書いて… * 今日やることの説明 * 書いて読んで書いて * 1ターンだけ * 2ターン目以降は各自がんばって! = 書いた後にやること * 15:00- グループふりかえり * 各自:リーダブルコードを発見済 * 各自からグループに共有 * 16:00- グループ発表 * グループ:リーダブルコードを発見済 * グループから全体に共有 = 最後 * 17:20- まとめ * 成功だった?(発見できた?) * 17:30- 懇親会 * おつかれさま! * 積極的に情報交換してね * 参加者同士 * メンターの人に質問←参考になるはず