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
アスペクト指向プログラミング
Search
ToruTakagi
May 16, 2018
Programming
250
0
Share
アスペクト指向プログラミング
研修先で5分間のLTをする際に作りました
ToruTakagi
May 16, 2018
More Decks by ToruTakagi
See All by ToruTakagi
Webフロントの変化 ~時代はPWAへ?~
torutakagi
0
90
Vue.js
torutakagi
0
150
Other Decks in Programming
See All in Programming
Coding as Prompting Since 2025
ragingwind
0
770
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
1.8k
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
290
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
180
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
250
의존성 주입과 모듈화
fornewid
0
110
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
130
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
180
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
570
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
2
120
PHPで TLSのプロトコルを実装してみる
higaki_program
0
740
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
340
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
Typedesign – Prime Four
hannesfritz
42
3k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
260
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
510
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
450
The Language of Interfaces
destraynor
162
26k
30 Presentation Tips
portentint
PRO
1
270
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Faster Mobile Websites
deanohume
310
31k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Transcript
Aspect Oriented Programming
注意点 言葉の定義を変えてる 2 2018/05/18
What is AOP OOPを倒すもの VS 3 2018/05/18
What is AOP OOPの弱点を補う 4 2018/05/18
AOPって何ができる? 5 2018/05/18
出力結果は? public class Main { public static void main(省略) {
} } 6 2018/05/18
出力結果 C:¥>java Main Hello World!! 7 2018/05/18
Aspectって何ができる? 既存のシステムをいじらず ・変数の値を変更 ・メソッドの中身を書き換え ・特定のタイミングで処理を行う 8 2018/05/18
AOPが生まれた背景 ✔ ソフトウェア工学の視点 ✔ OOPの視点 9 2018/05/18
✔凝集度 クラスに無駄な機能が入ってないか ✔結合度 クラスの関係性 What is Cohesion and Coupling 10
2018/05/18
凝集度 高い 結合度 低い 一般的 11 2018/05/18
1つの関数に全部書けば 結合度低くね? 極論 12 2018/05/18
13 図1. アスペクト指向の考え方の原点[1] [1]Kurowasi, “時代が来るかも?アスペクト指向プログラミング,AspcetJ言語とは何か,” 2018/05/18
AOPが生まれた背景 ✔ ソフトウェア工学の視点 ✔ OOPの視点 14 2018/05/18
グループ分けの単位 What is Concern(関心事) 15 2018/05/18
ブログシステム 16 2018/05/18
OOPの限界 ログイン機能 ページを返す機能 記事登録機能 ユーザ情報取得 一致するか判定 欲しいページ取得 記事をDBに登録 ログを登録 17
図2. ブログシステム 2018/05/18
OOPの限界 ログイン機能 ページを返す機能 記事登録機能 ユーザ情報取得 一致するか判定 欲しいページ取得 記事をDBに登録 ログを登録 18
図3. OOPでの関心事の分離 2018/05/18
Crosscutting Concern ログイン機能 ページを返す機能 記事登録機能 ユーザ情報取得 一致するか判定 欲しいページ取得 記事をDBに登録 ログを登録
19 図4. 横断的関心事 2018/05/18
Aspect ログイン機能 ページを返す機能 記事登録機能 ユーザ情報取得 一致するか判定 欲しいページ取得 記事をDBに登録 ログを登録 アスペクト
20 図5. アスペクトによる横断的関心事の解決 2018/05/18
OOP 21 図6. オブジェクト指向の目線 2018/05/18
AOP 22 図7. アスペクト指向の目線 2018/05/18
複数の視点から 関心事の分離が可能 AOPにって限界突破 23 2018/05/18
✔OOPの問題点 ◆結合の問題 ◆横断的関心事の問題 ✔AOPによる解決 ◆コンパイラが結合 ◆複数の視点で見れる まとめ 24 2018/05/18
Yes Silver Bullet 25 2018/05/18