コーディング規約

このエントリーをはてなブックマークに追加
>>936はC#もろくに知らんやつだからなあ。JavaもHelloWorld止まりだし。
何をしにきたんだろうか。アホさ加減を晒しに来ただけなのか。
>>949
こういう突っ込みどころがあるんだから命名規約以前だろ?
printLine だったら問題ないのか?

PrintWriter
> print(String s)
> 文字列を出力します。
>
> write(String s)
> 文字列を書き込みます。
>>959
> PrintWriter
java.lang.System.out と java.lang.System.err は PrintStream なんですが…
まあ、画一的な使い方しかできないJavaには
writeと言う概念はないだろうね。
>>955
> まあ、画一的な使い方しかできないJavaには
> writeと言う概念はないだろうね。
???

OutputStream には write() があるけど・・・
957デフォルトの名無しさん:03/11/12 04:14
>>954
だれにつっこんでるんだ?
958デフォルトの名無しさん:03/11/12 04:15
>>955
「概念」はないなぁ。
逆に、なんだったらwriteという「概念」があるのかな?
変に美しさにこだわるから自滅するんだよ
960デフォルトの名無しさん:03/11/12 08:41
>>935 そう、それ。

if (isHoge()) return; // これは許す

for (int i = 0; i < array.length) {
 if (isSkip(array[i])) continue; // これも許す
 if (isFound(array[i])) break; // これも許す
 ...;
}

if (isShit()) // よく見たらやれやれ趣味の悪いコードだったな・・・
 abnormal(); // だがそんなことは気にする必要はないか・・・
else     // もっと趣味が悪くなるんだからな・・・
 normal();  // 顔面の形の方が・・・
>>960
一行だったら '{' と '}' つけなくて良いけど、
複数行だったら '{' と '}' つけろってのは見たことある。
>>961 それだ!
改行するなら {
if文のすぐ後ろに {
って言ったらうちの新人が
if {
(hoge<0)
} shori();
とかやりやがってびっくりしたわホンマ

なんでコンパイル通らないんですか?
知るかボケむしろ氏ね
仕事サボって2ちゃんみてんじゃねーぞ
>>963
> if文のすぐ後ろに {
文法的には、if文 って if( condition ) statement だから、
if文のすぐ後ろに { ってのは
 if(hoge<0) hage(); {
とゆー書き方になるよーな…

> 仕事サボって2ちゃんみてんじゃねーぞ
先輩が就業時間中に 2ch に書き込んでるから…
>>938
> >>936
> あんたの頭が古くなっているだけ。
> だいたいそんな物インスタンスにしたって大してメリットはない。
馬鹿か。 .net frameworkのファイルIOがほどんどstaticに
なっているのが多い理由は過去の汚い異物、Win32 APIをそのままラップしている
ことと.netを作った奴がオブジェクト指向に対して鈍感だったか大急ぎで
作った結果がああなったんだぞ。
>>933
そもそもインデントがずれてるだろ?

for( ;; )    (1)
  for( ;; ){  (2)
  }

これだと、おかしい事に気づくだろ?

for( ;; )    (1)
  mona();
  for( ;; ){  (2)
  }
elseを使うifは必ず{ } で囲む、という規則は?

if(a < 0) a = 5;
else a = 10;

となってるときに、条件が追加されたとして
if(a < 0) if(a > -5) a = 5;
else a = 10;
とすると・・・
>>967
a >= 0 の時に a が設定されないだけでは?
>>967
そんな条件の追加の仕方はあり得ないから
「{}は常に付ける」でいいだろ。
コーディング規約の最大のゴールとして
「コード管理上起こりうるリスクを軽減する」
というのがある

この最大のゴールのサブゴールとして
「コードの誤読によるエラーの混入を防ぐ」
というのがある

最大のゴールとは少しずれるが
「コードの可読性を高めることで管理性を高める」
というのがある

という理解をしているのですが・・・。

・・・煽った方がいいですか?
972デフォルトの名無しさん:03/11/13 00:33
理由はないけどあげてみる
C の条件文の記述力は VB より劣ると言う事でよろしいか?
>>967 みたいな書き方してたらそう誤解されても仕方ないな
目的によりifを使い分けると言うのは無しですか。

ブロック節:{}無し
普通の条件分岐:{}アリ

複数行のブロック節が書けないけど……
if なんか使わずに && や || でつなげてしまえ
メソッド名を 述語+目的語 という形にするだけで読みやすくなるんでしょうか。
目的語の選び方を制限した方が読みやすくなるのではないでしょうか。
表現力が落ちるというデメリットはありますが・・・。

#個人的には printLine という命名はかなり気味が悪いと思っているのですが・・・。
978977:03/11/13 02:44
で、目的語の制限の仕方(あるいはその他の方向性を同じくするもの)の例って
ありますか?
博識な皆様の意見をキボンヌです
述語の方も日本人の発想とアメリカの人の発想は違うみたい
make より create
delete より remove
向こうでは「デリを食らった」と言わずに「リムを食らった」というのかな?
発想というかさ、make は「作る」以外の意味に使うことのほうが多いじゃん。
delete と remove も意味が違うだろ。
>>977
>#個人的には printLine という命名はかなり気味が悪いと思っているのですが・・・。
おまいは勘違いしている。printLineはprintlnに関する話題だ。
〜を作る → create〜
〜を削除する → remove〜
とやった方が自然な場合が多いということ

日本人なら
〜を作る → make〜
〜を削除する → delete〜
と命名してしまうことが多いんじゃないの?
作るの逆なら壊すが自然だな
>>983
removeは「取り外す」だろ。
取り外しても、外したものはまだ存在するイメージだ。
List a = new ArrayList();
とあって
Object o = new Object();
a.add(o);
として
a.remove(o);
としても、oの参照してるオブジェクトが破棄されたわけではない。
deleteなら、削除したものは残らないというイメージ。

makeは、すでにある材料を整えて作るというイメージ。
createは、何も無いところから生み出して作るというイメージ。
スレ違いだが、命名は英語で考えろってことだな。
>>965
つーかどの辺がstaticで問題なの?
936といい、.NET知らないやつが勘違いしてぎゃーぎゃーわめいてるようにしか見えないけど。


>>985
俺も make はそんなイメージで使ってるけど、実際には何もないところから生じさせるという意味もあるんだよな。
make は意味が広すぎて、使い分けるなら create<->build だと。
988デフォルトの名無しさん:03/11/13 13:24
よくグローバル変数は使うなということを言われますが、
プログラムの変更を容易にするために冒頭でグローバル変数を用意したり
するのも駄目なんでしょうか?
>>988
変数ならよろしくない。
定数ならよろしい。
>>989
ありがとうございます。
その場合、#defineよりもconstを使った方がよろしいでしょうか?
>>990
もち
>>989
どこかで定数すらグローバルはよろしくないという話を見かけたのですが。
>>992
namespace 使えって話?
1000が近づいてるのにこの落ち着きよう…すごいな

C++なら const が定数として扱われて配列の数を指定するのに使っていいんだね

ところで
const int a = 10;
int b[a];
int *c = &a;
*c = 20;
とかやっちゃえば配列の数変えられる?
>>994
絶対無理
おぉ、マジだ。
型変換さしてやっても、written になりませんでしたってなってエラった
>>992
アプリケーションの属性になるものはグローバルでいいと思うんだけどな。
>>994
ム板は初めてか?ム板では990超えてから止まってるスレもよくある。
>>998
ム板は初めてではないんですけど。
全然きたこと無かったから初めてと同じ感じです。
マ板はまたりで、ム板は結構固いイメージがあるんですけど。。。
違いますか?
次スレ立ててみた
コーディング規約 第2条
http://pc2.2ch.net/test/read.cgi/tech/1068752664/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。