私はどのくらいライブラリをリライトしたか・・・
私のライブラリのdkutilですが、実は5-6年ほどの長い歴史*1があります。
そんなdkutilの歴史を少し紐解いちゃいます。
年表的にはこんな感じです。
- 2002年度 全国高校生プログラミングコンテスト 勃発
その時に作成したプログラムを元に
dKingyoUtilClassおよびdKingyoUtilityが作られる。
- 2003年度 全国高校生プログラミングコンテスト 勃発
dKingyoUtility2が作られる。
- dKingyoUtilClass dkutilに名前変更。
- dKingyo Utility Toolkit Project(現:dKingyo SDK Project)発足
この頃から(http://d.hatena.ne.jp/studiokingyo/)に日記が書かれ始める。
- dkutil 0.x系 コンパイルが必要だった。ライブラリのソースファイルのprefixには必ずdkutilと入れてあった(yaneSDK3rdの影響)
- dkutil_cの開発開始
- 2004年度 全国高校生プログラミングコンテストはU20プログラミングコンテストに名前を変え 勃発
- dkutil 1.x系 boost形式のinclude方式に直した。その時に内部ライブラリ構成を変える。様々なライブラリが導入を検討していた。
- dkutil_cstdをリリース(http://d.hatena.ne.jp/studiokingyo/20050123)
- U20プログラミングコンテスト 2005 勃発 だが日常を優先させるために参戦を辞退
- 現在にいたる
- array_onebyoneで6回のリライト *3
- dkc2Treeで3回のリライト
- Camelliaで4回のリライト
- RLE 5回ほどのリライト(http://d.hatena.ne.jp/studiokingyo/20041224 http://d.hatena.ne.jp/studiokingyo/20041009)
- AVL木で5回のリライト(未だ完成せず・・・)、
- Block sort 数え切れないほどのリライト(ただ、私が間違ってプログラムを組んでいるだけなのだが・・・ しかも未だ納得したものは完成せず・・・)
- snow2.0 3回ほど
- HC256 5回ほど(デバッグ含む)
- Rijndael 捨てたソースを含むと数え切れないほど・・・
- CRC系 C言語によるアルゴリズム辞典の実装を元に数え切れないほど書いた boostのcrc.hppをC言語に移植
- 他にも多数(思い出した時点で追記を予定)
なので、確かに、id:gallu氏からいただいたコメントのように書くだけではなくて今チェックしてみるとかなりのリライトをしています。
デバッグとリファクタリングを混ぜたような作業といいましょうか?
今思い出すと確かに一つ一つのアルゴリズムの資料を集め頑張って書いてきたものばかりだったので
確かに「書いた上で修正したり考察したりして反復して学んできた」ようです。
全く持って無意識でした。私がソフトウェアを組む上での悪癖と思っていた所が意外なところでスキルアップの為の条件と重なっていたのでちょっとラッキーといった感じです。
なぉ、これからdkutil_cのインターフェイス統一化に伴う内部実装の変更がどんどん起こってくるのでまたいろんなテストをしなければならない為、わたしは恵まれているようです^^;;;;。
とりあえずこれに関しては おrz!!!