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
0
240
アスペクト指向プログラミング
研修先で5分間のLTをする際に作りました
ToruTakagi
May 16, 2018
Tweet
Share
More Decks by ToruTakagi
See All by ToruTakagi
Webフロントの変化 ~時代はPWAへ?~
torutakagi
0
89
Vue.js
torutakagi
0
140
Other Decks in Programming
See All in Programming
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Apache Iceberg V3 and migration to V3
tomtanaka
0
170
Raku Raku Notion 20260128
hareyakayuruyaka
0
360
AI時代の認知負荷との向き合い方
optfit
0
160
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
460
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
高速開発のためのコード整理術
sutetotanuki
1
410
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
Oxlintはいいぞ
yug1224
5
1.4k
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Ethics towards AI in product and experience design
skipperchong
2
200
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
110
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
390
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
Done Done
chrislema
186
16k
[SF Ruby Conf 2025] Rails X
palkan
1
760
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
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