Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
Recruit Technologies
October 01, 2020
Technology
1
1.3k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
2020/9/21_iOSDC Japan 2020での、石井&元の講演資料になります
Recruit Technologies
October 01, 2020
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
0
400
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
8.2k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.6k
【61期 新人BootCamp】TOC入門
rtechkouhou
2
38k
【RTC新人研修 】 TPS
rtechkouhou
1
37k
Android Boot Camp 2020
rtechkouhou
1
37k
HTML/CSS
rtechkouhou
5
39k
TypeScript Bootcamp 2020
rtechkouhou
9
41k
JavaScript Bootcamp 2020
rtechkouhou
2
39k
Other Decks in Technology
See All in Technology
“Do you have a virtual router?” Discuss how to use virtual routers
line_developers
PRO
0
480
Raspberry Pi Camera 3 介紹
piepie_tw
PRO
0
110
re:Inventで発表があったIoT事例の紹介と考察
kizawa2020
0
140
オンプレk8sとEKSの並行運用の実際
ch1aki
0
140
PHPのimmutable arrayとは
hnw
1
140
SPA・SSGでSSRのようなOGP対応!
simo123
2
140
Pentesting Password Reset Functionality
anugrahsr
0
190
Technologies for developing editors / Webエディタ開発を支える技術
shuta13
1
230
Optimizing your Swift code
kateinoigakukun
0
1.3k
日本ディープラーニング協会主催 NeurIPS 2022 技術報告会講演資料
tdailab
0
940
マネーフォワードクラウドを支える事業者基盤
machisuke
0
220
ERC3525 Semi-Fungible token
sbtechnight
0
330
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
Typedesign – Prime Four
hannesfritz
34
1.5k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.8k
How to Ace a Technical Interview
jacobian
270
21k
YesSQL, Process and Tooling at Scale
rocio
159
12k
Three Pipe Problems
jasonvnalue
89
8.9k
The Language of Interfaces
destraynor
149
21k
5 minutes of I Can Smell Your CMS
philhawksworth
198
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
63k
Web development in the modern age
philhawksworth
197
9.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
10
1.3k
How STYLIGHT went responsive
nonsquared
89
4.2k
Transcript
ੴҪɹ५ ݩɹږप ؒ͜͜ͷ λϯϫʔΫJ04ΞϓϦͷΤϯδχΞͷνϟϨϯδ ʙݱͰͷ੍ͱͷઓ͍ʙ
հ ݩɹږप ΞϓϦ։ൃΧϨίϨ ࠷ۙ4XJGU6*ͱ+FUQBDL$PNQPTF͕େ͖ ͱΓ͋͑ͣʹͳΒͳ͍Α͏ʹؤுͬͯ·͢ ੴҪɹ५ ৽ଔೖࣾɺJ04ྺ ࠷ۙϨΨγʔγεςϜͷצॴ͕͔ͭΊ͖ͯͨʢͣʣ ೖࣾ࣌ͱൺͯମॏ͕LH૿͑ͨ ൃදऀ
Υϯώϣϯδϡ ΠγΠɹɹδϡϯ
࣍ ΤϯδχΞ͔ΒݟͨλϯϫʔΫΞϓϦͷಛ େنαʔϏεΏ͑ͷ։ൃݱͱͯ͠ͷ੍ νϟϨϯδʔ σόοάϞʔυ &&ςετπʔϧϨϯτήϯ Ϋϥογϡͷݮ
4XJGUԽ ίϯύΠϧͷվળ
ΤϯδχΞ͔Βݟͨ λϯϫʔΫΞϓϦͷಛ
ಛᶃɹ େنαʔϏεʢλϯϫʔΫʣ ͷΫϥΠΞϯτʢJ04ΞϓϦʣ
ͨ͏ΜΘʔ͘ʁ ʮϦϘϯϞσϧʯ ٻ ৬ ऀ ا ۀ ٻ৬ऀͱاۀͱΛϚονϯά͢ΔɺେنͳαʔϏε
େنαʔϏε ˞Լమͷ࿏ઢਤͰ͋Γ·ͤΜ https://speakerdeck.com/rtechkouhou/taunwaku90mo-yuan-gao-falsejie-zai-wozhi-eruregasibatutipahuomansutiyuningu-number-devsumi-number-devisumid
J04ΞϓϦͷείʔϓ https://speakerdeck.com/rtechkouhou/taunwaku90mo-yuan-gao-falsejie-zai-wozhi-eruregasibatutipahuomansutiyuningu-number-devsumi-number-devisumid ͕͜͜ΫϥΠΞϯτͷ είʔϓ ͜ͷJ04ͷͰ͢
ಛᶄɹ ΞϓϦγϯϓϧʁ
ΞϓϦͷ༷γϯϓϧ ݕࡧ Ұཡ ৄࡉ Ԡื
Ͱͳ͍ ը໘ɿɹɹɹɹɹɹɹɹը໘ શίʔυߦɿɹɹɹίʔυͷΈສߦ $PSF%BUBςʔϒϧɿɹɹɹݸ खಈςετ߲ɿɹ ߲ 6OJU5FTUʢ9$5FTUʣɿɹ έʔε
ಛᶅɹ ݹ͔͘Βͷ׆ൃͳ։ൃ
Γଓ͚͍ͯΔ ॳΊͯϦϦʔε͔ͯ͠Β ճܧଓతʹʢिճසʣҊ݅ΛΓࠐΜͰϦϦʔε ˞݄ج४
େنαʔϏεΏ͑ͷ ։ൃݱͱͯ͠ͷ੍
લఏͱͳΔ੍͕ೋͭ ̍ɽਐߦதͷҊ݅։ൃʹ2%ӨڹΛ༩͑ͨ͘ͳ͍ ɹɹɾෳνʔϜͰฒߦ։ൃ ɹɹɾ֤νʔϜ͕ͦΕͧΕͷ ɹɹɹϏδωε,1*ʹᬏਐ ̎ɽ։ൃޮԽେࣄ͕ͩɺ֎෦࣭͕࠷ॏཁ ɹɹɾٻ৬ऀاۀؒͷϚονϯά ɹɹɹͷͨΊͷ༷ΛकΔ ɹɹɾJ04ͱͯ͠ͷಈ࡞ج४ Ҋ͕݅
ৗ࣌ฒߦ ࢀߟɿେنϨΨγʔڥʹཱ͔ͪ͏༗ػతͳ։ൃϑΥʔϝʔγϣϯ
ϨΨγʔͳߏ͕ҡ࣋͞Εͯདྷͨ ਐߦதͷҊ݅։ൃͷ2%ʹӨڹϦεΫ͕͋ΔͨΊɺ ϦϑΝΫλϦϯάͰ͖ͳ͍ ݁Ռɺमਖ਼࣌ͷӨڹൣғ͕໌֬ʹΘ͔Βͳ͍ ɹɹɹ6OJU5FTUͰ୲อͮ͠Β͍ ܰ͘ ߦΛ͑Δ7$ͨͪ ݸΛ͑Δ$PSF%BUB&OUJUJFT ຆͲ͕.7ʢ1ʣ 0CKD4XJGU0CKDͱͦͷٯύλʔϯͷґଘؔ
·ͩಈ͘%FQSFDBUFE"1*ͳΒී௨ʹݱ 0CK$3VOUJNFͰحతʹಈ͍͍ͯΔܕͷϛεϚονॲཧ ΧΦεͷ··Ҋ݅։ൃଓ͘
݁Ռతʹςετ͕λΠϔϯ ཧతςετϐϥϛου ݱ࣮͜ͷΑ͏ͳΠϝʔδ *5 *5 && 65 *5 && ໌֬ͳςετείʔϓ
࠷ݶͷखಈςετ ΄ͱΜͲͷػೳΛखಈςετͰ୲อ͢Δ͔͠ͳ͍ 65 https://www.youtube.com/watch?v=VJi2vmaQe6w ᐆດͳςετείʔϓ *5ͱ&&ͷखಈςετ
࠷ѱͷεύΠϥϧ ςετʹ͕ୣΘΕΔ ։ൃ͕ѹഭ͞ΕΔ ϦϑΝΫλϦϯάઌૹΓ ϨΨγʔͷ··Ͱઃܭɾ࣮
੍ΛݟۃΊͯɺ νϟϨϯδͩʂ
͍͑ͨ͜ͱ վળͰେࣄͳ͜ͱ Ұൠతʹྑ͍ͱ͞ΕΔํ๏ΛҋӢʹऔΓೖΕΔ ͕ࣗͨͪ໘͍ͯ͠Δ੍Λਖ਼͘͠ཧղͯ͠ ࣗͨͪݻ༗ͷ՝ʹରͯ͠ޮՌతͳղܾࡦΛͱΔ ݁Ռɺখ͞ͳྗɾظؒͰ࠷େͷ݁Ռ͕ಘΒΕΔ
͜͜ͷ νϟϨϯδͷ͓ औΓΈͷ۩ମతͳ༰͕ؾʹͳΔํɺ Ξϯέʔτʹ࣭͝Λ͓ئ͍͠·͢
ᶃσόοάϞʔυͷ։ൃ
σόοάϞʔυͱ ήʔϜͰྫ͑Δͱࣗ༝ʹ-WΛʹͨ͠Γɺ Ӆ͞ΕͨΞΠςϜΛॴ࣋Ͱ͖ΔΑ͏ʹͨ͠Γ͢ΔӅ͞Εͨػೳͷ͜ͱ
ߟ͑ํ ςετ͕ͲΜͲΜΛѹഭ͍ͯ͠Δ ˣ ΄ͱΜͲखಈςετ ˣ ͱ͍͑ɺߏతʹࣗಈςετՄೳͳੈքߦ͘ʹ͍ಓͷΓ ˣ ˣ ˣ खಈςετޮԽͳΒɺɾظͰޮՌΛಘΒΕΔʂʂ
σϞ ΦϑγϣΞ։ൃ͚ͷࣗಈ༁
ଞʹͨ͘͞ΜͷػೳͰ खಈςετޮԽ ɾΞϓϦͷ͚ͩΛِʢຊମͦͷ··ʣ ɾखಈςετͷͨΊͷࣄલ݅ΛࣗಈͰੜ ɾը໘্Ͱ֬ೝͰ͖ͳ͍෦σʔλΛΞϓϦͷ7JFXʹදࣔ ِ σʔλੜ ϩάίϯιʔϧ "#ςετૢ࡞
खಈςετͷݮ *5 *5 && 65 σόοάϞʔυͰ ׂఔͷݮ खಈςετྖҬ ςετίʔυྖҬ खಈςετྖҬ
σόοάϞʔυେώοτʂ ࣮͕ೝΊΒΕɺԣల։͞Εͨ ɾ·ͣɺλϯϫʔΫ"OESPJE ɾ࣍ʹɺϦΫϧʔτδϣϒζͷ֤ϓϩμΫτ ςετఔͰσόοάϞʔυඞਢԽ ෦ίϯτϦϏϡʔλʔ૿Ճ ɾҊ݅։ൃ࣌ʹɺඞཁͳΒσόοάϞʔυΛ࣮ܰ͘͢Δ׳श λϯϫʔΫͷσόοάϞʔυͲΜͲΜਐԽதʂʂ
ᶄ&&ςετπʔϧͷ։ൃ dϨϯτήϯd
ͳΜͱ͔*5ͷίετݮΒ͚ͨ͠Ͳɾɾɾ *5 *5 && &&ςετ෦ߏΛม͑ͣͱࣗಈԽ͕Մೳͳͣ 65 ϨΨγʔߏͰΧόϨοδݶք ͦΕͰ͢Ͱʹ࣌έʔε σόοάϞʔυͰ ׂఔͷݮΒͨ͠ײ֮
खಈςετྖҬ ςετίʔυྖҬ खಈςετྖҬ ͜͜ΛࣗಈԽ͠Α͏ʂ
͔͠͠طଘͷ&&ςετπʔϧ՝͕͋ͬͨ ɾεΫϦϓτૢ࡞ͷޭՄ൱ͱɺ ɹεΫγϣಈըܗࣜͷΞτϓοτͰݕূΛߦ͏ͨΊɺ ɹݟͨҎ্ͷݕূෆՄೳ ɹɹྫʣ7JFXͷ֊6*ʹग़ͳ͍ଐੑͳͲ ɾ6*෦͝ͱͷݕূͷͨΊʹૢ࡞εΫϦϓτΛՃ͢Δ͔ɺ ɹBTTFSUจΛॻ͔ͳ͍ͱߦ͚ͳ͍ ͳ͚Ε࡞Εྑ͍ ৽͍͠Έͷ&&πʔϧʹνϟϨϯδʂ طଘ&&ςετࣗಈԽπʔϧͷ՝
ࣾ&&πʔϧʮϨϯτήϯʯΛ։ൃʂ ɾJ04ͷը໘7JFX$POUSPMMFS୯Ґ ɾ7JFX$POUSPMMFSͷ7JFX֊Խ͞Ε͍ͯΔ ɾը໘͕දࣔʢඳըʣ͞ΕͨΒ֊ʹԊͬͯݕূͰ͖Δͣ ։ൃͷ1PJOU 7JFX֊Λు͖ग़͠ɺࠩΛൺֱ͢Δ
ϨϯτήϯͷγεςϜߏ Ϩϯτήϯ4%, Ϩϯτήϯ"1* Ϩϯτήϯ8FC5PPM 7JFX֊ͷ +40/ ࣗಈૢ࡞
σϞ "QQJVNͰࣗಈૢ࡞
ཪͰ7JFX֊Λ%VNQ 7JFX֊Λͯ͢%VNQ
%VNQσʔλ+40/ʹม
+40/ʹมͨ͠σʔλΛαʔόʹੵ
+40/σʔλͳͷͰ ؆୯ʹࠩൺֱ͕Ͱ͖Δ جຊతʹ%VNQͨ͠HJUIBTI୯ҐͰ ಉ͡ૢ࡞εΫϦϓτͰൺֱΛߦ͏
ੵͨ͠ը໘σʔλΛ8FCͰ࠶ݱͰ͖Δ $BOWBTʹJ04ը໘σʔλΛඳը͢ΔϞδϡʔϧ։ൃ ը૾σʔλ#BTFԽͯ͋͠ΔͷͰ8FCͰඳըՄೳ
σϞ 8FC5PPMͰࠩͷ֬ೝ
Ϩϯτήϯ׆༻࣮ ఆظ࣮ࢪͷςετ ɾϦϦʔεલͷॏཁػೳͷਖ਼ৗܥςετ ϦϑΝΫλϦϯάͷςετ ɾ4XJGUԽͷςετ ɾґଘϥΠϒϥϦมߋޙͷςετ ϦϑΝΫλϦϯάܥͷςετͰ͜Ε͔Β׆༻໘ΛΊͯߦ͘༧ఆ ࠓ··ͰෆՄೳͩͬͨΞϓϦશମʹ Өڹ͢ΔΑ͏ͳվमɺ Մೳʹͳͬͨʂʂʂ
ᶅΫϥογϡͷݮ
࣭Λߟ͑Δͱ͖ʹɺ ΫϥογϡϨʔτॏཁ͕ͩʜ
Ͱ Ϋϥογϡ͕ഒҎ্ʹ
Ϋϥογϡ૿ՃͷݪҼʁ λϯϫʔΫΞϓϦͷ༷ଆ໘ λϯϫʔΫ࣭ج४ʹఆٛΞϦ ͜Ε͕ΞϓϦͷΫϥογϡ λϯϫʔΫ࣭ج४ʹఆٛφγ Ϋϥογϡʹؔͯ͠༏ઌ͕͔ͬͨ͜ͱ ੲ͔ΒλϯϫʔΫΞϓϦͰ࣭ج४͕ʮػೳʯͷΈͩͬͨ ͦͯ͠ΤϯδχΞओಋͰ ୲อ͢Δ͖ྖҬ "QQ$PSF2VBMJUZ(PPHMF
Ҿ༻IUUQTEFWFMPQFSBOESPJEDPNEPDTRVBMJUZHVJEFMJOFTDPSFBQQRVBMJUZ
্࣭ͷνϟϨϯδ ɾΫϥογϡϞχλϦϯάΛʑߦ͏ͨΊ$SBTIMZUJDTಋೖ ʢಋೖ͕͓ͦ͗ͨ͢ཧ༝ผͷࣾπʔϧʹґଘ͍ͯͨͨ͠Ίʣ ɾʑΫϥογϡʔΛѲ͢Δ ɾΫϥογϡʔ͝ͱͷൃੜ֬ɺ04ɺؔ࿈͢ΔॲཧΛੳ ɾۓٸॱΛܾΊͯJTTVFԽ͠ॗʑରԠ ɾରԠͨ͠όά࣍ͷϦϦʔεʹࠞͥࠐΉ ৗతʹΫϥογϡΛϞχλϦϯάɾվળ͢ΔΑ͏ ։ൃϓϩηεʹΈࠐΜͩ
େࣄͳͷখ͍͞ΞΫγϣϯΛॗʑΔ͜ͱ 1%$"αΠΫϧతͳ͜ͱͰ͢
ΫϥογϡϑϦʔϢʔβʔ͕ Ҏ্ʹճ෮ ͦͷޙɺλϯϫʔΫJ04$'6ͷΛҡ͍࣋ͯ͠·͢
ᶆ4XJGUԽ
0CKFDUJWF$ΑΓ4XJGU
ૣ͍λΠϛϯάͰ4XJGUΛಋೖ͚ͨ͠Ͳ λϯϫʔΫͰ݄͔Βঃʑʹ4XJGUΛಋೖ ํɿɹɾ৽نΫϥεΛ4XJGUͰ࣮ ɹɹɹɹɾہॴతͳ4XJGUԽճ࣮ࢪ ޙ ੍͕͋ΔͷͰ͔Β΄΅ಉ͡
ڞଘظ͕ؒ͘ͳͬͯ৭ʑ͕ൃੜ͍ͯͨ͠
0CK$ڞଘΛఆͨ͠Ϋϥεઃܭɾ࣮ίετ $MBTTͱ4USVDUઃܭ࣌ʹ0CK$ଆ͔Βͷར༻Λલఏʹ͢Δඞཁ͕͋Δ ઃܭɾ࣮ఔͷ࣌ؒͷ͏͕ͪ࣌ؒڞଘؔ࿈λεΫ
ΫϥογϡͷݪҼͷ΄ͱΜͲ 0CK$4XJGUڞଘՕॴ ίϯύΠϥʹΑΔOJMνΣοΫʹґଘͰ͖ͳ͍ͨΊϥϯλΠϜΤϥʔΛ ఆ࣮͕ͨ͠ඞཁʢOVMMBCMFطଘӨڹ͋ΓͷͨΊ֎ʣ ࣾݶ ࣌ͷ5PQΫϥογϡ͕ͯ͢ڞଘՕॴ
੍ΛݟۃΊͯɺ νϟϨϯδͩʂ ˞ಉ࣌ਐߦதෳҊ݅։ൃʹӨڹ͍͚ͯ͠ͳ͍
λϯϫʔΫྲྀ 4XJGUԽͷਐΊํ
Γͷ0CK$pMFΛͯ͢ϦετԽ pMFɺສߦʢશମͷׂ̑ʣ ΧςΰϦԽ ߦͰنײΛѲ ·ͣશରΛϦετԽ
։ൃঢ়گΛͯ͢Ѳͯ͠ύζϧܭը Ҋ݅։ൃͱ$POqJDUى͜͞ͳ͍ظؒɺ ߦ͔ΒͷنײͰ4XJGUԽରpMFΛબఆɻ ΄ͱΜͲ੍͕ݶ࣌ؒ 4XJGUԽͱฒߦͰෳҊ͕͍݅ͬͯΔ੍ʹϑΥʔΧε
՝ΛΦϑγϣΞ։ൃͰղܾ ͍σϦόϦʔ੍ͱΫΦϦςΟʔ୲อͷ͠͞Λ ɹຊΤϯδχΞʢ༗ࣝऀʣͱ ɹΦϑγϣΞ։ൃʢεέʔϥϒϧʣɹͰղܾ 0CKFDUJWF$4XJGUͷ࡞ۀ ର'JMFબఆ͓Αͼ ӨڹൣғѲ ίʔυϨϏϡʔ 65͓Αͼ*5 &&
ຊΤϯδχΞʢ༗ࣝऀʣ ΦϑγϣΞ։ൃʢεέʔϥϒϧʣ ࢀߟɿେنϨΨγʔڥʹཱ͔ͪ͏༗ػతͳ։ൃϑΥʔϝʔγϣϯ
΄΅͕̍ϚʔδαΠΫϧ બఆ࣌ʹӨڹൣғ͔ͬ͠ΓνΣοΫ͠ ͔ͯΒΦϑγϣΞ։ൃճ͢ 4XJGUԽ͔ΒίʔυϨϏϡʔ ΄΅Ͱྃ બఆ͔ͯ͠ΒཧΧϯόϯͰ
ຖॗʑ͍ͬͯ͘ ظ݄ؒd݄ʢʣ ਐͷ֬ೝ HJUIVCMJOHVJTUͰ͙͢ग़ͤΔ
ܭը௨ΓʹऴΘ͍ͬͯͨ ΓͷߏpMF pMFɺສߦ͕ظؒͰྃ ݄ྃ
ᶇϏϧυ࣌ؒͷվળ ɹ࠷ۙͬͯ·͢ʂ
Ϗϧυ͕࣌ؒ՝ େ͖͍ϓϩδΣΫτΏ͑ͷϏϧυ࣌ؒਂࠁͳ εΫϦϓτΛΈࠐΜͰϏϧυλΠϜΛܭଌ Ϝμʂʂ ։ൃऀਓ͋ͨΓʜ ɹϏϧυճճ݄ ɹϏϧυਓ݄ Ϗϧυ࣌ؒඵճ
ҰൠతͳղܾࡦͰɹޮՌແ͠ ɹɹɹɹɹɹɹɹɹɹ͙͢ޮՌΛಘΒΕͳ͍ ޮՌͳ͠ʜܕਪ࣌ؒͷվળɺϏϧυઃఆͷมߋͳͲ ͙͢ޮՌΛಘΒΕͳ͍ʜ'SBNFXPSLͷΓग़͠ͳͲɻӨڹ͕େ͖͕͔͔࣌ؒ͘ΔͨΊ ͦͦҰൠతͳঢ়ଶͰͳ͍ͨΊ λϯϫʔΫಠಛͳ͕ผͷͱ͜ΖͰ͋ͬͨ
ࠩϏϧυ͕શવޮ͍͍ͯͳ͍ʜ 3TXJGU͕΄΅શͯͷ7JFX7JFX$POUSPMMFSΛ ࢀর͍ͯͨ͜͠ͱ͕ݪҼͰɺ ͱͱෳࡶͳґଘ͕ؔ͞ΒʹෳࡶʹͳΓɺ ࠩϏϧυ͕΄ͱΜͲػೳ͠ͳ͔ͬͨ 3TXJGUΛআ٫ͯ͠ɺ ࠩϏϧυ͕ػೳ͢ΔΑ͏ʹͳͬͨɻ ݁ՌɺϏϧυ࣌ؒΛׂఔݮΒͨ͠
։ൃڥͷվળ ίΞҎ্ͷϚγϯʹ౷Ұ͠ɺ Ϗϧυ࣌ؒΛʙׂݮΒͨ͠ ͜ͷϓϩμΫτʹదͨ͠ϚγϯεϖοΫͷج४͕ແ͔ͬͨͨΊɺ εϖοΫͳϚγϯ͕ଟ͘ΘΕ͍ͯͨɻ ֤εϖοΫͷϚγϯͰϏϧυ࣌ؒΛܭଌɻඞਢϚγϯεϖοΫΛ͖ͭͱΊͨ
Ҿ͖ଓ͖৭ʑ͍ͬͯ·͢ʂ
Ҋࣄ߲
औΓΈͷ۩ମతͳ༰͕ؾʹͳΔํɺ ͪ͜Βʹ࣭͝Λ͓ئ͍͠·͢
None