タグ

ブックマーク / codezine.jp (14)

  • MySQLのシステムアーキテクチャ:CodeZine

    SQLを使う業務では分析関数を使いこなすと、生産性とSQLの可読性とパフォーマンスを、大きく向上させることができます。分析関数を使う際の考え方と、処理のイメージを解説します。今回は総集編として、前編、中編、後編、完結編に関連した内容を扱います。

  • CodeZine:DeNAの人気サイトに学ぶ LAMPによるWeb-DBシステム構築/運用の極意(前編)(モバオク, モバゲー)

    シングルマスタの非同期レプリケーション機能では、マスタサーバーが1台に限定され、マスタからスレーブへの複製は非同期で行なわれるため遅延が生じ、短時間のスケールで見ると全スレーブとの同期が保証されない。しかし、その反面スレーブの台数を増加させていってもマスタサーバーの更新負荷は大きくならず、スケーラビリティを維持できるという利点がある。DeNAによる運用実績でも、マスタとスレーブ間の遅延は通常数秒程度以内に収まる。 このレプリケーションを利用する場合、アプリケーション側ではデータ更新時にはマスタサーバーへ接続し、データ参照のみを行なう場合はスレーブサーバーへ接続するように作成する必要がある。 Webや携帯電話向けサービスの場合、小さな規模で始めてユーザー規模、データ規模、ページビュー数を徐々に増加させていくことが多い。小さな規模のためDBの負荷分散が不要な場合でも、マスタサーバー1台、スレー

    bakock
    bakock 2007/08/02
  • PSP入門 新しいプロジェクトを見積もるための10のステップ 第1回:CodeZine

    はじめに 突然ですが皆さんは、自分がどれくらいのサイズのプログラムを、どれほどの生産性でコーディングできるのか、はっきりと上司の方に話せるでしょうか。例えばあなたは、10KLOC(K Lines of code)のソースコードを何時間かけて書きますか。1週間でどれくらいの規模のプログラムをコーディングできるでしょうか。 今、こう思ったかもしれません。 「新規性やプロジェクト特性によって、プロジェクトの生産性は大幅に変動します」  しかし、新規性がまったくないプロジェクトは、ほぼありません。その「新規性」「プロジェクト特性」をどこまで正確に数量化し、見積もりに反映できているでしょうか。とどのつまり、こういうことになっていませんか? 「自分の経験に理由をつけて、えいっと出す!」  …なんて勇敢な。勇敢な方は嫌いではない、むしろちょっと好き、ですが。 もとい。私は今、アメリカ合衆国にあるSEI(

    bakock
    bakock 2007/08/01
  • 相関サブクエリで行と行を比較する:CodeZine

    はじめに SQLでは、同じ行内の列同士を比較することは簡単にできます。普通にWHERE句に「col_1 = col_2」のように書けばよいだけですから。一方、異なる行の間で列同士を比較することは、それほど簡単ではありません。ですがそれは、SQLで行間比較ができないということではありません。手続き型言語とはかなり異なる発想に基づいていますが、SQLでもそうした処理を記述することが可能です。 SQLで行間比較をする際に威力を発揮するのが相関サブクエリ、特に自己結合と組み合わせた「自己相関サブクエリ」です。稿では、この技術を使った行間比較の応用方法を、具体例を通して解説します。稼働環境OracleSQL ServerDB2PostgreSQLMySQL(バージョン4.1以上) 対象読者 相関サブクエリの基的な使い方を知っている方。CASE式、自己結合、スカラ・サブクエリについての知識があると

    bakock
    bakock 2007/02/10
  • JavaScriptの関数とメソッド:CodeZine

    はじめに JavaScriptはオブジェクト指向言語です。しかし利便性のために、C言語などと同じようにグローバルな関数を定義し、構造化的な手法でプログラミングすることも可能です。 この記事では、JavaScriptにおける関数の基的な性質を見ていくと共に、関数の正体、および関数の使用方法について解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(JScript、ActionScript)でも通じる内容になっています。 対象読者 プログラミングの基的な知識、ならびにオブジェクトやメソッドと言った基礎的な概念については、ここでは解説しません。最低限、オブジェクト指向プログラミングについて理解をしている人を対象としています。

    bakock
    bakock 2005/12/02
  • CodeZine:JavaScriptにおけるオブジェクトの基本的性質

    はじめに JavaScriptはオブジェクト指向言語です。従って、そのプログラミングは、オブジェクトの生成やプロパティの参照、メソッドの実行などを組み合わせる作業と言えます。つまり、オブジェクトを上手く扱うことができなければ、JavaScriptの良いコードは書けません。また、JavaScriptにおけるオブジェクトの考え方は、JavaC++とは根的に違っています。 そこで、この記事では、JavaScriptにおけるオブジェクトの基的な性質について見ていくと共に、JavaC++といった他のオブジェクト指向言語との違い、JavaScriptにおけるオブジェクトの扱い方などを解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(

    bakock
    bakock 2005/12/02
  • CodeZine:楽々ERDレッスン 第2回:「図書館の予約申込書」編

    はじめに おかげさまで、前回の記事は多くの方々からご好評をいただけたようでほっとしております。あちこちのブログなどを拝見していますと、記事をきっかけにして身近な例でERDを書いてみた方も見受けられます。今回も身近な題材でデータベース設計というものを考えていきたいと思います。 合言葉は、「量は質に転化する」。では、今回も張り切って行きましょう。 対象読者 データベース設計の初心者~中級者。 必要な環境 以下のいずれかのRDBMS。 PostgreSQL 8.0以上 MySQL 4.0以上 HSQLDB 1.7.2以上 MaxDB 7.5以上 Oracle 10g以上 SQL Server 2000以上 題材 今回の題材は、近所の図書館にあった書籍の予約用紙(図1)です。子供たちとを借りに行った際にカウンターに置いてあったので早速利用することにしました。では、デー

    bakock
    bakock 2005/10/04
  • ServerSocketを利用した簡易HTTPサーバーの自作:CodeZine

    はじめに 今回から数回に渡ってJavaを利用した簡単なHTTPサーバーの作り方を解説します。第1回目に当たる記事では、java.net.ServerSocketの使い方について説明します。 対象読者 記事は、Javaプログラミングの初級者から中級者を対象に、ネットワークプログラミングの基礎を解説します。また、記事の読者は、ソケットプログラミングの基礎的な用語(ソケット、ポート、アドレスなど)についての知識を持っていることを前提しています。 必要な環境 記事のソースをビルド/実行するには、J2SE 1.4 以上を利用してください。ソースファイルアーカイブは、直接NetBeans 4.1のプロジェクトとして開けるように構成してありますが、NetBeans 4.1を利用しなくてもコマンドラインからJDKおよびAntを利用してビルドできるようになっています。 なお、ソースファイ

    bakock
    bakock 2005/09/30
  • 簡単に拡張できる軽量なモニタリングフレームワークの構築:CodeZine

    FindBugsを使うと、Javaの危険なバグを特定し、修正することができます。そのユニークな機能は、Javaの世界に数ある静的分析ツールのなかでも異彩を放っています。FindBugsのどこがどう特別なのか、この記事で解き明かすことにします。

    bakock
    bakock 2005/09/12
  • ブラウザによるイベントの取り扱いの違いを吸収する:CodeZine

    はじめに JavaScriptは、来スクリプトコードを一つ書けば、JavaScriptに対応したブラウザであれば、どのブラウザでも同じように動くはずです。しかし、現実にはそう簡単に行かず、あるブラウザではスクリプトが動くのに、別のブラウザではうまく動かない、といった事態がよく発生します。 これは、ブラウザのバージョンによって、サポートしているJavaScriptのバージョンに違いがあったり、たとえ同じバージョンのJavaScriptをサポートしていても、ブラウザごとにJavaScriptの実装に微妙な違いがあったりするためです。 このような、ブラウザの種類やバージョン、各々のブラウザ独自の実装の違いを考慮して、同じように動作するスクリプトを、クロスブラウザスクリプトと言います。クロスブラウザスクリプトを作るのには、ちょっとしたテクニックが必要となります。しかし、いったんテクニックを

  • 楽々ERDレッスン 第1回:「お持ち帰りご注文用紙」編:CodeZine

    はじめに システム構築においてデータベース設計は不可欠です。そこで多くの方がデータベースの設計技法について書籍で学んだりするのですが、なかなか身についたと感じられないことも多いのではないかと感じます。 その理由は、実務で任せられる機会というのが少ないからというのが大きなものとして挙げられます。データベース設計というのは、やはり重要な箇所ですから自然と経験のある人に任せられることが多いのが実態です。しかもデータベース設計を担当するのはプロジェクト全体の中でもごく少数だけになりますから、なかなかチャンスが巡ってきません。 しかし、それを嘆いているばかりではスキルが身につかないのも道理です。そこで身近にあるものを何でも手当たり次第にデータベース設計のネタにしてしまうことで、コツコツと地力をつけていこうというのがこのシリーズの主旨です。 合言葉は、「表組みを見たらERDを描け!」 。では、

    bakock
    bakock 2005/08/29
  • Oracle JDBCドライバにオブジェクトの自動クローズ処理を追加する:CodeZine

    はじめに ReflectionパッケージのProxyを利用すると、指定したインターフェイスに対して、そのインターフェイスを実装したクラスとインスタンスを動的に作ることができます。 稿では、Oracle JDBCドライバの制約をProxyを利用して回避する方法を示すことで、Proxyの具体的な利用方法を説明します。 Oracle JDBCドライバはJ2SEのAPI規定と異なり、GCによるConnectionやStatementの自動クローズを行いません。そのため、これらのJDBCオブジェクトを自動的にクローズする他のJDBC実装用のコードを流用するとリソースリークの原因となります。これを回避するには、アプリケーションがすべてのStatementなどのオブジェクトをクローズするか、またはミドルウェアなどでアプリケーションが作成したすべてのJDBCオブジェクトを保持しておき、なんらかのタ

    bakock
    bakock 2005/08/26
  • OpenOffice.orgとJooReportsを利用してJavaからPDFを出力する:CodeZine

    はじめに Webシステムにおいては帳票はPDFで出力することが一般的となっています。しかし帳票のデザインから出力の設定には各帳票ベンダーそれぞれのやり方があり、また高価なツールを購入せねばなりません。 今回ご紹介する方法ではOpenOffice.orgとJooTemplatesで帳票レイアウトを作成、編集を行うことで帳票データを作成します。作成された帳票データをOpenOffice.orgとJooConverterを使い、PDF変換を行うことで簡単にPDF帳票を作成することができます。 対象読者 Javaプログラミングを行ったことがある、もしくは、Javaプログラミングに興味のある方を対象としています。 必要な環境 このサンプルはJ2SE Development Kit 5.0 Update 2、Tomcat5.5.7、OpenOffice.org1.1.4日語版、JooTe

    bakock
    bakock 2005/08/13
  • スタックトレースを利用してメソッドの情報を取得する:CodeZine

    はじめに プログラムでログを出力する時、通常どのクラスのどのファイルが出力したのかを明らかにするためクラス名とメソッド名を指定します。たとえば次のリストはJ2SEのLoggerクラスを利用したログの例です。 public class Foo { public void bar(String[] args) { Logger.global.entering("Foo", "bar", args); ... Logger.global.exiting("Foo", "bar"); } ... } しかし、なぜクラス名やメソッド名を文字列で記述しなければならないのでしょうか?  ソースファイルにはFooというクラス名もbarというメソッド名も書いてあります。また、C/C++には__FILE__マクロでソースファイル名をソースに埋め込むことができますが、なぜJavaにはそういった

    bakock
    bakock 2005/07/25
  • 1