みるくに関して再考する日々

いま、とある案件で多忙な日々を過ごしている。私はもともと案件の当事者ではなかったが、実援*1という形で、7月下旬から8月初旬にかけて、次第に当事者になり始めていた。それも、10月中旬で終わる。私が担当している箇所の最後の山場である試験*2が10月中旬で終わるからだ。
正直、はじめてのシステム開発ということで、慣れない場面も多かったが、最近は、好きにやらせて貰っている。正直なところ、基盤部分の設計から携わりたかったのが本音だが、事実上の基盤部分と言うところを担当していることもあり、100人近いプロジェクトの中でも仕様・設計・製造・試験・運用まで全てを考えなければならない状態だ*3
さて、この経験を無駄にしたくないという気持ちも込めて、最近、みるくの機能を見直している。もともとみるくは、データフロー処理のみを考えて設計・製造を行っているものだ*4。だけど、ソフトウェアを開発する際は、開発標準、試験、運用まで考慮しなければ、と思い始めた。そこで、みるくについて、機能を見直してみる。
データフローの本質は変えない。だけど、今まで想定していた自由度は減らす。自由度を減らすとガッカリなイメージだが、自由度を上げてもあまり良いことはない。むしろ、自由度を減らしてでも、開発標準を確立・提供し、開発コストを下げることが重要だ。リアルタイムに動作中のアプリケーションを監視する方法の提供や、後からアプリケーションの異常を解析できるようにするための統一的なログの出力方法、開始・停止処理、ドキュメント、統一的なエラー処理の提供などなど。また、これらをチェックシート的に提供することで、プラグインを開発する際の品質のばらつきなどを抑える事もできるようになる。これらの枠組みで開発すれば、みるく自身のバージョンアップと共に、それまで開発されてきたアプリケーションも自動的にバージョンアップできるようにもなる。こう考えると、ある種、みるくはOSや言語、フレームワークに近いものとなるだろう。
これらを提供するため、みるくを4つのパッケージに分割した*5

  • Milk-Core
  • Milk-UI
  • Milk-Extension
  • Milk-Plugins

Milk-Coreは、基本的な制御を提供する。データや制御のフロー、トランザクションなどを管理したりするのがこのあたり。
Milk-UIはGUIベースの開発環境。
Milk-Extensionは、開発を容易にする各種ライブラリなど。このあたりで、ログや運用管理、アノテーションや設定ファイルを利用した便利機能を提供する。
Milk-Pluginsはデフォルトで提供される各種処理の機能。
眠いので、続きはまたこんど。

*1:うちの会社の用語だと思う。どこかのプロジェクトで何らかのプロフェッショナルや人手が必要なときに、それをヘルプする形で人を社内派遣でまかなうような場合、呼ばれる側が実援と呼ばれる

*2:構築システムの外部にあるシステムとの接続試験

*3:こう書くと少し大げさだが、規模の大小はともかく、全てに携わっているのは事実

*4:まだモノはないけど

*5:前にも書いたかも