2005年のイマジンカップ日本世界大会が終わった後、今後の目標を心に決めました。
1年目(2005) 記録:3次予選進出(ビジュアルゲーミング部門)
出場は叶わなかったけれど、同行することができた
2年目(2006)の目標
非常に刺激的な経験をし、来年も是非とも参加したい。だから・・・
「どんな部門でもいいから、とにかく世界大会出場!」
予選のうちから優勝どうこうはいい。とにかく出場の確率を上げたい。
ちなみに当時「オレ×イマジンカップの3年間(仮題)」として目標を立てた最終年―
3年目(2007)の目標
「昨年よりもより高度な(誰もが実力を認める)部門での出場を狙う。」
挑戦してこそのイマジンカップ。通過が難しくてもトライしてみる。
大会の期間を過ごせることが一番の賞品であることを知っているので、それ以上の高望みはしませんでした。だから出場が決まった時点で「期間を通してどれだけ楽しめ、どんなことを吸収できるか」にしか興味を引いていませんでした。(こういうノリではソフトウェアデザイン部門チームは務まらないなと思いました。傍から見ていて本当によく動いてました。)
プロジェクトホシミ [ビジュアルゲーミング] 部門は人工知能プログラミングのゲームで、バリバリのソフトウェア開発者でもゲーマーでもない(どっちつかずな)オレにぴったりな部門です。この2年のイマジンカップの挑戦の中でこの部門には自分で決めたテーマがありました。
1年目(2005)
.NETやC#という言葉を聞いたことがあるけどよくわからない、そんな状態。
オブジェクト指向には興味あり、でも勉強はしていない、そんな状況。
CからC++をすっ飛ばしてC#へ。
「C#歴0年で優勝を目指す。プログラマ向きという自己分析を証明するために。
初心者が優勝したらスポンサーの某社にとってもC#の言語の秀逸性を示す良い宣伝材料になる。
そんな野望を乗せて。」
2年目(2006)
見当をつけながら手探りで始めた1年目。C#の文法、オブジェクト指向の思想は概ね理解した。
初心者ではなくなり、現在の理解力で再構成し、経験者として堅実に攻める。
「享受したオブジェクト指向の理念を今年の挑戦を通して、更なる理解へとつなげていく。
そしてC#の言語仕様を活かし、自分なりのプログラミングテクニックを磨く。」
1、2年目のテーマは1人でプログラミングする場合についてでした。今回の世界大会という舞台で竹井くんと初めて組んでみて感じたことを、次年度のテーマにしました。
次年度のテーマ それは・・・
ペア・プログラミング
2年目ではオブジェクト指向と並行してオレ流XP(エクストリームプログラミング)というのをやっていました。オレにとってのプロジェクトホシミは実用プログラミングというより実験で、趣味の範囲で、やりたい放題です。(でないと、気長に続けられません。)
そんな中でのリアル・ペア・プログラミング挑戦!それは自分勝手に理想を追い続けた今までのプロジェクトを根本から崩すことになります。
いや、そうではありません。
すべての改良を動機(理想のプログラミングの模索)にすることができると信じています。
今回やってみたいことはたくさんあります。1つは意思疎通の手段の確立です。XMLのコメントをコードに含めてドキュメントを自動生成する手法がありますが、チーム内伝達の方法論についていろいろ模索してみたいです。オレ流の(解釈・再定義の)「コンポーネント」という概念でペア・プログラミングでも効率よく開発していきたいと考えています。
オレ流XP
テストコードではないが、プロジェクトのライフサイクルの中で最後まで存在しないコード(主にクラス)を書く手法。オブジェクト指向には準じなければいけない。特にカプセル化は必須で高次元で達成(公開するプロパティの選定に気をつける)しなければならない。これはクラスの削除や作り替えを意識したコーディング制約である。それを踏まえた上で、XPなので短時間で書いてしまう。手を抜くのはprivateフィールド、メソッドの名前付けくらい。って、初心者には難しいよな・・・。
コンポーネント
「ライブラリ」と言った方が分かりやすいと思う。ちなみにプロジェクトホシミでは外部ライブラリ(dll)の使用は禁止。必ず1つのdllにしないといけない。あと一般的なCコンパイラと違ってソースファイルとコンパイル済みファイルをコンパイルすることはできないようです。http://park16.wakwak.com/~mimi/dotnet/misc/src_dll_to_dll.html