進め方¶ ↑
: author
須藤功平
: institution
株式会社クリアコード
: content-source
リーダブルコード勉強会 in 筑波大
: date
2015-07-04
: allotted-time
15m
: theme
clear-code
この勉強会の目的¶ ↑
((‘tag:center’)) ((‘tag:margin-bottom * 2’)) リーダブルコードに関してn ↓の2つを知る・体験する
* どういうコード? * どうやって書くの?
目的の理由¶ ↑
複数人開発ではn リーダブルn コードがn 役に立つから
複数人開発¶ ↑
* 仕事での開発 * OSSの開発 * 1人でも年単位で続く開発 * 去年の自分と今年の自分は同じ?
関係者紹介:企画¶ ↑
((‘tag:center’))((‘tag:margin-bottom * 2’)) この場を作った人たち
* 横山さん * 高杉さん * 寺田さん * 今川さん
関係者紹介:スポンサー¶ ↑
((‘tag:center’))((‘tag:margin-bottom * 2’)) 資金面で支援したみなさん
* クロノファクトリー * SEゼミ * アジャイルチームを支える会 * 筑波大学 enPiT
関係者紹介:メンター¶ ↑
((‘tag:center’))((‘tag:margin-bottom * 2’)) みなさんのサポート
* 社会人 * Ruby本体の開発者が混ざっている * 筑波大学生 * 筑波大学院生
関係者紹介:トレーナー¶ ↑
((‘tag:center’))((‘tag:margin-bottom * 2’)) 進行と全体を気にかける係
* 須藤 * リーダブルコード(本)の\n 「解説」の著者
この勉強会の目的¶ ↑
((‘tag:center’)) ((‘tag:margin-bottom * 2’)) リーダブルコードに関してn ↓の2つを知る・体験する
* どういうコード? * どうやって書くの?
オススメの目的の実現方法¶ ↑
OSSの開発に参加n ((‘note:(詳細は勉強会の最後で)’))
今日の目的の実現方法¶ ↑
* 「知る→体験する」の狙い * 説明→なるほど?(知る) * 実践→実感!(体験する) * ↑の対象 * どういうコード? * どうやって書くの?
どういうコード?¶ ↑
読む人がn 読みやすいならn リーダブル
あなたのイメージは?¶ ↑
* 「誰しも」リーダブルだと思う\n コードの書き方がある\n (('note:(誤解を防ぐための補足:「多くの人が」ならあるよ!)')) * すべてのコードを↑な書き方で\n 書ける * ↑ならリーダブルコード
違う!¶ ↑
* 他の人がリーダブルだから\n 自分もリーダブルだと\n 思わなきゃいけないじゃない!\n (('note:(誤解を防ぐための補足:自分も思ったならそれでよい)')) * ↑を勘違いしている人が多い
リーダブルコード¶ ↑
読む人がn 読みやすいならn リーダブル
本にはこう書いている¶ ↑
# blockquote # title = 1章 理解しやすいコード p. 3 コードは他の人が最短時間で理解できるように書かなければいけない。
((‘note:他の人(読む人)が理解しづらい→本が目指しているものじゃない’))
リーダブルコード¶ ↑
読む人がn 読みやすいならn リーダブル
今日の目的の実現方法¶ ↑
* 「知る→体験する」の狙い * 説明→なるほど?(知る) * 実践→実感!(体験する) * ↑の対象 * どういうコード? * ((*どうやって書くの?*))
どうやって書くの?¶ ↑
* 読む人のことを考えて書く * 読む人を「想像」は難しい * 読む人の「経験」が(('note:たくさん'))あると簡単 * 書くだけじゃなく読む経験を! * ただし、単に読む経験じゃない * 「読みやすい」の経験が大事
「読みやすい」の経験¶ ↑
* 「読みやすい」経験を再現 * →読む人が読みやすいコード
((‘wait’)) ((‘tag:center’)) ((‘tag:large’)) リーダブルコード!
知ったこと¶ ↑
* どういうコード? * 読む人が読みやすいコード * どうやって書くの? * 読みやすかった経験を再現
((‘wait’)) ((‘tag:center’)) ((‘tag:large’)) 実践だ!
実践方法の概要¶ ↑
((‘tag:center’)) ((‘tag:large’)) コードをn 読まざるを得ないn 状況で開発
((‘ ’))
実践¶ ↑
(1) 全員共通の課題を用意 (2) (('wait'))課題を実装\n (('note:まだ読む人視点はないけどリーダブルコードで書く')) (3) (('wait'))実装を交換 (4) (('wait'))交換した実装で開発継続 * ↑他の人のコードを読まないと\n 継続して開発できない!\n (('note:「読みやすい」経験を積む→'))\n (('note:それを活かしてリーダブルコードで書く'))
今日の流れ - 午前¶ ↑
* 10:00- 進め方の説明 * 10:40- 実装 * 12:00- 無料ランチ\n (SEプラスさん提供!) * 13:00- ランチセッション
今日の流れ - 昼下がり¶ ↑
* 13:30- メビュー * 13:40- チェンジして実装 * 15:30- グループふりかえり * 16:10- ふりかえり内容紹介
メビュー¶ ↑
* メビュー?(Mentor's View) * レビューに似ているけど違う * レビュー:問題を見つける * メビュー:メンターの視点を共有
今日の流れ - 夕方¶ ↑
* 16:20- まとめ * 16:30- メビュー・質疑応答 * 17:00- アンケート記入 * 17:30- 無料懇親会