= 進め方 : author 須藤功平 : institution 株式会社クリアコード : content-source SEゼミ2014 - リーダブルコード勉強会2 : date 2014/07/06 : allotted-time 15m : theme clear-code = 今日の流れ - 午前 * 10:00- 進め方の説明 * 11:00- 実装 * 12:00- スポンサー紹介 * 12:30- ランチ = 今日の流れ - 昼下がり * 13:30- コード解説 * 13:50- チェンジして実装 * 15:30- グループふりかえり * 16:00- グループ発表 = 今日の流れ - 夕方 * 17:30- まとめ * 17:35- 質疑応答 * 17:50- アンケート記入 * 18:00- 撤収&移動 * 18:10- 懇親会 = メンター紹介 * 参加者のサポート係 * 現役超優秀エンジニア * 参加者がわからない * →聞くと助けてくれる * →モジモジしてると声をかけてくる = メンター紹介1 (('tag:center'))(('tag:margin-bottom * 2')) 川原さん(@ooharabuchou) * 楽天社員 * 楽天ウェブサービスの開発 * OpenPNEの開発 = メンター紹介2 (('tag:center'))(('tag:margin-bottom * 2')) たなべさん(sunaot) * DeNA社員 * 「るびま」の編集者\n (('note:(Rubyist Magazine)')) * 最新るびま:リリースアナウンス = メンター紹介3 (('tag:center'))(('tag:margin-bottom * 2')) 結城さん(Piro) * クリアコード社員 * 開発Firefoxアドオン数世界一 * ツリー型タブ\n (('note:(Tree Style Tab)')) = メンター紹介4 (('tag:center'))(('tag:margin-bottom * 2')) 沖元さん(okkez) * クリアコード社員 * 「るりま」のリーダー\n (('note:(Rubyリファレンスマニュアル刷新計画)'))\n (('note:(≒ Rubyの日本語ドキュメント改善プロジェクト)')) * CRubyのコミッターの1人 = トレーナー紹介 (('tag:center'))(('tag:margin-bottom * 2')) 須藤 * クリアコード代表取締役 * 進行と全体を気にかける係 * リーダブルコード(本)の\n 「解説」の著者 * RubyKaigi 2014で話すよ = 勉強会の目的 (('tag:center'))(('tag:large')) 参加者の\n リーダブルコード力の\n レベルアップ ((' ')) = 実現方法 * やること * コードを書いて読んでまた書く * やらないこと * リーダブルコードを書くための\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 = どうして将来を重視? (('tag:center'))(('tag:large')) 高速道路と大渋滞 (('tag:center')) (将棋の羽生さんの話)\n (('note:http://japan.cnet.com/blog/umeda/2004/12/06/entry_post_203/')) = 高速道路と大渋滞 * インターネットの普及 * 情報量大・いつでも対局できる * 将棋が強くなるための高速道路 * 高速道路の先は大渋滞 * 高速道路に終わりがある * 次の世代も高速道路を走ってくる * 終わった場所から抜け出せない = 高速道路と大渋滞:イメージ # image # src = images/highway-and-major-traffic-jam.svg # relative_height = 100 == プロパティー : enable-title-on-image false = 当てはめると (('tag:center'))(('tag:margin-bottom * 2')) 高速道路 = テクニック集 * 高速道路を走る * 先人が整理したテクニック集を学ぶ * 大渋滞 * 未整理のテクニックを活かせない = ここまでのまとめ * タイムテーブル説明 * メンバー紹介 * 勉強会で目指すことを共有 * 目的: リーダブルコード力アップ * ポイント: ((*今*))ではなく((*将来*))を意識 = 将来を見据える テクニックを\n 自ら開発できる = テクニックの開発方法 (1) 既存のテクニックの習得 * 本から学ぶ * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 = 本から学ぶ (1) 既存のテクニックの習得 * 本から学ぶ ←((*各自やって*)) * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 = 野生のコードから発見 (1) 既存のテクニックの習得 * 本から学ぶ * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 ↑((*今日のターゲット*)) (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 = 改善案を発明 (1) 既存のテクニックの習得 * 本から学ぶ * 野生のコードを読む→\n リーダブルコードを発見→\n 吸収 (2) 新規にテクニックを発明 * リーダブルでないコードを発見→\n 改善案を発明 ←((*別の機会で*)) = リーダブルコードの発見 * 本の内容→世界の一部 * 世界 * 野生のリーダブルコードがたくさん * リーダブルコードがある場所 * OSSのコード * 大学・会社の仲間のコード = 発見方法 書いて読んで\n 書いて読んで\n 書いて読んで = 理由 * 読まないとコードのサンプルが0 * サンプルがないと見つけられない * 書かないと身につかない * 知識だけで終わらせない * 自分のスキルにする = 今日やること (1) 書いて (2) 読んで (3) 書いて = 書いて読んで書いて * 11:00- 課題を開発 * ((*書く*)) * 13:50 実装をチェンジ * 13:50- 他の人の実装で開発継続 * ((*読む*))・((*書く*)) * 読まないと変更できない = 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:30- グループふりかえり * 各自:リーダブルコードを発見済 * 各自からグループに共有 * 16:00- グループ発表 * グループ:リーダブルコードを発見済 * グループから全体に共有 = 最後 * 17:30- まとめ * 成功だった?(発見できた?) * 17:35- 質疑応答 * 18:10- 懇親会 * 積極的に情報交換してね * 参加者同士 * メンターの人に質問←参考になるはず = 確認 = 目的 (('tag:center'))(('tag:large')) 参加者の\n リーダブルコード力の\n レベルアップ ((' ')) = ポイント 今よりも((*将来*)) = やること テクニックを\n 開発する方法を\n 体験 = 具体的なやること (('tag:center'))(('tag:large')) コードを読んで\n リーダブルコードを発見 ((' ')) = 目標 (('tag:center'))(('tag:large')) コードを読んで\n リーダブルコードを発見 (('tag:center')) ↑が習慣になる = 目標達成の判断基準例 (1) 今後はOSSのコードを毎日読む (2) 面接時に↓を質問 * コードを見せてください * チーム内で\n コードを読みあっている? = 忘れないで (('tag:center'))(('tag:margin-bottom * 2')) プログラミングが好きなことは\n とても大切にして欲しいこと (('tag:center')) 誰かのコードから\n リーダブルコードを見つける事は\n 辛い事でなく楽しい事になるはず