続けるだけでここまで来る
このスクラップではACR(Across Report Renderer)という帳票エンジンについて記載してきた。
そして結論から言うと、半年で全体の約90%まで到達した
帳票エンジンは一見シンプルに見えるが、実際には以下の要素をすべて含む。
• レイアウトエンジン
• 描画エンジン
• フォント処理
• ページング制御
• デザイナ(UI)
• 出力(PDF / PNG)
つまり単なる描画ではなく、複合的なエンジン群で構成されている。
Aiにここでは、仕様・エンジン・デザイナ・検証を含めた工数を整理してもらった。
出てきた工数、なんと23〜40人月規模
■ 仕様策定(3〜5人月)
座標系・単位定義、ページ構造(Header / Detail / Footer)
テキスト仕様(フォント・改行)、JSONテンプレート設計
■ エンジン(コア 8〜14人月)
レイアウト計算、ページング制御、描画(文字・線・画像)
フォント処理、PDF / PNG出力、HTTP対応
■ デザイナ(UI 6〜10人月)
ドラッグ配置、プロパティ編集
プレビュー、保存 / 読込
■ 検証・テスト(6〜10人月)
WYSIWYG一致検証。フォント差異検証
大量データ検証、バグ修正
■ ドキュメント(2〜3人月)
ではなぜ半年で全体の約90%までになったのか、それは以下である。
やったことはシンプルで、
• 毎日触る
• わからない部分を放置しない
• 小さく作って確認する
特別なアルゴリズムもないし、裏技もない。
実際に作ってみると分かるが、これは小さなブラウザエンジンに近い
⸻
一番難しいところ
事実として最も時間がかかるのは、いかに仕様を決定してよほどのことがない限り変更をせずに行うことである。
半年で90%の意味ここで重要なのはスピードではない。
構造が見えたこと
最初はバラバラだったものが、
• レイアウト
• 描画
• ページング
としてつながる瞬間が来る、そしてここから一気に進む。
⸻
これからプログラムを始める人たちへ
エンジニアの皆さんにはぜひ伝えておきたいことがある。今は環境が揃っている、だからこそ言いたい。
途中でやめるのが一番もったいない
帳票エンジンのような周りから見たら地味で、あまり重いテーマでも、
• 毎日やる
• 理解するまで触る
これで必ず形になる。
⸻
面白さは後から来る
最初は正直きつい。でも、ある瞬間から全部つながる。そしてここから急に面白くなることばかりである。
おわりに
ソフトウェアは、 継続でほぼ決まる。これは実際に手を動かして確認した事実である。
ACRはまだ途中だが、ここまでは来た。新しい帳票エンジンの時代が開かれればたいへん幸いである。