タグ

2013年3月2日のブックマーク (9件)

  • ORM is an anti-pattern | Seldo.com

    I tweeted about ORM last week, and since then several people have asked me to clarify what I meant. I have actually previously written about ORM, but it was in the context of a larger discussion about SQL and I shouldn't have confused the two issues. So here I'm going to focus on ORM itself. I'm also going to try to be very brief, since it became very apparent from my SQL article that people tend

  • データベースの間違った使い方10項目

    一般的なシステムで広く利用されているリレーショナルデータベースですが、システムの進化と共にデータベースの構造も複雑になりがちです。RestMQの作者、Gleicon Moraes氏の公開したスライドがシステムが複雑化していく様子をわかりやすく説明した上で「アンチパターン」を提示していました。 それによるとデータベースのアンチパターンは以下の通り。 動的なテーブルの作成 テーブルをキャッシュとして使う テーブルをキューとして使う テーブルをログとして使う 分散したグローバルなロック ストアドプロシージャ 使われない項目 JOIN地獄 ORMによって繰り返されるクエリ 負荷のコントロール どれも理由があって採用されるデザインですが、確かに後に問題を引き起こした経験もあり耳が痛い感じですね。スライド内ではそれぞれの問題についての解決策としてMongoDBやRestMQなどの利用を進めています。「

    データベースの間違った使い方10項目
  • ORMがアンチパターンである11の理由

    サンフランシスコのプログラマLaurie Voss氏が書いた見逃せない記事が賑わっています。近年のフレームワークやライブラリの定番中の定番ORマッパーが既にアンチパターンなのではというのが彼の主張です。この記事を書くきっかけになったのはこのツイートだそうです。 I cannot overstate the degree to which ORM is a dangerous antipattern. — Laurie Voss (@seldo) June 9, 2011 ORM が危険なアンチパターンだっていうのはどれだけ言っても言い過ぎることはない このツイートに対して各方面(ActiveRecord, Doctrine, Hibernate)から多くの(激しい)返信が寄せられて書かれたのが問題のエントリです。まずはアンチパターンとは何かの定義として下記の2つを挙げています。 当初は有益

    ORMがアンチパターンである11の理由
  • いきあたりばったりのアーキテクチャと教訓

    スライドの作者であるGleicon Moraesは、これらの図を示した上で、リレーショナルデータベースはガムテープのようにつぎはぎで使えるような万能薬ではない。シャーディングや非正規化などは検討すべきよい選択肢であり、またリレーショナル以外のデータベースも選択肢としていれるとよいだろうと説いています。 そして次のような「リレーショナルデータベースの間違った使い方10項目」を示しているのです(訳は前述の記事「データベースの間違った使い方10項目」から)。 Dynamic table creation(動的なテーブルの作成) Table as cache(テーブルをキャッシュとして使う) Table as queue(テーブルをキューとして使う) Table as log file(テーブルをログとして使う) Distributed Global Locking(分散したグローバルなロック)

    いきあたりばったりのアーキテクチャと教訓
  • Architecture by Accident

    This document discusses how architecture emerges even when not initially planned. It begins with an overview of databases, message queues, and caching as common architectural elements that emerge over time. The document then provides examples of how simple applications and data needs can evolve into more complex architectures with multiple servers, databases, caching, and services. It emphasizes t

    Architecture by Accident
  • Visual Studioでビルド後にZIPアーカイブを手軽に作る - orangain flavor

    はじめに Visual Studioでのビルド後に、ちょっとバイナリをZIPで固めたいと思っても簡単にはできません。Visual Studioでのビルドに限らず、Windowsで作業を自動化しようとすると、Linuxならzipコマンド一発でできることが、簡単にできなくて困ることがよくあります。 ZIP.VBSのように頑張ればできないこともないのですが、自分で書く気にはなりません。ZIP.VBSはライセンスが不明瞭なので使いにくいですし、内部でサポート対象外のCopyHereメソッド*1を使っているので将来性が不安です。 そこに現れた救世主が.NET Framework 4.5です。.NET Framework 4.5からZIPファイルを簡単に扱えるようになりました*2。.NETでできることはPowerShellでもできるはずなので、試してみました。 この記事では、以下のサイトを参考にさせて

    Visual Studioでビルド後にZIPアーカイブを手軽に作る - orangain flavor
    mi_kattun
    mi_kattun 2013/03/02
    ブログ書いた
  • 「%」 (変数の使用) - DOS/コマンドプロンプト コマンド一覧

    [Windows NT 系] [バッチファイル] バッチファイルに指定された引数全体を用いる際に利用します(「%0」分は含まれません)。引数が2文字以上のスペースで区切られている場合も、スペースも含めてそのまま入ります。また、この変数はShiftの影響を受けません。 解説 環境変数は、現在のDOS環境(プロンプト含む)における一種の「設定」であり、プログラムによっては環境変数の値を読み込んで処理を行うものもあります(詳しくは「環境変数について」をご覧ください)。「%」文字を使うことで、この環境変数の値を使うことができます。 なお、現在の環境で定義されている環境変数の一覧を表示したり、環境変数の値を追加・変更・削除するときは、いずれの場合もSetコマンドを使用します。 % 文字の解釈 % で囲んだ文字列がコマンド及びバッチファイル内に存在すると、システム(コマンドインタープリター)はその文字

    「%」 (変数の使用) - DOS/コマンドプロンプト コマンド一覧
  • Zip a Folder with PowerShell 3 — viziblr

  • GitとJenkinsを使ってChefを運用する - GeekFactory

    Chefはリポジトリをバージョン管理する仕組みを持っていますが、チームでの協調作業を考えるとバージョン管理システムを使う方が運用しやすいと考えます。稿では、GitとJenkinsを使ってChefを運用するための1つのパターンを考えます。 以下があることを前提とします。 Chef Server Chef Client Gitリポジトリ Jenkins 基的な考え方 CookbookをGitリポジトリで管理します。開発者がgit pushすると同時にChef ServerのCookbookが更新されるようにします。これにより、GitリポジトリとChef Serverが同期されるようになります。 また、後続ジョブとして各サーバでChef Clientが実行されるようにします。ビルドパイプラインを組むことで、Staging EnvironmentにおけるChef Client、Producti

    GitとJenkinsを使ってChefを運用する - GeekFactory
    mi_kattun
    mi_kattun 2013/03/02
    Cookbookを完全にGitで管理するのであれば、サーバにgitやデプロイツールでCookbookをコピーしてchef-solo実行するほうがシンプルな気がするけどChef Serverを使うメリットは何なんだろう。一覧性かな