2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

コーディング規約 第3条

1 :デフォルトの名無しさん:2007/02/04(日) 23:28:42
カッコの位置や変数名のつけ方から、何で規約なんて決めるのという話まで
コーディング規約・スタイルに関するスレ

前スレ

コーディング規約 第2条
http://pc10.2ch.net/test/read.cgi/tech/1068752664/

2 :デフォルトの名無しさん:2007/02/05(月) 00:24:35
ずるしてらくしてかれいに2げっとかしらかしら〜

3 :デフォルトの名無しさん:2007/02/05(月) 11:52:53
3ゲットですぅ

4 :デフォルトの名無しさん:2007/02/05(月) 13:34:58
for ( int cnt = 3; cnt < EOThread; cnt++ )
{

5 :デフォルトの名無しさん:2007/02/05(月) 16:34:21
break;

6 :デフォルトの名無しさん:2007/02/05(月) 17:10:48
}
printf("%d", cnt);

7 :デフォルトの名無しさん:2007/02/05(月) 17:30:28
printf("監督の背番号は%dです\n", cnt);

8 :デフォルトの名無しさん:2007/02/05(月) 17:54:27
cnt は カントク の略ですか?

9 :デフォルトの名無しさん:2007/02/05(月) 20:05:29
http://pc10.2ch.net/test/read.cgi/tech/1068752664/991

ワロタw

10 :デフォルトの名無しさん:2007/02/05(月) 21:34:46
GNUみたいにスペースとタブを混在したりしなければ何でもいいなあ
てゆーかインデントレベル2でタブ幅8はやめてくださいおながいします

11 :デフォルトの名無しさん:2007/02/05(月) 21:40:30
プロジェクト内で統一されてるならそれで。

12 :デフォルトの名無しさん:2007/02/06(火) 10:47:20
インデント幅とタブ幅は全く別問題だな。
タブ幅は一般的には幅8だが、これはエディタ依存で4に設定してる奴もいるだろう。
インデント幅はあくまでコーディングスタイル。

インデントにタブを使ったり、それどころかスペースと混ぜるなんてアホすぎる。
もっとマトモなエディタ使えよ、と。
俺はEmacs使ってるが・・・Emacs自体はGNUのウンココーディングスタイルで書かれてんだよなぁ。。

13 :デフォルトの名無しさん:2007/02/06(火) 17:35:42
俺はタブを使ってインデントしてるんだが(ハードタブっていうのか?)
こうしておけば各自見やすいタブ幅に設定しておけるしいいんじゃないかと思っている。

14 :デフォルトの名無しさん:2007/02/06(火) 18:23:12
要は
スペース派 == これが俺のインデント幅だ。従え。
タブ派 == インデント幅は各自好きにしろ。

15 :デフォルトの名無しさん:2007/02/06(火) 18:42:19
あとは、さしずめ
混在派: 考えたこともない。
てとこか?



16 :デフォルトの名無しさん:2007/02/06(火) 19:32:25
コピペするからスペースにしとこ派

17 :デフォルトの名無しさん:2007/02/06(火) 19:39:50
VCのデフォルト派

18 :デフォルトの名無しさん:2007/02/06(火) 21:05:15
こういう風に書く人なら、ハードもソフトも関係ないが
 int i;
 char c;
 struct dirent dirs;

こういう風に書く奴が多いじゃん?
 int       i;
 char      c;
 struct dirent dirs;

タブストップの設定が違うと
  int              i;
  char           c;
  struct dirent dirs;


19 :デフォルトの名無しさん:2007/02/06(火) 21:14:59
タブとスペース使い分けたいんだけどね。
>>18 みたいなケースではスペース使って、
インデントにはタブ。
□をタブ、_ をスペースとして、↓みたいに。

□□func(a, b, c,
□□______d, e, f);

20 :デフォルトの名無しさん:2007/02/06(火) 21:58:24
>>19
すこしずれてる

21 :デフォルトの名無しさん:2007/02/06(火) 22:29:53
>>18
俺は

func() {
<TAB>int<SP><SP>i;
<TAB>char<SP>c;
}

みたいにする。
要するに、TABは必ず行頭から連続しているようにする。

言ってることは>>19と同じ罠

22 :デフォルトの名無しさん:2007/02/06(火) 23:12:34
>>18
2番目の書き方は C の構造体のメンバ変数宣言とかでよく見るけど
最高に自己満足な気がする。
後で長い名前の変数作ることになったら
シコシコとスペースなりタブなり追加するんだろうか。

時間の無駄だからさっさとやめろと言いたい。
規約で強制されそうになったら頑として抵抗する。

23 :デフォルトの名無しさん:2007/02/06(火) 23:34:43
へ? 普通そういうのってエディタのマクロでやるでしょ。
プログラマなんだからさ。

24 :デフォルトの名無しさん:2007/02/06(火) 23:46:51
漏れもIDEで変数宣言の部分を範囲選択して整形コマンド一発かとオモタ。
でも簡単にリファクタリングできるからって意味もなくしまくっていいわけでもないだろ。
本質的でない変更がdiffに混ざったりすると混乱する
(リファクタリングだけでちゃんとコミットしてればいいんだが)

25 :デフォルトの名無しさん:2007/02/07(水) 00:52:06
>>24
最近のdiff/merge系のツールは賢いから、
そーゆー本質的でない変更は無視できるように設定できるだろ。

26 :デフォルトの名無しさん:2007/02/07(水) 01:00:41
それよりも。ここで何故
リファクタリング
という言葉が出てくるのかがわからない

27 :デフォルトの名無しさん:2007/02/07(水) 03:21:27
さういうツールがろくに普及してないから
インデントの設定とかが、議論のネタになるんだろw

ソースだけ引き継ぐこともあるしなあ
(完成品だけ引き継いで、バージョンアップしたこともあるがw)

28 :デフォルトの名無しさん:2007/02/07(水) 03:30:31
おまいら、三項演算子をどう思うよ。


29 :デフォルトの名無しさん:2007/02/07(水) 03:38:16
・アホは三項演算子使用禁止(そして、お前はアホだ)

・「( 論理式 ) ? 式1 : 式2」という書き方は禁止
 全体を括弧でくくって、「( 論理式 ? 式1 : 式2 )」と書け

30 :デフォルトの名無しさん:2007/02/07(水) 07:54:28
>>26
リファクタリングを、コードの整形レベルのことだと思ってるってこと
だろう。


31 :デフォルトの名無しさん:2007/02/07(水) 09:22:23
>>28
普通に使うよ。使った方がコードが読みやすくなると思ったら迷わず使う。

32 :デフォルトの名無しさん:2007/02/07(水) 10:09:26
>>29
なんで、三項演算子使っちゃいけないの?

33 :デフォルトの名無しさん:2007/02/07(水) 10:51:29
よく言われるのは、「読みにくいから」かな・・・
まー使ったほうが綺麗に読みやすくなる場合もあると思うんだが、
アホに使用を許すと場をわきまえずバンバン使って、えらく読みにくくなる場合が多い。
どうせ構文砂糖なんだから、禁止しても害は無いので禁止しちまえ、という事らしい。

34 :デフォルトの名無しさん:2007/02/07(水) 10:52:26
はいはい、そうですか。

35 :デフォルトの名無しさん:2007/02/07(水) 12:10:12
ふたこと、言わせててくれ

三項演算子より条件演算子が正しい表現ではないのか
条件演算子はネスト禁止

36 :デフォルトの名無しさん:2007/02/07(水) 12:12:32
なるほど、君が言いたい事はよーくわかったぞ。

37 :デフォルトの名無しさん:2007/02/07(水) 12:37:07
HRESULT hr;
FALSE |
 FAILED(hr = ...) |
 FAILED(hr = ...) |

が30行ぐらい延々とつづくコードをみたことがある。
中で三項演算子もばっちり使ってた。

生暖かく見守ってたらやっぱりメンテで叫んでた。

38 :デフォルトの名無しさん:2007/02/07(水) 12:38:43
うーむ、そうかそうか。

39 :デフォルトの名無しさん:2007/02/07(水) 13:21:16
そう言えば、オープンソースのプロジェクトの規約ってどんなんなってんだ?
規約のリンク集みたいなサイトってある?

40 :デフォルトの名無しさん:2007/02/07(水) 13:25:56
そんなもんあるかボケェ

41 :デフォルトの名無しさん:2007/02/07(水) 13:42:20
オプソだからといって全体がどこかの規約に従ってるわけじゃなく
プロジェクトごとに定めているのがふつーだわな。

Linux kernel coding style(ソースツリーにも入ってる)
http://pantransit.reptiles.org/prog/CodingStyle.html
1インデント幅が8スペース分のTAB。

GNU Coding Standards
http://www.gnu.org/prep/standards/standards.html
変態的な{}の使い方が特徴。

Code Conventions for the Java Programming Languag
http://java.sun.com/docs/codeconv/
オプソじゃないけどJavaでは有名。

Mozilla Coding Style Guide
http://www.mozilla.org/hacking/mozilla-style-guide.html
いろいろC++の機能の利用を制限しているのがつらそう。

ぐぐるとjakartaのとかもあるな。


42 :デフォルトの名無しさん:2007/02/07(水) 16:35:13
GNUキモいな

43 :デフォルトの名無しさん:2007/02/07(水) 17:18:07
>>42
gccとemacsの世話になりっぱなしだが、あれだけはイヤ。


44 :デフォルトの名無しさん:2007/02/07(水) 18:07:33
あの規約のおかげで、コードが流用されたときに
出所がすぐ分かるとかw

ねーか、キモいからか書き換えられる悪寒

45 :デフォルトの名無しさん:2007/02/07(水) 20:07:06
>41
おー、こんなの読みたかった、thx
しかしGNUのブレースの書き方…w

Mozilla は和訳もあるみたいね。
ttp://www.mozilla-japan.org/hacking/mozilla-style-guide.html


46 :デフォルトの名無しさん:2007/02/07(水) 22:27:45
>>13
> 俺はタブを使ってインデントしてるんだが(ハードタブっていうのか?)
> こうしておけば各自見やすいタブ幅に設定しておけるしいいんじゃないかと思っている。
>>14
> タブ派 == インデント幅は各自好きにしろ。

  char *hoge = {"hoge", "piyo",
         "fuga"};

  if (hoge ||
    piyo)

  function(arg1,
      arg2);

行頭だけタブ使っていても、一行が長くなる時には改行入れるでしょ。
その時にどうしてもタブとスペースが混ざったり、混ざらない場合でも
人によっては見苦しい汚いコードになるわけだ。

他人に公開するソースにはタブなんて使うもんじゃないよ。

Tabs are evil
http://www.google.com/search?q=%22Tabs+are+evil%22&hl=en&ie=utf-8&oe=utf-8


47 :デフォルトの名無しさん:2007/02/07(水) 22:53:35
じゃあ
http://www.jwz.org/doc/tabs-vs-spaces.html
は?

48 :デフォルトの名無しさん:2007/02/07(水) 23:13:59
TABな人です。

継続行は元の行より1レベル余計にインデントするだけで、
位置あわせは全くやりませんね。


49 :デフォルトの名無しさん:2007/02/08(木) 00:23:01
>>28
ローカル変数を const にしたいときに使うので良く使う。
こういうときに匿名関数とか欲しくなる。

50 :デフォルトの名無しさん:2007/02/08(木) 02:47:20
なんで人間がソースコードを整形するんだよ。

インデントなんか何だっていいんだよ、
チェックインする前に自動整形かければ済むことだ。

人様のコードを読む時も、自動整形かければ済むことだ。



まぁ、インデントがスペースだと文句を言う人は、
キーボードの→を押して、ぼーっと画面を眺めるような間抜けだろう。

51 :デフォルトの名無しさん:2007/02/08(木) 06:34:06
そうかそうか、よーくわかったぞ。

52 :デフォルトの名無しさん:2007/02/08(木) 14:08:08
>>50
なんで人間がソースコードを整形しないんだよ。

インデントって重要なんだよ、
チェックインする前には、必ず手作業で整形する習慣をつけるべき。

人様のコードを読む時に、自動整形するなんて言語道断。



まぁ、自動整形がいいんだと文句を言う人は、
世の中には例外というものがあって、自動整形することで
醜くなるソースコードがあることすら理解できない間抜けだろう。

53 :デフォルトの名無しさん:2007/02/08(木) 16:30:10
なるほど、そうかそうか。

54 :デフォルトの名無しさん:2007/02/08(木) 21:57:34
>>52
一本とれてよかったね。

55 :デフォルトの名無しさん:2007/02/09(金) 04:31:13
なんか、ソースが世代ごとに、違う整形ツールで整形を受けていって、
しまいにゃあ、いろんなところが崩壊して行きそう
マイケルジャクソンみたいに

56 :デフォルトの名無しさん:2007/02/09(金) 07:26:37
・使う整形ツールを規約で規定する
・ツール側の非互換な変更に備えて、バージョンまで指定する
・ツールを変更した場合、そのツールで全ソースを整形し直す

くらいで解決できそう。

57 :デフォルトの名無しさん:2007/02/09(金) 15:12:40
>>46
その例だと、こうする。TABの幅が変わってもずれない。(可変幅fontな奴はさすがにいないだろう)
<TAB>char *hoge = {"hoge", "piyo",
<TAB>         "fuga"}; // TABのあとに14文字スペース。前の行のcharのc前までがTAB


まあ個人的なコードで他人関係ないならこう書くけど
<TAB>char *hoge = {
<TAB><TAB>"hoge",
<TAB><TAB>"piyo",
<TAB><TAB>"fuga",
<TAB>};

58 :デフォルトの名無しさん:2007/02/09(金) 16:13:50
>>57
等幅フォントという前提自体が美しくない。
まぁ、>57の前者程度であれば空白が詰まろうとたいした問題ではないが。
駄菓子菓子、パラメータや型名の後を揃えたがるのはどうにもこうにも美しくない。
Ex.
sumType_t funcName(
int          foo, /* この行にfooとbarをそろえるための空白を入れている */
const char * bar
)
{


59 :デフォルトの名無しさん:2007/02/09(金) 20:07:14
プロポーショナルフォントなど使うスットコドッコイは逝ってしまえ的な

60 :デフォルトの名無しさん:2007/02/09(金) 20:57:01
>>59
現にここに貼ってもプロポーショナルフォントで見る羽目になるわけで。

61 :デフォルトの名無しさん:2007/02/10(土) 02:21:33
そういえばプロポーショナルなフォントでソースコード書かないね。
ハードウェア・ソフトウェアとも、十分プロポーショナルフォントで行ける環境はあるのに。

メールなんか、Outlook Expressやらのせいで、どちらかというと等幅の方が劣勢だよね。


62 :デフォルトの名無しさん:2007/02/10(土) 02:22:05
フォント自体は等幅なのだが、
キーワードが太字になったり斜体になったりして
結局揃わない罠。

63 :デフォルトの名無しさん:2007/02/10(土) 02:25:49
>>61
フォント変えられるエディタで好きに書けよ

64 :デフォルトの名無しさん:2007/02/10(土) 03:04:12
double mat[9] = {
   1.0,  10,0, 100.0,
 125.0,   1.0, 12.4,
  45.0, 1250.0, 25.0
};

こんな感じのを書くときとか、やっぱ都合が悪いわけで

65 :デフォルトの名無しさん:2007/02/10(土) 12:22:00
>>61
等幅等幅いってんのは日本人だけだろ?

66 :デフォルトの名無しさん:2007/02/10(土) 12:52:45
そりゃそうだろ。アラビア語とか等幅の概念自体ありえないし

67 :デフォルトの名無しさん:2007/02/10(土) 13:01:35
>>64
Tabを使えとあれほど

68 :デフォルトの名無しさん:2007/02/10(土) 13:03:21
手持ちの英語で書かれてる本は、コード部分は等幅クーリエの模様だな。
アラビア語の書籍は持ってないので分からん。

69 :デフォルトの名無しさん:2007/02/10(土) 13:07:45
よく考えたらソースコードにアラビア文字は使わないか。
日本語プログラミング言語が基本的にゲテモノ扱いなのと一緒で

70 :デフォルトの名無しさん:2007/02/10(土) 13:40:11
プロポーショナルフォントでコーディングはないだろ。
むこうでもタイプライタ系の等幅フォントだよな。Courier NewとかConsolasとか。

71 :デフォルトの名無しさん:2007/02/10(土) 13:49:46
Pascalのソースってプロポーショナルで印刷したりしない? Delphiは知らないけど

72 :デフォルトの名無しさん:2007/02/10(土) 14:12:43
ストラウストラップの本のコードは確かプロポーショナルだったような

73 :デフォルトの名無しさん:2007/02/10(土) 14:38:29
プロポーショナルだったら不要な宗教戦争はなかったかもなあ。

74 :デフォルトの名無しさん:2007/02/10(土) 15:34:14
Pascal覚え立ての頃、+=の本をまねしてソースコードを
pretty printすることはあったけど今はやらないなぁ。

だいたいソースコードを印刷すること自体まずやらん。


75 :デフォルトの名無しさん:2007/02/10(土) 16:29:50
COBOLとかRPGとか、桁位置に意味がある言語だとプロポーショナルはつらいなw


76 :デフォルトの名無しさん:2007/02/10(土) 16:30:22
>72
D&Eだっけ?すごく読みにくかった記憶が。

77 :デフォルトの名無しさん:2007/02/10(土) 16:36:58
印刷されているものだと、実際のソースコードではなく、擬似コードっぽいものだと
プロポーショナルで書かれていることもあるみたい。

今見たら、ソフトウェア博物誌とかそうなってた。

78 :デフォルトの名無しさん:2007/02/11(日) 01:28:35
>>74
> だいたいソースコードを印刷すること自体まずやらん。
EclipseからわざわざソースをエクスポートしてDFで差分を表示して
印刷してレビューとかしてます。いやさせられてます。もうアホかと

79 :デフォルトの名無しさん:2007/02/11(日) 02:09:36
>>67
タブじゃ全然無理
場所によって桁数がちがうだろ、よく見ろ

80 :デフォルトの名無しさん:2007/02/15(木) 11:03:40
コードの整形ツールって皆さん何使ってますか?
http://sourceforge.net/projects/gcgreatcode/
これ?

18 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)