Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2020年度 ミクシィ新卒研修 -設計・テスト- / 2020 design test mix...
Search
rockname
April 15, 2020
Programming
0
1.5k
2020年度 ミクシィ新卒研修 -設計・テスト- / 2020 design test mixi training
2020年度の株式会社ミクシィ における新卒研修の資料です
repository:
https://github.com/mixi-inc/2020TDDTraining
rockname
April 15, 2020
Tweet
Share
More Decks by rockname
See All by rockname
生成AIを活用したレシート読み取り機能のアプリ開発の裏側 / AI Receipt Scan App Development
rockname
0
21
ゼロから理解するDependency Injection / Understanding Dependency Injection from the Ground Up
rockname
2
3.6k
サブスクリプション機能制御の設計における勘所
rockname
0
940
Anatomy of Dynamic color
rockname
1
1.1k
キャッシュによる状態管理のアーキテクチャ / Cache-based state management architecture
rockname
10
19k
Optimistic Updatesで UXを向上させる / Improve UX with Optimistic Updates
rockname
3
1.2k
モバイルアプリのリストUIにおける 理想的なState表示について / The ideal state display in a mobile app list UI
rockname
7
1.8k
オンデバイスで学習可能になったCreate MLで画像分類器を作ってみた💪 / Developing an app to train an image classifier on iOS Device using Create ML
rockname
4
470
The practice of inclusive design -WWDC21-
rockname
1
1.2k
Other Decks in Programming
See All in Programming
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
asdf-ecspresso作って 友達が増えた話 / Fujiwara Tech Conference 2025
koluku
0
1.4k
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1.4k
DMMオンラインサロンアプリのSwift化
hayatan
0
190
Flatt Security XSS Challenge 解答・解説
flatt_security
0
730
良いユニットテストを書こう
mototakatsu
11
3.6k
ErdMap: Thinking about a map for Rails applications
makicamel
1
650
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
Rubyでつくるパケットキャプチャツール
ydah
0
170
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
Featured
See All Featured
Docker and Python
trallard
43
3.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
Scaling GitHub
holman
459
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Producing Creativity
orderedlist
PRO
343
39k
BBQ
matthewcrist
85
9.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Building an army of robots
kneath
302
45k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
ϛΫγΟ৽ଔݚम ઃܭɾςετ גࣜձࣾϛΫγΟΈͯͶࣄۀ෦ ϩΫωϜ!@SPDLOBNF
NJYJ *OD ࠓճͷݚमͷΰʔϧ w ྑ͍ઃܭ ѱ͍ઃܭΛཧղ͢Δ w ςετͷجຊతͳॻ͖ํΛཧղ͢Δ
NJYJ *OD ͳͥྑ͍ઃܭ͕ٻΊΒΕΔͷ͔ w ઃܭͷ࣭͕ྑ͚Εɺ৽͍͠ϦϦʔεͷͨͼʹඞཁͳ࿑ྗগͳ͑͘ΒΕ·͢ w ࣭͕ѱ͚ΕɺࠣࡉͳมߋͰ͑͞େྔͷϑΝΠϧ܈ʹ·͕ͨͬͯෳՕॴΛमਖ਼͠ɺͦ ͷӨڹൣғ͚ͩಈ࡞֬ೝΛ͢Δඞཁ͕͋ͬͨΓ͠·͢ w ܦӦऀࢹͰͷཁٻεϐʔυΛຬͨͤͳ͘ͳΓɺڝ߹ଞࣾͱͷ૪͍ʹഊ͢ΔҰҼʹ͢
ΒͳΓ͔Ͷ·ͤΜ
NJYJ *OD ྑ͍ઃܭΛྺ࢙ʹֶͿ w ϓϩάϥϛϯάݴޠͷύϥμΠϜҎԼͷΑ͏ͳਐԽΛ͖͛ͯ·ͨ͠ ߏԽϓϩάϥϛϯά ΦϒδΣΫτࢦϓϩάϥϛϯά
ؔܕϓϩάϥϛϯά
NJYJ *OD ߏԽϓϩάϥϛϯά w ॱ࣍ɾ෮ɾબͷ੍ޚߏʹΑͬͯϓϩάϥϜΛهड़Ͱ͖ΔΑ͏ʹ͠·ͨ͠ w ॱ্͔࣍ΒԼʹॲཧ͕࣮ߦ͞Ε͍ͯ͘ w ෮EPXIJMFͷΑ͏ʹ݅Λຬͨ͢ݶΓॲཧΛ܁Γฦ͢ w
બJGUIFOFMTFͷΑ͏ʹ݅ʹԠͯ͡ॲཧΛ͔ͭ w ࢦఆͨ͠ҙͷҐஔʹҠಈ͢ΔHPUPจΛഇࢭͯ͠ɺ্هͷ੍ޚߏΛ༻͍Δ͜ͱͰɺ ূՄೳͳϓϩάϥϛϯάͷ୯ҐΛ࡞Ͱ͖ΔΑ͏ʹ͠·ͨ͠ ʮ$MFBO"SDIJUFDUVSFୡਓʹֶͿιϑτΣΞͷߏͱઃܭʯୈষΑΓ
NJYJ *OD ΦϒδΣΫτࢦϓϩάϥϛϯά w ΦϒδΣΫτࢦݴޠ͕ొ͢ΔҎલɺϙϦϞʔϑΟζϜΛؔͷϙΠϯλʹΑͬͯද ݱ͍ͯ͠·ͨ͠ w ͔͠͠ɺʮϙΠϯλܦ༝ͰؔΛݺͼग़͢ʯͱ͍͏͜ͱΛҙࣝͯ͠ίʔυΛѻΘͳ͚Ε ͳΒͣɺඇৗʹյΕ͍͢ঢ়ଶͰͨ͠ w
ΦϒδΣΫτࢦݴޠܧঝʹΑΔ҆શͳϙϦϞʔϑΟζϜख๏ͷఏڙʹΑΓɺ͜ͷΑ͏ ͳؒతͳ੍ޚͷҠߦΛ੍͠·ͨ͠ ʮ$MFBO"SDIJUFDUVSFୡਓʹֶͿιϑτΣΞͷߏͱઃܭʯୈষΑΓ
NJYJ *OD ؔܕϓϩάϥϛϯά w ม͕࠶ೖՄೳͰ͋Δ͜ͱʹΑͬͯɺڝ߹ঢ়ଶσουϩοΫ ฒߦߋ৽ͳͲɺҙࣝ͢ ͖͕ଟ͍Ͱ͢ w ؔܕݴޠɺมʹҰೖ͞ΕͨΛෆมʹ͢Δ͜ͱͰ͜ͷΑ͏ͳΛؾʹ͢Δ ඞཁΛഉআ͠·ͨ͠
ʮ$MFBO"SDIJUFDUVSFୡਓʹֶͿιϑτΣΞͷߏͱઃܭʯୈষΑΓ
NJYJ *OD ྑ͍ઃܭΛྺ࢙ʹֶͿ w ʮԿΛ͖͢Ͱͳ͍͔ʯͱ͍͏نΛ՝͢͜ͱͰɺϓϩάϥϛϯάͷύϥμΠϜਐԽΛ ͖͛ͯ·ͨ͠ ߏԽϓϩάϥϛϯάˠHPUPจͷഇࢭ తͳ੍ޚͷҠߦʹର͢Δن
ΦϒδΣΫτࢦϓϩάϥϛϯάˠ ϙΠϯλܦ༝ʹΑΔؔݺͼग़͠ͷഇࢭ ؒతͳ੍ޚͷҠߦʹର͢Δن ؔܕϓϩάϥϛϯάˠมͷ࠶ೖͷഇࢭ ೖʹର͢Δن w نΛ੍࣋ͬͯݶ͢ΔൣғΛ͛Δ͜ͱͰɺίʔυͷՄಡੑͱอकੑΛ୲อ͖ͯͨ͠ͷͰ͢
ྑ͍ઃܭ໌ྎͳن
NJYJ *OD ΞʔΩςΫνϟʹΑΔن w ΞʔΩςΫνϟɺγεςϜʹ͓͚Δίϯϙʔωϯτಉ࢜ͷؔΛߏԽͯ͠ఆٛͨ͠ ͷͰ͢ w ֤ίϯϙʔωϯτͷؔʹରͯ͠نΛ՝͢͜ͱͰɺγεςϜͷதظతͳอकੑΛ୲อ ͠·͢ w
ྑ͍ΞʔΩςΫνϟΛߟ͑Δ্ͰɺҎԼͷͭͷํ͕ॏཁͰ͢ w ίϯϙʔωϯτؒͷґଘ॥ͤ͞ͳ͍ w ίϯϙʔωϯτΑΓ҆ఆͷߴ͍ํґଘͤ͞Δ
NJYJ *OD ίϯϙʔωϯτؒͷґଘ॥ͤ͞ͳ͍ w ίϯϙʔωϯτͷؔʹ॥ґଘ͕ଘࡏ͍ͯͨ͠ ߹ɺมߋͷӨڹൣғ͕ෆ໌ྎ͔ͭɺෳਓʹΑΔ։ ൃنͷεέʔϧ͕࣮ݱͰ͖·ͤΜ w ίϯϙʔωϯτಉ࢜ͷڥքΛ໌֬ʹܾΊͯɺґଘͷ ํΛ୯ํʹ͢Δ͜ͱ͕େͰ͢
NJYJ *OD ίϯϙʔωϯτΑΓ҆ఆͷߴ͍ํґଘͤ͞Δ w ίϯϙʔωϯτؒͷґଘͷํΛߟ͑Δࡍʹɺ҆ఆͷߴ͍ํґ ଘΛ৳͠·͢ w ҆ఆͱʮมΘΒͳ͍͜ͱʯɺݴ͍͑Εʮมߋ͠ʹ͍͘͜ͱʯΛࢦ ͠·͢ w
8FCΞϓϦέʔγϣϯͰߟ͑Δͱɺ7JFX"1*มߋͷසߴ͘ ෆ҆ఆͰ͋Δͱݴ͑·͢ w ٯʹ%#εΩʔϚͳͲҰఆٛ͢Δͱมߋ͠ʹ͍͘ͷͰ҆ఆ͕ߴ ͍ͱݴ͑ΔͰ͠ΐ͏ w มߋස͕ߴ͍ίϯϙʔωϯτʹґଘ͢ΔίϯϙʔωϯτΛগͳ͘͢Δ ͜ͱͰɺͷमਖ਼ൣғΛڱΊΔ͜ͱ͕Ͱ͖·͢
NJYJ *OD ϨΠϠʔυΞʔΩςΫνϟ w Ҏ্ͷΛߟྀͨ͠༗໊ͳΞʔΩςΫνϟͱͯ͠ɺϨΠϠʔυΞʔ ΩςΫνϟ͕ଘࡏ͠·͢ w ͷϨΠϠʔʹίϯϙʔωϯτΛ۠ΓɺґଘؔΛํʹἧ͑Δ ͷͰ͢ w
6*6*ͷϨΠΞτΛߦ͏ w ΞϓϦέʔγϣϯ6*ͷঢ়ଶཧυϝΠϯͱͷڮ͠Λߦ͏ w υϝΠϯυϝΠϯʹ͓͚ΔϏδωεϩδοΫΛ࣮͢Δ w Πϯϑϥ%#֎෦γεςϜͷΞΫηεΛߦ͏
NJYJ *OD ࠓճͷݚमʹ͍ͭͯ w ͯ͞ɺຊͷࠓճͷݚमʹ͍ͭͯͰ͢ w Έͳ͞Μʹࠓ͔Βɺ3VCZPO3BJMTʹΑͬͯ࡞ΒΕͨαϯϓϧΞϓϦέʔγϣϯʹɺ ΞʔΩςΫνϟΛద༻͠ͳ͕ΒϦϑΝΫλϦϯάͯ͠Β͍·͢ w ৄࡉIUUQTHJUIVCDPNNJYJJOD5%%5SBJOJOHͷ3&"%.&Λࢀরͯͩ͘͠
͍͞
NJYJ *OD ࠷ऴతͳΞʔΩςΫνϟ
NJYJ *OD ςετΛॻ͍ͯΈͯ w ͔ͨ͠͠Βςετʹରͯ͠ɺҎԼͷΑ͏ͳΘ͠͞Λײͨ͡ਓ͍Δ͔͠Ε·ͤΜ w ॻ͘ίʔυྔ͕୯७ʹഒ w ςετίʔυΛॻ͘ڥͷߏங อकʹίετ͕͔͔Δ
w ςετΛॻ͘͏͑Ͱඞཁͱ͞ΕΔࣝͷֶशίετ͕͔͔Δ
NJYJ *OD ͳͥςετΛॻ͘ͷ͔ w ςετΛॻ͘͜ͱʹΑͬͯಘΒΕΔԸܙΛཧղ্ͨ͠Ͱॻ͘͜ͱ͕େͰ͢ w જࡏతʹଘࡏ͢Δෆ۩߹ʹରͯ͠ૣ͍ஈ֊Ͱؾ͚Δ w ςετΛʮॻ͚ΔΑ͏ʹ࣮͢Δʯ͜ͱͰίʔυ͕៉ྷʹͳΔ w
෭࡞༻Λ࣋ͨͤͳ͍ w ґଘੑΛ෦ͰॳظԽͤͣ֎͔Β͢ w ػೳՃ मਖ਼ʹΑΓҙਤ͠ͳ͍ͱ͜ΖͰطଘ༷͕յΕͯɺςετ͕མͪΔ͜ͱʹ Αͬͯؾ͚Δ w ςετίʔυʹΑ࣮ͬͯͷ༷ΛυΩϡϝϯτԽͰ͖Δ
NJYJ *OD ͨͩ͠ w ݴޠϓϥοτϑΥʔϜʹΑͬͯςετͷॻ͘ྔવมΘΓ·͢ w ಈతܕ͚Ͱ͋ΕΓͷܕ·Ͱςετ͍ͨ͠ w ੩తܕ͚ͰίϯύΠϥʹΑͬͯࣗ໌ͳৼΔ͍ςετ͢Δඞཁͳ͍ w
ϓϩδΣΫτͷϑΣʔζํʹΑͬͯςετͷॻ͖ํมΘΓ·͢ w ϓϩτλΠϓʹରͯ͠ॏްʹςετΛॻ͘ඞཁͳ͍
NJYJ *OD ࠷ޙʹ w ࠓճ3BJMTʹΑͬͯ࡞ΒΕͨ8FCΞϓϦέʔγϣϯΛɺΞʔΩςΫνϟΛద༻ͭͭ͠5%%ͰϦϑΝ ΫλϦϯάͯ͠Β͍·ͨ͠ w ͔͠͠ɺߏԽ͞ΕͨΞʔΩςΫνϟͷಋೖ͕ඞͣ͠ਖ਼ղͰ͋ΔͱݶΓ·ͤΜ w ϏδωεతͳཁٻͰڝ߹ΑΓઌʹͱʹ͔͘ϦϦʔε͢Δ͜ͱ͕༏ઌ͞ΕΔͷͰ͋Εɺ3BJMTͷϨʔ
ϧʹͬͯߴͰՌΛग़͢ͷ͕ྑ͍߹͋Γ·͢ w ͨͩ͠ɺͦͷ߹ʮෛ࠴ΛआΓೖΕ͍ͯΔʯͱ͍͏ҙࣝΛ࣋ͭ͜ͱ͕େͰ͢ɺকདྷෛ࠴Λฦ͢ඞཁ ͕͋Δ͜ͱΛཹҙ͠ɺͦΕΛεςʔΫϗϧμʔʹཧղͯ͠Β͍ͳ͕Β։ൃΛਐΊΔ͜ͱ͕ཧͰ͢ w ·ͨɺࠓճͷΑ͏ͳΞʔΩςΫνϟΛ͍͟ಋೖ͢Δ߹ɺඞͣಠΓΑ͕ΓʹͳΒͣɺνʔϜͰ߹ҙ ΛऔΓͳ͕ΒυΩϡϝϯτʹઃܭͷҙਤΛ͢ɺͱ͍͏͜ͱΛΕͳ͍Α͏ʹ͠·͠ΐ͏
NJYJ *OD ࢀߟॻ੶ $MFBO"SDIJUFDUVSF ୡਓʹֶͿιϑτΣΞͷߏͱઃܭ 3PCFSU̘.BSUJO ஶ ֯య ஶ
NJYJ *OD ࢀߟॻ੶ ςετۦಈ։ൃ ,FOU#FDI ஶ ాਓ ༁