注意:上記ページにも、記載されていますが、PartCoverをルートノードではないとする場合、xslないの /PartCoverReport/ を //PartCoverReport/ に置き換える必要があります。
以下の部分を</tr>の前に追加。
<xsl:element name="td"> <xsl:attribute name="style">background:ghostwhite;text-align:right;</xsl:attribute> <xsl:value-of select="$coveredCodeSize"/>/ <xsl:value-of select="$codeSize"/> </xsl:element>
以上です。
2009年4月15日
#
XSLTを使用して、フラットなXMLを明細型のXMLに変換するサンプル。
◎変換用のXSLT 同じIDを持つ部分を抜き出して、その部分だけにテンプレートを適応する。 テンプレートでは、繰り返し処理を行う。 select="Data[ID!=string(preceding-sibling::Data[1]/ID)]"の部分で抜き出しを行っている。
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method ="xml"/>
<xsl:template match="/"> <DataList> <xsl:apply-templates select="DataList"/> </DataList> </xsl:template>
<xsl:template match="DataList"> <xsl:apply-templates select="Data[ID!=string(preceding-sibling::Data[1]/ID)]"/> </xsl:template>
<xsl:template match="Data"> <xsl:comment xml:space ="default"/> <Data> <ID> <xsl:value-of select="ID"/> </ID>
<xsl:for-each select=". | following-sibling::Data[ID=current()/ID]"> <Details> <ProductID> <xsl:value-of select="ProductID"/> </ProductID> <ProductName> <xsl:value-of select="ProductName"/> </ProductName> <Count> <xsl:value-of select="Count"/> </Count> </Details> </xsl:for-each>
</Data> </xsl:template>
</xsl:stylesheet>
◎変換元のXML
<?xml version="1.0" encoding="utf-8" ?> <DataList> <Data> <ID>D001</ID> <ProductID>A001</ProductID> <ProductName>Product1</ProductName> <Count>10</Count> </Data> <Data> <ID>D001</ID> <ProductID>B001</ProductID> <ProductName>Product2</ProductName> <Count>20</Count> </Data> <Data> <ID>D002</ID> <ProductID>A001</ProductID> <ProductName>Product1</ProductName> <Count>20</Count> </Data> <Data> <ID>D003</ID> <ProductID>A001</ProductID> <ProductName>Product1</ProductName> <Count>10</Count> </Data> <Data> <ID>D003</ID> <ProductID>B001</ProductID> <ProductName>Product2</ProductName> <Count>20</Count> </Data> <Data> <ID>D003</ID> <ProductID>C001</ProductID> <ProductName>Product3</ProductName> <Count>30</Count> </Data> </DataList>
◎変換後のXML
<?xml version="1.0" encoding="utf-8"?> <DataList> <!----> <Data> <ID>D001</ID> <Details> <ProductID>A001</ProductID> <ProductName>Product1</ProductName> <Count>10</Count> </Details> <Details> <ProductID>B001</ProductID> <ProductName>Product2</ProductName> <Count>20</Count> </Details> </Data> <!----> <Data> <ID>D002</ID> <Details> <ProductID>A001</ProductID> <ProductName>Product1</ProductName> <Count>20</Count> </Details> </Data> <!----> <Data> <ID>D003</ID> <Details> <ProductID>A001</ProductID> <ProductName>Product1</ProductName> <Count>10</Count> </Details> <Details> <ProductID>B001</ProductID> <ProductName>Product2</ProductName> <Count>20</Count> </Details> <Details> <ProductID>C001</ProductID> <ProductName>Product3</ProductName> <Count>30</Count> </Details> </Data> </DataList>
以上
2009年4月2日
#
2009年3月24日
#
勝手に師匠とさせてもらっている中埜さんの活動を紹介しているブログを紹介します。
中埜さんの活動を小冊子で紹介しています。一冊(PDF)ですが300円くらいなので、興味がある人はぜひ購入ください。
お勧めです。
http://ces.mitohorin.com/
2009年3月17日
#
2009年3月8日
#
Thougth Works アンソロジーの中の「1クリックデブロイ」を読んで思うこと
アジャイル開発では、継続的インテグレーションがコアプラクティスであることは、異論がないところ。 これを次のステージである、「1クリックデブロイ」まで進めるためには、いくつかのハードルをクリアする必要がある。
その一つは、受け入れテストの自動化である。受入テストを効率的で短時間で作成・実行を実現することは容易でない。 最近思うポイントは、以下の点。 簡単な言語(スクリプト言語など)やエクセルのシートでのテストケース作成 早期段階での自動受入テスト環境の構築 積上げを前提としたテストケースの作成 要求や仕様と受入テストの連動
受入テスト中心に据えると「プロセスの自動化」その先の「1クリックデブロイ」が見えてくると思う。
2009年3月2日
#
アジャイル開発の実践者三井さんや長瀬さんが登壇される
アジャイル開発手法のセミナーが開催されますので
紹介させていただきます。
参加無料ですので、興味がある方は、ご一考ください。
以下は、運営事務局からいただいた案内メールです。
NPO法人 ドットNET分散開発ソフトピア・センター
本セミナーはソフトウェア開発において近年注目を集めている “アジャイル開発手法”
に関するセミナーです。
アジャイル開発手法 (方法論) の解説として、数多くの書籍を執筆されるなど業界で
著名な株式会社テクノロジックアート 長瀬 嘉秀氏にご登壇いただきます。
また、アジャイル開発手法を .NET 開発プロジェクトに適用し、実際に現場で実践されて
おります NPO 法人 ドットNET 分散開発ソフトピア・センターの三井 伸行氏に
そのノウハウをご説明します。
マイクロソフトからは、Visual Studio Team System 2008 Team Foundation Server を
活用したアジャイル開発の実践について解説します。
実際の現場で活用いただける内容と考えており、特に開発プロジェクトを管理、
またはリードする方にご覧いただきたい内容となっております。
---------- 記 ----------
開催日時 : 2009 年 3 月 27 日 (金) 13:30 - 17:15 (受付開始 13:00)
開催会場 : 新宿マインズタワー 15F アビタス セミナールーム 4
参加費無料 / 事前登録制
本セミナーの詳細につきましては、下記をご参考にしてください。
http://www.microsoft.com/japan/msdn/vstudio/events/agileseminar.aspx
2009年2月21日
#
私が運営に参加しているINETAが仙台で勉強会を開催します。 今回は、SQL Server2008とPowerShellです。
PowerShellは、作業の自動化では、有効な選択肢のひとつです。 ただ、少し癖があるので、最初に基礎を学ぶことをお勧めします。 そんな方には、最適な機会だと思いますので、仙台近郊の方は、ぜひご検討ください。
申込ページ:http://techbank.jp/event-sendai/
アイネタのサイトでの紹介ページ:http://www.ineta.jp/tabid/214/Default.aspx
2009年2月12日
#
非常にシンプルなPowerShell用の UnitTest フレームワークです。 ものは、以下のページ
http://www.ailight.jp/blog/koido/archive/2009/02/12/27263.aspx
MiniUnitTest.ps1 のみです。
◎使い方
ステップ1: テストケースのスクリプト(サンプルではTest_Sample.ps1)を作成する ポイントは、MiniUnitTest.ps1 とテスト対象を読み込む
############################################################################## ## MiniUnitTest .\MiniUnitTest.ps1
############################################################################## ## Target .\Calc.ps1
############################################################################## ## Main function Main { #ここにテストのfunctionを書く
write-host "`nAll Test OK." }
############################################################################## ## Start Main Trap { write-host "`nTest Error." $LastExitCode = 1 exit1 } exit 0 ステップ2: テスト対象のスクリプト(サンプルではCalc.ps1)を作成する
ステップ3: テストを作成する
ステップ4: テストがエラーとなる実装をする
ステップ5: テストを実行し、エラーが表示されることを確認する
ステップ6: 正しい実装を行う。正常に終了することを確認する
以上
2008/03/16 exit を追加
◎PowerShell Mini UnitTest
2009/02/25 エラー時、Win32としてもエラーを返すように変更
############################################################################## ## Assert function. Verifies that $condition ## is False, Throw error message. function global:Assert ( [bool] $condition = $(Please specify a condition), [string] $message = "Test failed." ) { if( $condition -eq $True ) { write-host -NoNewLine "." } else { write-host "`nFAIL. $message" Throw $message } }
## AssertEquals function. ## is False, Throw error message. function global:AssertEquals ( [object]$expected, [object]$actual, [string] $message = "Test failed." ) { if($expected -eq $actual) { write-host -NoNewLine "." } else { write-host "`nFAIL. AssertEquals. Expected: $expected. Actual: $actual. $message." Throw $message } }
## AssertNotEquals function. ## is False, Throw error message. function global:AssertNotEquals ( [object]$expected, [object]$actual, [string] $message = "Test failed." ) { if($expected -ne $actual) { write-host -NoNewLine "." } else { write-host "`nFAIL. AssertNotEquals. Expected: $expected. Actual: $actual. $message." Throw $message } }
◎Sample TestCase
############################################################################## ## MiniUnitTest .\MiniUnitTest.ps1
############################################################################## ## Target .\Calc.ps1
function StringTest() { $a = "A" $b = "B" $ans = CalcAdd $a $b
AssertEquals "AB" $ans 'AssertEquals AB $ans' AssertNotEquals "ABC" $b 'AssertNotEquals ABC $ans'
Assert ( $ans -eq "AB" ) 'Assert $ans -eg AB' Assert ( $ans -ne "ABC" ) 'Assert $ans -ne ABC' }
function IntTest() { $a = 1 $b = 2 $ans = CalcAdd $a $b AssertEquals 3 $ans 'AssertEquals AB $ans' AssertNotEquals 4 $ans 'AssertNotEquals ABC $ans'
Assert ( $ans -eq 3 ) 'Assert $ans -eg AB' Assert ( $ans -ne 4 ) 'Assert $ans -ne ABC' }
############################################################################## ## Main function Main { StringTest IntTest
write-host "`nAll Test OK." }
############################################################################## ## Start Main Trap { write-host "`nTest Error." $LastExitCode = 1 exit 1 } exit 0
◎Sample Target
############################################################################## # Target Sample Calc
function global:CalcAdd ( [object] $data1, [object] $data2 ) { Return $data1 + $data2 }
2009年1月28日
#
デブサミで、今年は、帳票で登壇します。 今回は、アジャイルでもなく、.NETでもなく、なぜが帳票です。
パネルなので、来場者の方と相談会を開催する予定。 アーキテクチャやテストについて、話をしたいと思っています。
http://www.seshop.com/event/dev/2009/timetable/#2
2009年1月21日
#
PowerShellで引数を処理する場合のサンプル。 get-variable 、set-variable の使用がポイントです。 注意1:PowerShell間でしか、引数が処理できていない。 注意2:$(A)のような引数は処理できません。
############################################################################## ## param
param ( # Path, IncludeFiles, ExcludeFiles [String]$Path, [Object[]]$IncludeFiles, [Object[]]$ExcludeFiles )
############################################################################## ## Main
function Main {
InitOption Path "" InitOption IncludeFiles @() InitOption ExcludeFiles @()
Test }
############################################################################## ## オプションの初期化 コマンドラインが優先 ない場合は、config file or default
function InitOption($_name_, $_default_ = $null) {
$_v_ = get-variable -scope script -name $_name_ -value
if (-not $_v_) { $_v_ = get-variable -scope local -name $_name_ -value -ea SilentlyContinue if (-not $_v_) { $_v_ = $_default_ } set-variable -scope script -name $_name_ -value $_v_ } }
############################################################################## ## Test -- オプションの表示
function Test { echo "*** TEST ONLY ***" echo "+ Path: $Path" echo "+ IncludeFiles: $IncludeFiles" echo "+ ExcludeFiles: $ExcludeFiles" }
############################################################################## ## 開始ポイント
Main
2009年1月15日
#
VBのコメント以外の行の2008を2009に変更する
検索文字列 ^~('){.*}{2008}{.*}
置換文字列 \12009\3
検索文字列の説明 [^]は先頭 [~]は対象外 {}は、タグ付の正規表現
置換の文字列の説明 [\0]は全体 [\1]は、タグ1 [\2]は、タグ2 [\3]は、タグ3
ケント・ベックの最新刊紹介「実践パターン」のセミナーが開催されます。
最新刊は、実装パターンという名前ですが、 目的は「コードを通して自分の意図を伝える際の手助けになること」 ケント・ベックのコードへの思いが詰まった書籍になっています。
以下、テクノロジックアートさんの案内のメールです
出版にあたりまして、ご紹介セミナーを開催いたします。 クラスの章から * バリューオブジェクト * サブクラス * 条件分岐 * 委譲 状態の章から * 引数 * コレクティングパラメータ * パラメータオブジェクト * 初期化 振る舞いの章から * 反転メッセージ * 説明メッセージ * ガード条件 についてのご紹介を予定しております。 デザインパターンの次は実装パターンを身に付けて、よりアジリティを高めて みませんか?ぜひ、ご参加ください! なお、当日使用しますスライドの配布は行いません。 必要な方は印刷してお持ちくださいますようお願いいたします。 http://www.tech-arts.co.jp/news-and-topics/events/20090114.html -----------------------------------
タイトル:ケント・ベック著「実装パターン」ご紹介セミナー 開 催 日:2009年1月21日(水) 開 催 時 間:18時30分からおよそ1時間の予定(受付18時開始)
会 場:文京区区民センター 東京都文京区本郷4-15-14 都営大江戸線 春日駅 徒歩3分 東京メトロ 後楽園駅 徒歩5分
対 象 者:開発担当者・管理者の方
定 員:250名 内 容:18:00-受付開始 18:30-セミナー開始
主 催:株式会社テクノロジックアート
メディア共催:ピアソン・エデュケーションジャパン http://www.pej-hed.jp/
後 援:日本XPユーザグループ http://xpjug.s270.xrea.com/
参 加 費 用:無料
お申し込み:セミナー詳細は 株式会社テクノロジックアートの下記URLをご覧ください。 http://www.tech-arts.co.jp/news-and-topics/events/20090114.html
2008年12月19日
#
知り合いのオージスの山野さんが翻訳に係わった、ThoughtWorks関連の本が出版 されます。 #12月27日発売で、現在は予約受付中
内容は、エッセイで、以下の内容を扱っているようです。まだ、手元にないの で、詳細な内容は分かりませんが、項目だけでも、興味深いものが並んでます。
DSL プログラミング言語 多言語プログラミング オブジェクト指向設計 マネージメント メトリクス SOA ドメインアノテーション ビルド デプロイ テスト アマゾンのページは、以下のとおり。 #ページというより、これって、RESTですね。
http://www.amazon.co.jp/dp/487311389X
2008年12月3日
#
インフラジスティックスさんがセミナーを開催されるということなので、紹介させていただきます。 無料のセミナーです。
セミナーの案内文
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■参加費無料 インフラジスティックスDeveloper Days4 東名阪にて12月開催!■ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
インフラジスティックスではこの度、好評を博しております弊社セミナーの第四弾と なります「Developer Days 4」を12月9日~11日の3日間開催いたします。
今大きな注目を集めているSilverlight2、更にはUIスタイリング、SharePoint や Dynamic Dataとの連携など様々な角度からリッチアプリケーション開発実現に対して アプローチしていきます。 特に、Silverlight2 に関してはアメリカ本社(Infragistics Inc.)よりテクニカルエバンジェ リストを迎え、Data Visualization (=データ視覚化)をメインテーマにお話させて頂きます。
前回の第3回は、東京・大阪の2会場にて開催。総勢100名以上の方にご登録・ ご参加いただきましたことを受けて、今回は規模を拡大して東京・名古屋・大阪と 3都市での開催となりますので奮ってご参加下さい。
お申し込み及びイベント詳細:下記のURLよりお申し込みが可能です http://jp.infragistics.com/events/IGdeveloperdays/2008december.aspx ***全会場の参加費は無料です。***
|