それって、後から変更した人が、 st がコード内で既に別の意味で使われていることに気付いていなかったってことだよね。
その状況を改善するのに、略語を避けるのは多少有効かもしれないけれど、本質的な解決方法は「保守するコードは書き換える前にちゃんと読む」って以外ないんじゃなかろうか。略語を避けても「こっちの行で status と呼んでいるものとこっちの行で status と呼んでいるものは全然意味が違う」というような同種の現象は起こりうるわけで。
べつに static 等の英単語を st と略すのが良いとは思わないけど、なんか略語が悪の根源みたいに言われると、それは違うんじゃね、と思った。
開発環境が優秀なので (スコア:5, 興味深い)
30文字ぐらいは全然きになりませんな
変に省略されて意味わからないよりは全然マシ
1行78文字ポリシーを辞めたほうがいいんじゃないですかね
今時固定幅画面でもないでしょうし
Re:開発環境が優秀なので (スコア:5, 興味深い)
名前を省略させないことを優先させて1行78文字ポリシーを捨てたクチです。
しばらくは両立させようとしていましたが、「変数名1->メンバ名 = 変数名2->メソッド(引数1, 引数2);」としただけで78文字を超えたのを見て、78文字ルールは守り切れないと悟りました。
同一関数内でstという省略がstaticとstatisticとstatusの3種類を表している(*)のを見て頭を抱えた経験もあり、ローカル変数なども極力省略は控えるようにしたり、それを布教したりしています。
(*)それぞれ別人が異なる時期にメンテした結果そうなったらしい。
ただ、際限なく長くしても見辛いので、78文字に代わる新たな目安をどうするかに悩んでいます。
今は気分次第で適当に。
巧妙に潜伏したバグは心霊現象と区別が付かない。
Re:開発環境が優秀なので (スコア:3, 興味深い)
自分は最近は 120文字の118文字折り返し(縦は45行)でやっています。
1024x768 なモニタで Teraterm 利用時に 11pt 表示でも 1画面内に収まるというのが理由です。
ノートでのソースの編集は最小限しかしないけど、俯瞰時に折り返しが発生して欲しくないので、
デスクトップよりはノートの現状の制限に合わせています。
Re:開発環境が優秀なので (スコア:2)
それって、後から変更した人が、 st がコード内で既に別の意味で使われていることに気付いていなかったってことだよね。
その状況を改善するのに、略語を避けるのは多少有効かもしれないけれど、本質的な解決方法は「保守するコードは書き換える前にちゃんと読む」って以外ないんじゃなかろうか。略語を避けても「こっちの行で status と呼んでいるものとこっちの行で status と呼んでいるものは全然意味が違う」というような同種の現象は起こりうるわけで。
べつに static 等の英単語を st と略すのが良いとは思わないけど、なんか略語が悪の根源みたいに言われると、それは違うんじゃね、と思った。
Re:開発環境が優秀なので (スコア:1)
> べつに static 等の英単語を st と略すのが良いとは思わないけど、
> なんか略語が悪の根源みたいに言われると、それは違うんじゃね、と思った。
貴方が「良いとは思わない」事からも、略語は悪いと言えるんじゃない?
無論、「悪の根源」じゃないよ。根源は人間でしょ。
貴方の考えによれば「コードを読まずにメンテする人間」。
悪の根源たる「コードを読まずにメンテする人間」が生み出す悪の象徴が略語なんだろ。
Re: (スコア:0)
「保守するコードは書き換える前にちゃんと読まない」のが原因だろうけど、だからといって「ちゃんと読む」とういのは解決法にはならないでしょう。「ちゃんと読まない」人に「ちゃんと読め」といってちゃんと読むようになったら世話ないわけで。
そういう意味でガイドラインとして略語を避けるのは有効かと思いますし、そもそも元記事の方が「略語が悪の根源みたいに」言っているとも思えません。
Re: (スコア:0)
略語は基本的に悪の根源だと思うよ
変数名の長さと一行の長さは一致するとは限らない (スコア:1)
内部構造と命名規則の不整合の方がもっと大きな問題じゃ無いかな?
ま、stだけじゃ何か分からんってのは同意するが、「なんでここにstが出るんだ?」って異様さがすぐに分かる状況じゃないと、その時点でなんか間違ってる気がする。
正しい変数名に、正しい属性を付ければ、無駄に長くしなくても、混同は結構回避できると思うんだが。
あと、明らかな誤用には必ずコンパイルエラーが出る様に型設定するとかの対策も必要かな?
まあ、妥協は必要だけど、1行78文字ポリシーを原則として、長すぎる場合は「何か間違ってないか?」と考える方が良いかも。
省略して無くても、一行が長いって事は情報量が多いって事で、詰め込め過ぎてる可能性が高いかと。
-- Buy It When You Found It --