こんな重箱の隅を突くようなコミットに価値があるのか...?
(最近やっていないのですが)私は競技プログラミングを趣味としており、コード作成・テスト・提出にonline-judge-toolsを利用しています。
そこで、個人的に新機能を作成したいと思いコードを読んでいた所、思う所がありPull Requestを出しApproveを頂きました。
まだmergeされてはいませんが、クリティカルな部分ではないですし、問題はありません。
何のPRを上げたでしょうか?そう、Typoです。
これじゃ、俺...コードやコメントを書けなくなっちまうよ
Typo(タイプミス)はプログラムを書く上で一定の確率で起こり、実行時またはコンパイル時にエラーが引き起こされます。
最近は静的解析ツールなどが優秀なので、キーワードや予約語、変数等のハイライトやインデント等で開発者が間違いに気づきやすくなる環境が整備されています。
しかし、”文字列”の場合はどうでしょうか。
プログラム内に差し込まれたドキュメントやコメント、例外処理時に渡す文字列についてはいつ間違いに気づくのでしょうか。
大体書いていて気づくか、レビュー時に気づくことがほとんどだと思います。今回はPRという形でレビューをしたことになります。
根本的な解決にはなりませんよね?
エラーメッセージやコメントで書かれているドキュメントにあるTypoは、最も動作に影響を及ぼさないTypoの1つだと考えています。
つまり、根本的な解決にならないので見逃されがちです。
ですが、Typo等に気が付きPRを挙げることでいくつかメリットがあります。
- メンテナーが実装したい部分に対して集中することができる
- 皆で作っている感が出る
- より良いメッセージやドキュメントを作成できる
1点目に、中心となる開発者が実装したい目標がある場合、細やかな間違いを一部後回しにして作業を進めることができます。
クリティカルでない限り、「なんか変だな」と思ったら直せばいいのです。
2点目は、「俺だけしか役に立ってない」という気持ちを減らすことができます。
私はOSSコミットはこれが初めてですが、サークル等で資料を作成するとき、担当箇所でないテキスト内にある表現の修正などもやっていました。
これにより、丸投げというより、皆で作っている一体感を生むことができます。
3点目は、文章そのもののクオリティが上がります。
私は英語を母語としておらず外国語が苦手なため、エラーメッセージの読み書きをする場合はDeepLと英和辞典を両脇に置いています。
今回のTypo修正に限らず、外国語でエラーメッセージを書く場合、どうしてもネイティブでは使わない表現を使う場合があります。
その時に、「この表現だと〜という意味で取られかねないので、...という表現に直しといた方がいいと思うよ」等のコメントで救われる場合があります。
このような添削を積み重ねることで、結果として良いドキュメントが生まれます。
このような話は、先日開催されたPHPカンファレンス関西2024でも同じようなことが言われていました。
てきめんさんがスライドを含めて公開してくださっているので、こちらもご覧ください。
支えてくれる人が傍にいればOSSだって成長しますよ、猿渡さん!
長々と書いてしまいましたが、OSSにTypoでもいいからコミットすれば、メンテナーから喜ばれます。
興味を持って新機能を作成したい場合は一旦自分で作り、大本にmergeするかどうかはその場で考えればいいと思います。
要らないと言われたら「いや自分が欲しいのでこれは残しときます」でも最悪良いとも思っています。
おわりに
自分で直せるなと思ったらOSSにコミットしてPRを上げましょう。
(蛇足)見出しはミストさんの語録を参考に作成しています。