Team Foundation Server 2010を試用版で使ってみた

関係ないですが、東京ゲームショー2011に行ってきました。

どこも1時間〜2時間以上待たないと体験できないようなので、綺麗なお姉さんの写真ばっか撮ってましたw

個人的にBASARAは欲しい。
モンハン3Gは、3DSじゃなかったら欲しいかな。
ワンピ無双が意外と面白そうでした。
ニコ・ロビン一騎当千したい(^ω^)

本題に入りま〜す。
Team Foundation Server2010(以下、TFS)を試用版で使ってみようと思います。

当然、バージョン管理は出来ます。
基本的にVSSで管理出来たものは、TFSでも同様に出来るかと。

あとは、自動ビルド、プロジェクト管理、テスト管理など、大小様々な機能があるらしいです。

テストケースとテスト結果を管理するには、TFSに加えて、Visual Studio 2010 Ultimateに含まれるTest Managerが必要だった気がします。

テスト環境の管理には、Windows Server 2008以降に用意されたHyper-Vが必要らしく、なんや色々お金がかかりそうw

一通り、TFSの環境揃えるには、社内稟議を通さないといけない感じですね。

とりあえず、自宅のWindows 7にインストールしてみます。

http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&FamilyID=2b1504e6-0bf1-46da-be0e-85cc792c6b9d

↑からファイルをダウンロードします。
指示に従っていけば、難なくインストール出来ます。

TFSの設定は管理コンソールから行えます。

VS2010のソース管理のプラグインとしてTFSを設定すれば、ソリューションエクスプローラから簡単に追加することが出来ます。

チェックイン時のポリシーも設定出来るらしく、
例えば、前回ビルドが通っていないとチェックインさせないだの、
コード分析の結果、チェックイン出来ないなどの、
ポリシー設定も出来るようです。

コード分析はFxCopを使っていたんですが、なかなか満足いく分析結果は得られませんでしたw

テストが正常に実行出来ない場合もチェックインさせないように出来るんですが、
こちらはNUnitと連携とか出来るのかなぁ?

個人的な感想としては、
Visual Studio 2010との親和性を求めるならTFS2010を使うのもありだけど、
小規模の開発であれば、Jenkinsとかで何とか代用出来そうな気もしないでもない。

MSが「VS2010 + TFS2010」の開発環境を提供しているので、
そろそろ「テストを書かない」ディベロッパーは肩身が狭くなってくるんじゃないかな。

一人が稼ぐお金

あるブログで書いてあったのですが、2010年度のグリーの社員一人あたりの営業利益を計算すると、なんと1億1千万円にもなるそうです。びっくり。


利益率50%をこえているようで驚いたのですが、Webサービスやパッケージの会社だとあまり珍しいことでは無いのかも。Microsoftクライアントは利益率85%、というのも聞いたことがありますし。
まあ大当たりすれば、という話ですけれども。


一方、一般的な?受託開発では確か利益率の高いものでも20%とかだったような…(ちがってるかも)
これは業界の構造的に当然の結果なのか、それともなかなか予定通りにうまくいってないことなのか


よく開発が予定通り行かなくて大赤字、という話を耳にするので
後者のほうをイメージしてしまうのですが。


ニーズを生み出すのは大変ですが、意外とすでにあるニーズを満たすというほうが
もっと難しいのかもしれませんね。


安定して仕事がもらえるかどうか、などの違いもあるのでしょうが
開発手法とかそんなんはそんなにかわらない?んだよなぁ?


〜参考〜
http://www.sankeibiz.jp/business/news/110809/bsg1108090504007-n1.htm

独自ドメインでブログを始める

LokkaとHerokuでblog.ryog.netを立ててみたので備忘録。
ドメインはお名前.comで取得していたのを使った。
Lokka - CMS for Cloud
Cloud Application Platform | Heroku
ドメイン取るならお名前.com【ドメイン取得は最安値1円~】

続きを読む

『エリック・エバンスのドメイン駆動設計』読書メモー第4章

今回は『エリック・エバンスのドメイン駆動設計』の第4章のメモを紹介する。
出版された4月に比べてDDDの盛り上がりも一段落しているけれども、それは重要度が低くなっていることを意味しない。

今回もメモなので乱筆な部分を多く含んでいると思うので、ツッコミ、質問をもらえると非常にありがたい。

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

第4章の核心は、「ドメイン」を隔離することだ。
作業としてではなくて、プログラムの構造として隔離する。

紹介されているのは、レイヤ化アーキテクチャ、そして、レイヤの種類とアンチパターンとして「スマートUI(ユーザーインターフェース)」だ。

重要なことは、レイヤ化されたアーキテクチャにおいて、
ユーザーインターフェース
・アプリケーション層 
ドメイン層(モデル層)
・インフラストラクチャ層
をわけることであり、ドメイン層にビジネスルールや知識を集中させることだ。

僕の理解では、ドメイン層を分離すること、そして、ドメイン層にビジネスルールや知識を集中させることは、単純に「変化させやすい」ことを目的にしていると思っていた。

ドメイン層を切り出し、ドメイン層にビジネスルールや知識を集中させることは、コードの可読性を上げると共にシステムそのものを理解しやすくなる、という利点がある。

各層の僕の理解は以下のとおり。
ユーザーインターフェース
→ 画面、コントローラー。

・アプリケーション層 
→ アプリケーションを動かすために必要なロジック。外部システムとのインターフェースやアプリケーションの制御を行うロジックがある。

ドメイン層(モデル層)
→ ビジネスロジック、知識をもつ。

・インフラストラクチャ層
→ ORマッパなどの永続化、メッセージ送信など、システムが扱うデータのI/Oの処理そのものを担当。

ちなみにレイヤ化アーキテクチャというのは、下位層にのみ依存するのが正しい姿だ。

上記の場合は、インフラストラクチャ層がひっくりがえってしまったら、最悪UIまで影響をおよぼすことも致し方ないが、UIをいじっただけでドメイン層の設計やコードまで変更になるようではいけない。

4章の後半でアンチパターンとして取り上げられる「スマートUI」では、各層のコードを混ぜて書いてしまうことで、ユーザーインターフェース層を修正、追加すると同時に、ドメイン層のコードが影響をうけてしまう弊害を指摘している。

「スマートUI」はその名前から受ける印象とは逆で、アンチパターンだ。

すべてのコードがつまった画面は賢すぎるために、さまざま弊害を生む。
他のアプリケーションとの統合が困難になり、変更やリファクタリングがやりにくく、なによりも複雑なコードになり理解しづらくなる。

もちろん利点もあるが、それは実際にシステムを作ることに置いては、ほぼ不要な利点なので紹介はしない。

すくなからず、「スマートUI」は現実、多くのプロジェクトで行われている一方で、多くのプロジェクトを苦しめている原因となっているものだ。

では、なぜ選択されてい続けているのか。
紹介しない不要な利点、がまさにそれにあたる。それは、本書で確認されると良いと思う。

また、レイヤ化アーキテクチャとスマートUIとの中間として、トランザクションスクリプト、というアーキテクチャも紹介されている。

トランザクションスクリプトとは、ユーザーインターフェース層は分離するものの、ほかの部分は分離しないような設計だ。
文面からは、トランザクションスクリプトを推奨する意図は感じられなかった。
それはやはり、柔軟性にかけるからだろう

ドメイン駆動設計が目指すものは、複雑さを柔軟性によって攻略することだ。

しかし、ドメイン駆動設計を行いたいなら、ドメインが切りだされているプログラム構造が不可欠だ。

そのため、もしも自分のシステムが複雑だと思うのであれば、スマートUIもトランザクションスクリプトも現実的な選択肢に含まれないはずだ。

ぼくがMacBookAirを選んだわけ

こんばんわ
yutaka_1119です。

ちょうどMacBookAirを購入したのでそのわけでも記載しようかと思います。

ITの勉強会ではほとんどMacというくらいMac率は高いそうです。
まぁ僕も例に漏れずMacBookAirを購入したのですが、
その理由を考えてみようかと思います。

ノートPCに求めるもののひとつとして重量という項目があると思います。
車を用いて通勤していたりすると話は変わるのかもしれませんが、
電車通勤が主な都内勤務だったりすると重量は重要な要素のひとつかと思います。

ここでMacBookAirの重量を見てましょう。

11インチ 1.08 kg
13インチ 1.35 kg

次に私の大学時代の愛器ThinkPad X40の重量を見てみます。
1.26Kg(バッテリー含む)

このだと重量なら、私の場合Windowsになれているのもあって
ThinkPadを選ぶとは思うのですが、
現行のThinkPadの重量を見てましょう。

ThinkPad X121e 11.6インチ 約1.4 kg
ThinkPad X1 13.3インチ 1.69kg
ThinkPad X220 X220i 12.5インチ 1.46kg

となっております。

X220の一番安いモデルだと102,900円で、
同スペック帯のMacBook Air 13インチ 128Gモデルだと110,800円になるので
この段階ではThinkPadに軍配が上がるようにも見えます。
しかし、MacBookAirはディスクがSSD 搭載メモリが4Gのため
ThinkPadに同等のスペックを求めると勝敗は逆転してしまいます。

こうなるとThinkPadは太刀打ちできそうにありません。
ほかのメーカーのPCでも太刀打ちできるPCがあるかを調べてみますが、
太刀打ちで競うなのはVaio Zの旧モデル?くらいで勝負になっているとは
思えない状態なのが正直なところです。

上記が長年Windows使いだった私がMacを使うに至った経緯になります。

とはいってもBoot Campあるし最悪Macが使うのが慣れなかったら
Windowsに逃げれるしなぁと思っていたりするのは秘密だったりしますw

IT系の勉強会

kokmtです。

protectedなインスタンス変数はアリかナシかという話を
書こうかと思いましたが、別の機会にします。

今年に入って勉強会に参加するようになりました。

IT業界は会社の垣根を超えて勉強会が多く開かれる、
稀な業界だと思います。
更に言えば、無料のものが非常に多いです。

取り上げられる内容を学びたくて参加するのが一般的だとは思いますが、
僕は勉強会の持つ空気が好きで参加している部分もあります。

皆が、何かしらの問題意識を持ち、
少しでも有益なものを持って帰ろうとしている。
とても前向きな空気です。

職場で人がいがみ合っているのをさんざん見ているからでしょうか、
前向きな空気に触れるととても元気になります。

とにかく、この業界にいるからには一度は参加してもらいたいですね。


勉強会の情報をどこから得るのかと聞かれることが多いですが、
専らTwitterですね。
周りで勉強会に参加したり、開催している人がいれば
その人をフォローするのが早いと思いますが、
いなければ「◯◯ 勉強会」とかでググッて、
開催者の人をフォローすれば自然と情報が入ってくるようになります。