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 mixi training
Search
rockname
April 15, 2020
Programming
0
1.4k
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
ゼロから理解するDependency Injection / Understanding Dependency Injection from the Ground Up
rockname
1
3k
サブスクリプション機能制御の設計における勘所
rockname
0
790
Anatomy of Dynamic color
rockname
1
1k
キャッシュによる状態管理のアーキテクチャ / Cache-based state management architecture
rockname
10
18k
Optimistic Updatesで UXを向上させる / Improve UX with Optimistic Updates
rockname
3
1.1k
モバイルアプリのリストUIにおける 理想的なState表示について / The ideal state display in a mobile app list UI
rockname
7
1.6k
オンデバイスで学習可能になったCreate MLで画像分類器を作ってみた💪 / Developing an app to train an image classifier on iOS Device using Create ML
rockname
4
430
The practice of inclusive design -WWDC21-
rockname
1
1.1k
AndroidアプリでLine Heightを 設定するときに注意したいこと / Things to keep in mind when setting Line Height in your Android app
rockname
1
4.1k
Other Decks in Programming
See All in Programming
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
スクラムマスターって孤独じゃないですか?
yoshitaroyoyo
1
140
日付と正規化
megmogmog1965
0
140
3 Effective Rules for Success with Signals in Angular
manfredsteyer
PRO
0
120
Modern Angular: Renovation for Your Applications
manfredsteyer
PRO
0
140
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
tmokmss
1
930
実用的かつリーズナブルな 「Azure × Gemini × LINE」~キャラクターBot 実装ライブデモ~
tomodo_ysys
1
170
小さな開発会社を作った理由
polidog
0
1.9k
Namespace on read
tagomoris
2
370
Trial
cairolibrary720
1
130
生成AIをkintoneに連携してみた
hideg
0
230
HMSコンペ 11th Solution (team : kansai-kaggler)
t88
1
680
Featured
See All Featured
5 minutes of I Can Smell Your CMS
philhawksworth
200
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
18
1.2k
How to Ace a Technical Interview
jacobian
274
23k
It's Worth the Effort
3n
181
27k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Designing for humans not robots
tammielis
247
25k
Visualization
eitanlees
139
14k
Building Flexible Design Systems
yeseniaperezcruz
323
37k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
Designing the Hi-DPI Web
ddemaree
276
34k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
12
3.8k
Testing 201, or: Great Expectations
jmmastey
33
6.9k
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 ஶ ాਓ ༁