質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

3回答

2519閲覧

アスペクト指向は普及している考え方ですか?

sea4

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

4グッド

4クリップ

投稿2021/06/19 01:32

「Spring Boot2入門」という本で、Spring bootを勉強中です。
ログを出力するところで、AOP(アスペクト指向プログラミング)を使って書いてみましょうとあり、本だけではわからなかったところもあったので、自分でもアスペクト指向を色々調べてみました。

アスペクト指向が書いてある記事やHPを見ていると、更新日時が古いものが多いなと思いました。(2004~ぐらい?)
去年ぐらいの記事でも、「調べた内容も古いものなので...」などと書いてあり、もしかして最近では使われていないのかな?と思いました。

アスペクト指向の基礎とさまざまな実装
上記のサイトだと、

AOPは単なる一時的流行などではなく、ソフトウェア工学の発展において追究されてきたSOCの一歩進んだ形として今後必ず普及していくだろう。数年前にはオブジェクト指向がそうだったように、いまはアスペクト指向も目新しいものというだけで騒がれている感もあるが、何年か先にはごく普通の一般的な概念としてソフトウェア開発に取り入れられている可能性が高い。

※2004年10月20日 12時00分 公開

と書いてありました。
現在、アスペクト指向はどんな風に思われているのか(使われているのか)知りたいなと思い、質問させていただきました。
よろしくお願いします。

rysh, seastar3, yohhoy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

単なる思い出話ですが、
隣のチームが、AOP で DB トランザクション制御しているコードを高速化しようとして、トランザクション効かない状態で本番リリースしてえらい目にあってました。クレカ決済失敗したのに DB では注文・引当が成立した状態になっているという…。

というのを横目に見ながら、AOP などという難しいことを扱うのは人間には早すぎたのではないか、やるべき処理がそのままソースに書いてあるというのも大事だなぁと思ったのでした。

なんとなくですが、AOP がハマるような組織形態があるのでは (中規模以上? 横通しするチームが存在する?) と感じますが、ハマったところを見たことがないので想像です。

投稿2021/06/22 06:05

68user

総合スコア2022

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/06/22 06:10

>AOP がハマるような組織形態があるのでは 見つかるのが先か、AOPが忘れ去られるのが先か
sea4

2021/06/25 09:54

>クレカ決済失敗したのに DB では注文・引当が成立した状態になっているという…。 そんなことが本当に起こるんですね・・・! 個人で単なるログ出力だったので、便利だなぁぐらいしか思わなかったのですが、企業規模になると、とても難しそうですね。 実際のお話が聞けてうれしかったです。教えていただいてありがとうございました!
guest

0

普及してたらteratailにもタグ合っただろうね。

そもそもアスペクト指向という言葉自体知らない人も居ると思いますよ。

参考程度にですが、Google先生で検索した結果

アスペクト指向プログラミング -約32,800件

オブジェクト指向プログラミング -約 967,000 件

約29倍ですね。

オブジェクト指向すらろくに理解出来ていない人が多い中、アスペクト指向の

「クラス間を横断する機能」をアスペクトとみなし・・・

とか言われても「ナニソレ?」ってなったんでしょう。
考え方自体は面白かったとは思いますが時代が悪かったのでしょうかね。

投稿2021/06/22 02:11

K_3578

総合スコア1282

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sea4

2021/06/25 09:50

オブジェクト指向と比べると、全然違いますね・・・! 時代にあっているかどうか、というのもあるんですね。 教えてくださって、ありがとうございました!
guest

0

詳しいことは知りませんが普及しませんでした

補足です
ソフトウェア工学は結構失敗してます
参考:デス・マーチ著者Ed Yourdonさんの『ソフトウェア工学で大切な10の考え方』を再読する

以下は私見です。
AOPで扱ってメリットがあるものがほとんど見つからなかった(ログと速度計測くらい)。
JavaのAOPは結局のところリフレクションで型の恩恵があまり受けられない。Scalaのパターンマッチがあればもう少し使われたかも。
現在主流(と思われる)のドメインモデルをクラス設計に反映するというアプローチと非常に相性が悪い。
TDDや関数型プログラミングとも相性が悪い。

投稿2021/06/20 14:22

編集2021/06/21 02:10
rysh

総合スコア874

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sea4

2021/06/25 09:46

>ソフトウェア工学は結構失敗してます そうなんですね!日々新しい技術がたくさんできるな~とは思っていましたが、うまくいかないことも多いんですね。知りませんでした! 回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問