保守性とパフォーマンス

元々サーバ系の開発専門で、完全に趣味だけだったAndroid開発。
私のブログにサーバ系(Java,Perl,DB,Webアプリ)の記事が少ないのは、仕事に絡むだけになかなか書き辛いためだったのだが、最近はAndroidも仕事に入ってきて、ブログ更新しづらくなってきた。

最近多人数のチーム開発で感じるのは、これまでの一人ないしは少人数での開発ではあまり意識しなかった、アプリの保守性とパフォーマンスのトレードオフ
多人数での開発やメンバーの入れ替わりが想定される開発の場合、コードの可読性やメンテナンスのしやすさは重要だ。

まず思いつくのは例えば、Webアプリケーション開発でこれまで定石だったMVC(SmallTalk MVC)やJ2EEMVC2(MVCMVC2とは少々異なるがここでは触れない)デザインパターンAndroidのソースにマップして、ロジック(Model)を再利用できるようにつくり、UI(ViewやContoller)から切り離すことで、保守性・可読性を高くする方法。

かたや、個人的には最重要視したいパフォーマンス。これまでのJavaの定石を用いると、Androidではパフォーマンス劣化をまねくことがあり、保守性とパフォーマンスは実装上相反することが往々にしてある。

妥当なラインでトレードオフをとって、センスの良い設計をすることが、開発初期において大切なことだ。と、当たり前のことを再認識するこのごろである。