コーディングスタイルにこだわるスレ
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2007/10/28(日) 15:59:01 コーディングスタイルについて熱く語れ
251デフォルトの名無しさん
2009/02/20(金) 00:02:01 継承したときにvirtualつけて使いたいけど、クラス外からは使われたくないものに
だけつけときゃいいのか。
だけつけときゃいいのか。
252デフォルトの名無しさん
2009/02/20(金) 00:02:30 static関数化できるものなら、Utilityクラスとかにして
外に出しちゃうのも良い鴨
外に出しちゃうのも良い鴨
253249
2009/02/20(金) 00:05:44 staticって、クラスのメンバとしてか。。。
勘違いしてた。
勘違いしてた。
254デフォルトの名無しさん
2009/02/20(金) 00:16:57 メンバのstaticではなく実装用の小規模な補助関数ってことで。
255デフォルトの名無しさん
2009/02/20(金) 01:12:07 >>248
.cpp ローカルな関数は static じゃなくて無名名前空間を使う。
private にすべきかどうかはクラスのメンバであるべきかどうかで区別する。
何も考えずに書くと private 関数の宣言をヘッダに書くことになるんで何かおかしな
感覚になるけど、 pimpl とかインターフェース継承とか使って隠せば問題ない。
.cpp ローカルな関数は static じゃなくて無名名前空間を使う。
private にすべきかどうかはクラスのメンバであるべきかどうかで区別する。
何も考えずに書くと private 関数の宣言をヘッダに書くことになるんで何かおかしな
感覚になるけど、 pimpl とかインターフェース継承とか使って隠せば問題ない。
256デフォルトの名無しさん
2009/02/20(金) 01:22:53 なるほどね。いわゆるCのstatic関数ってのは推奨されてないのかな。
そこまで意識して気をつけようとも思わないけど、気が付くと疑問に思う。
そこまで意識して気をつけようとも思わないけど、気が付くと疑問に思う。
257デフォルトの名無しさん
2009/02/20(金) 01:25:22 >>256
関数や変数だけならいいんだけど、 C と違って .cpp ローカルな struct や enum も
グローバルに置いてると定義がかぶってアウトだから、なるべく無名名前空間を使う
癖をつけておいたほうがいいよ。
関数や変数だけならいいんだけど、 C と違って .cpp ローカルな struct や enum も
グローバルに置いてると定義がかぶってアウトだから、なるべく無名名前空間を使う
癖をつけておいたほうがいいよ。
258デフォルトの名無しさん
2009/02/20(金) 12:56:17259デフォルトの名無しさん
2009/02/21(土) 17:20:06 addとappendや、eraseとremoveの使い分けってどうしてる?
260デフォルトの名無しさん
2009/02/21(土) 17:28:41 addは追加、appendは付加。
eraseは消去、removeは除去。ついでに言えばdeleteは削除。
まぁ、それでも巧く決まらないときは既存ライブラリの命名に倣ったりするが。
eraseは消去、removeは除去。ついでに言えばdeleteは削除。
まぁ、それでも巧く決まらないときは既存ライブラリの命名に倣ったりするが。
261デフォルトの名無しさん
2009/02/21(土) 17:48:20 ロングマンで一通り調べてみた
appendは追記みたいな
順序付きリストの末尾に付け加えるということなのか
add⊇append
議論領域をUとすると
remove A from Bの操作の後はA B∧A∈Uだけど
erase A from Bの場合はA B∧A Uとまぁそんな感じ?
delteはcomputer上での操作を強調してあったけど
メモリから消えるって事だからプログラミングっていう議論領域だとeraseに近いのかな?
appendは追記みたいな
順序付きリストの末尾に付け加えるということなのか
add⊇append
議論領域をUとすると
remove A from Bの操作の後はA B∧A∈Uだけど
erase A from Bの場合はA B∧A Uとまぁそんな感じ?
delteはcomputer上での操作を強調してあったけど
メモリから消えるって事だからプログラミングっていう議論領域だとeraseに近いのかな?
262デフォルトの名無しさん
2009/02/21(土) 21:03:27 erase(A) はAによって識別される何かを削除する
delete(A) はAを削除する
remove(A) はAを取り除くが削除されるかどうかは仕様次第
delete(A) はAを削除する
remove(A) はAを取り除くが削除されるかどうかは仕様次第
263デフォルトの名無しさん
2009/02/22(日) 13:37:57 append は後ろに追加するような意味だから
例えば map や set には使えない
でも add なら使えると思う
例えば map や set には使えない
でも add なら使えると思う
264デフォルトの名無しさん
2009/02/22(日) 17:56:13 使われ方みると前 insert,後 appendで対って感じだな
265デフォルトの名無しさん
2009/02/23(月) 13:48:14 ちなみに、先頭に加えるのは prepend っていう。
266デフォルトの名無しさん
2009/02/23(月) 14:29:25 難しく考えないでAddFirst/AddLastでいいと思う
javaや.NETのコレクションではそうなってる
javaや.NETのコレクションではそうなってる
267デフォルトの名無しさん
2009/02/23(月) 16:32:13 似た言葉をニュアンスの違いで使い分けたりするのはやめるべき
268デフォルトの名無しさん
2009/03/21(土) 10:44:11 ははは
269デフォルトの名無しさん
2009/04/17(金) 16:59:50 突然このスレにたどりついた俺は
if(hoge(var) == 0) じゃなくて、絶対 if (0== hoge(var)) 派だ
なぜなら左辺が変数のときに
if(var == 0) じゃなくて、絶対 if (var = 0) と書いてバグらせてしまう
奴がプロジェクトに出るからだ(中々見つけにくいんだな、このバグ)
後、関数の出口の return が必ず末尾の一つだけってプロジェクトに
参加したことがあるけど、処理の条件が変わっても、メモリリークが
出にくい構造になるのは良いと思った
if(hoge(var) == 0) じゃなくて、絶対 if (0== hoge(var)) 派だ
なぜなら左辺が変数のときに
if(var == 0) じゃなくて、絶対 if (var = 0) と書いてバグらせてしまう
奴がプロジェクトに出るからだ(中々見つけにくいんだな、このバグ)
後、関数の出口の return が必ず末尾の一つだけってプロジェクトに
参加したことがあるけど、処理の条件が変わっても、メモリリークが
出にくい構造になるのは良いと思った
270デフォルトの名無しさん
2009/04/17(金) 17:10:55 > 後、関数の出口の return が必ず末尾の一つだけってプロジェクトに
> 参加したことがあるけど、処理の条件が変わっても、メモリリークが
> 出にくい構造になるのは良いと思った
これは結局ケースバイケースで、関数的(副作用がない)なコードが主か、
副作用とかバリバリか、で変わってくるよね。
あと、例外的な場合の処理にgotoを許すか、とか。
> 参加したことがあるけど、処理の条件が変わっても、メモリリークが
> 出にくい構造になるのは良いと思った
これは結局ケースバイケースで、関数的(副作用がない)なコードが主か、
副作用とかバリバリか、で変わってくるよね。
あと、例外的な場合の処理にgotoを許すか、とか。
271デフォルトの名無しさん
2009/04/17(金) 17:44:38 >中々見つけにくいんだな、このバグ
最近のコンパイラなら確実にwarning出すんでそうでも無い
最近のコンパイラなら確実にwarning出すんでそうでも無い
272デフォルトの名無しさん
2009/04/17(金) 22:26:29 ついでに言えば、比較対象が0ではなくて変数だったらやっぱり検出できないから殆ど意味がない。
273デフォルトの名無しさん
2009/04/18(土) 01:02:21 RAII 使え、 const 付けとけ、って話でもあるな。
274デフォルトの名無しさん
2009/08/21(金) 17:39:24 まぁOOPが不可能なプロジェクトなら、そういうリーク対策にも意味はあるかもしれんね
OOPが可能なら、RAII(厳密にはデストラクタによる資源解放)の徹底も可能だよな
OOPが可能なら、RAII(厳密にはデストラクタによる資源解放)の徹底も可能だよな
275デフォルトの名無しさん
2009/08/31(月) 12:09:43 >>269
C/C++で、zeroとの比較をするのであれば、
if (hoge(var) == 0)とぜすに、if (!hoge(var))の方が目的がはっきりする
比較する数値がたまたまzeroであるのなら、数字で比較すべきではない
定数化された変数を用いるか、#defineマクロで名付けられた定数を用いるべきだ
よって条件式に、数字が書き込まれている時点で何かおかしなコードであると思われる
C/C++で、zeroとの比較をするのであれば、
if (hoge(var) == 0)とぜすに、if (!hoge(var))の方が目的がはっきりする
比較する数値がたまたまzeroであるのなら、数字で比較すべきではない
定数化された変数を用いるか、#defineマクロで名付けられた定数を用いるべきだ
よって条件式に、数字が書き込まれている時点で何かおかしなコードであると思われる
276デフォルトの名無しさん
2009/08/31(月) 12:32:58 >>275
しかしstrcmpの時ははゼロを扱っていいと思う。
しかしstrcmpの時ははゼロを扱っていいと思う。
277デフォルトの名無しさん
2009/08/31(月) 12:38:20 おばかのきわみ > #define ZERO 0
278デフォルトの名無しさん
2009/08/31(月) 12:55:27279デフォルトの名無しさん
2009/08/31(月) 13:11:50 >>278
少なくとも俺は今、BASE_CMPナニソレ?(´・ω・`) ってなってるが。
少なくとも俺は今、BASE_CMPナニソレ?(´・ω・`) ってなってるが。
280デフォルトの名無しさん
2009/08/31(月) 13:12:58 >>278
CMP_OBJCTじゃね?
CMP_OBJCTじゃね?
281デフォルトの名無しさん
2009/08/31(月) 13:15:20282デフォルトの名無しさん
2009/08/31(月) 13:22:58 #define STREQ(a, b) !strcmp((a), (b)) みたいなマクロに
283デフォルトの名無しさん
2009/08/31(月) 13:28:21 >>282
それなら辛うじて許せるような気もするが、
strcmpくらいそのまま使えよ、ってのが正直なところ。
strcmp(a, b) < 0 // a < b
strcmp(a, b) > 0 // a > b
strcmp(a, b) == 0 // a == b
という、並べて書いた上での法則がせっかくあるのに。
それなら辛うじて許せるような気もするが、
strcmpくらいそのまま使えよ、ってのが正直なところ。
strcmp(a, b) < 0 // a < b
strcmp(a, b) > 0 // a > b
strcmp(a, b) == 0 // a == b
という、並べて書いた上での法則がせっかくあるのに。
284デフォルトの名無しさん
2009/08/31(月) 18:55:48285デフォルトの名無しさん
2009/08/31(月) 19:01:39286デフォルトの名無しさん
2009/08/31(月) 19:04:58 >>285
意味不明(´・ω・`)
意味不明(´・ω・`)
287デフォルトの名無しさん
2009/08/31(月) 19:25:05 >>275
> if (hoge(var) == 0)とぜすに、if (!hoge(var))の方が目的がはっきりする
そんなバナナ
0との比較なら素直に==0、真偽値としての比較ならそのまま、ってのが普通の感覚だと
思うけどなぁ。まぁ最後は主観だからあれだけど。
0をマクロに入れるなんてのは論外。
> if (hoge(var) == 0)とぜすに、if (!hoge(var))の方が目的がはっきりする
そんなバナナ
0との比較なら素直に==0、真偽値としての比較ならそのまま、ってのが普通の感覚だと
思うけどなぁ。まぁ最後は主観だからあれだけど。
0をマクロに入れるなんてのは論外。
288デフォルトの名無しさん
2009/08/31(月) 19:51:24 NULLの分らんアホばっかだな
289デフォルトの名無しさん
2009/08/31(月) 20:10:03 >>287
0との比較の「0」とは何かという話じゃないの?
0との比較の「0」とは何かという話じゃないの?
290デフォルトの名無しさん
2009/08/31(月) 20:14:06 >>288-289
お前ら二人は一体なにをいってるんだ?
お前ら二人は一体なにをいってるんだ?
291デフォルトの名無しさん
2009/08/31(月) 21:11:58 NULL自体が要らないマクロ
292デフォルトの名無しさん
2009/09/05(土) 23:12:56 初心者なんですが、if (cond == false)って書き方と
if (!cond)ってどちらにすべきですか?
ずっと後者だと思っていたのですが、前者もたまに見かけるので
わからなくなってしまいました。
if (!cond)ってどちらにすべきですか?
ずっと後者だと思っていたのですが、前者もたまに見かけるので
わからなくなってしまいました。
293デフォルトの名無しさん
2009/09/05(土) 23:50:59294デフォルトの名無しさん
2009/09/06(日) 00:27:29 >>293
ありがとうございます。このまま後者の書き方を続けていきます。
ありがとうございます。このまま後者の書き方を続けていきます。
295デフォルトの名無しさん
2009/09/06(日) 10:41:39 その cond の名前が ablable とか enabled なら ! allowed のような書き方が良いだろう。
availability とか visibility とかだと、「可視性ですか?」 じゃ頭弱いみたいだから 「可視性は偽ですか」の方が分かりやすいと思う。
専用に enum 作れという話だけど。
availability とか visibility とかだと、「可視性ですか?」 じゃ頭弱いみたいだから 「可視性は偽ですか」の方が分かりやすいと思う。
専用に enum 作れという話だけど。
296デフォルトの名無しさん
2009/09/11(金) 19:06:43 //これはだめ
hoge(foo,bar);
//これはおk
hoge(foo, bar);
hoge(foo,bar);
//これはおk
hoge(foo, bar);
297デフォルトの名無しさん
2009/09/11(金) 20:49:45298デフォルトの名無しさん
2009/09/11(金) 21:31:02 >297
これ思ったけど、1TBSの方が図2のような間違いは簡単に検出できるような。
(単純に /;\s*{/ で検出できる。オールマンスタイルの場合、ツールによってはマッチしない)
でも個人的にはオールマンスタイルのが好きだけどな。
これ思ったけど、1TBSの方が図2のような間違いは簡単に検出できるような。
(単純に /;\s*{/ で検出できる。オールマンスタイルの場合、ツールによってはマッチしない)
でも個人的にはオールマンスタイルのが好きだけどな。
299デフォルトの名無しさん
2009/09/12(土) 07:31:42 俺は1TBSくらいの黒っぽさが好みだな
もちろん黒すぎるのは辛いけど、オールマンだとちょっと白っぽく感じる
まぁこれはさすがに完全に好みの問題だろうと思うな…
もちろん黒すぎるのは辛いけど、オールマンだとちょっと白っぽく感じる
まぁこれはさすがに完全に好みの問題だろうと思うな…
300デフォルトの名無しさん
2009/09/13(日) 02:47:08 そもそも筆者のコメントを打つ位置が気に入らない。 //行末に書くな
301デフォルトの名無しさん
2009/09/13(日) 03:18:16 俺は//の後にスペースがないのが気に入らない
302デフォルトの名無しさん
2009/09/13(日) 11:47:43 一番のツッコミどころは比較式の左辺に定数だろ。
303デフォルトの名無しさん
2009/09/25(金) 00:36:47 そもそも
if(!x)
とか
if(!(z=x-N))
とかやることが多いから==使わないな。
if(!x)
とか
if(!(z=x-N))
とかやることが多いから==使わないな。
304デフォルトの名無しさん
2009/09/25(金) 07:48:41 条件式に関数呼び出しを書くなってルールもあったな
305デフォルトの名無しさん
2009/09/25(金) 09:26:21 へぇ。どういう理屈でそんなルールが認められるのかさっぱりわからんな。
306デフォルトの名無しさん
2009/09/25(金) 10:21:31 >>305
&& や || のショートカットと関数の副作用の関係
f0() || f1() || …
f0 が成立すると f1 以降が評価されないってのを知らないやつがいるそうだ
なので、こう書かなきゃいけない。とてもうざい。
v0 = f0(); v1 = f1(); …
if (v0 || v1 || …)
&& や || のショートカットと関数の副作用の関係
f0() || f1() || …
f0 が成立すると f1 以降が評価されないってのを知らないやつがいるそうだ
なので、こう書かなきゃいけない。とてもうざい。
v0 = f0(); v1 = f1(); …
if (v0 || v1 || …)
307デフォルトの名無しさん
2009/09/25(金) 10:25:40 >>306
それ、 (s && strlen(s) > MIN) とかいう時はどうすればいいの?
それ、 (s && strlen(s) > MIN) とかいう時はどうすればいいの?
308デフォルトの名無しさん
2009/09/25(金) 10:59:33 int len = -1;
if (!s) {
len = strlen(s);
if (MIN < len) {
...
}
}
if (!s) {
len = strlen(s);
if (MIN < len) {
...
}
}
309デフォルトの名無しさん
2009/09/25(金) 11:00:20 !sじゃなくてsなw 素で間違えた。
310デフォルトの名無しさん
2009/09/25(金) 11:26:08 そんなルールおとなしく守ってるプログラマなんてほんとにいるの?
何なの?ばかなの?しぬの?
何なの?ばかなの?しぬの?
311デフォルトの名無しさん
2009/09/25(金) 12:08:10312デフォルトの名無しさん
2009/09/25(金) 12:10:14 その監査部隊を短絡評価の講習要員にすればいいのに。
313デフォルトの名無しさん
2009/09/26(土) 21:43:06 308の書き方だと、正しく読めない/書けない奴が居るから仕方が無い。
一方、漏れらに308の書き方を強制しても、せいぜい能率が落ちるだけ。
実戦の世界じゃ、手駒の性能を上げるよりは数を増やす方が効果的だしな。
平均能力UPの為に手駒を減らすより、平均能力を下げてでも手駒を増やそうってのは
冷徹ではあるが正しい方策。
一方、漏れらに308の書き方を強制しても、せいぜい能率が落ちるだけ。
実戦の世界じゃ、手駒の性能を上げるよりは数を増やす方が効果的だしな。
平均能力UPの為に手駒を減らすより、平均能力を下げてでも手駒を増やそうってのは
冷徹ではあるが正しい方策。
314デフォルトの名無しさん
2009/09/26(土) 23:32:37 へぼいコーディングルールの話になると、その理論がよくでてくるけど、実際はコーディングルールを
決めてるやつがヘボいだけだろうな。ほとんどの場合。
それに「ヘボいヤツを使うためにヘボいコーディングルールが有効」理論が、本当に正しいかすごい疑問だし。
決めてるやつがヘボいだけだろうな。ほとんどの場合。
それに「ヘボいヤツを使うためにヘボいコーディングルールが有効」理論が、本当に正しいかすごい疑問だし。
315デフォルトの名無しさん
2009/09/26(土) 23:42:03 まぁ俺の持論とは真逆だな
ウンココーダの頭数揃えても、精鋭一人にも劣る
ウンココーダの頭数揃えても、精鋭一人にも劣る
316デフォルトの名無しさん
2009/09/27(日) 09:34:49 > 実戦の世界じゃ、手駒の性能を上げるよりは数を増やす方が効果的だしな。
> 平均能力UPの為に手駒を減らすより、平均能力を下げてでも手駒を増やそうってのは
> 冷徹ではあるが正しい方策。
「人月の神話」に燦然と挑戦しているな。
まぁそのような開発分野もあるんだろう。多分。
> 平均能力UPの為に手駒を減らすより、平均能力を下げてでも手駒を増やそうってのは
> 冷徹ではあるが正しい方策。
「人月の神話」に燦然と挑戦しているな。
まぁそのような開発分野もあるんだろう。多分。
317デフォルトの名無しさん
2009/09/28(月) 09:09:58 「ヘボいヤツを使うためにヘボいコーディングルールが有効」理論は確かに疑問だが、
十分な精鋭を確保できるプロジェクトなんてほとんど無いんだから、大量のヘボが存在
するのは前提だと思う。
加えて上司も無能だと、そのヘボが逐次投入されてチームは恐竜に、プロジェクトは
タールの沼に。
十分な精鋭を確保できるプロジェクトなんてほとんど無いんだから、大量のヘボが存在
するのは前提だと思う。
加えて上司も無能だと、そのヘボが逐次投入されてチームは恐竜に、プロジェクトは
タールの沼に。
318デフォルトの名無しさん
2009/09/29(火) 21:53:42 >316
そうでもないと思うが。
1つのプロジェクトに投入する人員については、「人月の神話」の理論で良いけど、
複数のプロジェクトに人員を配置する場合は、>313の理論の方が適している。
308みないなルールは大規模なプロジェクトほど多く、小規模なプロジェクトほど比較的フリーだろ?
(逆な例もある事は承知している)
そうでもないと思うが。
1つのプロジェクトに投入する人員については、「人月の神話」の理論で良いけど、
複数のプロジェクトに人員を配置する場合は、>313の理論の方が適している。
308みないなルールは大規模なプロジェクトほど多く、小規模なプロジェクトほど比較的フリーだろ?
(逆な例もある事は承知している)
319デフォルトの名無しさん
2009/09/29(火) 21:57:10 短絡評価が分からないだけならまだしも、「教えても理解できない」という人員なんか
さすがに切り捨てても困らないと思うけどな
さすがに切り捨てても困らないと思うけどな
320デフォルトの名無しさん
2009/09/29(火) 22:31:14 簡単なコードを量産するような人海戦術プロジェクトでも、上位の2,3割だけ使って、
のこりはじゃまにならないように遊ばせておいても、あんがい生産性あがるんじゃないかって気もする。
のこりはじゃまにならないように遊ばせておいても、あんがい生産性あがるんじゃないかって気もする。
321デフォルトの名無しさん
2009/09/29(火) 23:13:59322デフォルトの名無しさん
2009/09/30(水) 00:10:59 どうでもいいけどstrlen()が返すのはintじゃなくてsize_tだよ
323デフォルトの名無しさん
2009/10/01(木) 20:40:57 ストレンツォ容赦せん!
324デフォルトの名無しさん
2009/10/11(日) 14:52:50 >>318
つまり、たとえば優秀なプログラマなら3ヶ月で終わる仕事を一年かけて
(原則同じくらいの人数で)やるけど、
同時に抱えられるプロジェクト数を増やして会社としてのスケールメリットを得るって話?
要するに節約できるのは総務だの人事だのの管理コストの話であって
プロジェクトそのものの効率は上がってないと思うが…
つまり、たとえば優秀なプログラマなら3ヶ月で終わる仕事を一年かけて
(原則同じくらいの人数で)やるけど、
同時に抱えられるプロジェクト数を増やして会社としてのスケールメリットを得るって話?
要するに節約できるのは総務だの人事だのの管理コストの話であって
プロジェクトそのものの効率は上がってないと思うが…
325デフォルトの名無しさん
2009/10/12(月) 02:57:19 >324
プロジェクトの効率は上がらなくても、利益は上げられる罠。
場合にもよるが。
下手すりゃ投入人員と期間を増やせばその分儲かる。
糞ルールがまかり通ってる現場って、大体は上がこんな思想で動いてる希ガス。
プロジェクトの効率は上がらなくても、利益は上げられる罠。
場合にもよるが。
下手すりゃ投入人員と期間を増やせばその分儲かる。
糞ルールがまかり通ってる現場って、大体は上がこんな思想で動いてる希ガス。
326デフォルトの名無しさん
2009/10/12(月) 03:57:31 まぁ、その思想を最高だと思って布教しようとしたりしなきゃどうでもいいけどな
327デフォルトの名無しさん
2009/10/17(土) 11:55:45 javaで
public void XXX() throws YYY, ZZZ {
}
のthrows以下が長くなると80桁超えますけど見やすい折り返し方ないですか?
eclipseのデフォルトで整形すると
public void XXX() throws YYY,
ZZZ {
}
とやってくれましたけど見づらいな。
public void XXX() throws YYY, ZZZ {
}
のthrows以下が長くなると80桁超えますけど見やすい折り返し方ないですか?
eclipseのデフォルトで整形すると
public void XXX() throws YYY,
ZZZ {
}
とやってくれましたけど見づらいな。
328デフォルトの名無しさん
2009/10/17(土) 12:44:58329デフォルトの名無しさん
2009/10/18(日) 21:42:59330デフォルトの名無しさん
2009/10/20(火) 11:51:05331デフォルトの名無しさん
2009/10/20(火) 12:09:53 C++ 使っててカンマとか演算子の「前」で折り返して、演算子の類が行頭にくるように
してたんだけど、 Python 使い出したらそうもいかなくなって、今は微妙な気持ちです。
してたんだけど、 Python 使い出したらそうもいかなくなって、今は微妙な気持ちです。
332デフォルトの名無しさん
2009/10/20(火) 12:20:08333デフォルトの名無しさん
2009/10/20(火) 13:57:32 >>331
( ・∀・)人(・∀・ )ナカーマ
.append(foo)
.append(bar)
.toString();
+ fooooooooooooooooooooooo
- (baaaaaaaaaar % baaaaaaaaz);
= {
11111111111
, 2222222222
, 3333333333
}
if (
(cooooooooooooooond)
|| (baaaaaaaar && bazzzzzzzz)
)
文末を見るより、文頭を見るほうが目の動きが少ない。
( ・∀・)人(・∀・ )ナカーマ
.append(foo)
.append(bar)
.toString();
+ fooooooooooooooooooooooo
- (baaaaaaaaaar % baaaaaaaaz);
= {
11111111111
, 2222222222
, 3333333333
}
if (
(cooooooooooooooond)
|| (baaaaaaaar && bazzzzzzzz)
)
文末を見るより、文頭を見るほうが目の動きが少ない。
334デフォルトの名無しさん
2009/10/20(火) 14:05:42 . を先頭にもってくるのは許せるが、 , を先頭にもってくるのが許せないのはなぜだろう。
335デフォルトの名無しさん
2009/10/24(土) 22:25:29 if 〜 else if 〜 else の各節にコメントをつけたいとき、俺はこのように書いているんです。
// こういう場合はこう
if (...)
{
}
// こういう場合はこう
else
{
}
ところが、節を分断するのはよくないと言う人がいるんですね。それはそれで一理あります。
その人はこう書いている。
if (...) // こういう場合はこう
{
}
else // こういう場合はこう
{
}
このやり方だと、条件式が長くなったり複数行にわたると、ちっと面倒なことになる。
みなさん、if文のコメントはどのように書いていますか?
// こういう場合はこう
if (...)
{
}
// こういう場合はこう
else
{
}
ところが、節を分断するのはよくないと言う人がいるんですね。それはそれで一理あります。
その人はこう書いている。
if (...) // こういう場合はこう
{
}
else // こういう場合はこう
{
}
このやり方だと、条件式が長くなったり複数行にわたると、ちっと面倒なことになる。
みなさん、if文のコメントはどのように書いていますか?
336デフォルトの名無しさん
2009/10/24(土) 22:35:25 >>335
if にコメント付いてれば else へのコメントは冗長だろ?考えるだけ無駄。
if にコメント付いてれば else へのコメントは冗長だろ?考えるだけ無駄。
337デフォルトの名無しさん
2009/10/24(土) 23:21:52 冗長なんて言ったらコメントなんて書けなくなる。
それに複数のelse ifがある場合はコメントがあった方がいい。
それに複数のelse ifがある場合はコメントがあった方がいい。
338デフォルトの名無しさん
2009/10/25(日) 00:16:58339デフォルトの名無しさん
2009/10/25(日) 01:41:21 // コメント
if(...) {
}
else {
// コメント
}
if(...) {
}
else {
// コメント
}
340デフォルトの名無しさん
2009/10/25(日) 02:39:09 >>339
俺もそれだ。
俺もそれだ。
341デフォルトの名無しさん
2009/10/25(日) 02:43:33 俺はこうだわ。space efficiant!!
if(...) { // コメント
foo();
} else if(...) { // コメント
bar();
} else {
foobar();
}
if(...) { // コメント
foo();
} else if(...) { // コメント
bar();
} else {
foobar();
}
342デフォルトの名無しさん
2009/10/25(日) 07:39:57 漏れは内容に応じて使い分けた方が良いと思うけど。
// 分岐全体について。
if( ... ){ // 式について。
// ブロック内の処理&実行条件の概要
}
else {
// ブロック内の処理&実行条件の概要
}
(例)
// 〜と〜を切り分ける
if( … // 〜をチェック
&& … ) { // 〜をチェック
// 〜の場合、〜する
}
else {
// 〜の場合、〜する
}
// 分岐全体について。
if( ... ){ // 式について。
// ブロック内の処理&実行条件の概要
}
else {
// ブロック内の処理&実行条件の概要
}
(例)
// 〜と〜を切り分ける
if( … // 〜をチェック
&& … ) { // 〜をチェック
// 〜の場合、〜する
}
else {
// 〜の場合、〜する
}
343デフォルトの名無しさん
2009/10/25(日) 14:06:52 こうしてる
if(...) {
// ...なら〜
} else {
// 〜(条件についての記述は無し)
}
if(...) {
// ...なら〜
} else {
// 〜(条件についての記述は無し)
}
344デフォルトの名無しさん
2009/11/22(日) 14:45:58 お前ら、そんな面倒なコメントつけるくらいなら
is_こういう場合() っていう関数作ってif に入れとけよ。
どうしてもコメント書きたかったら
is_こういう場合() のところに書けばすっきりしていいだろ。
is_こういう場合() っていう関数作ってif に入れとけよ。
どうしてもコメント書きたかったら
is_こういう場合() のところに書けばすっきりしていいだろ。
345デフォルトの名無しさん
2009/11/23(月) 06:06:37 >344
それだと is〜() が何をチェックしてるのか知りたくなったら、一々中身を見なきゃ分からないし、
is〜() の条件を変えたくなったら、使ってる場所を全部チェックした上で変更するか、
「使われない関数」が生じるのを覚悟で別な関数を追加しなきゃならん。
(まぁ静的リンクのみなら、コンパイルすれば何処で使ってるかは分かるけど)
is〜()の名称自体は「何を」チェックするかに留めて、「何故」チェックするかとか
条件式全体が何を意味するかとかは、コメントに書く方がよっぽど面倒が無い。
それだと is〜() が何をチェックしてるのか知りたくなったら、一々中身を見なきゃ分からないし、
is〜() の条件を変えたくなったら、使ってる場所を全部チェックした上で変更するか、
「使われない関数」が生じるのを覚悟で別な関数を追加しなきゃならん。
(まぁ静的リンクのみなら、コンパイルすれば何処で使ってるかは分かるけど)
is〜()の名称自体は「何を」チェックするかに留めて、「何故」チェックするかとか
条件式全体が何を意味するかとかは、コメントに書く方がよっぽど面倒が無い。
346デフォルトの名無しさん
2009/11/23(月) 10:58:02 >>345
> それだと is〜() が何をチェックしてるのか知りたくなったら、一々中身を見なきゃ分からないし、
ちゃんと名前付けて、関数宣言部分にコメント書けば、そんなことにはならないよ。
中身見るのはバグを疑うときぐらい。
> is〜()の名称自体は「何を」チェックするかに留めて、「何故」チェックするかとか
> 条件式全体が何を意味するかとかは、コメントに書く方がよっぽど面倒が無い。
コメントに書いて良いのは「何故」だけだな。
> それだと is〜() が何をチェックしてるのか知りたくなったら、一々中身を見なきゃ分からないし、
ちゃんと名前付けて、関数宣言部分にコメント書けば、そんなことにはならないよ。
中身見るのはバグを疑うときぐらい。
> is〜()の名称自体は「何を」チェックするかに留めて、「何故」チェックするかとか
> 条件式全体が何を意味するかとかは、コメントに書く方がよっぽど面倒が無い。
コメントに書いて良いのは「何故」だけだな。
347デフォルトの名無しさん
2009/11/23(月) 11:01:17 仕方なくわかりづらいコード書くときしか関数の中にコメントは書かないな
外側に書いたドキュメントだけでいい
外側に書いたドキュメントだけでいい
348デフォルトの名無しさん
2009/11/23(月) 11:01:32 >>345の思考様式だと関数を細かく分けることは悪になりそうだなw
適切な名前の関数を作ってどんどん分けるのは常識レベルだと思ってたが
適切な名前の関数を作ってどんどん分けるのは常識レベルだと思ってたが
349345
2009/11/23(月) 18:28:36 漏れは>344の言葉をそのまま鵜呑みにすると
// Hogeの場合
if ( isFoo() && isBar() )
のようなコードも、コメント付けるより
if( isHoge() )
とした方が良いって事になるのを否定しただけです。
ちょっと言葉足らずで意図不明瞭だったのは申し訳ない。
↓以外は>346-348全てに同意。
>346
>コメントに書いて良いのは「何故」だけだな。
この言葉を鵜呑みにすると、「何時呼び出す」とか書けない。
これは「5W1Hが単純に読み取れない場合だけ」のがより適切だと思う。
>348
>適切な名前の関数を作ってどんどん分けるのは常識レベルだと思ってたが
これは「どんどん」「分ける」の間に「適切な粒度になるよう」が抜けてる。
// Hogeの場合
if ( isFoo() && isBar() )
のようなコードも、コメント付けるより
if( isHoge() )
とした方が良いって事になるのを否定しただけです。
ちょっと言葉足らずで意図不明瞭だったのは申し訳ない。
↓以外は>346-348全てに同意。
>346
>コメントに書いて良いのは「何故」だけだな。
この言葉を鵜呑みにすると、「何時呼び出す」とか書けない。
これは「5W1Hが単純に読み取れない場合だけ」のがより適切だと思う。
>348
>適切な名前の関数を作ってどんどん分けるのは常識レベルだと思ってたが
これは「どんどん」「分ける」の間に「適切な粒度になるよう」が抜けてる。
350デフォルトの名無しさん
2009/11/23(月) 20:50:16 適切に分けてりゃ、関数名は「何を」チェックするかだけ示せば十分>>344のように
運用できるだろ
運用できるだろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 【神戸】エレベーター「かご」なく男性医師が転落死 大手「三菱電機ビルソリューションズ」の担当者、安全装置切り放置か [ぐれ★]
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 [ぐれ★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- かめはめ波打って仕事行く(5連続成功中)
- 高市、メガソーラー廃止。環境破壊が社会問題化 [792147417]
- 他人のリクエストで自分の癖と異なる絵を上げる絵師いるじゃん?
- 日本人がホルホルの対象にしている生物、海外にも生息すると判明 [603416639]
- 【悲報】フィギュアオタク「2月に結婚予定だった彼女にフラれた。ドラゴンボールのフィギュアも式で飾ろうと話してたのになぜ…」 [802034645]
- 職業訓練行ってるんだけど月13日しか行かないのに毎月18万貰えてる
