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
29
ゼロから理解するDependency Injection / Understanding Dependency Injection from the Ground Up
rockname
2
3.6k
サブスクリプション機能制御の設計における勘所
rockname
0
980
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.3k
モバイルアプリのリスト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
480
The practice of inclusive design -WWDC21-
rockname
1
1.2k
Other Decks in Programming
See All in Programming
Software Architecture
hschwentner
6
2.1k
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
270
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
130
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
560
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
140
sappoRo.R #12 初心者セッション
kosugitti
0
250
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
380
CloudNativePGがCNCF Sandboxプロジェクトになったぞ! 〜CloudNativePGの仕組みの紹介〜
nnaka2992
0
230
Open source software: how to live long and go far
gaelvaroquaux
0
630
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
110
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
5.3k
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.2k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
KATA
mclloyd
29
14k
Statistics for Hackers
jakevdp
797
220k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Why Our Code Smells
bkeepers
PRO
336
57k
Building Your Own Lightsaber
phodgson
104
6.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Writing Fast Ruby
sferik
628
61k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
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 ஶ ాਓ ༁