タグ

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

  • 「Google Collections Library」でJavaのコレクションを補完する:CodeZine

    はじめに 何年も前のことですが、私が初めてJavaに興味を覚えた理由の1つは、Javaプラットフォームに標準でコレクションライブラリが組み込まれていたからでした。当時、C++の世界ではまだSTL(Standard Template Library)が定着しておらず、開発者たちは適当なコレクションライブラリを購入して利用するか(Rogue Waveが流行っていました)、自分の手でライブラリを書くしかありませんでした。正確な数は忘れましたが、私自身も、さまざまな目的でさまざまな種類のプリミティブやオブジェクトの連結リストを実装しました。さらに、もっと複雑なコレクションや平衡2分探索木、ハッシュテーブルなども自分で実装しました。そのようにしてソフトウェア工学の原理を絶えず意識することは決して無駄なことでありませんでしたが、生産性を考えるとそうとばかりも言えませんでした。 しかし、Javaによって

    uronim1
    uronim1 2008/04/21
  • CSVファイルフォーマットの解説:CodeZine

    はじめに CSVファイルは最も普及したデータ交換用フォーマットですが、さまざまな方言があります。 稿ではCSVファイルフォーマットの仕様とデータ交換時のポイントを説明します。 対象読者 CSVファイルを扱うDB管理者、開発者。 CSVとは? CSVとはComma-Separated Valuesの略で、カンマ区切りで並べた値という意味です。 CSVファイルの例として、一般的なアドレス帳データを示します。 "姓","名","生年月日","郵便番号","住所","電話番号" "山田","太郎","2001/1/1","100-0002","東京都千代田区皇居外苑","03-1234-5678" "山田","次郎","2001/1/2","251-0036","神奈川県藤沢市江の島1丁目","03-9999-9999" カンマで区切られたデータの横一列を"行"(英:Row)

    uronim1
    uronim1 2008/04/12
  • Eclipse Web Tools PlatformとMavenの統合:CodeZine

    はじめに Eclipse Web Tools Platform(WTP)とM2Eclipse(M2)は別々のプロジェクトです。両者はいずれも、Eclipseを使って開発をする際に価値の高い機能を提供します。WTPはWebおよびJava EEアプリケーション開発用のEclipseプラットフォームを機能拡張するツールセットで、一方のM2は、このIDEとMavenを密に統合します。この2つを同じプロジェクトで利用すると絶大な効果が得られますが、残念ながらまだ、WTPとM2を追加設定なしで統合することはできません。今回の記事ではこれについて取り上げます。 この記事では、WTPとM2の統合ソリューションを使用して基的なWebアプリケーションを開発していきます。プロジェクトのセットアップから配備までの一連の構築手順を紹介するので、EclipseベースのJava Web開発を効率化するための参考にして

    uronim1
    uronim1 2008/04/02
    WTP m2eclipse m2eclipseがクソすぎて萎える
  • AJAXアプリケーションで標準的なブラウザナビゲーションを再現する:CodeZine

    はじめに AJAXは、デスクトップアプリケーションと同じくらい対話性と応答性のよいリッチなWebアプリケーションを開発する手段として、多くの開発者に採用されてきました。AJAXでは、WebのUIを異なるセグメントに分割します。ユーザーはあるセグメントで操作を実行し、その操作が終わらないうちに他のセグメントで作業を開始することができます。 しかし、AJAXには大きな欠点があります。戻る、進む、ブックマークといった標準的なブラウザ機能が無効になるのです。AJAXアプリケーションの開発者は、ユーザーをAJAXの欠点に無理やり順応させるのではなく、アプリケーションを従来のWebインタラクションスタイルに合わせ、次の機能を提供するようにしなければなりません。[戻る]/[進む]ボタンが機能するようにして、エンドユーザーが直観的なやり方で履歴ページ間を移動できるようにする。ユーザーがブックマークを作成で

  • JRubyに対応したフリーのEclipseプラグイン「Aptana RadRails 0.9.1」リリース:CodeZine

    統合開発環境Aptana Studioで利用できるプラグイン「RadRails 0.9.1」がリリースされた。RubyならびにRuby on Rails開発向けプラグインであり、今バージョンよりJRubyにも対応した。 RadRailsを利用するにはAptana Studioが必要となる。Aptana Studioは単体環境版と、Eclipseプラグイン版の2種類が用意されており、Community Editionであればダウンロードページより無償で入手できる。Aptana Studioインストール後、起動画面「Aptana Start Page」に表示されるinstallボタンをクリックすることでRadRailsプラグインがダウンロードされるようになっている。

    uronim1
    uronim1 2007/11/20
    JRuby Aptana
  • Java meets Python - 第0回 Jythonはじめました(前編):CodeZine

    はじめに Java meets Python。そして、Jythonが産まれました。この連載では、Java/PythonのDNAを備えたJythonを紹介します。Javaのアプリケーション開発に携わる皆さんの苦痛を和らげ、より快適なアジャイル開発への道標となるなら幸いです。対象読者 こんな症状を抱えているなら……。Javaの開発効率の悪さにストレスが溜まる。要求仕様の変更に柔軟かつ迅速に対処できない。体力(単純な肉体労働)に自信がない。頭脳労働に専念したい。既存の資産(Javaで構築されたレガシーシステム)は今後も運用したい。

  • Pythonを始めよう:CodeZine

    はじめに こんにちわ、hirataraです。 稿では、オブジェクト指向のスクリプト言語であるPythonの紹介をしたいと思います。と言っても、実は私がPythonを勉強し始めたのは数ヶ月前のことで、まだPythonに関してさほど詳しいとは言えません。それでもこの記事を書こうと思い立ったのは、ある言語が他の言語に比べて面白い部分と言うのは、その言語にどっぷり漬かってその言語を使うことが当たり前になっている人間よりも、その言語を好きになり始めたくらいの人間の方が見つけやすいのではないかという思いからです。 そのような事情で、もしかすると当のPythonistaからお叱りを受けるような内容も含まれるかもしれませんが、その点はTBやコメントでご教授頂けると幸いです。この記事で、少しでもPythonに興味を持ってくれる方が増えることを願っています。対象読者他言語でのプログラミング経験者Pytho

  • 階層化アーキテクチャと依存性注入・依存性逆転:CodeZine

    .NET 1.0のベータ1から.NET Frameworkに従事してきた.NET開発のエキスパートで、アプリケーションのアーキテクチャ作成と設計と開発で7年以上の経験がある。アジャイルプラクティスと実際的なビヘイビア駆動開発(BDD)テクニックを通じてチームの成功を支援する独立コンサルタントとして活躍している。BDDを.NETに応用する記事をVisual Studio Magazine、DevX、MSDNに寄稿。ポッドキャスト/スクリーンキャストとして人気のある.NET Rocks!とDNRTVに登場したことがあり、実際のデザインパターンというトピックについてMicrosoftのためのウェブキャストを配信。MSDN Canada Speakers BureauおよびMicrosoft Most Valuable Professional(MVP)のメンバ。自分のブログも継続的に更新中。

  • Swing再入門 JavaにおけるGUIのレイアウト:CodeZine

    はじめに Javaを初めて覚えようとするとき、多くの人はどのような順番に学習していくでしょうか。Java文法、基的なクラスライブラリ、ファイルの入出力やスレッド、そしてAWT/Swing。大体、このあたりまで一通り使えるようになったところで、「そろそろビギナー卒業かな?」と思うのではないでしょうか。 が、「一通り覚えた」と「マスターした」は大きく違います。中でも、特に注目してほしいのが、Swingです。Swingは非常に大きなライブラリであり、そう簡単にマスターできるものでもありません。が、「AWTの強化版だろう」ぐらいなつもりで、JButtonやJFieldなど主なコンポーネントとイベント関係を一通り使ってみて「わかった、わかった!」と通過してしまった人は意外に多いんじゃないでしょうか。 こうした「通り一遍にSwingを通り過ぎてしまった人」のために、もう一度改めてSwingの機能をお

    uronim1
    uronim1 2007/09/01
  • 例外処理とロギングのベストプラクティス:CodeZine

    はじめに システム開発において例外処理は重要なポイントですが、あまりに軽視されているのが現状ではないでしょうか。稿では、これまでの著者の開発経験の中から培った汎用的な手法を説明します。 この記事は「美しい設計」ではなく「現実的な設計」、現場に適用できる「できるだけ手間の少なく、汎用的な設計」を目指しています。 対象読者 J2EE開発者・アーキテクト。特に業務システムの開発現場の方が対象です。 必要な環境 概念の説明が中心ですので、開発環境は必要ありません。 エラーの分類 実装時に考慮すべきエラーは2つに大別できます。 想定内でトランザクションの実行開始前にチェックするエラー。主に入力エラー。 異常な状態としてトランザクションの続行が不可能なエラー(例外)。 前者については、例外を使うべきではありません。入力チェックエラーを表現するには、ステータスコードを使うべきです

    uronim1
    uronim1 2007/08/22
    logging
  • JavaFXによるGUIアプリケーションの作成:CodeZine

    はじめに JavaによるGUIアプリケーション開発を一気に加速するといわれるJavaFX。前評判は上々のようですが、果たしてそんなに簡単にGUIが作れるものなのでしょうか。既に利用可能なOpenJFXを使って、JavaFXがどれほどのものか、確かめてみましょう。対象読者Javaを使ったプログラム作成を行っている中級レベルのプログラマ。GUIを使ったアプリケーション開発を行っている人。次期Java 7に大いなる興味を持っている人。 JavaFXとは何か? 今年のJavaOneでは、次期Java 7に向けての新技術がいろいろとお目見えになりました。中でも注目度が高かったのが「JavaFX」ではないでしょうか。JavaFXは、「Javaプラットフォーム上で動作するRIA(Rich Internet Application)技術」といわれています。RIAと言うとFlashやAJAXのようなものが思

  • 帰ってきたHAVING句:CodeZine

    はじめに SQLのクラスを教えるとき、最大の課題の一つが、生徒たちがそれまでに手続き型言語から身に付けたことを、一度「頭から追い出す(unlearn)」ことだ。私がそのとき採る一つの方法は、処理を「レコード単位」ではなく、集合という観点から考えるよう強調することである。 ――――J.セルコ  SQLの考え方を習得するときに最大の障壁となるのが、私たちの多くが慣れ親しんだ手続き型言語の考え方(ソート、ループ、分岐、代入、等々)です。SQL質を理解するには、私たちの心に強固に貼り付いてしまった思考パターンを、一度ベリベリと引き剥がし、更地に戻してやる必要があります。それが、セルコが「unlearn」という言葉に込めたニュアンスです。セルコ自身、Fortranからプログラマとしてのキャリアを開始し、C、Algol、Pascalと手続き型言語を渡り歩いた後にSQLを身に付けた人物だけに、言葉に

    uronim1
    uronim1 2007/07/15
  • Javassistでクラスのバイトコードを直接書き換える:CodeZine

    はじめに Javaのクラスファイルというのは、ソースコードからコンパイルして作成する――これが、長い間の常識でした。しかし昨今、この常識を覆すような技術が次々と登場しています。最近のフレームワークなどを見ていて、ふと不思議に思ったことはありませんか? XMLで必要な情報を定義すると、自動的にそのクラスが生成されたり、既にあるクラスの機能が書き換わったりする。プログラマがソースコードを書くこともなく、必要なクラスが作成されてしまう。そうした「クラスの自動生成」の技術を大幅に進歩させたのが「クラスのバイトコードを直接書き換える」技術です。対象読者Javaを使ったプログラム作成を行っている中級レベルのプログラマ。クラスのバイトコード操作について興味のあるひと。同じようなBeanクラスをひたすら作り続けるのに、いい加減、嫌気がさしている人。 クラス生成の新しい形とは? 最近のフレームワークなどでは

  • Facadeデザインパターンを利用したオブジェクト指向JavaScriptカレンダーの作成:CodeZine

    去る8月30日(土曜日)、ライトウェイトプログラミング言語(Lightweight programming Language)の総合カンファレンス「LL Future」が、なかのZERO(中野区もみじ山文化センター)大ホールで開催された。当日は前線の影響で時おり豪雨に見舞われる中、さまざまな言語のユーザーや開発者など千人近くが集まった。

  • REXML:RubyによるXML処理

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

  • HTMLのWYSIWYG編集が可能なEclipseプラグイン「richhtml4eclipse」:CodeZine

    HTMLのWYSIWYG編集が可能なEclipseプラグイン「richhtml4eclipse」がリリースされた。バージョンは0.4。無償でダウンロードすることができる。 「richhtml4eclipse」の入手はSourceForge内のWebページから行う。実行に必要なのは「 de.spiritlink.richhtml4eclipse_0.4.0.zip」と「de.spiritlink.richhtml4eclipse.example_0.4.0.zip」の2つのファイルだ。これらをダウンロードし、zipファイルをそれぞれ解凍して、「eclipse/plugin」フォルダ内に配置する。 Eclipseを起動し、メニューバーから「ウィンドウ → ビューの表示 → その他」を選択。一覧の「Sample Category」内にある「Sample View」を選択することで実行すること

  • EclipseユーザのためのNetBeans環境とプラグイン開発入門:CodeZine

    はじめに この記事は、Eclipseのプラグイン開発を行った経験のある人が、NetBeansでも同じようなプラグインを開発しようと思ったときに、一番最初に読んでもらえると良い内容を書いています。 NetBeansのPluginモジュールは、http://platform.netbeans.org/から入手可能です。 お勧めの読み方は、まずは、いろいろとPluginモジュールのサンプルソースコードのチュートリアルが用意されていますので、それらを読み進めていくことです。 しかし、Eclipseに慣れていると、NetBeansとのポリシーの違いから、つまずいてしまう箇所があると思うので、この記事の前半では、お互いのポリシーの違いを、まずはユーザーの立場に立って説明しています。 また、後半は、かなりコアなNetBeansPluginモジュールの開発のトピックについて、ソースコードと共に開発していま

  • 使用率の高いTomcatサーバーをリアルタイムで追跡&チューニング:CodeZine

    今回は、メニューからグラフの種類を変更できるようにします。これまでは、3D縦棒グラフでデータを表示していましたが、グラフの種類を折れ線グラフと円グラフに変えられるようにします。

  • Apache MavenによるJavaプロジェクトポータビリティの向上:CodeZine

    今回は、メニューからグラフの種類を変更できるようにします。これまでは、3D縦棒グラフでデータを表示していましたが、グラフの種類を折れ線グラフと円グラフに変えられるようにします。

  • Google Web Toolkit:現実的な開発に即したAJAX:CodeZine

    今回は、メニューからグラフの種類を変更できるようにします。これまでは、3D縦棒グラフでデータを表示していましたが、グラフの種類を折れ線グラフと円グラフに変えられるようにします。