Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
メタプログラミングと生産性 / meta-programming
Search
erukiti
February 21, 2018
Programming
3k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メタプログラミングと生産性 / meta-programming
メタプログラミングを生産性向上手段の一つとして知っておくと、プログラマ人生が捗るかもしれません!
erukiti
February 21, 2018
More Decks by erukiti
See All by erukiti
Codex時代の新たなバイブコーディングワークフロー/ after Codex workflow
erukiti
9
4k
Claude Codeを使って不確実性と戦う / claude-code-fights-uncertainty
erukiti
10
4.8k
Claude Code活用において、メンタルモデルを変える必要がある / rethinking-claude-code-mental-models
erukiti
20
14k
AIとの対話で加速する学び / ai learnig
erukiti
1
1k
コーディングエージェントを作ってるけどうまくいかなかった話 ~あるいは二ヶ月本気でコーディングエージェントと向き合った話~ / Two Month Agent Struggle
erukiti
40
21k
Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜/gemini-2.0-flash-prompt-engineering
erukiti
17
7.2k
LLMをねじ伏せる/Conquer the LLM
erukiti
0
300
鮮度が高すぎて世界で誰も正解を見つけてない課題に取り組んでいる/ Freshness issues
erukiti
1
990
実演TypeScript + GitHub Copilot
erukiti
9
4.7k
Other Decks in Programming
See All in Programming
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
140
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.1k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
contenteditable と日本語入力に向き合う
colorful12
0
190
mrbgem 三角測量 開発
ogom
0
240
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.1k
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
160
Jetpack Compose Mechanisms
skydoves
2
730
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
Simple Storage Service(S3) is not simple
iwatsukayura
0
270
JRuby: Past, Present, and Future
headius
0
230
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
750
A better future with KSS
kneath
240
18k
Ethics towards AI in product and experience design
skipperchong
2
420
How to train your dragon (web standard)
notwaldorf
96
6.9k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Amusing Abliteration
ianozsvald
1
340
How to build a perfect <img>
jonoalderson
1
6.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
How STYLIGHT went responsive
nonsquared
100
6.3k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Side Projects
sachag
456
43k
Transcript
ϝλϓϩάϥϛϯάͱ ੜ࢈ੑͷ NFUBQSP@FT !FSVLJUJ
ࣗݾհ w FSVLJUJ 5XJUUFS (JUIVC 2JJUB .FEJVNͳͲ w Ҿ͖͜ΓؾຯϑϦʔϥϯεΤϯδχϟʔ
ڭࡐ࡞ͱ͔ ϥΠλʔͬΆ͍ײ͡ͷ͜ͱʜ w όοΫΤϯυϝΠϯ ϑϩϯτΤϯυɾΠϯϑϥͳͲ w ͖ͳݴޠ5ZQF4DSJQU ͱ͍͏͔ܕͷ͋Δ&$."4DSJQU w ಉਓࢽಉਓࢽۀԽಉਓࢽಉਓࢽ ߹ಉࢽ ۀԽਐߦத߹ಉࢽࣥචதˍಉਓࢽࣥචத
+4FSͱͯ͠৽ࢀऀ w &MFDUSPOͷҝʹ+BWB4DSJQUΛ࢝ΊΔ w $P⒎FF4DSJQU&45ZQF4DSJQU &4&4 'MPX5ZQF4DSJQU w %0.$44ͳͲͷݟ͕গͳ͍
͖ͬΆ͍ح৺Ԣ w ڈޙ͔ΒͷྲྀΕ ϑϨʔϜϫʔΫ࡞ϝ λϓϩάϥϛϯά҉߸௨՟ɾϒϩοΫνΣʔ ϯɾίϯϐϡʔλϏδϣϯ w ࠷ۙͪΐͬͱϝλϓϩάϥϛϯά͔ΒΕ͍ͯ ͨʜɻʢ"45ຊͷۀԽ͕ετοϓதʜʜ
w కΊΓۦಈ։ൃɺకΊΓۦಈࣥචɺษڧձۦ ಈษڧ
NFUBQSP@FT w ڈळࠒͷ+BWB4DSJQUࡇΓͷ࣌ʹQPUBUPE͞Μͱ ॳΊͯ͋ͬͯɺͦͷ͋ͱʮͳΜ͔ษڧձ։࠵͠· ͤΜ͔ʁʯͱ͓͕͚ͯ͠Βͬͨ w ͪΐͬͱ͍ͨͨͯͯ͠ɺ݁ہ݄ʹೖͬͯϝλ ϓϩͷษڧձΓ͍ͨͰ͢ʂͱݴͬͨΒ։࠵͕ܾ ఆ͠·ͨ͠ɻ w
৭ʑ͍͚ͬͯͨͩͯ΄Μͱ͋Γ͕͍ͨݶΓͰ͢ʂ
͘͞ΒΠϯλʔωοτ͞Μ ձͷ͝ఏڙ ͋Γ͕ͱ͏͍͟͝·͢ʂʂ
ΞδΣϯμ w ϝλϓϩάϥϛϯάͱԿ͔ w ੜ࢈ੑ w దͳબࢶͷҰͭͱͯ͠ͷϝλϓϩάϥϛ ϯά
None
ྫ w %#εΩʔϚఆ͔ٛΒɺσʔλϞσϧϦϙδ τϦύλʔϯΛࣗಈੜ w σʔλϞσϧ͔Β42-จΛࣗಈੜ w %4-Λݩʹύʔαʔ ߏจղੳث
Λੜ w ؔΛड͚औͬͯ߹͢Δؔ
ྫ w -JTQΈ͍ͨʹߏจΛࣗͰఆٛͰ͖Δݴޠ w 4DBMBͷϚΫϩ w ςϯϓϨʔτݴޠ ಛʹνϡʔϦϯάશͳ ͭ
w ϦϑϨΫγϣϯ ಈతʹใΛऔಘͨ͠Γॻ͖ ͑ͨΓ
˞ͨͩ͠ɺҙ͠ͳ͍ͱ ؆୯ʹࠇຐज़ ෛͷҨ࢈ʹͳΓ·͢
ͦͦϝλͱʁ
None
༷ʑͳϝλ w ࡞தͷΩϟϥ͕࡞ͷ֎ʹݴٴ͢Δʮϝλ ൃݴʯ w σʔλຊମʹରͯ͠σʔλΛཧ͢ΔͨΊͷ ใΛ༩͢Δʮϝλσʔλʯ w ྲྀߦΓͷσοΩΛલఏͱͨ͠ಛघͳઓུΛલ ఏͱ͢ΔσοΩߏஙʮ˓˓ϝλσοΩʯ
None
நͱ۩ w ϓϩάϥϛϯά ཁ݅ఆ͔ٛΒίʔσΟϯά· Ͱશ෦ؚΊΔ ɺେମநͱ۩ͷߦ͖དྷ ਓؒ χʔζϏδωεϩδοΫɺཁ݅ ઃܭ ΞʔΩςΫνϟͳͲେ͖ͳઃܭ
ৄࡉઃܭ ͬͱৄࡉʹ;Έ͜Μͩઃܭ ൚༻࣮ ൚༻ͷߴ͍ίʔυ ݸผ࣮ ৄࡉͳࣄʹ౿ΈࠐΜͩίʔυ
நͱϝλϓϩάϥϛϯά w ந͕ߴ͍ɺߴϨϕϧϓϩάϥϛϯάͬͯ ੑೳ͕མͪͦ͏͚ͩͲɺϝλϓϩάϥϛϯά Ͱίʔυੜ͢Εʜ w ϝλϓϩάϥϛϯάͬͯͦ͠͏ʹࢥ͑Δ͚ ͲɺৗతʹநԽͱ͔ͬͯΔϓϩάϥϚ ʹͱͬͯ͞΄Ͳқͷߴ͍ͷͰͳ͍ ͷͰʁʁ
None
None
ϓϩάϥϚͷੜ࢈ੑ w ͔͔ͬͨ࣌ؒ ίετ ʹର͢ΔɺՌͩͱࢥ ͏͕ɺࢦඪ͕͍͠ ίʔυͷߦʁ͍͡Γ ͢͞ʁ࣭ʁṶֹ͔ͬͨۚʁ w
Ͱ૬ରతʹࢉग़Ͱ͖Δ ಉ͜͡ͱΛୡ ͢Δͷʹཁ͢Δ࣌ؒͷࠩ w ഒʙഒͷࠩΛ࣋ͭਓ͕͍Δͱ͍ΘΕΔ
ͦͦ ͳͥੜ࢈ੑʹେ͖ͳ͕ࠩ͋Δʁ w ݸʑਓͷೳྗࣗମ͕ഒͷࠩΛੜΈग़ ͢ͷ͔ʁ w ಉ͡ࢥߟํ๏ͳΒ ࢥߟ͕ഒͷਓ͕ؒ ͍Δͱߟ͑ʹ͍͘ w
εϖοΫͷҧ͍ΑΓɺΓํͷҧ͍ͷํ͕ ܾఆతͳࠩʹͳΔͷͰʁ
తୡʹͱͬͯ࠷ݶͳ ఔ͚ͩΛಥ͖٧ΊΕ ͦΕ͕࠷ͳͷͰʁ
Α͋͘Δແବ w ͦͷ࣌ͰΒͳ͍͍ͯ͘͜ͱΛ͍ͬͯΔ w ͦͷ࣌Ͱͬͯͳ͍ͱ͍͚ͳ͍͜ͱΛ͍ͬͯͳ ͍ w ࣺͯͨํ͕ૣ͍࣌ʹɺແཧʹ࠶ར༻ w ෆඞཁʹ
ͳઃܭɺίʔυ w ΑΓΑ͍ख๏ɾಓ۩͕͋ΔͷʹΒͳ͍ɺ͑ͳ͍
ແବΛ͙ w ਖ਼͍͠ఔཧ ಛʹઓུͷޡΓΛઓज़ͰऔΓ ͞ͳ͍͜ͱ͕ॏཁ w ΑΓޮతͳखஈΛબΔΑ͏ʹखࡳΛ૿ ͢ w
ͦͷத͔ΒదͳબΛ͢Δ
ແବΛ͙ w ਖ਼͍͠ఔཧ ಛʹઓུͷޡΓΛઓज़ͰऔΓ ͞ͳ͍͜ͱ͕ॏཁ w ΑΓޮతͳखஈΛબΔΑ͏ʹखࡳΛ૿ ͢ w
ͦͷத͔ΒదͳબΛ͢Δ ༩͑ΒΕͨࡋྔ͕গͳ͗͢Δ߹ స৬Λߟ͑ͨํ͕͍͍͔͠Ε·ͤΜ ἤΓ
None
ϝλϓϩάϥϛϯάʹ ͍͔ͭ͘छྨ͕͋Δ
ϦϑϨΫγϣϯػೳ w ϝιουݺͼग़͠ϓϩύςΟΞΫηεΛIBDL ͢Δ w ຊདྷΒͳ͍͍ͯ͘ใΛऔಘͨ͠Γॻ͖ ͑ͨΓ
None
$ cat test.js class Hoge {} const hoge = new
Hoge() const fuga = new Proxy(hoge, { get(target, name) { console.log(`${target}の${name}をgetしにきやがりました`) return 'みせねーよ!' }, set(target, name, value) { console.log(`${target}の${name}に${value}をsetしにきやがりました。ふてえ やろうだ!`) } }) console.log(fuga.x) fuga.y = 10 $ node test.js [object Object]のxをgetしにきやがりました みせねーよ! [object Object]のyに10をsetしにきやがりました。ふてえやろうだ!
੩తͳͷ߹Θٕͤ w #BCFMͱ͔ w 8FCQBDLͱ͔ w QFHKTͱ͔ w CBCFMSFHJTUFS SFRVJSFIBDL
ϦϑϨΫγϣϯΛΘͳͯ͘ w ؔܕݴޠͷઃܭࢀߟʹͳΔ w ݴޠ%4- +4ͩͱදݱͮ͠Β͍͔ͳʜ w 03Ϛούʔͱ͔ʁ
ϝλϓϩάϥϛϯάΛؚΊͯ ݸʑͷख๏બࢶͷҰͭ
ݸਓతײ w ۩తͳίʔυΛ͍͍ײ͡ʹݮΒͭͭ͠ɺແବͳநԽΛ ͠ͳ͍ͱ͍͏όϥϯεײ͕֮؊ w ߴϨϕϧϓϩάϥϜʹੑೳతແବ͕͋Δͱ͍ΘΕΔ͚Ͳ ϝλϓϩάϥϛϯάʹΑΔίʔυੜͰ͋Δఔ͛Δ w ۩తͳίʔυΛݮΒ͢खஈͱͯ͠ϝλϓϩ͕ͬͱධՁ ͞Ε͍͍ͯͱࢥ͏Μͩʜʜ
w %3: ,*44 :"(/*͋ͨΓͷݪଇେ͖Ͱ͢
·ͱΊ w ϝλϓϩάϥϛϯάϓϩάϥϜΛѻ͏ϓϩάϥϜ w ͦ͠͏͚ͩͲͦ͏Ͱͳ͍ ߹ʹΑͬͯ໘ͩͬͨΓ ࠇຐज़ʹͳΓ͕ͪͰ͋Δ͚Ͳ w நͱ۩Λߦ͖དྷ͢Δͷ͕ϓϩάϥϚ
w ੜ࢈ੑͦͷόϥϯεͷऔΓํʹେ͖͘ࠨӈ͞ΕΔ ࣋ w ϝλϓϩάϥϛϯάόϥϯεͷྑ͍நԽΛΔखஈͷ ͻͱͭ
͝ΊΜͳ͍͞ DPOOQBTTϖʔδʹॻ͍ͯͨ ਅͷ%3:࣍ͷωλʹ͠·͢ʂʂ ࣍ɺ͋Εʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠