タグ

デザインパターンに関するreponのブックマーク (11)

  • MVVMのModelにまつわる誤解 - the sea of fertility

    こちらに移転してきて初めての記事です。 最近たまに話題になるので書いておきます。MVVMのModelについて誤解されやすい部分のお話です。最近よく議論してるasync/awaitの話とは関係がありません。なおこの話は以下のスライドを理解している事が前提となります。 共有したい理解(ゴール) ViewModelはModelの影 ModelについてViewModelが行うことは、イベントに対する反応と戻り値のないメソッドの呼び出ししかない事 これについての理解を共有できるよう説明していきます。 VIewModelはModelの影 スライドにもしつこく書きましたが、MV○(MVVMやMVC/MVP)のModelは大変分厚くなるし、アプリケーション間で使いまわすことなんてできません。ModelはUIを意識しない??いや、何度も言っていますが、意識はする必要があるんです。ただUI実装の知識が必要ない

    MVVMのModelにまつわる誤解 - the sea of fertility
  • JavaScriptデザインパターン – 第1部:シングルトン、コンポジット、ファサード | Adobe Developer Connection

    Basic JavaScript programming knowledge. Additional required other products (third-party/labs/open source) Query Library Download / Learn この記事は、JavaScriptでよく使用されるデザインパターンに関するシリーズ記事の第1部です。デザインパターンはプログラミングにおける実証済みの手法であり、特に、大規模なJavaScriptアプリケーションを大きなグループで作成する場合に不可欠なコードの保守性、スケーラビリティ、分離性を向上させます。 このシリーズ記事の第2部では、さらに、アダプター、デコレーター、ファクトリという3つのデザインパターンを紹介します。第3部では、さらに、プロキシ、オブザーバー、コマンドという3つのデザインパターンを紹介します。 シング

  • GoFのデザインパターンの自作サンプルまとめ(主にRubyで実装。一部Java) - Tbpgr Blog

    概要 GoFのデザインパターンに関して取り扱った記事のまとめ 生成のパターン AbstractFactory | 詳細を意識せず抽象的にインスタンス生成を行う Builder | 複雑なインスタンス生成手順をクラス化する FactoryMethod | インスタンスの作成を独立させる Prototype | コピーしてインスタンスを作る Singleton | インスタンスが一つであることを保証する 構造のパターン Adapter | AとBのインターフェースのアダプターを作る Bridge | 機能の拡張と実装の拡張を分割する Composite | 容器と中身の同一視 Decorator | 飾りと中身の同一視 Facade | シンプルな窓口 Flyweight | 同じ物を共有して処理を軽量化する Proxy | 必要になってから作る Proxy | 必要になってから作る(Forw

    GoFのデザインパターンの自作サンプルまとめ(主にRubyで実装。一部Java) - Tbpgr Blog
  • JavaScriptデザインパターン – 第3部:プロキシ、オブザーバー、コマンド | Adobe Developer Connection

    「プロキシ」の語義は「代理」であり、この語義自体がプロキシパターンの役目を十分に説明しています。さて、一体何の代理をするのでしょうか。また、なぜオリジナルを使用しないのでしょうか。 プロキシを必要とする理由 基的には、他のオブジェクトの代理をするオブジェクトを作成することになります。以下のような理由により、プロキシオブジェクトの作成が必要となります。 当に必要になるまで、大きなオブジェクトのインスタンス化を遅らせるリモートのオリジナルオブジェクトにアクセスを提供するオリジナルオブジェクトに対するアクセスを制御する 仮想プロキシ 仮想プロキシは、上のリストの最初のケースに相当し、大きなオブジェクトのインスタンス化を遅らせます。仮に、コード内に巨大なオブジェクトがあるとします。ここでの巨大オブジェクトとは、長く複雑なロジックを持つ機能を多数備えたオブジェクトか、あるいは膨大なデータを持つオ

  • Ruby 2.0.0で学ぶ、14個のデザインパターンを作りました[GoF][Design Pattern] - 酒と泪とRubyとRailsと

    GoFのデザインパターンとは、「プログラミングのベストプラクティスを体系化したもの」です。このベスト・プラクティスをしっかりと理解して設計すれば、ソフトウェア設計の効率を高めることができます。またデザインパターンが「プログラミングの思想」の共有をよりスムーズにしてくれます。先人たちの試行錯誤の結果を効果的に利用して、プログラミングをもっと楽しんでしまいましょう! 🗻 デザインパターンのポイントGoFのデザインパターンには下のプリンシパルがあります。 変わるものを変わらないものから分離する インタフェースに対してプログラミングし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(You Ain’t Gonna Need It./YAGNI) 🤔 デザインパターン一覧 アブストラクトファクトリ ビルダ ファクトリメソッド シングルトンパターン アダプタ コンポジッ

    Ruby 2.0.0で学ぶ、14個のデザインパターンを作りました[GoF][Design Pattern] - 酒と泪とRubyとRailsと
  • RubyでObserverデザインパターン - u16suzuの blog

    なんか、FFの調子が悪い。。 今日は、RubyObserverデザインパターンを試してみました。エラーログ出力に使えそう。 require 'observer' #被観察者 class AObservable include Observable end #観察者 class AObserver def update(str) p str end end #オブジェクト作成 obj = AObservable.new observer = AObserver.new #観察者に被観察者を登録 obj.add_observer(observer) #被観察者のフラグをかえる obj.changed #notify_observersで観察者のupdateメソッド実行。 #notify_observersの引数がupdateに渡される。 obj.notify_observers("hello

    RubyでObserverデザインパターン - u16suzuの blog
  • 【翻訳】EventMachine入門

    dan sinclairさんのEventMachineの入門記事(PDF)を翻訳しました。 原文はここからダウンロード可能です: http://everburning.com/news/eventmachine-introductions/ (翻訳の公開と画像の利用は人より許諾済みです) 翻訳・内容の間違い等があればブログコメントやTwitterなどで遠慮無くご指摘ください。 EventMachine入門 Introduction うん、これから何を学ぶことになるのか、この導入のくだりがスタート地点として役に立つと思う。EventMachine とは何だろう。そしてそれは私たちのために何をしてくれるのだろう。さて、最初の部分は簡単だね。EventMachine は Reactor パターン(*1)の高性能な実装さ。 すげえ、いや、ちょっと待て、Reactor パターンって何だ? Wiki

    【翻訳】EventMachine入門
  • まつもと直伝 プログラミングのオキテ 第9回

    ソフトウエア設計に登場するパターンをまとめた「デザイン・パターン」について学びましょう。デザイン・パターンを使いこなせれば,複雑なプログラムを効率よく設計できます。今回は,既にあるものを使いまわすPrototype,抽象的にアルゴリズムを記述できるTemplate Method,強い依存性を断ち切るObserverの各パターンを紹介します。 前回は「デザイン・パターンとは何か」を学びました。設計上繰り返し登場する形をデザイン・パターンと呼びます。ごく簡単な例としてはforループがあります。はっきりと分類されたものとしては書籍『オブジェクト指向における再利用のためのデザインパターン』(ソフトバンク パブリッシング)が参考になります。 前回に取り上げたSingleton,Proxy,Iteratorの各パターンに続いて,今回は別のデザイン・パターンを考えてみましょう。Prototype,Tem

    まつもと直伝 プログラミングのオキテ 第9回
  • AWS-CloudDesignPattern CDP2.0候補

    AWSクラウドデザインパターンとは? AWSクラウドデザインパターン (AWS Cloud Design Pattern, 略してCDPと呼ぶ)とは、AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生する、典型的な問題とそれに対する解決策・設計方法を、分かりやすく分類して、ノウハウとして利用できるように整理したものである。 これまで多くのクラウドアーキテクト達が発見してきた、もしくは編み出しきた設計・運用のノウハウのうち、クラウド上で利用が可能なものをクラウドデザインのパターンという形式で一覧化し、暗黙知から形式知に変換したものであるといえる。 パターンの中には、クラウドでなくても実現できるもの、今まででも実現されていたものも含まれているが、クラウド上でも今まで通りのアーキテクチャが実現でき、かつクラウドを利用する事で、より安価にそしてより容易に実現できるものは、CDPとして収

  • サバクラ両方で動く JavaScript の大規模開発を行うために

    サバクラ両方で動く JavaScript の大規模開発を行うために 原文:Scaling Isomorphic Javascript Code (This is just for study, please contact me at tily05 atmark gmail.com if any problem.) 考えてみれば Model-View-Controller とか MVC ってよく聞くよね。実際どんなものか知ってる? 抽象的に言うなら「オブジェクト情報の保持されるグラフィック・システム (つまり、ラスターではないグラフィック。ゲームとか) 上に構築された、表示系を中心としたアプリケーションにおいて、主要な機能どうしの関わりをうまく分離すること」とでも言おうか。もう少し深く考えを押し進めてみれば、これは当然、他のさまざまなアプリケーションにもあてはまる言葉 (bucket te

    サバクラ両方で動く JavaScript の大規模開発を行うために
  • Active Record - Wikipedia

    「アクティブレコード、アクティブ・レコード」はこの項目へ転送されています。イギリスのレコードレーベルについては「ミュージック・フォー・ネイションズ」をご覧ください。 Active Record(アクティブ・レコード)とは、プログラミングにおいて、企業アプリケーションで頻繁に認められるデザインパターンである。 概要[編集] Active Recordはデータベースからデータを読み出すためのアプローチである。データベーステーブルあるいはビューの1行が1つのクラスにラップされ、オブジェクトのインスタンスがそのデータベースの1つの行に結合される。このクラスはデータベースアクセスのカプセル化も行う[1]。オブジェクトの生成後は、保存メソッドで新しい行がデータベースに追加される。 オブジェクトが更新されると、データベースの対応する行もまた更新される。ラッパークラスはテーブルあるいはビューの各カラムに対

  • 1