アスペクト指向

今日のまとめ

AOPOOP

アスペクト指向(AOP)は、オブジェクト指向(OOP)の本質でない部分を抜き出したものです。簡単に言えば、AOPOOPではカバーできない箇所を補います。複数のオブジェクトで同じ操作が散在してしまうことを「横断的関心事」といいます。AOPでは、横断的関心事をアスペクトというモジュールに分離、管理をすることで、OOPよりも処理の保守性と再利用性のレベルを高めることができます。

AOP・・・Aspect Oriented Programming
Aspect・・・横断的関心事
モジュール・・・一連の機能がひとまとまりになる複数の機能

f:id:marikooota:20160428010214p:plain

  • ロギング

    ロギングとは、起こった出来事についての情報などを一定の形式で時系列に記録・蓄積すること。そのように記録されたデータのことを「ログ」(log)という。

  • Pointcut

    ジョインポイントの集合のこと。条件にあうジョインポイントだけを抜き出すことも可能。

  • Interceptor
    メソッドの呼び出しタイミングで、振る舞いを挿入すること。
    • LogInterceptor
      メソッドの実行時間を測る。どのメソッドに時間がかかっているのかを把握することができる。
  • Advice
    ジョインポイントに埋め込まれるアスペクトコードのこと。3つの種類がある。
    • Around Advice
      ジョインポイントの前後で実行される。
    • Before Advice
      ジョインポイントの前で実行される。
    • After Advice
      ジョインポイントの後に実行される。2つの種類がある。
      After returning Advice
      ジョインポイントでの処理が正常に終了した後に実行される。
      Throws Advice
      ジョインポイントでの処理で例外が発生した場合に実行される。
  • JoinPoints

    アスペクトコードが挿入できる位置を表したもの。例えば、メソッド呼び出しの前後などは、ジョインポイントになる。

  • Thymeleaf

    Javaのテンプレートエンジンライブラリ。テンプレートエンジンというのはデータとテンプレートを合体させ、文字列を作る仕組みのことです。XML/XHTML/HTML5で書かれたテンプレートを変換して、アプリケーションのデータやテキストを表示することができます。

<html xmlns:th="http://www.thymeleaf.org" lang="ja">
<p th:text="${hoge}">
MVC

Model View Controller

フロントコントローラー

f:id:marikooota:20160429214145j:plain

フルスタック
Gradle

Groovy製のビルドツール。 ビルド・・・ソースからアプリケーションを構築するまでの一連の流れ。
ビルドツール・・・ビルドに関わる各種処理を実行。