トップページ⇒tech
158コメント36KB

★★★コーディングマナー★★★

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
コーディングマナーを語りましょうYO!

個人的に("hello world"); → ( "hello world" );のほうが(・∀・)イイ!
0002デフォルトの名無しさんNGNG
キモ
0003デフォルトの名無しさんNGNG
>>1
うわーきもい!
0004デフォルトの名無しさんNGNG
char *p1 = ("hello\n");
char x1[] = {"hello\n"};

char *p2 = ( "hello\n" );
char x2[] = { "hello\n" };

printf("%s", p1);
printf("%s", x1);
printf("%s", p2);
printf("%s", x2);
さて、エラーはどれ?
0005デフォルトの名無しさんNGNG
確かにそういうのは大事ではある罠

ま、1がキモイのは事実として
0006デフォルトの名無しさんNGNG
ぶつぶつ独り言言うな
0007デフォルトの名無しさんNGNG
>>1
じゃあ、それでいいんじゃない。
0008デフォルトの名無しさんNGNG
プロジェクトごと、あるいは会社ごとにコーディングルールは大抵異なっている。
そこに「世界全体の統一ルール」とか作って持ち込んだとしても、結局1ヶ月後には元に戻っている。
従って意味無し。
0009デフォルトの名無しさんNGNG
>>1
むしろ前者のほうがいい
っていうかこのレベルは一致させる必要も感じないが
0010デフォルトの名無しさんNGNG
これがマナーなの?
0011デフォルトの名無しさんNGNG
>>1のようなコーディングが、ルール内に入っている会社ってある?
0012_NGNG
http://homepage.mac.com/hiroyuki44/
00138NGNG
>>11
正直、聞いた事無いよな。
「コメントを付ける付けない」とか「コメントの内容は」とか、「関数名、クラス名」とかの
ルールは良くあると思うが。
0014デフォルトの名無しさんNGNG
>>1
それが、括弧が複数であればわかるがひとつだけの場合はそこまで意識しなくても
ええと思ふ。

//スペースがないと読みづらい。
doMethod( ( 0.65356437664 + 547903984 * t ) * x + ( Math.log(a) - 1.4954 ),
       "Hello, world", "Hello,world" );

//そんなに読みづらくない。
doMethod("Hello, world");

//ちょっと読みづらい。
doMethod("Hello, world","hello, wold");

//少し読みやすくなった。カーニングやフォントの影響によって、
エディタによっては読みにくい。
doMethod("Hello, world", "hello, wold");

//読みやすい。
doMethod( "Hello, world", "hello, wold" );

//カンマの左にスペース入れても可読性は大して変わらない。
doMethod( "Hello, world" , "hello, wold" );

//短い引数に、そこまでしなくてもいい。かえって読みづらい。
doMethod( "Hello, world",
        "hello, wold" );
0015デフォルトの名無しさんNGNG
>>14
>//読みやすい。
>doMethod( "Hello, world", "hello, wold" );
うちは基本的にこれ。
ところで、自動で清書するソフトってないの?
0016デフォルトの名無しさんNGNG
やたらスペースを入れられるのも、ちと困る。
001716NGNG
doMethod(  "Hello, world"  ,  "Hello, world"  ) ;

おかしいな、と思ったら、プロポーショナルフォントだった。
0018デフォルトの名無しさんNGNG
>>17
プロポーショナルなら幅合わせしようということ自体おかしいよな。
0019デフォルトの名無しさんNGNG
list<char>::iterator p; 
    と
list <char> :: iterator p;

どっちがみんな読みやすいかな?
俺は後者の方がいいんだけどなー スペースとり過ぎかな
0020デフォルトの名無しさんNGNG
>>19
あけすぎ
Apple ][のBASICを思い出すな。
0021デフォルトの名無しさんNGNG
ちゃんと中カッコを書いてもらいたい。
if (...)
 ...
  ↓
if (...)
 {
  ...
 }
0022デフォルトの名無しさんNGNG
>>19 俺も読みやすくしたい派なんだけど それはかえって読みづらい罠
list <char>::iterator p; ってしてる。 型はちゃんと確認しときたいもん
0023デフォルトの名無しさんNGNG
>>21 中カッコいらない時は
for ( i = 0; i < n; i++ ) cout << *p;
って横に書いてる  読みにくいかな?
0024デフォルトの名無しさんNGNG
つーか、中カッコいらなくて、かつ後ろが長い時は、いい具合にインデント入れる。

for(i=0;i<n;i++)
  if(i!=a)
    b = c==a?d:e;
  else
    b = a;

...って、ここまで書くと、ウザい?(笑
0025デフォルトの名無しさんNGNG
>>24 いや、普通じゃないかな
if, elseを書く場合はfor文の横に書くよりはそうやって書くほうがいいね
0026デフォルトの名無しさんNGNG
コーディング規約で、{ } がいらないときでも、囲うようにする、
というひとはいるかな?
0027デフォルトの名無しさんNGNG
checkstyle必須のプロジェクトがあった。
バグとかいう前に、まずコンパイルしてもらえない。
0028デフォルトの名無しさんNGNG
>>26
うちはそうなってる。
中身が増減するときに、いちいち気にしなくてすむように、だそうな。
0029デフォルトの名無しさんNGNG
俺は>>24書くならこんな感じ。

for(i=0; i<n; i++) {
  if(i!=a)
    b = (c==a)?d:e;
  else
    b = a;
}
0030デフォルトの名無しさんNGNG
b = n - 1 == a ? a : c == a ? d : e;
0031デフォルトの名無しさんNGNG
>>15
indent
0032デフォルトの名無しさんNGNG
>>28
うちもうちも。
後でメンテするやつがバグらんように...(w

それで、ステップ数がとかほざくような所の仕事はやらん!
0033棄教者 ◆egKIKYO7cg NGNG
>>30神

ただし漏れは凡人なので>>28>>32推奨。
0034デフォルトの名無しさんNGNG
>>30
というか、こういうのが一番困るw
0035デフォルトの名無しさんNGNG
>>30
こういうのは、レビューで抹殺します
動きゃ〜いいってもんじゃない(w
0036デフォルトの名無しさんNGNG
>>30
これは良くやるけど、ifとかforとかは無条件で中カッコつける
0037デフォルトの名無しさんNGNG
>21
1行に書ける時はカッコなし、改行するときはカッコあり、だな。

ただPerlではカッコ必須なので1行で書くときも
if($hoge) { hogehoge; }
となってしまって格好悪い。
#後ろに書けばいいという意見もあるだろうけど、あえて前に書きたいときもあるということで。
0038デフォルトの名無しさんNGNG
>30
3項演算子の中で3項演算子を使うのはちょっと自己満足臭がする。
0039デフォルトの名無しさんNGNG
>>30
そんな書き方、今まで考えたこともありませんでした
ありがとう
0040デフォルトの名無しさんNGNG
artistic style の開発は止まってしまったのだろうか・・・・
0041500NGNG
tempalate<typename _T >
class Hoge
{
public:
_T count;
};//class Hoge

void functionVoid( void ){

}//void functionVoid

void functionHogeHoge(
Hoge& hoge_out,
const Hoge& hoge_ in ) {

}//void functionHogeHoge


俺の場合こんな感じっす。
クラスの場合 { は 同じ行に書かない。なんでだろ?
0042デフォルトの名無しさんNGNG
>>41
> };//class Hoge
> }//void functionVoid
> }//void functionHogeHoge
キモッ
0043デフォルトの名無しさんNGNG
>>41
閉じ括弧の後にコメントつけるのは、
インデントを自動的に正しく整えてくれないタコエディタ使ってた奴だろう。
emacsマンセー!

それと、最初に他の言語を覚えていてCに移った奴に多いような気がする。
厳密に言うと最初に覚えた言語と言うよりは
いわゆる母語(mother tongue)ってやつで、
その人のプログラミング時の思考方法に強く影響を与えている言語。
俺の場合最初に触れた言語はBASICで今はJavaだが、
母語は大学で使ってたCだと思う。

CまたはC++が母語の人間なら、{}の対応は無意識のうちにできることなので、
わざわざコメントつけて注意を引くほどのことではない。だからつけない。

ちなみに俺は今はEclipseマンセー派なので、
コードの整形はEclipse任せです。時々恐ろしいことになるが…
0044デフォルトの名無しさんNGNG
>>38
なんか足が臭そうに見えた
0045デフォルトの名無しさんNGNG
>>43
最初からc++ですが、何か?
つーか、インデントくらいそれってますが何か?

関数の終わりを探すのがたるいときあるんだよな。
だからつけてるだけ。
0046デフォルトの名無しさんNGNG
>それってますが何か?
そろえてますが何か。
004743NGNG
>>45
あー、じゃこっちか。
>インデントを自動的に正しく整えてくれないタコエディタ使ってた奴だろう。
004841NGNG
>>47
いやー、たこエディタはさておき、
画面スクロール2枚分くらいの関数を複数書いてるときに
スクロールグリグリやってるときに、いまどこの関数いじってんだっけ?
ってなったりしないか?

関数の始めに飛ぶショートカットとかつかえばいいだけなのかもしれんが。
あるのか、どうか知らんが。
0049デフォルトの名無しさんNGNG
>>48
41のような数行の対応にまで区別無くコメントつけるのがキモイ。
0050デフォルトの名無しさんNGNG
>>1
コーディング中は放屁しないこと
0051デフォルトの名無しさんNGNG
javaなんだけど
String str = new String("java");
str="hello";
でインスタンス生成の時は=の両端を空けるけど代入のときはくっつける。
このほうが見やすいと感じるのは俺だけか???
0052デフォルトの名無しさんNGNG
>>51
うん
0053デフォルトの名無しさんNGNG
>>51
両方空ける人がかなり多数派と見た。
0054デフォルトの名無しさんNGNG
見にくいよ馬鹿!
0055デフォルトの名無しさんNGNG

     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ <  IDEのコードフォーマッターに任せるので
  =〔~∪ ̄ ̄〕      入力時は入れないでやってる(゜∇゜)/   「ウンマンコ」
  = ◎――◎   
0056デフォルトの名無しさんNGNG
ほとんどの演算子の間に空白は入れない。
俺だけだろうが、間に空白があると読みづらく感じる。

他人のソースを読むとき、無意識のうちに勝手に空白を詰めていって
そいつに怒られた時があった。あわてて元に戻した。
0057デフォルトの名無しさんNGNG
>48
スクロールしないと関数全体が見えないのは不吉な匂いがする。
0058デフォルトの名無しさんNGNG
ああああ、最近は改行の位置で困ることもしばしば。
1行130カラムとか結構あったりする。
0059デフォルトの名無しさんNGNG
最近は画面が広い環境も多いしな
0060デフォルトの名無しさんNGNG
>>58
いまだに、きっちり79桁で改行する人もいるけどな(w
0061デフォルトの名無しさんNGNG
画面は800x600だけど?
0062デフォルトの名無しさんNGNG
800桁600行のディスプレイ
0063棄教者 ◆egKIKYO7cg NGNG
>>62
確かに一画面に収まるけど、人間の目が集中できる範囲はそれほど広くはない。
小説十ページ分を一画面に表示させて、一発で頭の中に入りますか?
0064デフォルトの名無しさんNGNG
こういうのダメでしょうか?
void Func (int x, int y); ←仮引数のカッコの前にスペース
それと
void Func( int x, int y );
どっちが読みやすい?
0065デフォルトの名無しさんNGNG
括弧の内側に空白は格好悪い
0066デフォルトの名無しさんNGNG
保守性が大事だYO!
0067デフォルトの名無しさんNGNG
void Func(int x, int y);
0068デフォルトの名無しさんNGNG
if ( 1 == x ) {.

}

というのは、個人的に嫌い。
0069デフォルトの名無しさんNGNG
>>68 なにが?
0070デフォルトの名無しさんNGNG
65はダジャレ
0071デフォルトの名無しさんNGNG
>>65=>>70
0072デフォルトの名無しさんNGNG
>>69
音読すりゃ分かる。
0073デフォルトの名無しさんNGNG
>>68
コンパイラにも嫌われると思われ。
0074デフォルトの名無しさんNGNG
結局1==xなんて書き方は誰からも嫌われる。
0075デフォルトの名無しさんNGNG
{の後の.。
0076デフォルトの名無しさんNGNG
if( a == b )
{
}
0077デフォルトの名無しさんNGNG
if (a==b){



]
0078デフォルトの名無しさんNGNG
#define begin {
#define end }
0079デフォルトの名無しさんNGNG
if (...
↑
ここスペースあける?MSはあけてるけど...
0080デフォルトの名無しさんNGNG
>>79
あけるなあ。
008165NGNG
>>70
そんなつもりはなかったんだけど、言われてみると確かにだじゃれになっているね。
0082デフォルトの名無しさんNGNG
i=1;
while( i++ < 10 );
printf("あいうえお");
これも間違いやすいが
i=1;
while( i++ < 10 )
{
}
printf("あいうえお");
これも気持ち悪い
0083デフォルトの名無しさんNGNG
>>82
while(i++ < 10) { }
とかするかな。

printf("%s","あいうえお");
0084デフォルトの名無しさんNGNG
>>82
while (i++ < 10) {
 ;
}
とかわざわざ書いてるかなあ。

あとそれとは別に、後置インクリメントはなるべく使わないようにしてるが。
(CならいいけどC++でiがユーザー定義型だとね・・)
0085デフォルトの名無しさんNGNG
昔よく優先順位まちがえた
if (a&0x03==0x01){
が
if ((a&0x03)==0x01){
かと...
0086デフォルトの名無しさんNGNG
>>85
あるある
0087デフォルトの名無しさんNGNG
>>84
while (i++ < 10) {
 continue;
}

とか。
0088デフォルトの名無しさんNGNG
なぜ俺は、
#include_<vector>
#include の後にスペース入れるのに
vectorの前後にスペース入れないのだろう?

結構スペース入れるほうなのに
0089デフォルトの名無しさんNGNG
int*
みたいなことだろ

と適当に嘯いてみるお年頃
0090デフォルトの名無しさんNGNG
>>88
#include_"_vector_"
とは、書かないだろ
0091デフォルトの名無しさんNGNG
>>88
別物になるから。
0092デフォルトの名無しさんNGNG
>>91
#include_<_vector_>

vc6でコンパイルできたよ。
そういうことじゃなくて?
0093デフォルトの名無しさんNGNG
VCが勝手に空白をとっちまってるなだけだろう。むしろそっちの方が変。

$ echo '#include < vector >' > a.cc
$ g++ -c a.cc
a.cc:1:20: vector : そのようなファイルやディレクトリはありません
0094ヽ(´ー`)ノNGNG
while (i++ <10) {
  /* do nothing */
}
…かな。

#include はヘッダのファイル名だからスペースを入れるのはマズい予感。
0095デフォルトの名無しさんNGNG
ところでおまいら、そんなに空ループって頻繁に書いてるんですか?
0096ヽ(´ー`)ノNGNG
基本的に書かない。
ていうか、空ループ使う時って他の書き方で、より分かりやすくできるというのが持論なんだがどうか。
0097デフォルトの名無しさんNGNG
1.5ループのときくらい。
0098デフォルトの名無しさんNGNG
関数/メソッド「呼び出し」だけ括弧の前にスペースなし。
func(1, 2);
なので定義はスペースあり。
void func (int a, int b) { 略 }
しかし宣言が格好つかないのがちとネック(汗
void func (int, int);
0099デフォルトの名無しさんNGNG
変数名の頭に
unsigned long ulHonyarara;
とか付ける?
スコープを表したもの(m_等)は、解析時間が減るといった事例は
聞いたことあるが、型まで明示するのは利点ある?
(HDC hDcのhなどは付けるが...)
0100デフォルトの名無しさんNGNG
>>99
あまりないと思うけど、なれちゃうとやってないのが
変な気になってくる。それだけ。
0101デフォルトの名無しさんNGNG
>>99
メンバとかよく使うものならこうするかな、
typedef unsigned long honyarara_type;
honyarara_type honyarara;

めんどくさいときはてきとー。

型まで明示するとあとで型変えたくなったときに色々めんどくさいんでやめますた。
ハンドルとかコンテナとかポインタとかならつけることもある。

利点はごめんなさい、知りません。
■ このスレッドは過去ログ倉庫に格納されています