44
@giginet 北海道大学工学部 学部3年 ゆとり Pythonスタッフやります 詳しくはポジションペーパーで!

【TDDBC2.1】やる夫で学ぶTDD

Embed Size (px)

Citation preview

Page 1: 【TDDBC2.1】やる夫で学ぶTDD

@giginet

北海道大学工学部 学部3年

ゆとり

Pythonスタッフやります

詳しくはポジションペーパーで!

Page 2: 【TDDBC2.1】やる夫で学ぶTDD

       ____     /⌒  ⌒\   /( ●)  (●)\  /::::::⌒(__人__)⌒::::: \   前回ウケたからやる夫でやるお!  |     |r┬-|     |  \      `ー'´     /

Page 3: 【TDDBC2.1】やる夫で学ぶTDD

            , '´  ̄ ̄ ` 、           i r-ー-┬-‐、i            | |,,_   _,{|           N| "゚'` {"゚`lリ     Pythonスタッフや ら な い か              ト.i   ,__''_  !           /i/ l\ ー .イ|、     ,.、-  ̄/  | l   ̄ / | |` ┬-、     /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.   /    ∨     l   |!  |   `> |  i   /     |`二^>  l.  |  | <__,|  | _|      |.|-<    \ i / ,イ____!/ \   .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l __{   ___|└―ー/  ̄´ |ヽ |___ノ____________|   }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  | __f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|   | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄| ___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|  ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄| _______l       -ヾ ̄  l/         l|       |___|

前回までのあらすじ

Page 4: 【TDDBC2.1】やる夫で学ぶTDD

       _,r'´::::::::::::::::::::::::::`'、.      /          {::::::::rr-‐-‐'^i::::::::::::::i.     !   ところでこのコードを見てくれ         ゙l'´゙《   __,,,ゝ:::r、:::::l     |   こいつをどう思う?         ト=r;、 ゙"rィァ‐リメ }:::::}    ヽ            ゙i`"l   ̄    ソ::::ヽ    l′           ゙i. ゝ^   ,  /ヾヾヾ、   ヽ,             ヽ ゙こ´  /     ヽ、   ∠_            ヽ、  /__,∠、    `'-、   ^ー――             `゙ク'゙´   `    ゙'、 ヽ               /           〉 ヽヽ             ィ               ヽヽ          _,,-'´:::                 ゙i         /    `                  }       /         ,-ィ‐r'´´      /   l    __r'〈      ,ノ   / ```l       /     l -‐ ´      ‐ '' ´  /l:::    l     ー'´      l

       / ̄ ̄ ̄\     / ─    ─ \    /  <○>  <○>  \ ∠ すごく・・・・・・レガシーです・・・・・・.    |    (__人__)    |    \    ` ⌒´    /    /              \

Page 5: 【TDDBC2.1】やる夫で学ぶTDD

         ____        /      \       /  ─    ─\     /    (ー)  (ー) \     |       (__人__)    | ________      \      ` ⌒´   ,/ .| |          | せっかく夏休みなのに特にやることもないお    ノ           \ | |  Twitter |  飯食ってコード書いて寝るだけだお  /´                 | |          |  |    l                | |          |  ヽ    -一ー_~、⌒)^),-、   | |_________|   ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  |

        ____        /     \         /   ⌒  ⌒ \   ん、今年もはてなのインターンシップ募集してるお   /    (●)  (●) \         |   、" ゙)(__人__)"  )    ___________   \      。` ⌒゚:j´ ,/ j゙~~| | |             |__/          \  |__| | |             || | /   ,              \n||  | |   はてな     || | /   /         r.  ( こ) | |             || | | ⌒ ーnnn        |\ (⊆ソ .|_|___________| ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二  _|_|__|_

Page 6: 【TDDBC2.1】やる夫で学ぶTDD

       ____     /⌒  ⌒\ ホジホジ   /( ●)  (●)\     ダメっぽいけど一応履歴書出してみるお  /::::::⌒(__人__)⌒::::: \    ダメで元々だお  |    mj |ー'´      |  \  〈__ノ       /    ノ  ノ

Page 7: 【TDDBC2.1】やる夫で学ぶTDD

            / ̄ ̄\          /   _ノ  \          |    ( ●)(●)          |     (__人__)               |     ` ⌒´ノ   学生時代に特に打ち込んだものは?              |         }              ヽ        }            ヽ、.,__ __ノ   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_ 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

       ____    /      \   /  ─    ─\       /    (●) (●) \    キーボードです |       (__人__)    |     \     ` ⌒´   /      ,,.....イ.ヽヽ、___ ーーノ゙-、.:   |  '; \_____ ノ.| ヽ i    |  \/゙(__)\,|  i |    >   ヽ. ハ  |   ||

履歴書書いて出しました

Page 8: 【TDDBC2.1】やる夫で学ぶTDD

          _____          / ヽ____//          /   /   /         /   /   /         /   /   /        /   /   /        /   /   /       /   /   /        ̄ ̄ ̄ ̄ ̄

       | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|        |                    |        |                    |        /    ̄ ̄ ̄ ̄      /_____        /              /ヽ__//      /     結果      /  /   /      /              /  /   /     /   ____     /  /   /    /             /  /   /  /             /    /   /   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/   /   /

8月頭ぐらいに結果が来ました

Page 9: 【TDDBC2.1】やる夫で学ぶTDD

                                 ,.へ   ___                             ム  i  「 ヒ_i〉                            ゝ 〈  ト ノ                           iニ(()  i  {              ____           |  ヽ  i  i           /__,  , ‐-\           i   }  |   i         /(●)   ( ● )\       {、  λ  ト-┤.      /    (__人__)    \    ,ノ  ̄ ,!  i   ゝ、_     |     ´ ̄`       | ,. '´ハ   ,! . ヽ、    `` 、,__\              /" \  ヽ/    \ノ ノ   ハ ̄r/:::r―--―/::7   ノ    /        ヽ.      ヽ::〈; . '::. :' |::/   /   ,. "         `ー 、    \ヽ::. ;:::|/     r'"      / ̄二二二二二二二二二二二二二二二二ヽ      | 答 |     インターンシップ合格     │|      \_二二二二二二二二二二二二二二二二ノ

Page 10: 【TDDBC2.1】やる夫で学ぶTDD

というわけで、はてなのインターンシップに

行ってきました

Page 11: 【TDDBC2.1】やる夫で学ぶTDD

      ._       \ヽ, ,、        `''|/ノ         .|     _   |     \`ヽ、|      \, V         `L,,_         |ヽ、)  ,、        /    ヽYノ       /    r''ヽ、.|      |     `ー-ヽ|ヮ      |       `|      |.        |      ヽ、      |        ヽ____ノ              /_ノ ' ヽ_\      /(≡)   (≡)\     /::::::⌒(__人__)⌒::::: \           |     |r┬-|     |           \      `ー'´     /     /          \     (  |          |  )     \|    э    |/       (    ,,,,    ,ノ       \  、(U)ノ ノ         \/  /                     /  /\                   ⊂⌒__)__)

やる夫で学ぶテスト駆動開発

はてな編

Page 12: 【TDDBC2.1】やる夫で学ぶTDD

   ;ヾ、,.、,、.、rツ ッッシ、:':' r':' _,、-'゙_, ,、,、,ミッン、,._        _,、-'゙_,、-'゙.  、ィッ ,:、 ゙''ゞ=ミ、~.: _,、-'゙_,、-'゙  __,  }; ヾ ゙' {!li;:,. _,、-'゙_,、-'゙ _,、-'゙,::|_|  京都市中京区 ゞァ''゙ぐ _,、-'゙_,、-'゙ _,、-'゙,、-''" .|_   はてな京都オフィス ,ヘ:'_,、-'゙_,、-'゙..::「┴_,エ ┴  ''"_|_|   └i'゙-ニ,ニエ,.:|ニ「 _エ ┴  ''"_|_     |エ | ニエ, |ニ「 _エ ┴  __.|_|_     |エ | ニエ, |ニ「 _エ ┴ 「fj.||__|__| _|     |エ | ニエ, |[8] _エ ┴ └-_|_|__l__,|⊥ |__     |エ | ニエ, |二 _.エ 二.._ |__|__| _|_|_     |エ | ニエ, |┴ _.エ 二.._ |_|__l__,|⊥ |__|     |エ | ニエ, |工 _.エ 二.._ |__|__| _|_|_     |エ | ニエ, |工 _.エ 二.._ |_|__l__,|⊥ |__   -,-=''┷━━|┬ニエ ┬--  .|__|__| _|_|_    ''ーニ_''ー::、_ ゙┷ 工_二'--、,_|_|__l__,|⊥ |__   二二二`''ーニ`_''ー-、_̈''━、L|__|__| _|_|_   二二二二二二二`''ーニ_''ー 、_       |⊥ |__

Page 13: 【TDDBC2.1】やる夫で学ぶTDD
Page 14: 【TDDBC2.1】やる夫で学ぶTDD

      |┃      |┃__  _____    _ノ  ヽ、_ `'´ _,ノ  ヽ\    ‐-、 はてなに来てしまったお   (●) (● ) U ( ●) (●) ___,ノ-、 きっと周りはスゴい人  / (__人__)  彡  (__人__) ヽ   ___,ノ  しかいないんだお  |   |┬t| U     |r┬-|  |  \  `ー'   彡   `ー'´ /      |┃          ノ      (⌒ヽ     / /

Page 15: 【TDDBC2.1】やる夫で学ぶTDD
Page 16: 【TDDBC2.1】やる夫で学ぶTDD
Page 17: 【TDDBC2.1】やる夫で学ぶTDD
Page 18: 【TDDBC2.1】やる夫で学ぶTDD

         ____        /⌒  ⌒\         ━━┓┃┃       /(  ̄)  (_)\         ┃   ━━━━━━━━     /::::::⌒(__人__)⌒:::: \         ┃               ┃┃┃    |    ゝ'゚     ≦ 三 ゚。 ゚                            ┛    \   。≧       三 ==-        -ァ,        ≧=- 。         イレ,、       >三  。゚ ・ ゚        ≦`Vヾ       ヾ ≧        。゚ /。・イハ 、、    `ミ 。 ゚ 。 ・

Page 19: 【TDDBC2.1】やる夫で学ぶTDD

               r‐- 、_        ,.、-‐=ニン′: . : ` 丶 、       ,. - ''"´. : :{ : . : . : 、 : 丶      , ´ . : . : . /| {ヽ. : 、   、: /~\ヘ    /   / : . : . / l | `、 _ _ヽ :  .\::.::.::.::.\   ./.// : / : ,/- 、 ', !  ´、 `丶: . :`;:.::.}:::.::.::.ヽ   ′ /  :/i : /     丶   丶`、 : . ト、:i::.:}:::.::.:::.丿      /.//:.|. : .,′           ヽ: .: |:::ヾ∧::::/     ,'/  | : | : ハ   _ _     ,、=≡ミ`,: .:ト、乂 卞´     ′ 1: ハ:|バ'´``` ,     、、 `;.:| :}: : .¦       ∨  `ゝ} ゙´   _ ‐、     ,__レノ: : ノ│             _込、_   ヽ _丿  _ イ:/: : .,.'  |          f'~゙'''ー汀ニ─-r‐ ´〈,/ : : ,:イ: .  |         _|::::::`"゙゙}::_;//廴__/   :/く;|: i.  |        ∠,r‐‐、;;;;;;{イ f~ ̄/  .//~`}: l.  |           / r'"_ソ:.丿{ ,!  / /   〃   |: l.  |        人  _〉ノ}、 ヽ| / イ   .,' !    {: !  |        〔ヽ、\少´|}\ |,//{   { ,i    |: |  l        〈\_二__/|>ゾ<从  | :l     {: l  |          } ` ̄  /: : : : : : `、 ヽ:! |       {: l. |        ヽ   /: : /ヽ: : : ヽ `|       {: l {

はてなの社員さんはとっても仲良し基本的にみんなIDで呼び合うわ寝ながらお菓子食べて仕事をするのは当たり前仕事が終わったら歌ったり踊ったりここまでフリーダムなのにちゃんと会社として回っているのはびっくりよね

Page 20: 【TDDBC2.1】やる夫で学ぶTDD

            / ̄ ̄\          /   _ノ  \          |    ( ●)(●)          |     (__人__)               |     ` ⌒´ノ   これから1週間、講義を受けつつ              |         } Perlでブログサービスを作ってもらいます              ヽ        } 評価が一定以下の場合、その場でお帰り願います            ヽ、.,__ __ノ   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_ 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

1週間で基礎から叩き込まれます何も知らない人でも、

Webサービスを1から開発できるようになります

Page 21: 【TDDBC2.1】やる夫で学ぶTDD

         ___       / ⌒  ⌒\      / (⌒)  (⌒)\    /   ///(__人__)///\     |   u.   `Y⌒y'´    | あっ、これTDDBCでやったところだお      \       ゙ー ′  ,/      /⌒ヽ   ー‐    ィヽ      / rー'ゝ       〆ヽ    /,ノヾ ,>      ヾ_ノ,|    | ヽ〆        |´ |

課題の中ではテストが要求されることも多く、TDDBC2.0の経験が生きました

Page 22: 【TDDBC2.1】やる夫で学ぶTDD

CPANでは各モジュールの評価が重視されます

Page 23: 【TDDBC2.1】やる夫で学ぶTDD

【審議中】    ∧,,∧  ∧,,∧ ∧ (´・ω・) (・ω・`) ∧∧( ´・ω) U) ( つと ノ(ω・` )| U (  ´・) (・`  ) と ノ u-u (l    ) (   ノu-u     `u-u'. `u-u'

CPANのモジュールは世界中のユーザーに使われてレーティングされます

Page 24: 【TDDBC2.1】やる夫で学ぶTDD

【可決】      ∧,,∧  .∧,,∧  ∧∧(`・ω・´)(`・ω・´)∧∧ (`・ω・´).∧) (∧∧(`・ω・´) | U (`・ω・´)(`・ω・´) と ノ  u-u (l    ) (    ノ u-u      `u-u'  `u-u'

その結果、一定の評価を受けた質の高いモジュールだけに淘汰されていきます

Page 25: 【TDDBC2.1】やる夫で学ぶTDD

【否決】      ∧,,∧  .∧,,∧  ∧∧(´‐ω‐`)(´‐ω‐`)∧∧ (´‐ω‐).∧∧) (∧∧ (‐ω‐`) | U (´‐ω‐`)(´‐ω‐`) と ノ  u-u (l    ) (    ノ u-u      `u-u'  `u-u'

テストが充実していないモジュールは質の低いモジュールと見なされ誰にも利用されません

Page 26: 【TDDBC2.1】やる夫で学ぶTDD

       、 _       \_ー、 _f ヽ, ‐───- 、      _ ─`  l          、  `r< ̄:::/    /         , 〉. 、       \__j:::::::\_|_  ∠ -─ フ´   l ./|ヽ_ヘ\__\ 、\:::::::::::::::::\     r'/ /  || ! ヘl  \_`ヽ \ヽ、::::::::::::/     〉 /  -7l.! l  ヽ   \ ヽ ヽ、ヽ:::::::::人     .' ,'  !  i l       __,rz ヽ} ヽl `::/  \     l /:l  |  |  _,,z     ==" rへヘー!´ヽ, ‐,  \     K__|  ヽ ハ彡"    _     __,イ` rヘ / /.    \       l  /入!、!     く 冫   / ! !  l i' /っ、      \.       ∨/ / .>、 _____ /l´ヽ、j/  f  { `l ヽ      \.        ,' / / !  | /:::;j_ /:::::::/  A そ_,ヘ   \.    \         l / /  |  イ:::::|´ `!:::::::/  //::ヽ/ ハ、_  \      \        |/  ,   |,ハ:ヽ::::|  ,'::::::/  //:;;//'/ノ l   \.    \       /  ,    !ヘ〉、ヽ:! .,':/// /. \// /   ヽ    \      \        /  ,'    ノ///}_ヘ!.!/´// ,' _ `l、/       }     \     \        ,'   ,   /k  ' ' トV/'//  l    i、`ヽ、    /      \ \   \.      !   l  イヽ、ヽ、△ヽイ/!  !     \   ̄ ̄         \ \、 \      l    !  ハヽ、 ー 、_j ..::l' |  !\    ヽ               \ ヽ\ ヽ      |  l | { ヽ 二 _イ :::: ト |  ,'   \  _ ノ                   \ヽ ヽヽ ',      |   ハ| 〉、   /   j ! ! ̄ ー '/、_                 ヽ',  \ !      |   ! l! l/ `iー' |   /  ', !   /ヽ:::::::::::::ヽー、              `   '|      ハ l ヽ|   l   L/! ̄i ̄ヘ  ̄:::::::::::::::::::::::::::::`::::>、_        ヽ{  |   |  //  !::::::|::::::|:::::::::::::::::::::::::::::::::::::://ノ

Perlはテストの文化Perlモジュールの善し悪しはテストが充実しているかどうかで決まるわはてなではTest::More, Test::Mostなんかの基本的なUnitTestモジュールを使っているみたいね

Page 27: 【TDDBC2.1】やる夫で学ぶTDD

       ___     (⌒    \::.   /  _ノ  ヽ、 _ \:: .  /  o゚⌒   ⌒゚o ヽ     やっと終わったお……  |  O  (__人__) # |      毎日夜中までかかったお……  \     ` ⌒´   /   .:.:|   >  ニニ⌒)(⌒ニノ      :|   /  / ^ ヽ ^ ヽ     .:|  (__/\_)_) ̄ ̄ ̄\

1週間、無事課題をこなすと、後半課程へ進めます

Page 28: 【TDDBC2.1】やる夫で学ぶTDD

        / ̄\        |     |         \_/          |       /  ̄  ̄ \     /  \ /  \    /   ⌒   ⌒   \      よくぞ前半課程を通過してくれた    |    (__人__)     |      褒美として新サービスを    \    ` ⌒´    /   ☆  開発する権利をやろう    /ヽ、--ー、__,-‐´ \─/   / >   ヽ▼●▼<\  ||ー、.  / ヽ、   \ i |。| |/  ヽ (ニ、`ヽ. .l   ヽ     l |。| | r-、y `ニ  ノ \ l     |    |ー─ |  ̄ l   `~ヽ_ノ____    / ̄ ̄ ̄ ̄ヽ-'ヽ--'  / オプーナ  /|   .| ̄ ̄ ̄ ̄ ̄ ̄|/|    | ̄ ̄ ̄ ̄ ̄ ̄|/| ______/ ̄オプーナ/|  ̄|__」/_オプーナ  /| ̄|__,」___    /|| ̄ ̄ ̄ ̄ ̄|/オプーナ ̄/ ̄ ̄ ̄ ̄|/ オプーナ /|  / .|| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄|/l ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄|/| /| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|

後半2週間は稼働中のサービスを弄らせてもらえます

Page 29: 【TDDBC2.1】やる夫で学ぶTDD

  _ _   ___ / ) ) )/ \  /\ {   ⊂)(●)  (●) \ |   / ///(__人__)/// \   !   !    `Y⌒y'́    | 後半課程ははてなダイアリーを作ることにしたお |   l      ゙ー ′  ,/  |   ヽ   ー-    ィ |          /  | |         〆ヽ/ |         ヾ_ノ

「ダイアリー」、「ブックマーク」、「人力検索」、「うごくメモ帳」の中から

好きなチームへ二人一組で配属されます

Page 30: 【TDDBC2.1】やる夫で学ぶTDD

       ____      / ⌒  ⌒  \    ./( ―) ( ●)  \ はてなのコードなら    /::⌒(_人_)⌒:::::  | チラッ めちゃくちゃ綺麗に違いないお    |    ー       .| 楽勝だお    \          /

Page 31: 【TDDBC2.1】やる夫で学ぶTDD

           ____       /::::::::::::::::\      /::::::─三三─\    /:::::::: ( ○)三(○)\   このサブルーチン1300行もあるお    |::::::::::::::::::::(__人__)::::  |  ________     \:::::::::   |r┬-|   ,/ .| |          |    ノ::::::::::::  `ー'´   \ | |          |    /:::::::::::::::::::::             | |          |   |::::::::::::::::: l               | |          |

※実話です

Page 32: 【TDDBC2.1】やる夫で学ぶTDD

            ヽ、__,..-:‐:‐-ィ':ヽ:-‐::-:.、_         _,.-‐='ニ´: : : : : : : : :;{: : : : : : : : : :`ヽ、 .        ´ ̄>: : : : : :/: : :/::/|: : :.::|: : : :`ヽ: : :ヘ ;      .,ィ'/: : : : : : :/:: : :;j: :| ∨: :::|V: : :ヘ::.:\: :ハニ:=‐-.、 .     ; 〈:/:.:,ィ´: : : : :j:: : ::/|: :|  V: ::| ∨: : ハ::: :ヘ:: :}:::\::::/ ;       j/::j: : : : : ::|::__,ノ'|: j u V:.:|ヽ、:__: ::|:::: ::ヘ::|::::::::\        \:|: : ::i: : ::|:.:/ __|:/    ヽ:|___ \:.:|::: : :ハリ:::::::::/;           ; |: .:::|: : ::|;/ィチ弐" ....... ゛オ弐z∨:::: : : |:\:/          : |:.;/:|: : :ハ::::゜:..     ,    ..::u::∨:::.:ト:|::: :| :          レi: ::|: ::|.-}:::::::    ,:‐-、   ::::::;r-'|:.:|:::::: :| ;          |: ::::ヽ:|:| ヽ、    V ,ノ  u,/ |::||/:i::::: .:|            |i: : ::::|i:| : `,ニ=‐r--r‐<.   |::| |:|:::::: :|          |:|: :::::|'|:|  /  r:j   {ア  \; |::| .||:::::: :|          |:| : :::| |:l/    |-‐-/     \|:| |!::: : :| .           : |:| : :::|.|::j\    | ./     ,/ハj  |::: : :| ;          ; |:|: ::::| |:{  {\  | /    /}   }  |:: : :.|

はてなダイアリーは2003年からずっと同じシステムを使っているから内部の実装は意外とレガシー一度リニューアルした「はてなブックマーク」や「うごくメモ帳」では、比較的新しいシステムを使っているみたいよ

Page 33: 【TDDBC2.1】やる夫で学ぶTDD

      ___    /     \   /  _ノ '' 'ー \         すいません、これ仕様書とかないんですかお /  (●)  (●)  \ |      (__人__)    | \      ` ⌒´   /

            / ̄ ̄\          /   _ノ  \          |    ( ●)(●)          |     (__人__) 仕様書はないのでテストを見てください             |     ` ⌒´ノ             テストが絶対です              |         }              ヽ        }            ヽ、.,__ __ノ   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_ 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

Page 34: 【TDDBC2.1】やる夫で学ぶTDD

                .. ≧ー‐: : : : : :/ : : : : : : : : : : : :>、            イ: : : : : : : : : : : : : | : : : : : : : : : : : : : : : \ .         /: : : / : : : : : : : :/: │: : : : : : : : : : : : : : : : : \       /: , -/ : : : : /: : : :/ : : ,|: :|: : : : : :| : : : : ヽ : : : : : :ヽ       /: //: : :/: : :/: : : ,イ: : :/ |: :|: : : : : :| : : : : : :', : : : : |_ 」__     /: / .': : : :/ : : /.: : :/ |: : イ |: :|', : : : : | : : : : : : ',ニ/⌒ヽ.:.:>、 .   //  /: : : :/: : : .': \/ |: /:|  ',: ',ヽ: : : :|', : : : : : : ',/ ̄.:ヽ}___.:.:.:.\   /    /: : : :/|: : : :|: : :/\.|/ |   v ', \斗―: : : : : :|.:.:.:.:.:.:.\:ヽ.:.:.:.:|       |: : : /.:.|: : : :|: :f≧x、ヽ |   ヽ{ /ヽ| ', : : : : : |.:.:.:.:.:.:.:.:.:| :|.:.:.:.:|       |: : ∧.:.|: : : :|: :|! {rイ心  、__ /x≦云示ア/⌒ヽ.:.:.:.:.:.:.:.| :|.:.:.:.:|       |: :/ ヽ!: : : :!:ハ Ⅵ::::j}    〃frイ:::::::::/'      }.:.:.:.:.:.:.:| :|.:.:.:/       |:/    V: : :|{: :ハ ヽzソ        vトーイ/      /.:.:.:.:.:.:.:.:| :|ー '       |{r=≠ニヘ : ∧/ {.:.:.:.:.  、     ヽzxV     /____」 :|         }    |V : : :个 、   f⌒ヽ  .:.:.:.{      ′: : : :/ : : : |         { \ー‐|: : : : : |: /「 >- 、___ノ__ ... -',    {: : : :/: : : : │         |  `ー|: : : : : |/ :| | |  ヽ x-- 、/ }    |: /:}: : : : : : |        ヽ.ヽ、 ヘ : : : :∧/| | . >ー{   ヽ/ ̄ ̄ ̄ヽ. |: : : : : :│          {ヽ.__ム: : : {-ヘ ー ' {.:.:.:.:.:.>、   {       ',ヽ: : : : : |         ヽ.ー―ヘ: : :|-/ヽ   〉ーく /ヽ  ヽ/⌒    | ',: : : : |          }ー―ヘ : |/ ,/ /.:.:.:.:.:| {: : :}  {        }ヽ.} : : : |

優れたテストは仕様書を兼ねるしっかりとテストが書いてあれば細かな仕様書は不要。実装に困ったらとりあえずテストを見ること。これこそがテスト駆動開発の真骨頂ね

Page 35: 【TDDBC2.1】やる夫で学ぶTDD

        |    \  __  /    _ (m) _       |ミ|     /  `´  \     ____ よく見たらテストコードが   /⌒  ⌒\    チーン! 大量にあるお  /( ●)  (●)\/::::::⌒(__人__)⌒::::: \ これが通るように実装|     |r┬-|     |           しなおせばいいだけだお/     `ー'´      ∩ノ ⊃( \             /_ノ.\ “  ____ノ  /  \_ ____  /

Page 36: 【TDDBC2.1】やる夫で学ぶTDD

2週間後

Page 37: 【TDDBC2.1】やる夫で学ぶTDD

            / ̄ ̄\          /   _ノ  \          |    ( ●)(●)          |     (__人__) 2週間、お疲れ様です             |     ` ⌒´ノ これから皆さんが作った物をプレゼンしてもらい、              |         }           投票の結果、チーム毎に順位を付けます              ヽ        }            ヽ、.,__ __ノ          その後、即日リリースさせます   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_ 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

開発した物をプレゼンして、順位付けされますその後、即日、一般ユーザーに開放されます

Page 38: 【TDDBC2.1】やる夫で学ぶTDD
Page 39: 【TDDBC2.1】やる夫で学ぶTDD
Page 40: 【TDDBC2.1】やる夫で学ぶTDD

       /      \      /ノ  \   u. \ !?    / (●)  (●)    \     |   (__人__)    u.   |      \ u.` ⌒´      /    ノ           \  /´               ヽ どこのチームもレベル高杉だお                        優勝とか無理だお         ____    /       \!??      /  u   ノ  \    /      u (●)  \    |         (__人__)|     \    u   .` ⌒/    ノ           \  /´               ヽ

Page 41: 【TDDBC2.1】やる夫で学ぶTDD

優勝しました

Page 42: 【TDDBC2.1】やる夫で学ぶTDD

   / ̄ ̄\ /   _ノ  \ |    ( ●)(●). |     (__人__)  |     ` ⌒´ノ 会社の金でホテルに20連泊.  |         }  ミ        ピコッ      して豪遊三昧だお.  ヽ        } ミ  /\  ,☆____   ヽ     ノ    \  \ /     \ お菓子もジュースも   /    く  \.  /\/ ─    ─ \    食べ放題だお   |     `ー一⌒)  /   (●)  (●)  \    |    i´ ̄ ̄ ̄ \ |      (__人__)     |               \_   ` ⌒´    /                /          \

待遇が素晴らしいので、学生の方は来年どうぞ

Page 43: 【TDDBC2.1】やる夫で学ぶTDD

詳しくは以下の記事にまとめたので、お暇な方はぜひ

意識の高い学生(笑)がはてなインターンシップに参加すべき5つの理由 - 5.1さらうどん http://d.hatena.ne.jp/gigi-net/20110912/1315777456

できればはてブしてください

Page 44: 【TDDBC2.1】やる夫で学ぶTDD

ご静聴ありがとうございました