オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。

作者 Mark Figley , 翻訳者 岡田 英久 投稿日 2008年4月22日
ほとんどの大きな開発組織は何らかの形のコーディング標準とベストプラクティスをもっている。これらの標準をわかりやすくドキュメント化して常に最新に保つことは、多くの組織にとって重要なチャレンジとなりうるし、まして、それらの標準やベストプラクティスを一貫して実施することは、もっと困難だ。だが、私たちの組織は、コーディング標準とベストプラクティスの実施をビルドプロセスの一部として自動化するのが非常に効果的であることに気付いた。
私たちのソリューションでもっとも重要なのは、その積極的な性質にある。コードレビューを行い、コードのよくないプラクティスに対しては個々の従業員から直接フィードバックを得られる仕組をもった成熟した組織であったとしても、そのプロセスを過去にさかのぼって実施すると、そこでたくさんの問題点が見つかることになり、開発者は過去に犯したミスの対応に追われる。さらによくないのは、もしレビューが開発中に行われなければ、品質の低いコードが製品にまぎれこみ、製品にダメージをあたえてしまうことだ。私たちのビルドプロセスは一元管理され、コンプライアンスのチェックはあらゆるソフトウェア資産のビルドにおいて自動的に実行されるので、有害なコードが製品に組み込まれてしまうことはそもそも起こらないし、コストのかかるプロジェクトのクリーンアップや、遡及的な監査戦略から生じる従業員のパフォーマンスに関する不愉快な議論を減らすことができる。その代わり開発者はシステムによってすぐさまフィードバック(私たちのシステムでは HTML 形式のレポート)を受ける。システムは、自分の誤りを恐れるなど感情に左右されることはない。これにより、開発者は新しいコーディング標準を思い出すのにビルドを何回か試みなければならないかもしれないが、自分たちの誤りから学習する機会をもつことができるし、システムは組織が危険なコードから守られていることを積極的に保証しつづける。
私たちがここで議論する戦略が効果を発揮するには、次の二つのことが必要だ。:
私たちはコードの監査に Parasoft Jtest という製品を使うことになったが、ここで述べることを実現可能な製品は他にもある。Jtest には良い点と悪い点がある。全体的に見て Jtest は私たちにとって効果的なツールではあったが、私たちが必要とする動作をさせるためには周辺のインフラをハックしなければならなかったし、ここで提示する戦略を実現するには、そのままで利用できる製品ではなかった。Jtest には静的解析と動的解析というふたつのメイン機能がある。Jtest の動的解析機能は便利だが、今回の戦略のスコープからははずれてしまうので、ここでは論じない。
私たちはおよそ 4 年前、私たちの組織が、 try/catch/finally ブロックのなかでリソースが適切にクリーンアップされていないせいで運用環境においてデータベースコネクションがクローズされないという問題にぶつかったときに Jtest を購入した。思い当たるふしのある人もいるのではないだろうか? それは Rod Johnson 氏が天から降臨してきて JdbcTemplate を私たちに与えてくれる以前のことで、当時、多くの組織がこの問題を解決しようと奮闘していた。この手のコーディングの問題を回避するのは、まさに Jtest が得意とするところだ。Jtest は Java クラスの構造と内容を解析し、ルールを適用する。ここでいうルールとは、たとえば、「あるメソッド内でデータベースコネクションが生成もしくはコネクションプールから取得されたのであれば、そこに try/catch/finally ブロックが存在し、finally ブロック内でコネクションをクローズもしくはコネクションプールに返却していることを確かめる」、といったものだ。手短にいうと、私たちは 4 年前まさにそのような Jtest 用ルールを作成して、それを「深刻度 1 」のエラーとし、そして(ここが重要なのだが)、深刻度 1 の Jtest エラーが起こったらビルドが自動的に失敗するようにビルドシステムを変更した。そのシステムはみごとに動作し、データベースコネクションの問題は解決した。
Rod 氏の JdbcTemplate がある今では、この特殊なルールのもつ意味は小さいが、Spring を利用するように変更されていないレガシーな Java アプリには今でも有用である。そして、現在でも有効な多くのルールがある。私たちは、それがアーキテクチャ的な標準を実施するためのすばらしいツールであることに気付いた。たとえば、私たちがロギングの標準を実施したときには、もはやその利用が認められなくなった System.out.println ステートメントを用いるのを不可能にするようなルールを適用した。だがこれらの例は Jtest の表面をなぞっているだけにすぎない。Jtest には数百のルールが最初から組み込まれているし、必要があれば自分でルールを作成することもできる。
Jtest について言っておきたいことがいくつかある。すでに述べたように、Jtest は私たちが購入した当時、サーバとしてはあまりよいとは言えなかった。Parasoft の主要な製品ラインは IDE 上で静的および動的解析を行う Eclipse プラグインだが、私が述べているのはそれのことではなく、サーバベースの Jtest 製品のことだ。私たちはその製品を、ビルドサーバから呼び出すコマンドラインを通じて自分たちのサーバインフラと統合した。Parasoft は、すべての開発者が IDE プラグインを購入して彼らを Parasoft の一元化されたレポーティングサーバとつなぐことで、私たちがここで議論している類の明確な組織的コントロールとガバナンスが達成できる、と考えているように思えるが、その考えは誤りだということに私たちは気付いた。問題は、開発者が CVS にコードをコミットする前に静的解析を実行することを Parasoft は保証できないということである。彼らは Eclipse の CVS プラグイン(または Subversion でも何でもいいが)をコントロールできないし、Jtest が「深刻度 1 のエラーがあるからコミットはできません」などと言ってコミットを中止させることのできる制御ポイントはない。そのため、テストはデスクトップ上ではなく中央のコントロールポイントで実行されなければならないし、私たちにとってはそれが自分たちのビルドシステムなのである。だから、私たちにはビルドの都度ビルドシステムから呼び出すことのできるサーババージョンの Jtest が必要だったし、その統合作業を自分たちで行わなくてはならなかった(それはひどく困難というわけでもなかったが)。
Jtest が唯一の選択肢ではないということも、あらためて言っておきたい。Adrian Colyer 氏やその他の人たちは AspectJ のアスペクトを使ってコーディング標準を実施したと語っている。これは集中ビルドサーバ上での実装も容易なのではないだろうか。Jtest でできることがすべてアスペクトでできるかどうかはわからないが、この方法はお金がかからない。そのほかの競合製品および Eclipse プラグインは Jtest で見ることのできるさまざまな静的解析機能のサブセットを実行する。気楽に始めてみたい人には Eclipse の標準 JDT に含まれている構文およびコーディングスタイル標準のためのサポートがある。
自動化されたソフトウェアガバナンスを展開していくための戦略は、そのソリューションを構築するためにどういうテクノロジを選択するかということよりもはるかに重要だ。ここに、私たちが数年間の経験から学んだ教訓をいくつか挙げておく。:
私たちの実装の詳細にもかかわらず、積極的で自動化されたソフトウェア監査は私たちにとってすばらしい利益となった。私たちが制作するソフトウェア資産の品質は向上したが、おそらくもっと重要なのは、私たちがそれを実現するのに、信頼できるシステムを組織的にそしてメンテナンスに大きなエネルギーを費やすことなく利用したということだろう。標準をサポートするための組織的なプロセスが人の手による管理にもとづいている場合、そのメンテナンスには組織的リーダーシップを集中させることが求められる。開発をサポートするインフラを適切に設計することによって、より組織的なセキュリティを、より小さな努力で得ることができるのである。
Mark Figley 氏は AIG の抵当保険部門である AIG United Guaranty のアーキテクチャグループでリーダーを務める。AIG は 8,000億ドルの運用資産をもつ世界最大の保険会社である。
原文はこちらです:http://www.infoq.com/articles/governance-coding-standards
このArticleは2007年11月16日に原文が掲載されました)
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続���開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
No comments
スレッド表示 返信