Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...
Real-time Edge-aware Image Processing with the Bilateral GridMLReview
この記事では、ソフトウェアパターンの中でも、特に Gamma らの著書「デザインパターン」に絞って入門者および中級者向けの解説を行う。 Java プログラミングの経験はあるがデザインパターンはよく知らない、 あるいは、 よく知っているが、実際の開発で活用するにはどうしたらよいか悩んでいる という読者を対象としている。 まず、なぜデザインパターンが重要かということを述べた後、 書籍「デザインパターン」の読み方を解説する。 さらに、パターンの持つ特質である生成性を述べ、 最後に、実際に動作する Java アプリケーションをデザインパターンを利用しながら開発する例を説明する。 「デザインパターン」は Gamma らの著書によってソフトウェア設計における良質なデザインテンプレート集として広く認知されているが,実際の開発現場では,どの程度普及したであろうか.もし読者が java プログラマであり,ま
はてなのPHP keywordを付けているところを眺めていたら、僕と同じようにデザインパターンを実践している人がいた。参考にしよう ref - ルーで一気にクマー デザパタについては以前「デザパタ本には載らないデザパタ」にも書いたことあったけど、GoFとかJ2EEとかPofEAA(これはちょっと大きいか)で色んなパターンが転がってるけど、実際にやっていることは、「同じような実装を2度も書きたくない」から、書きやすく整理する手法をパターンっていってるんだなーと思う。 んで、ここはid:shimookaが上手いことまとめてくれていて、突き詰めれば勝手にデザパタされるんじゃないかと。 (中略) 僕なんかは、もともとjavaで一定のプログラミング設計(?)とかインタフェースについて見てきた(Seasar含めて)からinterfaceみたいなものが大好きなんだけど、んなもんいらん!実装クラスだけで
はてブコメントにて、「シリーズ化して欲しい」とあったので、もう少し書いてみます。 今回紹介するパターンは、Controllerパターン。 たぶん、デザパタ(GoFとかのヤツ)ではControllerパターンなんてものは存在しないのですが、よく見掛けるパターンなので紹介します。 よくあるControllerパターンは、FrontControllerパターンを使ったデータ遷移パターンですが、今回僕が紹介するパターンはCommandController(これもGoFとかのパターンにたぶん無いので勝手に命名)です。 何か実行したいCommandについて、Controllerが適切に実装を振り分けその後のActionを実行するためのパターンです。 よくある実装 例えば、以下にCommandインタフェースを実装した複数のクラスがあり、そのCommandによって、実行するActionを振り分けるCo
ITT-WEB - XOOPSCubeにおけるDelegateとは何か?というエントリが上がっているので、ちょっとだけDelegateについて触れてみたいです。 Delegateとは、そのままの意味で「委譲」を示します。(集約ではないです) とある処理をそれまで行っていたクラスから、ちがうクラスに対して処理を行ってもらうようにします。 Delegateと書くとちょっと堅苦しいですが、proxyやTemplate Methodに近い存在です。 Delegateは慣れてくると色々なパターンに適用しやすい便利なパターンなので、是非身に着けたいものです。 以下にファイルのデータを書き込む処理の例を示します。 class DataWriter { public function write(Data $data){ $file = new File($data->getPath()); if(
ソフトウェア開発におけるアンチパターン (英: anti-pattern) とは、必ず否定的な結果に導く、しかも一般的に良く見られる開発方式を記述する文献形式を言う[1]。その内容は、基本的には、否定的な開発方式の一般的な形、主原因、症状、重症化した時の結果、そしてその対策の記述からなる[2]。 デザインパターンを補完・拡張する関係にあるもので、多くの開発者が繰り返すソフトウェア開発の錯誤を明確に定義することにより、開発や導入を阻害する一般的で再発性の高い障害要因の検知と克服を支援することが目的である[3][4]。 概要[編集] ある問題に対する、不適切な解決策を分類したものをアンチパターンと言う[5][6]。 アンチパターンという呼び方は、アンドリュー・ケーニッヒ(英語版)が1995年に作り出したもので[7]、後に書籍The patterns handbook[8]で再掲された。 ギャン
This document discusses various techniques for optimizing MySQL queries, including queries for exclusion joins, random selection, and greatest per group. For a query seeking movies without directors, solutions using NOT EXISTS, NOT IN, and outer joins are examined. The outer join solution performed best by taking advantage of a "not exists" optimization. For random selection of a movie, an initial
There have been many different ways to organize the code for a rich client system. Here I discuss a selection of those that I feel have been the most influential and introduce how they relate to the patterns. 18 July 2006 This is part of the Further Enterprise Application Architecture development writing that I was doing in the mid 2000’s. Sadly too many other things have claimed my attention sinc
PHPによるデザインパターン入門 秀和システムから発売となった「PHPによるデザインパターン入門」(ISBN4-7980-1516-4・ 2006/11/23発売)を執筆しました(共著です)。 「PHPを使ってGoFパターンを見ていこう」的な書籍になっています。GoFパターンについては、それぞれパターンの説明とサンプルコードという構成です。サンプルコードは、CentOS4.4/Windows XP(SP2)+PHP5.1.x/5.2.0で動作確認しています。 目次は以下の通りです。 1章 デザインパターンの世界へようこそ デザインパターンって何? デザインパターンとは? オブジェクト指向 GoFパターン デザインパターンのメリット・デメリット デザインパターンを使うメリット デザインパターンを使うデメリット PHPとオブジェクト指向 PHPとは? PHP5でのオブジェクト指向開発 2章
html5-developers-jpで「GoFデザインパターンのJavascript版があったら様相がかわるかも?」という話が出ました。 デザインパターンが拡張性を確保する手段の一つがメソッドの書き換えなのですが、Javavscriptの場合、通常の継承とは違う特有のメソッドのオーバーライト方法があります。 var sample_class=function(){}; sample_class.prototype.exec=function(){ this.do_a(); this.do_b(); }; sample_class.prototype.do_a=function(){ alert("a"); }; sample_class.prototype.do_b=function(){ alert("b"); }; var sample=new sample_class(); sam
jQuery のプラグインの定義手法については、いろいろな記述の仕方が考えられるかと思います。今回、実際に公開されているソースを参照して、どのような定義パターンがあるのかを調べてみました。 jQuery 標準 API の定義構造のおさらい まず、jQuery が標準で提供している各種 API が、どうのような構造で定義されてるかおさらいしてみます。 $ や jQuery はグローバル変数、つまり window オブジェクトのプロパティ名であり、その実体は関数オブジェクトです。 window.$ = window.jQuery = function(){ ... } jQuery が提供する API には 関数 API と メソッド API があり、関数 API は jQuery 関数オブジェクト(以降 jQuery セレクタと記述します)が持つ、関数オブジェクトのことを指します。 jQue
最近、増井君と私でアーキテクチャの話をすることが多いのだが、そんなディスカッションの中で気に入っているのは左の図のようなアーキテクチャ。 もちろん、核となるのはビジネスロジックを含んだModelの部分。そこをしっかりと実装し、内部構造を隠す粒度の荒いインターフェイスを定義し、外から何をされてもデータの整合性が壊れない様にすることは何よりも大切。 そして、そのModel層へのインターフェイスを特定の言語に依存したクラスやAPIではなく、HTTP上でJSON(XMLでもかまわない)をやりとりするだけの RESTfulなWeb Serviceにすることがミソ。こうすることによりにより、どんなに締め切りに負われようが、誰がControllerを実装しようが「ずるができない」ように作っておく(ずる=本来使うべき外部インターフェイスだけでなく、Model内部に直接アクセスして依存関係を作ってしまう事)
スライド1: BPStudy 第7回 2008年3月28日ドメインロジックの実装方法とドメイン駆動設計Ouobpo佐藤 匡剛http://ameblo.jp/ouobpo スライド2: もくじ・ 第Ⅰ部 ドメインロジックの実装方法・ 第Ⅱ部 ドメイン駆動設計の紹介2008/03/28 BPStudy 第7回 2 スライド3: 第Ⅰ部ドメインロジックの実装方法2008/03/28 BPStudy 第7回 3 スライド4: 3層アーキテクチャ・ エンタープライズアプリの典型的アーキテクチャプレゼンテーション層 ドメイン層 インテグレーション層アクションアクションアクションWebアプリFWサービスレイヤーPOJOPOJOPOJO POJOルールエンジンワークフローエンジンDI/IoCコンテナDAODAOインテグレーションゲートウェイデータアクセスFWシステム間統合MWFW ・・・ フレーム
DDD難民に捧げる Domain-Driven Designのエッセンス 第1回 ドメイン駆動設計とは 株式会社オージス総研 アドバンストモデリングソリューション部 佐藤 匡剛 Domain-Driven Design Tackling Complexity in the Heart of Software Eric Evans 著 Addison-Wesley, 59.99ドル 560ページ ISBN: 0-321-12521-5 「ドメインモデリング」は、アプリケーション開発において最も重要な部分だとされています。しかしその割には、フレームワークの使い方やアーキテクチャの設計方法など技術に関する解説書はたくさんあるものの、ドメインモデリングそのものを扱った書籍はほとんど無かったと言ってもいいでしょう。Eric Evansの『Domain-Driven Design』(以降DDD)は、「
このネタは、私自身も何度も書いてきたけど、結局意味のある結論になったためしがありませんが、再度考え直してみたいと思います。 「ドメインモデル」と「トランザクションスクリプト」をすごく簡単に説明すると、トランザクションスクリプトとは「アクションより起動される一連の手続き」、ドメインモデルとは「ドメイン内の名詞によって体系化されたモデル」です。 トランザクションスクリプト派は、「トランザクションスクリプトの方が書くのが簡単だし、業務アプリケーションにオブジェクト指向は、ほとんど必要ない」といいます。 それに対し、ドメインモデル派は、「ドメインモデルはオブジェクト指向を生かすことができるのでメンテナンス性が良い」と主張します。 ずっと平行線のままですね。 私は一番最初に「ユースケースと一対一にサービスクラスを設け、ビジネスロジックはサービスクラスに記述する」という主張をしてました。 記念すべき(
@@ -40,4 +40,5 @@ ! コメント *2008-12-26 (金) 12:24:15 mlxryspg : uQsEDSAplhBDDNX +*2009-01-20 (火) 19:11:12 gfboqrhv : MFgeXDXXKqzCW {{comment}}
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く