コードでも実行してみました。その結果がこちらです。コードの量は右肩上がりに増えています。古いコードは徐々に整理されて少なくなっています。面白いのは、生き延びた古いコードはある程度安定しているためか、削除されることが少なくなってきている一方で、新しく追加されたコードは入れ替わりが激しい傾向が読み取れます。コードの追加と削除が繰り返される、活発なプロジェクトだということがわかります。モジュールごとの半減期さて、せっかくの機会ですから、別の角度からも見てみましょう。主要モジュールの年代ごとのコード比率です。以下のコマンドでえいやっと計算しました。2010年までに実装されたものだということがわかります。程度とコードが入れ替わっていることがわかります。2016年にコミットされたものだということがわかります。1年であちこちに手を入れていったので、その成果がここに現れているということですね。2016年に変更されたものでも、ひときわ目立つものがあります。2016年製のコードです。モジュールに何が起きたのでしょう?種明かしをすると、実はコードの内容は大きく変わっていません。リファクタリングし、いくつかの細かいモジュールに分割する変更です。モジュール化にあたり、インターフェースを定義するなどの多少の調整は行っていますが、これまでのコードからは大きく変化はありません。いう大きな変更はファイルの分割によって発生しているものでした。理解していないだけで、そんなに大きい変更ではなかったんですね。コードの複雑さにあります。よって拡張可能となっているにもかかわらず、その内部は結合度が高く、モジュールの粒度もかなり大きいままです。コアモジュールを整理する動きがあります*1。モジュールはコードベースが巨大で、持っている機能や責任範囲も広く複雑です。etc.などがあります。あきらかに単一責任の原則に反していますし、メンテナンスをしている側からも非常にわかりづらい、魔窟化したモジュールのひとつでした。この魔窟を切り広げるための第一歩として投げ込まれたものです。これはあくまで一歩目でしかありません。構造をシンプルにしていく活動は続きます。ゴールとして、次のようなことを目標にしています。提供する大きなフレームワークの一種です。一方でフレームワーク部分はあまりきれいに整理されておらず、どちらかというとモノリシックな構造でできています。今後はモジュール化をすすめ、フレームワーク部分をより整理したものを目指していきます。セットがみつかっていくでしょう。すべく、こつこつリファクタリングを繰り返しています。次は...?いまはログまわりの改修を進めています。2大モジュールで経由するようにデザインされています。オブジェクトが渡されているなど、無駄に結合度が高い作りになっていました。パッケージで置き換えようとしています。リリースされたら、焼肉おごってください。月別アーカイブはてなブログをはじめよう!tk0miyaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。