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
IntelliJ Plugin開発入門
Search
tommykw
February 18, 2017
Programming
0
270
IntelliJ Plugin開発入門
tommykw
February 18, 2017
Tweet
Share
More Decks by tommykw
See All by tommykw
ポートフォリオを作る
tommykw
0
150
Kotlin Compiler Plugin 入門
tommykw
0
86
Kotlin Compiler Plugin のワークフローを知る
tommykw
1
2.2k
コネヒトの健全性を支えるGithub Actionsの事例紹介
tommykw
0
1.9k
スクラムガイドの理解を深めるためのeduScrumガイド
tommykw
0
1.7k
改めて学ぶContracts
tommykw
10
6.9k
Kotlinの短絡評価について
tommykw
0
450
初めてのKotlinコントリビュート
tommykw
1
710
Kotlin Issueを投げてみよう!
tommykw
0
3.3k
Other Decks in Programming
See All in Programming
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
370
Reduxモダナイズ 〜コードのモダン化を通して、将来のライブラリ移行に備える〜
pvcresin
2
680
CSC305 Lecture 01
javiergs
PRO
1
400
XP, Testing and ninja testing ZOZ5
m_seki
2
300
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
180
CSC509 Lecture 06
javiergs
PRO
0
240
複雑化したリポジトリをなんとかした話 pipenvからuvによるモノレポ構成への移行
satoshi256kbyte
1
770
GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する
ota1022
0
240
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
140
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
400
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
0
380
プログラマのための作曲入門
cheebow
0
540
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
Producing Creativity
orderedlist
PRO
347
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Making Projects Easy
brettharned
119
6.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
Transcript
ՈͷຖΛͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ *OUFMMJ+1MVHJO։ൃೖ
ϚϚϦ ϓϩϑΟʔϧ ా݈ೋ !UPNNZLX !UPNNZLX $POOFIJUP JOD"OESPJE&OHJOFFS
ϚϚϦ ΞδΣϯμ w *OUFMMJ+1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ
ՈͷຖΛͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ *OUFMMJ+1MVHJOʹ͍ͭͯ
ϚϚϦ *OUFMMJ+1MVHJOʹ͍ͭͯ w *OUFMMJ+1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ
ϚϚϦ *OUFMMJ+1MVHJOʹ͍ͭͯ ίʔυิɺݕࠪɺϦϑΝΫλϦϯάɺϦιʔε ͷ࠷దԽͳͲɺଟ͘ͷػೳ͕͋ΓɺݴޠʹಛԽ͠ ͨ*%&ɺྫ͑3VCZ.JOFɺ1IQ4UPSNɺ "OESPJE4UVEJPͳͲ༷ʑͳ1MVHJO͕͋Γ·͢ɻ *OUFMMJ+1MVHJOʹ͍ͭͯ
ϚϚϦ *OUFMMJ+1MVHJOػೳҰཡ ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN
ϚϚϦ *OUFMMJ+1MVHJOػೳҰཡ ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN
ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT ߏจ্ͷΛվળɺ·ͨ࠷దԽ͢ΔͨΊͷ దͳҙਤಈ࡞ΛఏҊ͠·͢ɻ"MU &OUFSγϣʔ τΧοτΛ༻͍ͯૢ࡞͢Δ͜ͱ͕Ͱ͖·͢ɻ
ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT
ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT
ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT
ϚϚϦ $PEF*OTQFDUJPO ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN
ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO ίϯύΠϧΛ͢ΔલʹಛఆͷίʔυͷݕࠪΛߦ͍ɺ ΤϥʔɺܯࠂɺϓϩδΣΫτݻ༗ͷنҧͳͲ Λࢦఠ͠·͢ɻ*OUFOUJPO"DUJPOT "MU &OUFS Ͱ ࢦఠ͞Εͨίʔυͷमਖ਼Λߦ͏͜ͱ͕Ͱ͖·͢ɻ
ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO
ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO
ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO
ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO
ϚϚϦ "DUJPO4ZTUFN ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN
ϚϚϦ "DUJPO4ZTUFN *%&"ͷϝχϡʔπʔϧόʔʹΧελϜΞΠς ϜΛՃ͢Δ͜ͱ͕Ͱ͖·͢ɻ"O"DUJPOΫϥε Λੜͨ͠ͷͰɺϝχϡʔ߲·ͨπʔϧόʔ Ϙλϯ͕બ͞Εͨͱ͖ʹ࣮ߦϝιου͕ݺͼ ग़͞Ε·͢ɻ "DUJPO4ZTUFN
ϚϚϦ "DUJPO4ZTUFN "DUJPO4ZTUFN
ՈͷຖΛͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ 0QUJNJ[F*NQPSUTʹ͍ͭͯ
ϚϚϦ 0QUJNJ[F*NQPSUTʹ͍ͭͯ w *OUFMMJ+1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ
ϚϚϦ 0QUJNJ[F*NQPSUTʹ͍ͭͯ +BWBɺ,PUMJOͷJNQPSUΩʔϫʔυʹಛԽͨ͠ "DUJPO1MVHJOͰɺॏෳͨ͠JNQPSUະ༻ͷ JNQPSUΛҰׅͰૢ࡞͢Δ͜ͱ͕Ͱ͖·͢ɻ·ͨ JNQPSUͷॱংͷཧΛߦ͍·͢ɻ 0QUJNJ[F*NQPSUTʹ͍ͭͯ
ϚϚϦ 0QUJNJ[F*NQPSUT 0QUJNJ[F*NQPSUT
ϚϚϦ 0QUJNJ[F*NQPSUT 0QUJNJ[F*NQPSUT
ϚϚϦ 0QUJNJ[F*NQPSUT 0QUJNJ[F*NQPSUT
ϚϚϦ "OESPJEͷϦιʔεཧ "OESPJEʹ͓͚ΔϦιʔεཧ
ϚϚϦ "OESPJEͷϦιʔεཧ ϦιʔεཧΛ؆୯ʹ͍ͨ͠ ઌ΄ͲͷϦιʔείʔυͷBUUSJCVUFɺίʔυ ͱҟͳΓɺະ༻࣌ʹ৭͕มΘΓ·ͤΜɻͲͷ Ϧιʔε͕ະ༻Ͱ͋Δͷ͔ௐΔͷׂ͕ͱ໘ ͍͘͞Ͱ͢ɻग़དྷΕॱংἧ͍͑ͨ
ϚϚϦ "OESPJEͷϦιʔεཧ 0QUJNJ[F*NQPSUTͷϦιʔε൛͕͋Δͱ ͍͍Ͷʂʂ
ՈͷຖΛͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ
ϚϚϦ 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ w *%&"1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ
ϚϚϦ 0QUJNJ[F3FTPVSDFT1MVHJO ػೳͱͯ͠ɺະ༻ͷϦιʔεͷআ͕ϝΠϯ ͷػೳͰ͢ɻকདྷతʹ0QUJNJ[FJNQPSUTͷΑ ͏ͳॱংௐະ༻ϦιʔεͷΧϥʔΛάϨʔ ʹͨ͠ΓɺϓϨϏϡʔը໘Λग़͍ͨ͠ͱࢥͬͯ ͍·͢ɻ͜ΕΛ࡞Γ͍ͨʂ 0QUJNJ[F3FTPVSDFT1MVHJO
ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT ࣮ʮ3FNPWF6OVTFE3FTPVSDFTʯͱ ͍͏ػೳ͕͢Ͱʹ͋ͬͨʂ
ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT 3FNPWF6OVTFE3FTPVSDFT
ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT ෆཁͳϦιʔεͷআΛߦ͏"DUJPO1MVHJOɻ ෆཁͳQOHYNMͷBUUSJCVUFͷআ͕Ͱ͖ɺ "OESPJE4UVEJPʹಋೖ͞Ε͍ͯͨɻ 3FNPWF6OVTFE3FTPVSDFT
ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT ϓϩμΫτͰ࣮ࡍʹࢼ͕ͨ͠ಈ͔ͳ͍ɻ খ͍͞αϯϓϧͩͱͪΌΜͱಈ͘ͷͰɺ Կ͔όά͕͋ΔΜͰ͠ΐ͏͔ʼʻ 3FNPWF6OVTFE3FTPVSDFT
ϚϚϦ *OUFMMJ+1MVHJO࡞ *OUFMMJ+1MVHJOΛ࡞ͬͯΈͨʂ
ϚϚϦ 0QUJNJ[F3FTPVSDFTͷίʔυ 3FTPVSDF0QUJNJ[F"DUJPO
ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ ͜Μͳײ͡ͷಈ࡞Ͱ͢ʂ
ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ 0QUJNJ[F3FTPVSDFT
ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ 0QUJNJ[F3FTPVSDFT
ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ 0QUJNJ[F3FTPVSDFT
ϚϚϦ 0QUJNJ[F3FTPVSDFT YNMɺLUϑΝΠϧɺKBWBϑΝΠϧΛૢ࡞͢Δʹ͋ ͨΓɺ7JSUVBM'JMFͱ1TJ'JMFΛͬͯૢ࡞͍ͯ͠ ·ͨ͠ɻͦΕͧΕͷػೳ͍ͭͯ֬ೝ͠·͢ɻ
ϚϚϦ 7JSUVBM'JMF 7JSUVBM'JMF ԾϑΝΠϧγεςϜͰɺ*OUFMMJ+ϓϥοτϑΥʔ ϜͷίϯϙʔωϯτͰϑΝΠϧΛॲཧ͢ΔͨΊʹ ར༻͠·͢ɻ
ϚϚϦ 14*'JMFT 14*'JMFT 1SPHSBN4USVDUVSF*OUFSGBDFͰɺݴޠϑΝΠ ϧͷFMFNFOUΛද͠ɺ9NM'JMFɺ1TJ+BWB'JMFɺ ,U'JMFͳͲ͕͋Γ·͢ɻϑΝΠϧͷಡΈࠐΈղ ੳΛߦ͏͜ͱ͕Ͱ͖·͢ɻ
ϚϚϦ ࡶײ ࡶײ w ͦ͜·Ͱ։ൃϋʔυϧߴ͘ͳ͍ w αϯϓϧ͕গͳ͍ͷͰগ͠େม͔͠Εͳ͍ w ίʔυΛಡΉ͜ͱଟͦ͏ w
υΩϡϝϯτ͕ॆ࣮͍ͯ͠ͳ͍ w νϟϯε͋Γͦ͏ w ,PUMJOʹίϯτϦϏϡʔτνϟϯε w ϥΠϒϥϦͷ1MVHJOΛ࡞Δ
ՈͷຖΛͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ *OUFMMJ+1MVHJO։ൃೖ
ՈͷຖΛͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠