タグ

AOPに関するJHashimotoのブックマーク (10)

  • intro-to-aop

    複雑なアプリケーションではロギング、 トレーシング 、メトリクスといったサポートの機能により、関数にすぐ負荷がかかってしまいます。これらのコードブロックはあらゆるコードベース上でそれぞれ少し変形して繰り返し使用されるのですが、これを 横断的関心事(cross-cutting concerns) と言います。 アスペクト指向プログラミング (AOP)は、アスペクトと呼ばれるモジュール内にコードブロックを引き入れて、 関心の分離 (separation of concerns)を手助けします。 AOPの実装 Phoneクラス ^(1) 不自然な例だというのは承知の上で、 dial メソッド1つを使って簡単なPhoneクラスを構築してみました。 function Phone() {}; Phone.prototype.dial = function (friend) { var start =

    intro-to-aop
  • デザインパターンの自動化

    .NETで簡単な例を見てみましょう。 public Person : INotifyPropertyChanged { string firstName, lastName; public event NotifyPropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { if ( this.PropertyChanged != null ) { this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public string FirstName { get { return this.firstName; } set { this.firstName

    デザインパターンの自動化
    JHashimoto
    JHashimoto 2013/03/26
    "これを書いている時点では、わずか2つのAOPフレームワークが正しいIDE統合を提供している。AspectJ (Eclipse用のAJDTプラグインによって)とPostSharp (Visual Studio用)である。"
  • JavaScriptと非同期のエラー処理

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。前回のコールバック地獄に関する記事では、複雑な入れ子になりやすい非同期処理でも、GeneratorやjQuery.Deferredを使うことで、同期的な見た目に変形できることを示しました。 ところで、非同期処理においてはもう一つ「 エラー処理に例外が使えない 」という問題があります。今回はエラー処理について考えてみたいと思います。 例外を使ったエラー処理 非同期処理の話の前に、一度「例外」についておさらいしておきましょう。JavaScriptに限らず、エラーと言えばよく例外を使って記述されます。 「Web APIから500が返ってきた」とか「入力された値が期待する型

    JavaScriptと非同期のエラー処理
    JHashimoto
    JHashimoto 2013/02/20
    "AOPはJavaなどで柔軟性を持たせるために使うテクニックですが、JavaScriptのようなもともと柔軟すぎる言語では特にライブラリも必要なく、簡単に実現できます。"
  • Loading...

    JHashimoto
    JHashimoto 2012/10/03
    "使い方はとても簡単で、インストーラでインストールしたのち、PostSharp.Laosと、PostSharp.Publicを参照設定します。 あとは、Attributeクラスを作成し、属性でWeavingするだけなので、とても簡単でした。"
  • PostSharp興味深い

    PostSharp - Bringing AOP to .NET AOPフレームワークと言われるんだって。 ボスの大嫌いなRemotingのProxy(.NET Framework 2.0 コア機能解説 ~ 第 1 回 .NET リモーティング ~)でのフックや(A basic proxy for intercepting method calls (Part –1) - Mehfuz's WebLog)、Invokerを必ず呼び出すASP.NET MVCでのFilterAttribute達のどっちかが一般的なのかと思ってたけど、世の中スゴイ事思いつく人たちがいるモンで、ビルド後にILを書き換えてフックポイントを追加してしまえばいいじゃないかという発想で作られてます。まさにEmitにを超える黒魔術。 ドキュメントに書かれてる実装パターン。 int MyMethod(object arg0,

    PostSharp興味深い
    JHashimoto
    JHashimoto 2012/10/03
    "ドキュメントを見つつ、どんなことが出来るのかチラッとコード書いてみたんです。"
  • AOP(Seaser.NET)をC#でやってみる - 技術をかじる猫

    前回の続きで、今度はAOP(Aspect-Oriented Programming。アスペクト指向プログラミング)を試してみる。 とりあえず、dll コピーと、参照設定は前回のものと同様にしておく。 AOP アスペクト指向プログラミング どんなもんかといいますと、以下Wikipediaから >>オブジェクト指向ではうまく分離できない特徴(クラス間を横断 (cross-cutting) するような機能)を「アスペクト」とみなし、アスペクト記述言語をもちいて分離して記述することでプログラムに柔軟性をもたせようとする試み。<< なんだそうです。 ハイ、意味不明。そんなものよりコードで理解するほうがきっと早い。 今回、元になるコードは以下の通り。 namespace AOPSample { class Sample { private string _prefix; public Sample(s

    AOP(Seaser.NET)をC#でやってみる - 技術をかじる猫
  • .NETでアスペクト指向プログラミング(AOP):アーキテクト360

    .NETアプリケーションのアーキテクチャやフレームワーク、設計に役立つ情報を中心に紹介しています。また業務システムに役立ちそうなユーティリティやノウハウをサンプルコードつきで公開しています。言語はC#とVB.NETを扱っています。 ロギング、セキュリティ、トランザクションへの参加といった処理は、複数のクラスに横断的に作用するものである。アスペクト指向とは、これらの横断的に作用するものを分離してモジュール化しようという考え方。横断的に作用する側を共有してユーティリティとしてまとめ、呼び出して利用する従来のプログラミングとは正反対の方法である。 アスペクト指向を.NETで実現するには、属性クラスを使う。 次のサンプルコードは、時間帯によって利用を制限する属性を付加したメソッドである。 起動してボタン1を押すと、GetMessage1が呼び出される。GetMessage1メソッドは現在時刻を返す

    JHashimoto
    JHashimoto 2011/06/04
    "アスペクト指向を.NETで実現するには、属性クラスを使う。次のサンプルコードは、時間帯によって利用を制限する属性を付加したメソッドである。"
  • MSDN マガジン: Cutting Edge: アスペクト指向プログラミング、インターセプト、および Unity 2.0

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 アスペクト指向プログラミング、インターセプト、および Unity 2.0 Dino Esposito オブジェクト指向がプログラミングの主流パラダイムの 1 つであり、システムをコンポーネントに分解し、そのコンポーネントを通じてプロセスを表現することにかけては卓越していることに疑問の余地はありません。オブジェクト指向 (OO) パラダイムは、あるコンポーネントのビジネス固有の問題を処理する場合にも卓越しています。しかし、コンポーネント間の横断的問題の処理に関しては、OO パラダイムはそれほど効果的ではありません。一般に、横断的問題とは、あるシステムの複数のコンポーネントに影響を与える問題のことです。 複雑なビ

    MSDN マガジン: Cutting Edge: アスペクト指向プログラミング、インターセプト、および Unity 2.0
  • Microsoft Events

  • PostSharp 2.0のIDEサポートによりアスペクト指向プログラミングがより簡単に

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    PostSharp 2.0のIDEサポートによりアスペクト指向プログラミングがより簡単に
  • 1