bcdice / BCDice

The most popular TRPG dice command engine in Japan
https://bcdice.org
BSD 3-Clause "New" or "Revised" License
138 stars 183 forks source link

camelCaseとsnake_caseの混在 #91

Closed ysakasin closed 2 years ago

ysakasin commented 5 years ago

問題点

Rubyの慣習ではメソッド/変数名にはsnake_caseを用いることになっている。しかし、現状のコードでは、camelCaseとsnake_caseが混在し、大変見辛いことになっている。

Rubyの慣習に全て合わせるのが最もメンテナンス性が上がるが、主要なメソッドの大部分がcamelCaseで命名されているため、全て変更するわけにもいけない。そこで、議論して折衷案的な命名の統一ルールを設けたい

個人的な考え

確定

🤔

要調査

ochaochaocha3 commented 5 years ago

過渡期の状態として、メソッド名はcamelCase、ローカル変数はsnake_caseとするのに賛成いたします。ただし、一部のメソッドの名前がsnake_caseとなっている場合があり(例:BCDice#dice_command)、それは維持せざるを得ないと思います。

privateなメソッドについても、camelCaseの名前としておくのが良いのではないでしょうか。現状では private と明示されている部分が非常に少なく、publicなものとの区別が難しいと考えました。

ochaochaocha3 commented 5 years ago

名前付けのパターンの集計スクリプトを ochaochaocha3/bcdice_naming に作ってみました。集計結果を見ると、やはりcamelCaseが多いですね。

ysakasin commented 5 years ago

集計すごく助かります。

今後の展望として、最終的にメソッド名全てがsnake_caseになるのが良いと思っています。 現在camelCaseなメソッドは少なくともVer2系でそのままにするとしても、新しく作成するメソッドはsnake_caseにするというのもいいかなと思ってきました。

camelCaseからsnake_caseへの移行期ではメソッドエイリアスを活用すればなんとかなる気もするなーとも思ってます。

kumakaba commented 5 years ago

きっかけとなった私のPRについては、「元の書式」を極力保つように書いた結果として混ざってしまったのですが、この件も含め、コーディングスタイルに関しては、コア部分とsrc/diceBot以下の部分を分けて考えたほうがいいと思っています。

コア部分はコーディングスタイルを統一した方がメリットが大きいでしょうが、src/diceBot以下、つまりシステム別ダイスボット部分に必要以上のコーディングスタイルを強いて敷居を上げるのは、システム別ダイスボットだけを寄稿あるいはメンテする人がいることを考えた場合に、ちょっとデメリットの方が大きいかなと、今回スペースやインデントスタイルでrubocopに怒られながら感じました。

ysakasin commented 5 years ago

インデント等の機械的に直せる部分はRubocopが自動でできるので、それをどこかに明記するとして、他のコーディングスタイルはコミッター陣がPull Requestのブランチに関与して適宜直せばいいかなと思ってます。

そもそも、GitHubのPRを出すことがハードル高いので、Pull Requestのガイドラインを書けば、コーディングスタイルに関してはあまり問題ないかなと思います。

ysakasin commented 4 years ago

v3での方針