とある勉強会で聞いた話をここに書くことにします
OSSは誰が管理をするか
UnityやWindowsなどの企業が開発しているソフトウェアは誰が管理しているでしょうか?もちろん企業がしています。公式ドキュメントや機能のアップデートなどはその企業が管理をしています。
それでは、OSSは誰が管理をしているでしょう?それはコントリビュータという管理を任された人たちがOSSの機能のアップデートや公式ドキュメントを英語や日本語・中国語といったそれぞれの言葉で書いています。ユーザーが少なくなれば必然的にコントリビュータも少なくなるわけです。どんなに素晴らしいOSSでもコントリビュータが少なくなって、新しい機能が追加されなくなったりバグを直なおらなくなったりしたらそのOSSを使う人はいなくなります。
では私達はOSSを使うときに何をしたら良いでしょうか?それは最新のバージョンを使って、こんな機能がほしいとか、こんなバグが見つかったとか、この関数のドキュメントがしっかりかかれてないなど脳をの意見を言うことです。これらの意見をみてコントリビュータはOSSをきちんと改良することができます。
OSSのバージョンをきちんとした手順で更新しよう
使うOSSのバージョンを変えるのは大変です。何も考えずにアップデートしてしまうと開発に大きな影響を与えてしまいます。今まで使えていた関数が使えなくなったり、速度が何倍も遅くなったりしますね。
例えばpythonの話なんか有名ですが、python2とpython3は使い方が全く異なります。print構文が関数になったりしたので、それに合わせてプログラムを書き直すのは大変ですよね。
では何をしたら最新のバージョンを使いやすくなるでしょうか?そのための手順は以下の3つになります。
1. テストを書く
テストを書くことは開発でとても重要ですね。テストを書くことでどの関数やメソッドなどを変更しなければならないかが簡単にわかります。きちんとテストが書かれていればいるほど、アップ
デートしやすく、開発そのものもしやすくなります。長い間メンテナンスするなら絶対に書きましょう。
2. 問題の抽象化をする
開発をするのにやるべきことはたくさんあると思います。やるべきことが1000個あったらそれらを一つ一つ解決するのは大変ですね。では複数の問題を同時に解決する方法はないでしょうか?その手助けになるのが抽象化です。
この1000この中に根本的な問題が同じものはいくつか存在するはずです。その根本的な問題をみつけるために抽象化をします。
3. アップデートを自動化しよう
使っているOSSをアップデートするために一度アンインストールしてからもう一度インストールするのは大変です。それを避けるためにアップデートを自動化しましょう。