タグ

patternに関するkiyo_hikoのブックマーク (65)

  • デザインパターン(Design Pattern)#Singleton - Qiita

    設計を意識したコードが書けるようになる為に、デザインパターン修行しました。 他のDesign Patternもちょくちょく出していきます。 前置き 増補改訂版Java言語で学ぶデザインパターン入門をJavaからPythonにしてます。(Pythonは3.4.2) githubにコード置いてあります(まだ動かないものもある) デザインパターンをどういう時に、何を、どう使うのかを理解することが一先ずの目標。 (Javaというか静的型付言語は初めてで、且つpython歴もそんなに長くないので、Pythonistaぽっくないところがあると思います。ご指摘ございましたらご教授ください。) まず、そもそもデザインパターンってどういうものかってとこから。 デザインパターンとは ソフトウェア開発におけるデザインパターン(型紙(かたがみ)または設計パターン、英: design pattern)とは、過去のソ

    デザインパターン(Design Pattern)#Singleton - Qiita
  • トップページ

    SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

  • RailsのTransactionの使い方 - Qiita

    なぜTransactionが必要なのか Transationの目的は、あるいコードブロックにあるSQL文の変更を、全部成功することを守るための存在である。Transactionにより、データの統一性を保ことができる。銀行などの受け入れと引き出しの処理には必要でしょう。二つの処理の中一つが失敗すると、コードブロークにあるSQL処理を全部ロールバックされるのが、Transactionの特徴である。 ActiveRecord::Base.transaction do david.withdrawal(100) mary.deposit(100) end Transationのロールバックが発火条件 Railsでは、ロールバックが発火するには、「例外」が必要である。これがTransactionを使うときのもっとも重要なことである。 例えば、Railsでは #update_attributeは例外を

    RailsのTransactionの使い方 - Qiita
    kiyo_hiko
    kiyo_hiko 2015/10/08
    "Railsではびっくりマーク!がついているメソッドは、失敗したら例外をスローすると意図するので、transactionを使うときは、saveではなくsave!、destroyではなくdestroy!を使うべきでしょう。"
  • Sinatra Pattern 20130415

    Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.Kuniharu(州晴) AKAHANE(赤羽根)

    Sinatra Pattern 20130415
  • RAII - Wikipedia

    RAII(Resource Acquisition Is Initialization)は、日語では「リソース取得は初期化である」「リソースの確保は初期化時に」「リソースの取得と初期化」などの意味を持ち、資源(リソース)の確保と解放を、クラス型の変数の初期化と破棄処理に結び付けるというプログラミングのテクニックである。特にC++とD言語で一般的であり、デストラクタをサポートしないC言語などに対する優位性や利便性のうちのひとつとなっている。 RAIIでは、資源の取得をクラス型変数の構築(初期化)時に、また返却を破壊時に行う。特にプログラムの制御フローが自動変数の属するブロックを抜けるとき、その変数のデストラクタが自動的に呼ばれるため、デストラクタを適切に記述したクラス型変数の寿命が終わるとすぐに資源が返却されることが保証できるようになる。これは例外が発生したときでも同様であるため、RAII

  • 6. Prototype パターン

    6.1 Prototype パターンとは 第6章では Prototype パターンを学びます。prototype という単語は、日語で「試作品」「原型」といった意味を持ちます。Prototype パターンは、あらかじめ用意しておいた「原型」からインスタンスを生成するようにするためのパターンです。 例えば、「直線を描く」機能しか持たない図形エディターを想像してみましょう。この図形エディターで星型を書きたいときには、直線を組み合わせることで、星の形を作成していくことになります。では、星型がいくつも欲しいときはどうすればよいでしょう?直線を組み合わせて星型を描くという作業を何度も繰り返す必要が出てきます。こんなとき、最初に作成した星型(直線の集まり)を「プロトタイプ」として登録しておき、これをコピーすることで星型が作成できれば、作業がとても楽になります。 Prototype パターンは、このよ

    kiyo_hiko
    kiyo_hiko 2014/10/05
    生成より複製のコストが低いときに使う感じ?
  • Prototype パターン - Wikipedia

    Prototype パターン(英: Prototype pattern、プロトタイプ・パターン)とは、ソフトウェア開発で用いられる、生成に関するデザインパターンの1つである。生成されるオブジェクトの種別がプロトタイプ(典型)的なインスタンスであるときに使用され、このプロトタイプを複製して新しいオブジェクトを生成する。 このパターンは Abstract Factory パターンでなされるように、クライアント・アプリケーションにおいてオブジェクトの生成者をサブクラスにすることを回避する 標準的な方法(例えば'new')で新しいオブジェクトを作ることによる固有のコストが所与のアプリケーションにとって高すぎる時にそれを回避する ために用いられる。 このパターンを実装するには、純粋仮想 (pure virtual method) の clone()メソッドを指定する抽象的(abstract)な基底ク

    Prototype パターン - Wikipedia
  • 金魚の糞アンチパターン(非同期処理の逐次化) - 発火後忘失

    GWTではサーバとのやりとりを全ていわゆるAjax Requestで行います。従って非同期処理がコード中に多くは入り込むことになります。

    金魚の糞アンチパターン(非同期処理の逐次化) - 発火後忘失
  • 書籍『APIデザインの極意』(3): 柴田 芳樹 (Yoshiki Shibata)

    APIデザインの極意 Java/NetBeansアーキテクト探究ノート 作者: Jaroslav Tulach出版社/メーカー: インプレスジャパン発売日: 2014/05/23メディア: 単行(ソフトカバー) 目次です。 日語版によせて 訳者まえがき 序章:なぜ新たなデザインが必要なのか 【第1部 理論と正当性】 第1章 現代的なソフトウェア構築の技芸 第2章 APIを作成する動機 第3章 優れたAPIを決定づけるもの 第4章 絶え間なく変わる標的 【第2部 実践的設計】 第5章 必要以上に公開しない 第6章 実装ではなく、インタフェースに対してコーディングする 第7章 モジュール方式アーキテクチャの使用 第8章 クライアント用とプロバイダ用のAPIを分離 第9章 テストの容易性に留意する 第10章 他のAPIとの協調 第11章 APIの実行時の側面 第12章 宣言型プログラミング

    書籍『APIデザインの極意』(3): 柴田 芳樹 (Yoshiki Shibata)
  • リファクタリング―プログラムの体質改善テクニック読んだ - 銀の人のメモ帳

    リファクタリング―プログラムの体質改善テクニック (Object Technology Series) 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行購入: 94人 クリック: 3,091回この商品を含むブログ (307件) を見る 残念ながらピアソン桐原から出版されていたので、現在は手に入りにくいんだけど、読んだ。 内容的には、リファクタリング手法のカタログみたいな感じだと思う。5章くらいまでは、導入とか、リファクタリングの心構えみたいな事が書いてある。 リファクタリングをするときに「いつすべきか?」というのが問題になると思うんだけど、このでは、機能を実装するときにその周辺をリファクタリングするといいと書いてあった。これは「動いてるものは触るな」っていう考

    リファクタリング―プログラムの体質改善テクニック読んだ - 銀の人のメモ帳
    kiyo_hiko
    kiyo_hiko 2014/03/14
    Strategyは教養ない人間でも早く覚えてくれないとメソッド内がifの嵐になってウザくなりそう。あれでOOの利点を実感したしパターンはやっぱ誰でもすぐ勉強したほうがいい気がする
  • Entity-Attribute-Value: SQL アンチパターン - ペンギンラボ Wiki

    Bill Karwin “SQL Antipatterns: Avoiding the Pitfalls of Database Programming” の読書メモ。 Jaywalking 目的 ある属性について、複数の値を持たせる。 アンチパターン : カンマ区切りリスト カンマ区切りで複数の値を 1 つの列に納める。 例では、特定の製品についての担当者を複数設定するのにカンマ区切りで、担当者のアカウントIDを記述している。 create table products ( product_id integer, product_name varchar(1000), acount_id varchar(100), -- comma separated list -- ... ); insert into products (product_id, product_name, accou

  • JavaでProducer-Consumerパターンを実践! - omiya6048's blog

    やりたいこと Javaでマルチスレッドな処理を各必要が出来た。 外部サーバーとやりとりするのだが、自サーバーから外部サーバーへの同時接続は15に限定されている。逆を言えば15までは同時接続できるわけだ。 ならば、15のスレッドを走らせて逐次処理を行っていくのが良い。 スレッドの数が15と決まっているのならば、プログラムの起動時に、スレッドを15作って、それを使いまわすのが最も良いだろう。いちいち、スレッドを作ったり破棄したりする手間が減るってものだ。 と、ここまで考えて、そんなデザインパターンなかったかなー。と思って、検索。 (デザインパターンなんてGoFデザインパターンですら、記憶が曖昧なので、毎回検索して調べてる。) マルチスレッドのデザインパターンは数あれど、今回の仕様に当てはまるのは、Producer-Consumerパターンかな。と思った。 Producer-Consu

    JavaでProducer-Consumerパターンを実践! - omiya6048's blog
  • Ruby Patterns - ✘╹◡╹✘

    この記事には、Rubyを書いているときに「これは言語化されたり公式化されたりしていないけれど基的には必ずこのパターンに則ってプログラムを書いているな」ということをふと思い出したときにやってきてそのパターンを書く。多分3パターンぐらいで終わると思う。ウケが良ければ思い出す確率が高くなると思う。題材さえあれば何も考えずに書けるので、これを書くコストは全然高くない。 名前が"?"で終わるメソッドは必ずtrueまたはfalseのどちらかを返す trueとfalse以外(例えばnil)が返る可能性がある場合は、必ず式の先頭に!!を付けてtrueかfalseになるようにしてる。 このパターンを守ることがとても大事だという風には全く考えていないけど、もしhas_user?がuserを返すとして、has_user?という名前のメソッドがUserオブジェクトを返すというのは一体どういう意味を持っているのだ

    Ruby Patterns - ✘╹◡╹✘
  • 実践! PageObjectパターンによる「Selenium2」テストケース改善チュートリアル

    シリーズは、WebブラウザをUIとして利用した業務システムやアプリケーション(以下、Webシステム、Webアプリケーション)のテストをテーマとして、Webブラウザを使ったテストを自動化するOSSのツール「Selenium2」を紹介します。業務システム開発の現場で適用してきたノウハウを元に、これまでSelenium2について知らなかった人から以前使った経験がある人まで、より実践的な「使える」内容を盛り込んでいきたいと思います。 1. はじめに これまでの連載で、Selenium2を利用することにより、ブラウザテストの作成、自動実行がとても簡単にできることをお分かりいただけたかと思います。 しかし、実際に導入してみるといくつかの問題点に気が付くことでしょう。もっとも代表的な問題は、画面仕様の変更によるテストコードの修正や、テストの失敗です。Selenium IDEが生成するテストコードは画面

  • てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!RubyRails ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita
  • Before After - Strategic Choice

    kiyo_hiko
    kiyo_hiko 2013/11/21
    パターンに従って書けばリソースリークを防げるという話 Template Methodと合せ // CLOSのメソッド結合で出てくるbefore/afterメソッド(CLOSはまだよくわかってない)に近いものなんだろか
  • dpinfo.html

    目次 はじめに 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

    kiyo_hiko
    kiyo_hiko 2013/10/25
    GoF以外のパターン Producer/Consumerなどがある
  • MVCモデルの問題点を解決するPMモデルとMVPモデル - GeekなNooblog

    MVCモデルについて - GeekなNooblog プログラマーが意識するべきUI設計指針 3つのMVCモデル - GeekなNooblog MVCモデルの問題点を解決するPMモデルとMVPモデル - GeekなNooblog MVCにおけるViewの表示方法 トランザクションスクリプト、ドメインモデル - GeekなNooblog 前回の続きです。 MVCモデルにはある問題が潜んでいると述べました。 問題点を述べる前に、MVCで作成されたコード例をを見てみましょう。 商品名、価格、在庫数が表示されており、購入を押すごとに在庫が減っていくという簡単なプログラムです。 今回はViewの振る舞いが重要になってくる話なので少しコードは長くなりますが、GUIで説明していきます。 MVCモデル(依存性を利用するMVC) コード行数を節約するためにObserverは自分で作成するのではなくJavaで用

    MVCモデルの問題点を解決するPMモデルとMVPモデル - GeekなNooblog
  • GUIの設計パターン - やさしいデスマーチ

    さて、NetBeansによるGUIの構築方法をある程度把握したので、今回はSwingアプリケーションの設計についてです。 今回作成するアプリケーションは次のようなインターフェイスを持ちます。動きとしては「Up」ボタンをクリックすればカウンターの数字が増加していくだけの単純なアプリケーションです。 これを実装するだけならば簡単かと思いますが、次の制約の元にアプリケーションを構築します。 ボタンは「ActionPanel」に作成し、カウンターは「CounterPanel」に作成して分割する さらに2つのパネルを「AppPanel」に配置した上で、「AppFrame」に配置する この制限は大きな無駄に思えると思います。しかし、アプリケーションがもっと複雑な構造をとっていると仮定してください。例えばEclipseやNetBeansは様々なビューを持ち、コマンドもメニューだけではなく右クリックからな

    GUIの設計パターン - やさしいデスマーチ
  • Amazon.co.jp: J2EEパターン―明暗を分ける設計の戦略: ディーパック・アラー, ジョン・クルーピ, ダン・マークス, ウルシステムズ株式会社, 明彦,中野, 佐野祐一郎, 宮田泰宏, 土屋総一郎: 本

    Amazon.co.jp: J2EEパターン―明暗を分ける設計の戦略: ディーパック・アラー, ジョン・クルーピ, ダン・マークス, ウルシステムズ株式会社, 明彦,中野, 佐野祐一郎, 宮田泰宏, 土屋総一郎: 本