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
20230227-engineer-type-talk.pdf
Search
Naoya Ito
November 16, 2023
Programming
88
75k
20230227-engineer-type-talk.pdf
Naoya Ito
November 16, 2023
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Functional TypeScript
naoya
15
6.1k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
70
34k
シェルの履歴とイクンリメンタル検索を使う
naoya
8
3.1k
関数型プログラミングと型システムのメンタルモデル
naoya
62
100k
TypeScript による GraphQL バックエンド開発
naoya
28
34k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
59k
一休の現在と、ここまでの道のり
naoya
90
41k
技術的負債と向き合う
naoya
256
77k
Other Decks in Programming
See All in Programming
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
530
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
160
Interface vs Types ~型推論が過多推論~
hirokiomote
1
220
ソフトウェア品質特性、意識してますか?AIの真の力を引き出す活用事例 / ai-and-software-quality
minodriven
19
6.5k
『Python → TypeScript』オンボーディング奮闘記
takumi_tatsuno
1
120
事業KPIを基に価値の解像度を上げる
nealle
0
190
iOSアプリ開発もLLMで自動運転する
hiragram
6
2k
バリデーションライブラリ徹底比較
nayuta999999
1
290
External SecretsのさくらProvider初期実装を担当しています
logica0419
0
200
Agent Rules as Domain Parser
yodakeisuke
1
210
Design Pressure
hynek
0
1.4k
テスト分析入門/Test Analysis Tutorial
goyoki
10
2.6k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Designing Experiences People Love
moore
142
24k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
610
How to Ace a Technical Interview
jacobian
276
23k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
15
880
A better future with KSS
kneath
239
17k
For a Future-Friendly Web
brad_frost
178
9.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
740
How to Think Like a Performance Engineer
csswizardry
23
1.6k
Transcript
͘׆༂Ͱ͖ΔΤϯδχΞʹͳΔͨΊʹʁ ٕज़ऀͱͯ͠େʹ͍ͨ͜͠ͱ גࣜձࣾ Ұٳ ҏ౻
ҏ౻ • גࣜձࣾҰٳ ࣥߦһ $50 ݄ʙ • ۙ͘
8FC։ൃΛத৺ʹ͖ͬͯ·ͨ͠ – Ϛωδϝϯτɺ։ൃͱͲ – ࣄͰ 5ZQF4DSJQU όοΫΤϯυ झຯͰ )BTLFMMΛΑ͘ॻ͖·͢
2ʮ͘׆༂Ͱ͖ΔΤϯδχΞʹͳΔͨΊʹ ʯ • ສਓʹޮ͘ॲํᝦɺΘ͔Γ·ͤΜɻ͝ΊΜͳ͍͞ • ʮ͜͏͢Ε͍͍ʯΘ͔Βͳ͍ • ࣗͷաڈͷࣦഊɺ͔ͦ͜Βͷলͷڞ༗Ͱ͖ΔͷͰɺͦ͏͍͏ΤϐιʔυΛ͠·͢
ΤϐιʔυҰཡ • FQରॲྍ๏͔ΓͰɺٕज़త͕ͪͬͱղܾ͠ͳ͔ͬͨ • FQͪΌΜͱֶ΅͏ͱࢥͬͨΒখதֶੜͷษڧ͔ΒΓ͕͠ඞཁͩͬͨ • FQΘ͔ͬͨɺͱࢥ͕࣮ͬͨફͯ͠ΈͨΒશવͰ͖ͳ͔ͬͨ • FQաڈͷܦݧΛͱʹ࡞ͬͨΒɺ͍ͮΒ͍ϓϩμΫτʹͳͬͯ͠·ͬͨ •
FQϚωδϝϯτʹϑΥʔΧεͨ݁͠Ռɺେ͖ͳ՝͕શ͘ղফͰ͖͍ͯͳ͔ͬͨ • FQۤखྖҬΛਓʹ͍ͤͯͨΒɺࢧԉ͕ޙखʹճͬͯ͠·ͬͨ
FQେྔͷτϥϑΟοΫΛࡹ͔ͶͳΒͳ͍ • ͝Ζɺ࣌୲͍ͯͨ͠γεςϜ͕աෛՙʹͳΓαʔόʔμϯ͕සൃ • ·ͩϏοτͰɺΫϥυαʔϏεͰͳ͍࣌ • ৽ଔ͔Β͑ͯ͘Β͍Ͱͷग़དྷࣄ
ରॲྍ๏Λ܁Γฦͨ͠ • ҋӢʹ͍σΟεΫʹͯ͠ΈͨΓʜ • )551αʔόʔσʔλϕʔεͷઃఆΛνϡʔχϯάͯ͠ΈͨΓʜ • αʔόʔΛ૿ઃͯ͠ΈͨΓʜ
ঢ়گશ͘ྑ͘ͳΒͳ͍ • ͕ͯ͢ରྍ๏ • ͨ·ͨ·ͦͷ࣌ى͖͍ͯΔݱʹɺྍ๏͕߹͍ͬͯΕվળ͢Δ͕ʜ ʮ͜͏͢Εɺ͜͏ͳΔʯͱ͍͏ύλʔϯ͚ͩͰ͕ղܾͰ͖ͳ͍ ʜബʑΘ͔͍͕ͬͯͨͦͷ͕࣌དྷͯ͠·ͬͨ
ͨ·ͨ·खʹऔͬͨҰͷຊ
-JOVYΧʔωϧͷιʔείʔυ$16ΞʔΩςΫνϟͷຊΛಡΈړΔ
None
None
جૅ͕ࣝΓ͍ͯͳ͔ͬͨ • ෛՙରࡦʹɺϋʔυΣΞ04ͰԿ͕ى͖͍ͯΔ͔ΛѲ͢Δ͜ͱ͕ॏཁ • ʮղܾࡦʯͰͳ͘ʮͷݟۃΊํʯ • ࣌ͷࣗʹΛݟۃΊΔͨΊͷجૅ͕ࣝෆ͍ͯͨ͠ – ϩʔυΞϕϨʔδɺ$16༻ɺϝϞϦར༻ঢ়گɻશͯงғؾͰଊ͍͑ͯͨ –
Χʔωϧ෦ͰԿʹج͍ͮͯɺͲ͏ܭଌ͞Ε͍ͯΔ͔ɻࣈԿ͕ى͖͍ͯΔ͜ͱΛ͍ࣔͯ͠Δ͔ ʮ͋͋͢Ε͜͏ಈ͘ʯΛ֮͑Δ͚ͩͰղܾͰ͖ͳ͍ྖҬ͕͋Δ͜ͱΛ௧ײ
FQجૅେࣄͩͳɺͱࢥͬͯษڧͯ͠Έͨͷͷʜ • ίϯϐϡʔλαΠΤϯεͷجૅࣝΛֶश͠Α͏ͱࢥͬͨ – $4ઐ߈Ͱͳ͔ͬͨ ͱ͍͏͔େֶ༡ͼโ͚͍ͯͨͷͰʜ • ΞϧΰϦζϜͱσʔλߏɺใݕࡧɺਪનٕज़ͳͲ
ֶΘ͔Βͳ͍
͕ࣜग़ͯ͘Δͱख͕ࢭ·ΔɻֶΛΓ͢ • େֶͷઢܗͷษڧΛ͢Δ ˠશવΘ͔Βͳ͍ ʮ΄΅Ε͍ͯΔͳʜʯ • ߴߍֶʹḪΔ ˠ डݧษڧͰࢄʑͬͨ͠ɺΘ͔Δͣʜ ͑ɺΘ͔Βͳ͍
• தֶੜͷֶ·ͰḪΔ ˠ Θ͔ͬͨͱݴ͑ͳ͍ ͦͦɺࣗதֶɾߴߍɾେֶͱͰֶΛʮΘ͔ͬͯʯ͍ͨΜͩΖ͏͔ʜ ҼղɺϕΫτϧɺඍੵɺݻ༗ʜܭࢉͰ͖͍͕ͯͨʜ
ʮΕͨʯͰͳ͘ʮΘ͔͍ͬͯͳ͔ͬͨʯ ͕ࣗԿΛΘ͔Βͳ͍͔ɺͱ͍͏͜ͱ͔ΒΛഎ͚͍ͯͨ͜ͱ͕Θ͔ͬͨ ͭΒ͍
Ͱɺ৺ΛંΔΑ͏ͳ͜ͱͰͳ͍ • ʰ͕ࣗࢥ͍ͬͯͨ΄Ͳ಄͕Α͘ͳ͔ͬͨʱ – IUUQTCMPHDPNFOUSZQ – ΊͪΌͪ͘Όྑ͍ΤοηΠɻԿಡΈฦ͍ͯ͠Δ l͏·͘Δֶੜͦ͏͍͏ࠔʹͿ͔ͭͬͨͱ͖ɺࣗͷྗෆͱഅࣛ͞Ճݮʹ໓ೖΔ ؾ࣋ͪͱಆ͍ɺࢁͷ;ͱͰখ͞ͳาΈΛ࢝Ί·͢ɻ൴ΒɺϓϥΠυʹই͕ͭ͘͜ͱ ɺࢁ͔Βͷܠ৭ΛோΊΔͨΊͰ͋ΕऔΔʹΒͳ͍ͱ͍͏͜ͱΛ͍ͬͯΔͷͰ
͢ɻz
͜ͷΤϐιʔυʹ͏গ͠ଓ͖͕͋Δ • ֶݏ͍Λࠀ͠ɺ.*5ͷڭՊॻʹͳͬͨΞϧΰϦζϜͷຊͳͲͨ͘͞ΜಡΜͩ • ܭࢉྔͷഽײ͕֮ʹ͖ͭɺେنใݕࡧγεςϜΛߏͰ͖ΔΑ͏ʹͳͬͨ • ΞϧΰϦζϜͷֶతੑ࣭͍͘Β͔Θ͔ΔΑ͏ʹͳͬͨ • ࣗ৴͕͍ͭͯ͘Δʜ
None
͋Δͱ͖ɺڝٕϓϩάϥϛϯάʹखΛग़ͯ͠ΈΔ • ΞϧΰϦζϜ৭ʑ͔ͬͨΒ͍͚ΔͰ͠ΐ͏ʂ • ݁ՌɺҰղ͚·ͤΜͰͨ͠
ʮࣝʯ͕͋Ε͕ղ͚Δͱ͍͏ࢥ͍ࠐΈ • هԱ͞·͟·ͳଞͷهԱମݧͱͷ૬ޓ࡞༻ͰʮࣝʯʹͳΔ • ϓϩάϥϛϯάɺ࣮ʮମԽʯ͠ͳ͍ͱॻ͚ΔΑ͏ʹͳΒͳ͍
FQεϚʔτϑΥϯͷ͕࣌དྷ͔ͨΞϓϦ࡞ͬͨ͜ͱ͕ͳ͍ • ʹͳΔͱ J1IPOF "OESPJE͕ٸʹγΣΞΛ৳࢝͠ΊΔ • νʔϜͰεϚʔτϑΥϯ͚ͷΞϓϦΛ࡞Δ͜ͱʹͳͬͨ • 6*Ͳ͏͠Α͏ʜ 8FC։ൃͷܦݧͦͦ͜͜ੵΜͩࢲʮಉ͡εΫϦʔϯͷΠϯλϑΣʔεͩ
͔Βɺ8FCͷܦݧ͕׆͔ͤΔͰ͠ΐ͏ʯ – ܦݧͷ͋ΔਓͳΒΘ͔Δ௨Γɺ͜Ε ͱͯ ྑ͘ͳ͍ํͰ͢
݁Ռɺ͍ͮΒ͍ 6*͕Ͱ͖ͯ͠·ͬͨ • ޙ J04ΞϓϦΛࣗͷखͰ࡞ͬͯΈͯɺϛεδϟοδͩͬͨͷ͕Α͘Θ͔ͬͨ – J04ʹ J04ͷ 6*ΨΠυϥΠϯ͕͋ΓɺͦͷΨΠυϥΠϯʹԊͬͯ࡞Δͷकഁͷक –
6*,JUͲΜͳ 6*ͳΒࣗવʹ࣮ݱͰ͖ͯɺͲ͏͍͏͜ͱແཧ͠ͳ͍ͱͰ͖ͳ͍ͷ͔ ຊΘ͔͍ͬͯͳ͍͜ͱͳͷʹɺྨࣅͷܦݧΛͯΊͯ ࣗ͋ΔఔΘ͔͍ͬͯΔͱࡨ֮ͯ͠͠·͍ͬͯͨ
FQ৭ʑͳܦݧΛܦͯ$50ि ʜҰٳͷ $50ʹ • ͋Δఔख़ͨ͠اۀʹ $50ͱͯ͠ೖࣾ • Ϛωδϝϯτͷ͕ʹ͖͍ͭ͢ – ٕज़తͳ՝ͩͱօࢥ͍ͬͯΔ͕ɺ࣮ࡍʹਓͷ՝Ͱ͋Δ͜ͱ͕ଟ͍
– ʰϐʔϓϧΣΞʱʹͦΜͳ͜ͱ͕ॻ͍ͯ͋Δ
ϚωδϝϯτͰɺେখ͞·͟·Λղܾ͢Δ • ৭ʑͳ͜ͱ͕վળ͞Ε͍ͯͬͨ • ͜ͷؒɺϚωδϝϯτʹ࣌ؒΛ͍ͬͯͨͷͰ΄ͱΜͲ։ൃͰ͖͍ͯͳ͍
ͱ͜Ζ͕पล͔Γ͕ղܾ͞Ε͍ͯͯɺҰ൪େ͖ͳ͕ղܾ͞Ε͍ͯͳ͍ 技術的負債 ϨΨγʔ ΞʔΩςΫνϟ (JU)VC σϓϩΠ ࣗಈԽ ϩάͷՄࢹ Խ
4MBDL ใڞ༗ ϏϧυύΠ ϓϥΠϯ ΫϥυҠ ߦ
Ұ൪հͰେ͖ͳ͕Կ͔Θ͔͍ͬͯͨͷʹʜ • ʮϚωδϝϯτͰ৫Λ׆ੑԽ͍͚͍͔ͯͭ͠վળʹܨ͕Δͣʯ – ͜Ε࣮ࡍʹઓज़Ͱͳ͘ɺͨͩͷئͰ͔͠ͳͬͨ
ೖ͙ࣾͯ͢͠ʹϚωδϝϯτʹຉ͠ɺ։ൃΛ͍ͯ͠ͳ͔ͬͨ • ։ൃͰ͖͍ͯͳ͍͕ނʹɺຊؙʹඈͼࠐΉͷ͕ා͍ • ݁Ռɺ։ൃ͠ͳ͍ͷͰ͍ͭ·Ͱܦͬͯຊؙͷ՝ʹର͢Δղ૾্͕͕Βͳ͔ͬͨ ʮϘτϧωοΫϚωδϝϯτʯʮٕज़ͷ՝Ͱͳ͘ਓͷ՝ʯ ͳͲͱݴͬͯϓϩμΫτٕज़త՝ʹਖ਼໘͔Β͖߹͑ͳ͍ࣗΛޡຐԽ͍ͯͨ͠
ʜͱ͍͏Θ͚ͰࣗΒ։ൃΛઌಋ͢ΔΑ͏ʹͨ͠ • େ͖͗͢ΔɺͦΕΛͩͱࢥͬͯղܾͰ͖ͳ͍͔Βɺ͕ͯ୭ͦ͏͍͏͕ ͋Δೝࣝ͢Β࣋ͨͳ͘ͳΔ • ͜͏͍͏ঢ়گτοϓμϯͰΓࠐΉ͜ͱ͕Ͱ͖ΔͳΒɺͦΕ͕Ұ൪͍
FQόοΫΤϯυ։ൃʹूதɺϑϩϯτΤϯυಘҙͳਓʹͤͯʜ • ࣗΒ։ൃΛઌಋ͢ΔɺͱݴͬͯશͯΛ͕ࣗϦʔυ͢Δͷ͍͠ • όοΫΤϯυࢲ͕ɺϑϩϯτΤϯυಘҙͳςοΫϦʔυʹ͓ͤͨ͠
ޙʹԿ͕ى͖͔ͨ • 8FC։ൃͷؔ৺͝ͱ͕ϑϩϯτΤϯυଆʹҠ͍ͬͯͬͨ • ϑϩϯτΤϯυ։ൃͷਐาʹେͳΞϓϩʔν͕ඞཁʹͳ͍ͬͯͬͨ – 41"ͷશҠߦɺσβΠϯγεςϜͷߏஙɺϑϩϯτΤϯυͷΠϯϑϥετϥΫνϟඋʜ • ͔͠͠ɺࠓࢥ͑ेͳମ੍తࢧԉ͕Ͱ͖͍ͯͳ͔ͬͨ ϑϩϯτΤϯυྖҬଞͷਓʹͤΑ͏ͱͯؔ͠৺·Ͱ͛ͯ͠·͍
Ϛωδϝϯτͱͯ͠ࢧԉΛ͖࣌͢ʹɺͦΕʹؾͮ͘͜ͱ͕Ͱ͖ͳ͔ͬͨ
ࠓ͓ͨ͠͠Τϐιʔυ • FQରॲྍ๏͔ΓͰɺٕज़త͕ͪͬͱղܾ͠ͳ͔ͬͨ • FQͪΌΜͱֶ΅͏ͱࢥͬͨΒখதֶੜ͔ΒΓ͕͠ඞཁͩͬͨ • FQΘ͔ͬͨɺͱࢥ͕࣮ͬͨફͯ͠ΈͨΒશવͰ͖ͳ͔ͬͨ • FQաڈͷܦݧΛͱʹΛ࡞ͬͨΒɺ͍ͮΒ͍ϓϩμΫτʹͳͬͯ͠·ͬͨ •
FQϚωδϝϯτʹϑΥʔΧεͨ݁͠Ռɺେ͖ͳٕज़՝͕શ͘ղফͰ͖͍ͯͳ͔ͬͨ • FQۤखྖҬΛਓʹ͍ͤͯͨΒɺࢧԉ͕ޙखʹճͬͯ͠·ͬͨ
ʮ͜͏͢Εɺ͜͏ͳΔʯͱ͍͏ύλʔϯͰ͕ղܾͰ͖ͳ͍ ʜബʑΘ͔͍͕ͬͯͨͦͷ͕࣌དྷͯ͠·ͬͨ ͕ࣗԿΛΘ͔Βͳ͍͔ɺͱ͍͏͜ͱ͔ΒΛഎ͚͍ͯͨ͜ͱ͕Θ͔ͬͨ ͭΒ͍ ຊΘ͔͍ͬͯͳ͍͜ͱͳͷʹɺྨࣅͷܦݧΛͯΊͯ ࣗ͋ΔఔΘ͔͍ͬͯΔͱࡨ֮ͯ͠͠·͍ͬͯͨ ʮϘτϧωοΫϚωδϝϯτʯʮٕज़ͷ՝Ͱͳ͘ਓͷ՝ʯ ͳͲͱݴͬͯϓϩμΫτٕज़త՝ʹਖ਼໘͔Β͖߹͑ͳ͍ࣗΛޡຐԽ͍ͯͨ͠ ϑϩϯτΤϯυྖҬଞͷਓʹͤΑ͏ͱͯؔ͠৺·Ͱ͛ͯ͠·͍ Ϛωδϝϯτͱͯ͠ࢧԉΛ͖࣌͢ʹɺͦΕʹؾͮ͘͜ͱ͕Ͱ͖ͳ͔ͬͨ
ࢹڱࡥͱղ૾Լͷ܁Γฦ͠ • Կ͔ʹूத͢Δͱࢹ͕ڱ͘ͳͬͯɺͦΕҎ֎͕Θ͔Βͳ͘ͳΔ • ࢹΛ͘͢Δͱղ૾͕Լ͕ͬͯɺࡉ෦͕Θ͔Βͳ͘ͳΔ • Θ͔Βͳ͘ͳ͍ͬͯΔͷʹʮ·ͩΘ͔͍ͬͯΔʯͱࢥ͍ࠐΜͩΓɺʮશવΘ͔ΒΜʯͱΛ ᛉΔͱ͕ى͖Δ
ࣗͷόά͍ͬͯΔ • Θ͔͍ͬͯͳ͍͜ͱΛΘ͔͍ͬͯΔͱࡨ֮͢Δ • Δ͖͜ͱΛ͍ͬͯͳ͍ͷʹɺ͍ͬͯΔͱࢥ͍ࠐΜͩΓ͢Δ
͜ͷόά͔ΒಀΕ͍ͨ • Θ͔͍ͬͯͳ͜ͱɺΘ͔Δ͔͠ͳ͍ • ͞·͟·ͳٕज़ྖҬʹ͍ͭͯɺͰ͖Δ͚ͩߴ͍ղ૾Ͱཧղ͍ͯ͠Δঢ়گΛҡ͍࣋ͨ͠ બΓΈΛͤͣʹֶशΛܧଓ͢ΔɻखΛࢭΊͳ͍ɺͱ͍͏γϯϓϧͳํ๏Ҏ֎ʹ ͋·Γྑ͍ղܾࡦࠓͷͱ͜Ζࢥ͍͍͍ͭͯͳ͍
ۙگ • ϓϩάϥϛϯάݴޠΛͪΌΜͱཧղ͍ͨ͠ͱࢥͬͯɺझຯͰ )BTLFMMΛϝΠϯͷݴޠʹ͠ ͯຖॻ͍͍ͯΔ – ܧଓ͍ͯͬͯ͠Δͱɺൃݟ͕ͨ͘͞Μ͋Δ ʜڝϓϩΛҰղ͚ͳ͔ͬͨͷͳ͔ͥΘ͔ͬͨ – ʮͬͱૣ͘Δ͖ͩͬͨʯ
·ͨͦΕ͔ɺԿͩ – ʮ3VTUΒͳ͖Όͳʔʯ Ϡόͦ͏ɻϑϥάͰʜ
݁ͼ • Ͳ͏Βࣗͷ৺ͱͯऑ͍ɻԿ͔ͱࣗࣗʹݴ͍༁Λͯ͠͠·͏ • ͜ͷࣗʹର͢Δݴ͍༁͔ΒಀΕ͍ͨɻਓੜޙͬͱࣗΛߠఆͯ͠ੜ͖͍͖͍ͯͨ – Δ͖͜ͱΛ͍ͬͯΔࣗͳΒߠఆͰ͖ͦ͏ – ݴ͍༁͔ΒಀΕΔʹɺֶशΛଓ͚ΔҎ֎ʹํ๏ͳͦ͞͏ –
ܧଓͷ౮Λফ͞ͳ͍Α͏ஸೡʹଓ͚͍͖͍ͯͨͱࢥ͍ͬͯΔ ʮٕज़ऀͱͯ͠େʹ͍ͨ͜͠ͱʯͷࠓͷճ ݁Ռʮྑ͍ιϑτΣΞٕज़ऀʯʹҰาͰ͚ۙͮͨΒྑ͍ͱࢥ͏
l͏·͘Δֶੜͦ͏͍͏ࠔʹͿ͔ͭͬͨͱ͖ɺࣗͷྗෆͱഅࣛ͞Ճݮʹ໓ೖΔ ؾ࣋ͪͱಆ͍ɺࢁͷ;ͱͰখ͞ͳาΈΛ࢝Ί·͢ɻ൴ΒɺϓϥΠυʹই͕ͭ͘͜ͱ ɺࢁ͔Βͷܠ৭ΛோΊΔͨΊͰ͋ΕऔΔʹΒͳ͍ͱ͍͏͜ͱΛ͍ͬͯΔͷͰ ͢ɻz