2010年06月09日

2010年06月07日

2010年06月06日のつぶやき

craftsmanHiro / craftsman
かっこつけて、システムエンジニアとかいうバズワードで名乗るのは、もうよそう。
プログラマでいいよ。
 at 06/06 21:11

craftsmanHiro / craftsman
【レビュー】PhoneBook POPO and MOMO Ride! Ride! http://bit.ly/bIddGT at 06/06 11:31

craftsmanHiro / ひろし
【レビュー】100万トンのバラバラ http://bit.ly/aaelYI at 06/06 04:22


craftsmanHiro / ひろし
【レビュー】ソフトウェア再利用ガイドブック―アーキテクチャ、プロセス、組織の変革による再利用ビジネス成功への道 http://bit.ly/9Zsf92 at 06/06 02:19

craftsmanHiro / ひろし
ユースケース記述が気になりますか? | http://objectthinking.seesaa.net/article/152183740.html at 06/06 00:27

posted by craftsman at 00:15 | 東京 ☀ | Comment(0) | TrackBack(0) | 発展編

2010年06月06日

2010年06月05日

2009年06月14日

なぜDSLを採用するのか?

DSLとは、Domain-Specific Languageの略です。
ドメイン特化言語、またはドメイン固有言語などと訳されます。
特定の問題領域のみに焦点をあてて設計された言語をさします。
オフィス製品によくあるマクロや、正規表現などがいい例です。

 マクロや正規表現などのように、なにげなくDSLを利用する場面は多いのですが、自分でDSLを設計、実装するとなると、積極的に行われることは少ないようです。
多くの場合、DSLを採用すれば効果的な場面が、見過ごされているのではないでしょうか。
「今こそ、DSLが最適な解だ!」というインスピレーションが生まれないのは、DSLが実際どんなことを解決してくれるのかについて、あまり理解されていないことが原因なのではないかと思います。
そこで、今回は一例として、私が実際にDSLを採用した際の動機について述べてみたいと思います。
続きを読む
posted by craftsman at 05:37 | 東京 ☁ | Comment(0) | TrackBack(0) | 発展編

2007年08月15日

ペアプログラミングを定着させるには

 ペアプログラミングは、よく知られたプラクティスですので、たいていの人は名前くらいは聞いたことがあるのではないでしょうか。
どういうプラクティスなのか簡単に言えば、名前のとおり2人1組のペアでプログラミングするというものです。
アジャイル開発プラクティスのひとつですね。

 ただ、なんのためにわざわざペアを組んでプログラミングするのか、どうやったら効果的に導入することができるのかについては、どうでしょう?
知らない方も、けっこういらっしゃるのではないでしょうか。

 今回は、私がペアプログラミングを現場に導入した経験を振り返って、このあたりのお話をしてみたいと思います。

コンテンツ

  1. 誰が障壁?
  2. なぜイヤなのか?
  3. どうやって克服するか
    1. 品質特性
    2. 品質宣言
    3. コミュニケーション
  4. 開発時間を短縮する
  5. 成功のヒケツ
続きを読む
posted by craftsman at 08:37 | 東京 ☀ | Comment(3) | TrackBack(0) | 発展編

2007年07月28日

is-a関係とhas-a関係: 継承と包含

 あるオブジェクトが、他のオブジェクトを継承しているのか包含しているのか。
一見継承と包含は全く別物ですが、これが意外と判断が難しい場合があります。

 is-a関係、has-a関係という言葉は、そういう場合の判断の指針として使われるものです。

コンテンツ

  1. はじめに
  2. 分類による分析
  3. 分割による分析
  4. 分類法と分割法をオブジェクト指向で表現
  5. 本質はアプローチ
続きを読む
posted by craftsman at 16:26 | 東京 ☀ | Comment(2) | TrackBack(0) | 発展編

2007年07月20日

テスト駆動開発やユニットテストを定着させるには

 ユニットテストやテスト駆動開発(TDD; Test Driven Development)については、メリットや作り方の説明ばかりが先行している気がします。
現場にとって本当に必要なのは、どうやったら開発の現場に定着させることができるのかということではないでしょうか。

 カバレッジだとか、より効果的なテストコードだとかは、ユニットテストが継続的に実施されるようになってからのハナシだと思います。

 私が実際に、開発現場にユニットテストとテスト駆動開発を導入した経験から、この問題を考えてみたいと思います。

コンテンツ

  1. 障壁
  2. ユニットテストしたくなる環境
  3. オススメ
続きを読む
posted by craftsman at 18:40 | 東京 🌁 | Comment(6) | TrackBack(1) | 発展編

2007年07月13日

抽象クラスを継承することとインターフェイスを実装することの違い

 ソフトウェア開発者の方向けに、インターフェイスについての、いい切り口の解説を見つけました。
偏見プログラマの「語り」!というブログのインターフェイスとは何かという記事です。

 このブログでもインターフェイスについての解説をしましたね。
でも、何事においてもそうですが、物事にはいろんな側面があります。
ひとつの話で全ての側面を語るのは、なかなか難しいものです。
だから、いろんな説明を読んでみることをオススメします。

 この記事の説明の結論は、継承はis-a関係*)であるということですね。
そのことを、かみくだいて説明されているわけです。
抽象クラスを継承することとインターフェイスを実装することの違いがわかるのではないでしょうか。


* そういえば、このブログでは「継承はis-a関係である」なんてこと、まだぜんぜんお話ししてませんね。
機会を見て、これについてもお話ししたいと思います。
posted by craftsman at 15:32 | 東京 🌁 | Comment(0) | TrackBack(0) | 発展編

2007年07月07日

抽象化

 私たちの脳は、ごく自然に、意識することなく「抽象化」ということをやってくれてます。
これ、日常生活では全く無意識にやってることなんですが、ソフトウェア開発の世界では、みんながわざわざがんばって習得している、非常に重要な概念の一つです。

 で、ソフトウェア開発者でない方も、私たちが実はこんなことを無意識にやっていたんだということを知ることは、いいことです。
「無意識」というのは、あまり頭がよくないようで、複雑なことになると適用してくれなくなったりします。
なので、複雑な場面になったら、無意識くんがやってくれてたことを、私たちが意識的に適用しなければならなくなるわけです。
そうすることで、無意識くんの力だったものを、いろいろな高度な問題に利用することができるようになります。

コンテンツ

  1. なんだって抽象
  2. ふたたび旅行計画
  3. カプセル化
  4. ソフトウェア開発者の方のための追記
  5. オススメ
続きを読む
posted by craftsman at 22:16 | 東京 🌁 | Comment(0) | TrackBack(0) | 発展編

2007年07月05日

ポリモーフィズムってなんだ?

 ポリモーフィズムというのは、どうもソフトウェア開発者にとっては一つの関門みたいなもののようです。
すごくすごくすごく大事で、これを理解しないとオブジェクト指向の恩恵の大部分を受けられないと言っても過言ではありません。
にもかかわらず、開発者が理解して使いこなせるようになるためには、ある程度の努力と経験が必要になってきます。

 この話題に関しては、ソフトウェア開発と関係のない方のほうが、関門を越えていない開発者よりも、実は理解しやすいかもしれません。
ソフトウェア開発者というのは、どうもいきなりプログラミングに直結して考えてしまいがちで、基本的な考え方がわかってないうちから、いきなり「プログラミング言語ではどう書けばいいのか?」と考え込んでしまいます。
どう書くかよりも、どう考えるのかの方が大事なんです。
考え方が理解できれば、書き方は後からついてきます。

開発者の方は、その順番を間違えないように気をつけて(というか、もう肝に銘じて)読んでみてください。

コンテンツ

  1. 同じようなインターフェイス
  2. 結果は違う
  3. たとえば
  4. オススメ
続きを読む
posted by craftsman at 13:13 | 東京 ☔ | Comment(0) | TrackBack(2) | 発展編

2007年07月04日

インターフェイス

 インターフェイスという言葉をご存知ですか?
ソフトウェア開発に従事する方は、ご存知ですよね。
そうでない方は、言葉は聞いたことあるけれども、意味は知らないという方が多いかもしれませんね。

 でも、実はインターフェイスというのは別にコンピュータやソフトウェアだけにあるものではないのです。
オブジェクト指向を考えていく上で、かなり重要な言葉ですので、カテゴリ発展編の最初は、この話題について考えておきたいと思います。

コンテンツ

  1. インターフェイスって?
  2. たとえばパソコン
  3. 他にもいっぱい
  4. それがどうした?
続きを読む
posted by craftsman at 16:19 | 東京 🌁 | Comment(0) | TrackBack(0) | 発展編
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。