タグ

ブックマーク / thinkit.co.jp (36)

  • [ThinkIT] 第4回:DIコンテナとの比較 (1/4)

    今回は、ここ数年非常に注目されている技術であるDI(Dependency Injection)コンテナをテーマに取り上げます。 DIコンテナはアプリケーションのオブジェクトを疎結合にし、柔軟性を与えるものです。その結果得られる代表的なメリットとして表1のようなものがあげられます。いずれも品質向上に寄与する重要な効果です。 モックオブジェクトによるテスタビリティ向上 単体テストにモックオブジェクトを導入でき、テスタビリティを向上させられる。 トランザクション指定の簡易化 トランザクションを簡易に指定できるようになり、障害時処理の高品質化が実現される。 しかし、そもそもRailsにはDIコンテナという考え方が取り入れられていません。そこで表1にあげたDIのメリットに関するRailsでの対応・非対応の状況を比較するという形で進めていきます。 なお、DIコンテナから得られるメリットはDIコンテナ上

  • TomcatをLinuxへインストールしよう!(パッケージ管理システム編)

    パッケージ管理システム(yum)を用いたインストール 「TomcatをLinuxへインストールしよう!(圧縮アーカイブ編)」では圧縮ファイル解凍によるTomcatのインストール方法を解説しました。今回はパッケージ管理システム(yum)を用いたインストールを解説します。また、TomcatをOS立ち上げ時に自動的に起動させる方法についても解説します。 パッケージ管理システムについては、下記の記事に詳しく説明していますので、こちらもあわせてご参照ください。 注意〜インストールの前に〜 実際に公開WebサーバとしてTomcatを利用する場合は、root権限でTomcatを実行しないようにしてください。万一rootで実行しているTomcatに侵入された場合、システム全体への無制限のアクセスを許すことになってしまいます。Tomcat用のユーザアカウントは、Tomcatの実行に無関係なファイルやディレク

  • [Think IT] 第7回:Selenium IDEの活用とSelenium利用時の注意点 (1/3)

    前回までにHTMLJavaでSeleniumのテストケースを作成してきました。SeleniumでWebブラウザの操作や検証ができるというメリットや、その一方でテストケースを作成するのは面倒そうだと実感された方もいるかもしれません。 そんな手間のかかるテストケース作成を支援してくれるツールが今回紹介する「Selenium IDE」です。今回はSelenium IDEを使ってテストケースを作成してみましょう。 Selenium IDEはFirefoxのエクステンションですので、あらかじめFirefoxをインストールしておいてください。それではSelenium IDEを以下の手順でインストールします。 まず最初にFirefoxを起動し、以下のURLを開きます。 次に最新版の「Firefox extension」のリンクをクリックします。初回のインストール時はFirefox上に「あなたのコンピュ

  • [ThinkIT] 第3回:スコープ管理とスケジュール管理 (1/3)

    説明の中で、(I1)や(S2)などの記号が出てきますが、これは第1回で使ったプロジェクト管理状況チェック表のNo.と対応しています。チェック表で明らかになった問題点に対応する部分は、特に注意して読んでみてください。 スコープ管理とは、プロジェクトの目標や作業範囲、成果物をきちんと定義し、その承認、検収について管理することです。スコープには成果物スコープ(Product Scope)とプロジェクトスコープ(Project Scope)があります。前者は、プロジェクトで作成すべき成果物を、後者はそのための作業の範囲を明確にすることです。 第2回のプロジェクト計画書(第2回:表1)に含入したプロジェクトの目標、成果物などは、もともとこのスコープ管理の計画プロセスのアウトプットなのです。スコープ管理では、PMBOKの知識管理体系(第2回:図1)に則り、[プロジェクトの立ち上げ][スコープ計画][ス

  • [ThinkIT] 第2回:Subversionによるバージョン管理(前編) (2/3)

    それでは、Subversionのインストール方法とリポジトリの作成方法を紹介します。今回は、Fedora Core 5の環境で行います。その他のOSでも、今回紹介する方法とほぼ同じ方法でインストールすることが可能です。

  • DBサーバーの負荷分散

    MySQLアクセスを負荷分散する ユーザーからのアクセス数が非常に多いWebサイトにおいて、MySQLのSLAVEサーバーを複数台並べて負荷分散させるということがよく行われています。ただ、Webアクセスの負荷分散は一般的なテーマなのでいろいろなところで語られているのに対し、DBアクセスの負荷分散というテーマは一般的でないのかあまり語られていないように感じます。 DBアクセスを負荷分散するにあたって一番荒っぽい方法は、Webサーバー上のプログラムの中でどのSLAVEサーバーに接続するかをランダムで決める方法です。ランダムと言っても長時間アクセスしているとほぼ接続先が均等化されるので、一見この方法でも問題ないように見えます。しかしこの方法だと、接続しに行こうとしたSLAVEサーバーが高負荷もしくはサービス停止中であっても構わず接続しに行ってしまうという問題があります。 このような問題を解決する

  • [ThinkIT] 第1回:こんなにあるオープンソースのプロジェクト管理ツール (1/3)

    プロジェクト管理用のソフトウェアといえば、定番のMicrosoft Office Projectをはじめ、これまで様々な商用の製品が存在しました。一方で、従来からオープンソースのプロジェクト管理ソフトウェアにも様々なものがあります。 例えばソフトウェア開発に従事されている方であれば、Edgewall Software社が無償で提供している軽量バグトラッキングシステムの「Trac」を使ったことがあるのではないでしょうか(図1)。 ただし、このような従来のオープンソースのプロジェクト管理ソフトウェアの多くは、目的が限定されているものや基的な機能のみを実装するものが多く、企業の汎用的なプロジェクト管理に使えるものが少ないのが現状でした。 その背景の1つとして、オープンソースソフトウェアがWebアプリケーション技術に依存しているケースが多く、ガントチャートなど視覚に訴える機能を実現することが技術

  • NOSQLは「知る時代」から「使う時代」へ

    連載では、オープンソースの分散KVS(Key-Value Store)である「okuyama」と、その関連技術について、4回にわたって解説します。 okuyamaは、クラウド時代のデータ・ストレージと言われる、「NOSQL」と呼ぶ部類に属するデータ・ストレージです。連載では、NOSQLが登場した背景や関連ソフトウエアの特色を整理したのち、okuyamaの概要と機能の紹介、そして実際にどのように配置・運用するか、などを解説します。 第1回: NOSQLは「知る時代」から「使う時代へ」 - NOSQLの登場した背景や特性、NOSQLの種別を紹介します。 第2回: NOSQLの新顔、分散KVS「okuyama」の機能 - 分散KVS「okuyama」の概要から機能の詳細までを解説します。 第3回: 分散KVS「okuyama」の使い方 - 実際にokuyamaを起動してから利用までの手順と運用

  • SQLの実行を「見える化」する

    システム性能の重要な位置を占めるデータベースのパフォーマンス ソフトウエアが大規模化、複雑化していく中で、システムのパフォーマンス問題にかかわるトラブルの話を多く耳にします。「安定稼働していたシステムが突然遅くなった」「テスト段階では問題がなかったのに、稼働で思ったようなパフォーマンスが出ない」「新しい環境に移行したら途端に性能が出なくなった」など。 これらの症状には、さまざまな原因が考えられます。実際には、複合的にいろいろな要素が絡み合っていることが多く、一概に「ここが悪い」と指摘することはできません。 しかし、多くのシステムでデータベースにかかわるパフォーマンス問題が発生しているのは事実であり、しかも、その性能劣化が、指数関数的に拡大していることが多いことを見逃すことはできません。データベースにかかわるパフォーマンス問題は、ハードウエアパフォーマンス、ネットワークパフォーマンス、DB

  • [ThinkIT] 第1回:AJAXを使用するメリット (3/3)

    私がJpSpanを選択したのには、色々な理由があります。一番の決め手になったのは、JpSpanは他のプロジェクトと比べても古い(2004年の11月に初版がリリースされています)ことでした。私がAJAXの研究を始めたときには、まだ他のプロジェクトは存在しませんでした。他にも、以下のような、JPSpanを使うメリットがあります。 JavaScriptPHP側の両方で、オブジェクト指向インターフェースが提供される。 オブジェクト間でマッピングが行われる。PHPの配列がJavaScriptのオブジェクトになるなど、データ変換が良くできている。 同期、および非同期処理の両方をサポート。そのため、JavaScriptのコードをシンプルに書くことができる。 豊富なドキュメントがあるため、ものの数分で動作を確認できる。 JpSpanはクライアント・サーバー間の通信しか提供されません。そのため、ドラッグ・

  • プロジェクトの困ったを解決せよ!

    プロジェクトで起こるさまざまな悩み プロジェクトを進行する上で、実にさまざまな悩みが生まれます。その内容は、プロジェクト規模の大小によっても変わってきますが、連載では特に中小規模の案件において生まれがちないくつかの問題について、Google Sitesを使って解決する方法をご紹介していきます。 プロジェクトの悩みとして、まずよくあるのは、「あの情報どこ?」問題でしょう。間違って最新ではないファイルを参照してコンテンツを作ってしまったり、クライアントやチームメンバーから情報の所在について度々問い合わせが来たりという経験がある方も多いと思います。 また、プロジェクト管理ツールを使っていて、そこで情報は管理されているけれど、クライアントはその専門的なツールに馴染(なじ)めないなどということもあります。 連載で紹介するGoogle Sitesは、複数人数が共同で編集できるサイトを簡単に作れるサ

  • [ThinkIT] 第1回:Railsで構築されたオープンソースCMS「Rubricks」 (1/4)

    連載では今話題のフレームワークRuby on Rails(以下、Rails)上に構築されたCMS(Contents Management System)である「Rubricks」を取り上げます。第1回の今回はRubricksの概要について解説します。 Rubricksを紹介する前に、CMSについて導入の目的その意味について簡単に整理しておきます。 CMSと呼ばれるソフトウェアには、静的なサイトにおけるデザインの統一化や構成管理に特化しているもの、プログラムの必要なくBBSやニュースといったアイテムの配置ができるといった特徴があります。 さらに動的なサイト構築まで含めると、CMSという言葉の範囲は大変広いといえるでしょう。ただし、どのCMSでも「Webサイト構築/更新に関する共通的なルーチンワークの作業負荷を軽減する」ことを目的とする点は共通しています。

  • 表示の概念

    コア表示クラスと継承 前回はActionScript 3.0の概要を中心に解説しました。今回は、Flashの根幹ともいるコア表示クラスについて紹介します。コア表示クラスとは、Flash Playerで表示できるビジュアルオブジェクトのクラスであり、主にflash.displayパッケージに含まれているDisplayObjectクラスを継承したサブクラスのことをいいます(一部、staticText、TextField、およびVideoはflash.displayに含まれないクラスですが、DisplayObjectクラスを継承しています)。 継承とは、既存のクラスを元に新しいクラスを開発する手法のことで、既存のクラスを"スーパークラス"または"基クラス"と呼びます。反対に、新しく継承するクラスのことを"サブクラス"と呼びます。継承を使うことで、既存のコードを維持したまま、コードの再利用が可能

  • [Think IT] MITでも使われているオープンソースのCMS (1/3)

    PHPベースのオープンソースCMS「eZ Publish」 MITでも使われているオープンソースのCMS! 著者:eZ Systems  豊島 麻里子 公開日:2008/1/7(月) 2008年1月の連載ランキング3位(一覧を見る) オープンソースCMSといえば? オープンソースのCMS(コンテンツマネジメントシステム)というと何を思い浮かべるでしょうか? 有名なところでは「Joomla!」や「XOOPS」があるでしょう。確かにこれらさまざまなWebサイトで使用されています。では、米マサチューセッツ工科大学(MIT)や米国海軍で使われているオープンソースのCMSをご存じでしょうか? それが「eZ Publish」です。eZ Publishは仏ナショナル・ジオグラフィック誌や豪ヴォーグ誌、英・仏・伊エル誌などの出版メディアの公式Webサイトにも利用されています。 記事では、MITや米国海軍

  • 基本設計書

    第1回で「業務フロー」、第2回で「機能一覧表とI/O関連図」について説明しました。今回は残りのアウトプットを取り上げて、基設計フェーズのドキュメント標準を完了させることにします。「DUNGEON」の標準で定義されている基設計工程のアウトプットは、表1の通りです。

  • プロ直伝のコーディングテクニック

    柔軟性のあるコーディング Webサイトの制作業務を請け負っていると、制作の途中でデザインが変わることは少なくありません。コーディングもいきなり仕様が変わったり、新しい機能やカラムが追加になるといったことがしばしば発生します。 要素を追加するため、ソースコードに無理な変更や複製を行うと、ソースコードはどんどん劣化していきます。最悪の場合は、今後の拡張性を考えると作り直しをした方が作業時間を短縮できるのではないかと思われるものまであります。しかし、納期や予算に余裕があれば作り直しをすることもできますが、大抵の制作現場ではその時間もなく、なかなか理想のコードが作れないことが現状です。 このようなソースコードの劣化や作り直しを防ぐためにも、柔軟性を持ったコーディングをするテクニックが必要です。今回は、ソースコードを劣化させないコーディングのコツを紹介していきましょう。 秘伝の3つのコツ 第1のコツ

  • Debianで作るプロジェクト管理環境

    プロジェクト管理環境の構築とサーバOS 「第1回:そもそもサーバOSとは何か(http://www.thinkit.co.jp/article/80/1/)」ではサーバOSのおおまかな分類と特徴を、そして「第2回:OS選定のポイントを整理する(http://www.thinkit.co.jp/article/80/2/)」では当社を例にとりサーバOSの選び方を紹介した。ここまでを理論編とすると、ここからは実践編として、実際の構築に加え、「なぜそのサーバOSなのか?」「そのサーバOSの採用にどんな付加価値があるのか?」といった舞台裏も紹介していく。 さて、タイトルにもあるように、今回はサーバOSとしてDebian GNU/Linux(以下Debian)を取り上げる。Debianを採用する理由を説明する前に、まずは「プロジェクト管理環境」について簡単に説明しておこう。 プロジェクト管理とは、プ

  • 今から始める携帯サイト制作

    携帯販売業務のアルバイトを経て、現在はベンチャー企業のWebサービスで主にマークアップを担当。PCおよび携帯サイト制作のほか、デコメ、SEO、LPO、モバイルアフィリエイトなどWeb全般の業務に携わる。HTML/CSSリファレンスサイト、携帯サイト制作支援ブログなどを運営。 HTMLタグボード:http://www.dspt.net/ 携帯ホームページを作ろう! -ちょっと詳しいモバイルサイトの作り方-:http://dspt.blog59.fc2.com/

  • モチベーション別サイト構築の重要性

    Webサイトを使う人を理解する ユーザーは、Webサイトにさまざまな目的を持って訪問します。その目的をわかりやすく達成させるのがWebサイト構築時に重要なポイントです。 例えば、マンションを借りたければ不動産のサイトに訪問し、家具が欲しければ家具屋のサイトやショッピングサイトに訪問します。これは当たり前のことですが、テレビで流れている情報をほかのことをし「ながら」見ているマスメディアとは大きな違いがあります。 Webサイトは、自らが自分にとって必要な情報を求めて訪問するため、この部分を意識することでWebサイトの作り方が大きく変わります。 先日、某金融会社のユーザービリティテストを実行したのですが、テレビCMを見てWebサイトに訪問したユーザーと、何も情報を持たずに検索エンジンからWebサイトに訪問したユーザーとではWebサイトの使い方が大きく異なりました。 テレビCMを見て訪問したユーザ

  • [ThinkIT] 第13回:クライアントのOSとしてLinuxを検証する (1/3)

    Linuxは、1998年頃から注目されはじめた。当時は、どちらかというとPC趣味とする人の遊びの範囲か、技術者が情報収集のために使ってみる程度で、ビジネス上で利用するケースは少なかった。だが、今では世界的に有名な大企業の基幹業務システムに導入されるようになっている。 今回は、このLinuxについてサーバとクライアント双方のOSとして考えてみたい。 図1のように、約4割の企業や官公庁、自治体がLinuxサーバを導入している。また業種別では、8割以上の官公庁や自治体などがLinuxサーバを導入しているが、逆に金融関連では3割にも満たない。 では、これらの企業や官公庁、自治体では、今までサーバとして使っていたWindowsや商用UNIXを、Linuxサーバに切り替えたのかというと、そうではない。昨今のLinuxやOSSの勢いを見ると、既存のサーバの切り替えがもっと多いのではないかと思ったが、意