コードチェンジ

: author

須藤功平

: institution

株式会社クリアコード

: content-source

SEゼミ2014 - リーダブルコード勉強会2

: date

2014/07/06

: allotted-time

5m

: theme

clear-code

目的の確認

((‘tag:center’))((‘tag:large’)) 参加者のn リーダブルコード力のn レベルアップ

((‘ ’))

将来を重視

# image
# src = images/goal.svg
# relative_height = 100

プロパティー

: enable-title-on-image

false

目指すこと

((‘tag:center’))((‘tag:large’)) リーダブルコードをn 発見できるようになる

((‘ ’))

目指さないこと

* テクニックをたくさん((*覚える*))
* 難しいプログラムでも\n
  実装できるようになる
* 速く実装できるようになる

目指すためにやること

コードチェンジ

コードチェンジでやること

(1) 書いて←自己流で本気をだす\n
    (('note:(午前中にやった)'))
(2) 読んで←((*他のコードから吸収*))
    (('note:(読まないといけない状況を強制的に作る)'))
(3) 書いて←((*↑を活用して成長*))

どうしてこうやるか

(1) 既存のテクニックの習得
    * 本から学ぶ
    * 野生のコードを読む→\n
      リーダブルコードを発見→\n
      吸収 ((*↑を体験*))
(2) 新規にテクニックを発明
    * リーダブルでないコードを発見→\n
      改善案を発明

やり方

* 交換相手を決める
* 交換相手のリポジトリーをfork
* ↑を使って開発継続

交換相手の決め方

* 基準
  * だいたい同じ状況同士
  * 例: 進み具合、環境
* メンターがヒアリング
  * 積極的に協力して

リポジトリーをfork

* やり方がわからない人は挙手

開発継続

* どこまで進んでいるかを確認
  * READMEやlogを参考に\n
    (('note:(どういう風に書いておけばよかったか考えてみて)'))
* ↑から開発を継続

忘れないで

* よいコードを見つけたらメモ
  * memo.mdに追記して随時push
  * 後でよいコードを共有する時に使う
* 書くこと
  * コードのURL
  * よい理由
  * 見つけたきっかけ

ポイント

悪いコードよりn よいコード

悪いコード

* 見つけやすい
  * 異質
  * リーダブルじゃない
* 過剰に指摘したくなる
  * 「マサカリを投げてみたい」

マサカリ投げたい症候群

((‘tag:center’))((‘tag:margin-bottom * 2’)) 早めに卒業しましょう

* 必要十分な事実伝達以外の\n
  否定的な情報を過剰に含む指摘\n
  (('note:必要十分な事実伝達がない場合もある'))
  * 必要十分な事実伝達:\n
    ○○な理由で××ではなく△△だ\n
    (('note:本に書いているから、は理由になっていない'))
* 優越感を得られる

よいコード

* 見つけにくい
  * リーダブルだから
  * すーっと理解できてひっかからない
* 今日のチャレンジ
  * 意識して見つけよう!

発見方法のヒント

* リーダブルコード
  * ((*読む人*))がリーダブルと思ったコード
* 読む人視点が重要
  * 交換直後の今が読む人の視点!

忘れないで

* よいコードを見つけたらメモ
  * memo.mdに追記して随時push
  * 後でよいコードを共有する時に使う
* 書くこと
  * コードのURL
  * よい理由
  * 見つけたきっかけ