Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

提案: C++ コードのスタイルについて #9

Open
0918nobita opened this issue Feb 22, 2021 · 3 comments
Open

提案: C++ コードのスタイルについて #9

0918nobita opened this issue Feb 22, 2021 · 3 comments

Comments

@0918nobita
Copy link
Contributor

0918nobita commented Feb 22, 2021

現状の C++ プログラムの品質を上げるために、Google C++ Style Guide に従って書くのはどうでしょうか?

複数人でコードを管理する場合に、コードのスタイルについて何らかの決まりがないと、各人が毎回どんなスタイルで書いていいかわからず困ってしまうと思われます。余計な変更差分も増えます。

実際に Google C++ Style Guide に従って書けているか、どこが規則に反しているのか調べるツールとして cpplint があり、とても簡単に C++ プログラムの品質を保つことができます。

@iigura
Copy link
Owner

iigura commented Feb 23, 2021

提案ありがとうございます。

確かに enum class まわりは、今回の ver.0.94 のリリースに際し突貫工事的に修正したので酷い状況になっていると思います
(enum のみだと VisualStudio 2019 で大量の警告が出るので、その対応のためです。
 この酷い状況は ver.0.95 のリリース時には修正される予定です)

Google の C++ コーディングスタイルは知りませんでした。
大変勉強になります。ありがとうございます。

ざっと拝見しましたが、多くの部分は私と同様の考えだと感じました。
しかし、賛同できない部分や理解できない部分も一部ありました。

今回の提案の大前提としては、
「Google のコーディングスタイルは良いものである」、
という事があるかと思います。

なので、具体的にどの部分のコードの品質がどのように悪くて、
そしてそれが、Google のコーディングスタイルを適用すると、
どのように改善されるのかを教えていただければ助かります。

コードの品質改善を続けるうちに、結果として、Google のコーディングスタイルと同じとなることは拒絶しません。
しかし、Google のコーディングスタイルを導入することが目的となるのは反対です
(もっと良いコーディングスタイルがあるかもしれません)。

というわけで、enum class 以外の部分で
どのように改善されるのかが知りたいです。

よろしくお願いいたします。

@0918nobita
Copy link
Contributor Author

0918nobita commented Feb 24, 2021

僕の issue の書き方がマズかったです。まず、Google のコーディングスタイルを盲目的に推しているわけではないです。一旦最初に導入してみるコーディングスタイルの一例として Google C++ Style Guide を挙げてみました。

C++ は表現力が高くいろいろな書き方ができるため、今後他人が Paraphrase にコントリビュートする際にコーディングスタイルが全く明文化されていないと、プルリクエストの承認/拒否の決定が過度に属人化してしまい、ソースコードの管理が煩雑になり、ひいてはバグの温床にもなると思います。僕はそういう状態のことを「品質が悪い」と呼んでいます。

個人的にはとにかく何かしらコーディングスタイルが示されていれば良く、「最初にどのコーディングスタイルを導入するか」はあまり問題ではないと思います。最初使っていたコーディングスタイルに問題があるなら、このプロジェクトではどう修正するのかを明文化しておくと良さそうです。プルリクエストの承認/拒否の基準がきちんと示されていると、投げる側もレビューする側も労力を削減でき、ソースコードの品質を一定以上に保つことに繋がります。Google でなくとも LLVM や Mozilla のコーディングスタイルを最初に導入するのもいいと思います。

本来この issue は「コーディングスタイルを明文化してはどうか」というタイトルにすべきでした。言葉足らずですみません。

具体的にどのコーディングスタイルがどう優れているか、という議論は別の issue で進めたいです。

@iigura
Copy link
Owner

iigura commented Feb 24, 2021

コードの品質ではなく、管理の品質についてであること、了解しました。

コーディングスタイルについては、無いよりも有った方が良い、と私も思います。
しかし現状ではそこまで手が回らないのが実情です
(より優先すべき事柄が存在すると感じています)。

もちろん、この言語に興味を持つ人が増え、
結果として多くの方々が開発に参加してくれるような状況になれば、
そんな悠長なことも言ってられなくなると思います。
その場合は、コーディングスタイル整備についての優先度も上がると思います。

とはいえ、現在のところはそのような状況にはありません
(残念ながら。それゆえ 0918nobita さんの存在は大変有り難く感じております)。
しばらくの間は、プルリクを出される場合は現状のコードよりコーディングスタイルを類推していただくしか無いと思います。

どのように書いたら良いのか迷った場合は、こちらで質問していただければ対応したく思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants