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
†黒魔術† と Annotation と AspectJ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kaiinui
August 23, 2014
Technology
3
1.2k
†黒魔術† と Annotation と AspectJ
Annotation と AspectJ で楽しい黒魔術 (▰╹◡╹▰)
kaiinui
August 23, 2014
Tweet
Share
More Decks by kaiinui
See All by kaiinui
Black Magic in Java
kaiinui
1
600
API開発自動化と量産
kaiinui
1
460
Other Decks in Technology
See All in Technology
「OSアップデート:年に一度の「大仕事」を乗り切るQA戦略」_Mobile Tech Flex 〜4社合同!私たちのモバイル開発自慢大会〜
gu3
0
200
opsmethod第1回_アラート調査の自動化にむけて
yamatook
0
240
Claude Codeで実践するスペック駆動開発入門 / sdd-with-claude_code
yoshidashingo
2
3.8k
EKSで実践する オブザーバビリティの現在地
honmarkhunt
2
300
vol11_ねこIoTLT_お遊びVibeCoding
1027kg
0
160
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
0
120
自律型コーディングエージェントでどこまで出来るかやってみる~ Claude Code vs GitHub Copilot(Agent mode) ~ / How Far Can Autonomous Coding Agents Go? ~Claude Code vs GitHub Copilot (Agent Mode)~
jnymyk
0
170
30分でわかる「ネットワーク図の描き方入門」/infraengbooks56
corestate55
1
360
Claude Codeはレガシー移行でどこまで使えるのか?
ak2ie
0
140
Open Table Formatにおけるストレージ抽象化の比較
lycorptech_jp
PRO
1
200
AWS DevOps Agent x ECS on Fargate検証 / AWS DevOps Agent x ECS on Fargate
kinunori
3
450
バニラVisaギフトカードを棄てるのは結構大変
meow_noisy
0
110
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
From π to Pie charts
rasagy
0
140
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
72k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Darren the Foodie - Storyboard
khoart
PRO
3
2.6k
Side Projects
sachag
455
43k
GitHub's CSS Performance
jonrohan
1032
470k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Are puppies a ranking factor?
jonoalderson
1
3k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
200
Transcript
†黒魔術† @_kaiinui
=
結論から? (▰╹◡╹▰)
@PotatoTip をつけるだけでトースト
Java の黒魔術: Annotation
Java の黒魔術: Annotation どうみても黒魔術
Java の黒魔術: Annotation Annotation as a code?
良さ? ・宣言的さ ・コードと「宣言」を分離出来る ・コードが短くなったり ・ミスを防止したり(@Nullable)
・ButterKnife の @InjectView ・Support Annotation の @NonNull ・AndroidAnnotations の @UiThread
・Rails の has_many 「する」と「である」を分ける
良い例: ButterKnife の @InjectView
する textView = (TextView) findViewById(R.id.text); である @InjectView(R.id.text) textView;
する runOnUiThread(new Runnable {...}); である @UiThread public void showToast() {..};
さて
Bring your own Annotation!
ツール • AspectJ • java.lang.annotation
初級編 Annotation を普通に使う(AspectJ じゃない)
1. Annotation をつくる(カンタン)
2. 黒魔術
3. 出来た
4. 完成 BananaKnife
中級編 AspectJ でアスペクトを織り込む
1. Annotation をつくる(カンタン)
2. AspectJ で黒魔術
@PotatoTip をつけるだけでトースト
AspectJ の良い例: Hugo
AspectJ の良い例: Hugo あまりに便利なので iOS 版もつくった kaiinui/KILogInjector
一言で? ・Annotation で @Hoge がついたメソッド、フィー ルド、クラスとかを弄れたりする ・AspectJ で処理をフックしてほげほげ、といった 処理がカンタンに書ける。 (▰╹◡╹▰)
きみだけのさいきょう @Annotation をつくろう!
「モデルと API 辛い」周りの話がしたかった あと自分で作るとかどうでもいいので既にある Annotation をまず使おう (▰╹◡╹▰) 最後に