設計ナイト2020 を受けて、今どんなアーキテクチャを選ぶべきかという話をしたくなったのだ。 kichijojipm.connpass.com 設計ナイトで高ぶった結果1時間コースの発表資料が完成したので供養場所を探しています。聞いてくれ!!!— Takafumi ONAKA (@onk) 2020年11月1日 お前誰よ 2000年代前半に SI 2000年代後半にブログ、SNS 2010年代にソーシャルゲーム 2020年代に UGC サービス をやってきた人間。数百万〜数億行のデータ、月間数千万〜数十億 imp 程度を主戦場にしています。 今日の話 DDD と PofEAA から学ぶパターン/アンチパターン Rails によって発見された、密結合で速く走れるソフトウェア 今求められているアーキテクチャ 昂ぶって 15,000 字ぐらい書いてしまった。 DDD と PofEAA から学ぶパ
公開日 2018.8.6更新日 2018.8.5カテゴリ:DesignPatternsタグ:PHP,DesignPatterns
(video of these slides available here http://fsharpforfunandprofit.com/fppatterns/) In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID. The functional programming community has design patterns and principles as well. This talk will provide an overview of some of these, and present some dem
目次 はじめに Abstract Classパターン Abstract ClassパターンRuby版 (by 助田雅紀さん) Balkingパターン Before/Afterパターン Futureパターン FutureパターンRuby版 (by 助田雅紀さん) Generation Gapパターン Hook Operationパターン Hook OperationパターンRuby版 (by 助田雅紀さん) Immutableパターン Marker Interfaceパターン Monostateパターン MonostateパターンRuby版 (by 助田雅紀さん) MonostateパターンPerl版 (by 宮川さん) Null Objectパターン Null ObjectパターンとSingletonパターン Producer-Consumerパターン Sharableパターン Singl
Erich Gamma, Richard Helm, and Ralph Johnson talk to Larry O'Brien about Design Patterns, 15 years later. Larry O'Brien: 85,000 apps for the iPhone have been developed and deployed in the past year-and-change. One can write a globally-accessible "Hello, World! The time is X" Web page in just one line of PHP, for instance. "Designing object-oriented software is hard," are the first words of Design
DesignPatternsPHP This is a collection of known design patterns and some sample code how to implement them in PHP. Every pattern has a small list of examples. I think the problem with patterns is that often people do know them but don’t know when to apply which. Patterns The patterns can be structured in roughly three different categories. Please click on the title of every pattern’s page for a
よく見かけるRepositoryパターンのアンチパターンの紹介と対策です。 Repositoryパターンとは Repositoryパターンとは永続化を隠蔽するためのデザインパターンで、DAO(DataAccessObject)パターンに似ていますが、より高い抽象度でエンティティの操作から永続化ストレージを完全に隠蔽します。 例えばDBコネクションやストレージのパス等はReposiotoryのインターフェースからは隠蔽され、Repositoryのユーザは永続化ストレージが何であるか(例えばMySQLやRedis等)を意識することなく保存や検索の操作を行うことができるようになります。 これによりRepositoryを利用するロジックは業務的な操作に集中できるようになる他、データベースの移行等の永続化層の変更が発生した際にロジックへの影響を切り離すことができるようになります。 // 例) ユーザ
Design Patterns In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Uses of Design Patterns Design patterns can speed up the developme
Swiftのお勉強ということでイベントリスナー的なクラスを書いてみました。 - generic - protocol - closure - operator overloading あたりを試した感じです。 リスナークラス まずイベント通知を受け取るリスナークラス // イベントの通知を受け取る class EventListener <EventArgType>{ typealias EventMethod = (sender: AnyObject!, args: EventArgType!) -> () typealias IdType = UInt64 let invoke: EventMethod! internal var id: IdType? // 登録状況やリスナーを識別するための情報 nilなら未登録 init( callback: EventMethod! ){ se
DesignPatternsPHP This is a collection of known design patterns and some sample code how to implement them in PHP. Every pattern has a small list of examples. I think the problem with patterns is that often people do know them but don’t know when to apply which. Patterns The patterns can be structured in roughly three different categories. Please click on the title of every pattern’s page for a
CodeIgniter3でのClockWrapperの簡易実装と、それに見るCI_Loaderクラスの可能性と限界(その1) PHPでdate()関数を素朴に使うと日付またぎや秒単位のずれに悩まされることがあります。バッチ処理でデータベースのupdate_atがずれたり、たまたま23時59分58秒に実行開始して0時0分2秒で終わる、などの時です。 date()はデフォルトでその実行タイミングでの時刻を使用するので、2回以上実行するとき、その値が同じとは限らないのです。 その克服方法としてはextensionを書いてしまうというのが根本解決ですが、いかんせん導入のハードルが高すぎます。ここはライトな方法としてClockWrapperを使う方法を考えてみます。 ClockWrapperとはClockWrapperはマーチン・ファウラーのサイトにちょろっとだけ言及されているもので、xUnitテス
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く