読者です 読者をやめる 読者になる 読者になる

気の向くままに書き綴る

勉強会参加したメモや日々の思ったことのメモ等

【Devlove2012参加】愛せないコードを書くには人生はあまりにも短い

愛せないコードを書くには人生はあまりにも短い
和田氏
http://www.slideshare.net/t_wada/devlove2012-twada-tdd

 できている人と比べてもしょうがない
 頑張りすぎようとしない
 過去の自分との相対評価

 まずは、写経
  http://gihyo.jp/dev/serial/01/tdd/0006
  https://twitter.com/t_wada/status/9000231741

■バージョン管理

 自動テスト
  ソフトウェアは自然言語で記すには複雑すぎる
  百間は一見に如かず
  ドキュメントとしてのテスト

 自動化
  あきる
  疲れやすい
  エビデンス欲求
  あの時に動いたで今は?
  人力でやるのはいみがない
  変更の阻害要因はリスク

 動作する、綺麗なコードへ
  かっちり仕様を決める場合
   きれい→動く
  まずは動くものを求める場合
   動く→きれい

リファクタリング
 タブーに挑戦「動くコードに触れるな」
   →挑戦しなければいつまでもコピペが出来るし、誇りがなくなる
    →プログラマリファクタリングによって誇りを取り戻す
 リファクタリングというから予算の話とかが入るジレンマに陥る
   →プログラミング=リファクタリングも含む

■テスト→実装→リファクタリング=三本柱と黄金の回転の力
  恐怖を克服する
  未練を立つ
  勇気を得る
  自分の限界を認め、自分の学習速度で限界を引き上げる。その道具たちを知る。

■予期せぬ変化を予期する
 予想外の変更
  「えっ??」
 呼吸が上がる瞬間
 でも変更なんてみんな予想外だ

 予想できないことだけは予想できる
  一度書いたコードが変更されなかったことがあるか?
  予想外に備えるとは、シンプルなプログラムを組む

 シンプルさを保つには
  歴史をしる
 例
  Unix
  小さいのは良いことだ
  一つのことをうまくやる
  すべてをフィルタに
  KISS Keep ItSimple,Stupid
  複雑にするな

  REST
  多様なURL
  少ない振る舞い
  状態を持たない

  SQL
  すべてが集合
  SELECT,INSERT,UPDATE,DELETE

  共通するもの
   ・インタフェースが少ない
   ・実装に依存していない
   ・再利用が時間をまたいでいる

 穏当なコードを書きたい
  ・シンプルであること、直行していること
  ・クリーンで、リーダブルで、穏当なコード
  ・力技ではなく、必要な抽象度で

■TDDとはなにか
 プログラミングを支えるものは何か
  楽しさ
  情熱の量
  モチベーション
  あの頃のわくわく感大事にしよう

 TDDは
  恐怖を克服
  強者に身を委ねるのではなく、自らの足で歩く技術
  自らの力で誇りと愛着を取り戻すため
  プログラミングの楽しさを取り戻す

 TDDはスキルです
  才能ではなく技術です
  習得可能です
  量は質に転化します
  写経しましょう!!
  勉強会行ってみたり

技術書の「写経」の方法。
1.ローカルで使える SCM を用意
2.「ほんたった」などで対象の本を固定
3.ひたすらサンプルコードを写して実行
4.実行するたびにコミット(コミットログにページ番号を含める)
5.疑問点があったらコミットログや本に書き込む 6.章ごとにタグを打つ

【プレゼンテクニック】長いプレゼンの時にチェックポイントを入れる
 ・マイクチェック
 ・残時間
 ・周りの空気
 ・情熱