この記事はPMOB Advent Calendar 2017の2日目の記事です.
最近,scoreboard-in-polygonsを作ったり,cookbook-varnishにプルリクが取り込まれたりした.
その中でOSSのハードルの低さと言うものを実感した.
scoreboard-in-polygonsは画面内に表示されているポリゴンの内部に限定したスコアボードグラフを表示するIITC拡張だが,その実装の為に
- 画面内に表示されている両陣営のスコアをカウンティングする拡張
- リンクの交差判定を表示する拡張
の実装を参考にした.
最初はカウンティングの拡張にポリゴンの内部かどうか判定するコードを差し込めば終わりと思っていたが, コードを読むと計算量の悪いコード,よくわからない変数名,ボイラープレート化したHTML追加部分などがありその改善を行いつつ実装した.
その後確認するとその拡張はプルリクで取り込まれたタイプだったため,本家IITCの実装レベルとは違うとは思うが,当然ながら全体でコードの品質が一定に保たれているわけではないというのを再確認した.
cookbook-varnishの方はプルリクは一行だけの変更だが,今までそのコードを通るケースが無かったため気づかれず放置されていたという理由である.cookbook-varnishを使い始めてすぐに気づいたため,単純なバグでもこのようにすぐ見つかる可能性は十分にある.
これら2つの例から
- 低品質なコードが混じることもある
- 単純なバグもすぐそばに潜んでいる
の2つを肌で実感した.