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
Unlock the Potential of Swift Code Generation
rockname
0
320
生成AIを活用したレシート読み取り機能のアプリ開発の裏側 / AI Receipt Scan App Development
rockname
0
70
ゼロから理解するDependency Injection / Understanding Dependency Injection from the Ground Up
rockname
2
3.8k
サブスクリプション機能制御の設計における勘所
rockname
0
1k
Anatomy of Dynamic color
rockname
1
1.2k
キャッシュによる状態管理のアーキテクチャ / Cache-based state management architecture
rockname
10
19k
Optimistic Updatesで UXを向上させる / Improve UX with Optimistic Updates
rockname
3
1.3k
モバイルアプリのリストUIにおける 理想的なState表示について / The ideal state display in a mobile app list UI
rockname
7
2k
オンデバイスで学習可能になったCreate MLで画像分類器を作ってみた💪 / Developing an app to train an image classifier on iOS Device using Create ML
rockname
4
510
Other Decks in Programming
See All in Programming
Efficiency and Rock 'n’ Roll (Really!)
hollycummins
0
590
Use Perl as Better Shell Script
karupanerura
0
650
OpenNext + Hono on Cloudflare でイマドキWeb開発スタックを実現する
rokuosan
0
110
テスト分析入門/Test Analysis Tutorial
goyoki
11
2.7k
AI Coding Agent Enablement in TypeScript
yukukotani
17
7.1k
少数精鋭エンジニアがフルスタック力を磨く理由 -そしてAI時代へ-
rebase_engineering
0
130
MLOps Japan 勉強会 #52 - 特徴量を言語を越えて一貫して管理する, 『特徴量ドリブン』な MLOps の実現への試み
taniiicom
2
570
インターフェース設計のコツとツボ
togishima
2
480
Rethinking Data Access: The New httpResource in Angular
manfredsteyer
PRO
0
220
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
160
TSConfigからTypeScriptの世界を覗く
planck16
2
1.3k
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
1
660
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Six Lessons from altMBA
skipperchong
28
3.8k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Statistics for Hackers
jakevdp
799
220k
The Cult of Friendly URLs
andyhume
78
6.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Designing Experiences People Love
moore
142
24k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Fireside Chat
paigeccino
37
3.5k
Site-Speed That Sticks
csswizardry
7
590
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 ஶ ాਓ ༁