━━・モデリングコンテストの話題と黒帯稽古の話題でいつになく盛り上がっているモデリング道場からのお知らせです。現在すでに、メーリングリス上で公開しているものと応募していただいているもの合わせて、10件近くの作品が公開されています。応募締め切りは来週月曜日です。間に合います!詳細はこちらです。再入門[3]■はじめにここ最近、街を歩くと風邪と花粉症のためか、マスクを着用している人が多い気がします。ご多分にもれず私も先日風邪をひいてしまい、マスク(超立体)をつけて歩く羽目になってしまいました。いつも感じるのは「予防をしっかりしておけば、風邪をひかなくて済んだかもしれないのに」ということです。継続的結合もソフトウェア開発の「予防」のひとつと言えるでしょう。前回は、手動結合と自動結合についての話と、それぞれのメリット/デメリットについて解説しました。数毎の結合指針について紹介します。結合指針とは、前回までの連載で解説した通り、大きくわけて手動結合(マニュアルで実行される)と自動結合(なんらかのトリガーで自動的に実行される)の2種類を指します。■6つの変数と結合指針ソフトウェア開発プロジェクトにはいくつもの変数がありますが、今回はその中の6つに焦点をあててみました。これらの変数はプロジェクトごとに異なります。ある変数に対する結合指針は、他の変数の結合指針と一致するとは限りません。最終的には6つの変数の結果を踏まえた総合的な判断が求められます。以降は個々の変数についての指針について個別に紹介していきます。▲チーム人数1つのチームの人数が少ない(〜8名)の場合には、フィードバックが速く、実行も簡単な手動結合をお勧めします。少人数ならばそれほど発生することはありません。装→コミット→結合)を作り、全体を考慮する視点をも養います。大人数の場合はどうすべきでしょうか。結合の待ち行列が発生してしまうことが予想されます。結合を円滑にすすめるために自動結合を設定して実行することを検討すべきです。合しているような状況になりますので、結合の意味がないと思われるかもしれません。ワークスペース(=実際に開発している環境、ディレクトリ)での結合と、リポジトリに格納されているリソースを使用した結合は結果が異なることがあります(コミット忘れ、環境の相違など)。開発に使用しているワークスペースとは別のディレクトリにリポジトリから取得したリソースを展開して行う結合(=クリーンビルド)を実施することをお勧めします。そのような場合には、結合頻度を上げるために、手動結合、あるいは頻繁な自動結合をおすすめします。全体的にスキルの低いチームの場合には、どうしても結合環境での失敗というケースが発生してしまいがちです。開発当初から問題の早期発見を当見据えておく必要があります。開発スキルが平均的に高い場合には、それほど頻繁な結合をせずとも開発が進むでしょう。定時感覚の自動結合でも十分です。頻度の高い結合がよいのは言うまでもありません。1日1回など)プロジェクトの場合は、必然的に結合頻度が低くなります。結合で定時実行でも十分でしょう。合は、結合頻度も高くしないと、問題の発生源を捉えにくくなります。合や、頻繁な自動結合で対応します。コミット頻度は、本来プロジェクトの開発ポリシーによって決定するものです。頻度が低い場合と同様に考えてよいでしょう。▲プログラミング体制これはソロプログラミングか、ペアプログラミングかという意味です。行し忘れなどの問題が発生しがちです。手動結合による頻繁な結合が有効です。▲規模システムやソフトウェアの規模が大きい場合は、結合自体に多くの時間を費さねばなりません。そのため必然的にそれほど頻繁な結合はできなくなります。なると、自動結合による定時実行に落ち着くでしょう。大なほど、サブシステムやコンポーネントなどの単位に分割されるはずです。遠隔地同士の共同作業を行っている場合は、手動結合はなかなか実施しにくくなります。同じ建物でも、別フロアになってしまうと、感覚的には遠隔地と同様です。このような場合は必然的に自動結合がメインになります。密なコミュニケーションをとっている場合は、声かけによる手動結合も可能になります。行、あるいはHTTPなどでのOneButtonBuildが可能なことが前提となります。今回は6つの変数を基にした結合指針について紹介しました。ここで重要視しておきたい点は「リズム」です。→テスト」のような開発リズムに含めてよいのではと考えています。すると、例え定時実行による結合であっても、自動では開発「リズム」を培うには役不足だと感じてしまうのです。「リズム」はより円滑な行動を促進します。群を、1つの行動セットとして捉えることができます。各変数の値の結果を踏まえて総合的に判断、選択してください。次回からは、実際の結合作業の手順について紹介したいと思います。テスト駆動開発_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。┗【コラム】まちぶせ「テスト駆動開発」で使われる、assert(アサート、表明)という概念を表現するのに、よい日本語(和語)がないか、と思っていた。「まちぶせ」はどうだろう。♪夕暮れの街角、覗いた喫茶店。(この歌にピンとくる人はどれくらい?)そう、「まちぶせ」だ。