2014-08-12

コーディングスタイル論争「カッコを省略するな」が出るたびに思う事

こういう記事が上がって

それへの反応

記事最初のカッコの省略だけど、世界的に評価されて広く使われてるようなプロジェクトコードを見ると、案外{}が省略されていたりしてそんなことは気にしてない。(たとえばlinux, apache, postgresql, mysql, chromium, netbeeans, eclipse, llvm, jruby, android)

で「こんなコードを書くヤツは夜道に気をつけろ」「八つ裂き」みたいな大げさな反応してるのって、どういうコードを書いてるかよく分からないような人たち。

自転車置き場の議論的な、素人でも分かりやすポイントからこのツッコミって人気あるのかね。

―――――↓見てないかもしれないけどブクマとかへの返信を追加―――――

2chあたりでコーディングスタイル議論になったときは、俺様基準じゃなくて実際に成果を出してる人たちが採用してるコーディングスタイル基準にしようぜってことで、誰もが認める成果を出しててソースを見れるオープンソースコードを引き合いに出すことが多いんだけど、そうするとよくある反論が二つある。

みたいなの。

さすがにはてなツイッターじゃ、前者のような「お前は20年前からタイムスリップしてきたのか」みたいな認識の人はいないみたいだけど後者のような人は何人もいるね。

高度なコードを書いてる人とITドカタのコーディングルールは違うってなんなんだろうね。

「高度なコードを書いてる人は低レベルケアレスミスなんてしない、だからカッコを省略しても平気なんだ、レベルの低い連中はケアレスミスをするからカッコが必要なんだ」って認識なのかね。

まあたしかに「viは一晩で書かれた」みたいにハッカーが複雑なコードを一気に書きあげてバグがなかったみたいな伝説ってあるけど、素人じゃないんだからそういうハッカーイメージで高度な人たちをとらえるのはやめよう。

集中力が高度でケアレスミスをしないとか、今どきのソフト開発の「高度」はそういう意味じゃありません。

高度なソフトを開発している人たちは、おおむね読みやすさや保守性にセンシティブです。そのらのSIerなんかに比べたらはるかに。

で、そういう人たちが、カッコを書くか書かないかなんてどうでもいいって認識からカッコを省くコードが書かれてるんです。

ハンガリアン記法コードの質を高めると信じられてたときとか、if (100 == n) のように比較で定数を左にもってくるのが流行ったときも、そういう流儀の人たちは自分らは安全側に倒してるから正義だって信じて主張を全然曲げなかったですね。

むやみに安全側に倒せばプロだとか、コードの質にセンシティブだって思考は恥ずかしいみたいな風潮になればいいのにね。

  • どっちもどっちだか、 まともにコード書いた事ないヤツは黙ってろや! って事だよ。

  • あの なんというか。   >>| if( bool ){ function(); } |<< ってね。 >>| if( bool ) function(); |<< ってかけるんだけど 第3者がデバッグしている時に function();にブレークポイント...

    • そもそも、フォーマッタを統一すればいいだけの話でなんでいちいちデバッガの話とかに発展してんの? 手で文書をフォーマットするとかそれ以前の話だで。

  • 世界的に評価されて広く使われてるようなプロジェクトのコードを見ると、案外{}が省略されていたりしてそんなことは気にしてない その結果バグは出てるし、やっぱ使わないほうが...

    • マジレスすると中カッコが増える度にコードの複雑度は増すから、中カッコが少ないコードの方がバグの少ないコード足りうるぞ。

  • 中括弧は、プログラミングを覚えて1年くらいの段階で絶対に付けるようになって今に至ってる。 ブロック内がシングルステートメントなら無くてもいいんだが、後で処理を追加するの...

    • せやな。「ネストすんな」を言い続けてたらprivate void()でソースを埋め尽くされたこともあるし、もっと大枠で語らないかんな。

  • まあでも、Appleとかでさえこんなミス見逃して出しちゃうくらいだから、 括弧くらいつけとけ、って感じにはなるよね。 https://www.imperialviolet.org/2014/02/22/applebug.html

  • 研究者のコードだったり、世界的に有名なプロジェクトのコードなどは、 コードを書く人のスキルが担保されているから省略を多用してわかりづらくなっても問題が起きにくい。 翻って...

    • あくまでも読みづらかったらという前提だが 優れたプロジェクトほどコミッターに怒られてレジェクト食らうだろ。

    • 研究者のコードだったり、世界的に有名なプロジェクトのコードなどは、 コードを書く人のスキルが担保されているから省略を多用してわかりづらくなっても問題が起きにくい。 い...

    • そうかー。 みんなif文の括弧省略できるならしてるし、俺も好きだけど、コーディング力の質の担保された世界に住んでたんだ俺。 なんかちょっと優越感だな。

  • 典型的なアンチパターンやん if (hoge) fuga(); って書いてオレカコイイ(キリッしたら 後日誰かが if (hoge) fuga(); piyo(); って書き足して涙目になるで。

  • あと、すごい系のエンジニアは、頭の構造が完全に、プログラミング言語とかに最適化されてると思うので、自然言語に近いとか関係なく、逆に自然言語に近いほうが思考を邪魔される可...

  • >どういうコードを書いてるかよく分からないような人たち。 重箱の隅つついて悪いけどちょっと調べりゃgithubのアカウント見つかるよ

  • python ! python !!

  • そういう本質的でないところでつっこんでくるだけでなく あまつさえ八つ裂きとか言い出すひととは一緒に仕事したくないですね 自転車置き場で一生たむろしてて欲しいです

  • こういう事件があったことをもうお忘れかい? ttp://qiita.com/tomohisaota/items/e6995e89b843e1295c08

    • ケアレスミスは、どういうコーディングスタイルでも起きるよ。 問題なのはコーディングスタイルじゃなくて、それがレビューなしでコミットされた開発体制であって 個人の責任じゃな...

      • なるほど、もっともだ しかし、しょうがなく「レビューなしでコミットされた開発体制」を取らざるを得ない場合はどうだ? 人手が足らなくて、時間も無い時。 できればケアレスミス...

  • きちんとしたテストがあれば、どっちでもいいとマジレスするとまずい雰囲気だな、これ。

  • プログラミング作法読みなおしてみた。 K&Rと同じく、基本省略スタイル推奨。 ただ、ifがネストした場合には、elseのぶら下がりがわかりづらくなるから、必ず中括弧書け、とも言って...

    • しかしこういうアホな論争をみるにつけてgit hubなどにも見られるように近年増々顕著になりつつある ”プログラミングの社会化”に 多くのプログラマーがついていけない(特に日本人...

      • コードの美しさについては常に世界中のプログラマの間で話題になってる。 中括弧省略の是非を論じてる人は今でもいっぱいいる。 http://stackoverflow.com/questions/8020228/is-it-ok-if-i-omit-curly-brac...

        • プログラマーならご存知の通りプログラミングは戦争だ。 でも最近あまりにくだらない価値観で戦争している馬鹿が目立つ。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん