アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
ルールを無視したコード (スコア:1)
ルールを無視したコードを書いたプログラマに対する罰則規定を明文化するってのはどうなんでしょう。システム開発において、コーディングに関するルールは社則扱いでも構わない気がするんですよね。ちゃんとしたルールであれば、それに従わないと後で会社に損害をもたらす可能性がある訳ですから。
どうでしょう?
Re:ルールを無視したコード (スコア:0)
ないので質問です。
以前関わってた会社のC言語に関するコーディングルールで
・関数なら関数名にfuncをつける
・プロシージャなら関数名にprocをつける
というものがありました。そもそも関数とプロシージャの
区別さえ曖昧なものなので自分では全く不必要なルール
だと思うのですが、どうでしょうか?
細かいことですが、ずっと気になっているので・・
Re:ルールを無視したコード (スコア:1)
値を返す/返さないで分けているなら、関数プロトタイプ宣言でわかるから無意味。
なにか意味があるにしても、もっとましな命名ルールが考えられるはず。
例えば副作用の有無で分けるなら、「プロシージャにはprocをつけて、
関数にはなにもつけない」のほうがまだまし(たいがいは関数だろうから)。
でもまずは、こんなルールを作った人に聞いてみるのが一番。
どうせろくな理由じゃないとは思うが。
Re:ルールを無視したコード (スコア:0)
そんなことしないで済むための命名規則でしょ。
Re:ルールを無視したコード (スコア:1)
逆に、そんな考え方をしないで済むために、
ctagsやGLOBAL、あるいはVC++でもEclipseでもなんでもいいが、とにかくそういう文明の利器を使って、
その関数の定義を一瞬で見に行けて、しかも一瞬でまたもとの場所に戻る ことが出来る環境を、用意しとくべきです。
#メモ書きのテキストとソースとを、同一のエディタで扱っていると、
#メモ書きから関数名でタグジャンプできるようになるので、なかなか快適です。
#Mail書きながら行って戻ってが出来るんだもんなあ。
なお(GLOBALとかの)HTML出力については、「戻る」機能は、それこそwebブラウザの「戻る」の機能が有効です。
変なブラウザで無い限り、スクロール位置も含めてもとの位置に戻れるでしょうから。
そういやIEって、Ver4だか5だかからは「カーソル位置」まで復帰するようになったんで、だいぶ使いやすくなりました。
あと、そういったタグジャンプに参加することが出来ないようなツールに、
ドキュメントとかいう名目でソースの断片(特に関数名を含む文字列)をコピペすると、
結果的に生産性を損ねますので、控えるのをお勧めします。
いや、つまりMS Officeとかの話なんですが(笑)。
関数名一覧をExcelで作るなんてのは愚の骨頂。わざわざ死んだ情報を作ってどうする?
Re:ルールを無視したコード (スコア:1)
# 全部に procfunc とつければ万事解決ではないか?
-- 哀れな日本人専用(sorry Japanese only) --
Re:ルールを無視したコード (スコア:0)
> ・関数なら関数名にfuncをつける
> ・プロシージャなら関数名にprocをつける
> というものがありました。そもそも関数とプロシージャの
> 区別さえ曖昧なものなので自分では全く不必要なルール
> だと思うのですが、どうでしょうか?
このようなルールがあったもいいんじゃない?
プロシージャってのは、bool型か、void型でコー
Re:ルールを無視したコード (スコア:1)
getterみたいな考え方をするのが良いと思います。
つまり「getXXXX」という関数名にする。
これなら、名前としても「自然」なので。
もし、値が返るかどうかでスッキリ区別できないなら、
proc/funcという区別も同じくらいスッキリしないはずなので、
proc/funcという書き方を導入する価値もまた、無い。
それだけのことです。
>プロシージャってのは、bool型か、void型でコードが長々としたもので、
>関数ってのは、コードがすっきりとしていて値が返ってくるもの。
「コードがすっきり」かどうかで区別するのは、やめたほうがいいと思う。
それは、すっきりしてない関数は、単に全て駆逐するのが正しい道だからです(笑)。存在価値なし。
あー。冗談だと思いたいです。
「すっきり」ってのはつまり、それこそgetterみたいに、
属性みたいなものを単に得るだけ、のものを意図なさってますか?
まあそうだとしたら、それこそsetXXXXって名にすると良さそう。
そんなわけで、
> (char *) funcGetName(int id)
既に「Get」と書いてあるんだから、「func」は蛇足でしかないと俺は思います。
つまり「getName」という名にすればいい。
Re:ルールを無視したコード (スコア:0)
Re:ルールを無視したコード (スコア:0)
# 別の言語の流儀を持ち込んでもロクなことにはならないのにね。
Re:ルールを無視したコード (スコア:0)
Re:ルールを無視したコード (スコア:0)
プロシージャって何ぞや?
値を替えさない関数のことか?
特に返す値が無いと思っても、成功や不成功ぐらいは返した方が良いよ。
コーディングルールの変更を提案してみよう。
もし、提案が無視されたら、そんな会社は見きってしまえ。
Re:ルールを無視したコード (スコア:0)
1箇所から1回しか呼ばれない関数よく作ります。
そういうのは手続きといって良いのでは。
もしくは副作用がメインなのが手続きで値がメインなのが関数とか、副作用の有無で分けてるのかもしれません。>元コメント
Re:ルールを無視したコード (スコア:0)
やっぱり必要性は?、ですね。
みなさんありがとうございました。
Re:ルールを無視したコード (スコア:0)
少なくともルールを決めた人は何らかの必要性を感じてたのでしょうから、それが正しいものかどうかを評価するためには、外野の憶測などは気にせずに大本に確認する必要があるでしょう。