- 1 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 14:02:01 ]
- 自分は1行しか書かないつもりでも
あとでコードを足さなければならない事態なんていくらでもやってくる。 他人がきちんと中括弧補ってくれるかどうかはわからない。 1行文だろうがなんだろうが 最初から中括弧をつけるクセをつけろ
- 173 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 05:52:03 ]
- 括弧はともかく int と hoge の間の改行は正規表現で定義と使用が区別できるので vi 使いには便利。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 08:34:51 ]
- 正規表現なら別に改行でなくてもいいんでは。
- 175 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 08:48:19 ]
- >>174
vi使ってるときに、 /hoge で普通に検索 /^hoge で定義を検索 ていうことね。
- 176 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:34:46 ]
- IDE使えよ乞食
- 177 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:13:56 ]
- 現実には戻りの型の方が関数名より長い事も多々あるからな。
intみたいな極端に短い物以外は改行で統一した方が見やすい。
- 178 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:21:09 ]
- いやそんなにないだろ
- 179 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:27:25 ]
- constもポインタも構造体もクラスもテンプレートも出てこないんですか。
APIやらライブラリ使ってりゃ長い名前の構造体なんていくらでもあるだろうに。
- 180 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:24:51 ]
- 構造体なんか返すなよ
- 181 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:46:03 ]
- いくら長くても改行するほどじゃないな
というか、返す型情報まで含めてワンセットだから改行したくないなあ
- 182 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:49:24 ]
- BSD系のカーネルのソースなんかは改行する事になってるね。
style(9)あたりに書いてある。
- 183 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:19:02 ]
- >>180
32ビット値2つとか3つの組は結構返すよ
- 184 名前:デフォルトの名無しさん [2007/03/11(日) 18:50:28 ]
- >>158
どっちか片方に収束しないってことは、どっちでも大差ないんだよ。 どっちかが明らかによかったら、片方のスタイルは廃れてるだろ。
- 185 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:54:17 ]
- >>180はC使い
- 186 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:56:33 ]
- 構造体自体を返さなくても、それを指すポインタ返せば記述は長くなりますやん。
- 187 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:59:02 ]
- >>185
C++でも同じだろ。 (スマートポインタで返すって手も使えるけど)
- 188 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 19:01:56 ]
- >>175
そんなん普通にコメントアウトでラベルつけときゃいいだけやん
- 189 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 19:03:41 ]
- >>188
意味わからん
- 190 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 19:30:28 ]
- >>189
int aho() /* teigi */ とかかな。 aho(); /* shiyou */ 全部に書く気なんじゃない?
- 191 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:13:31 ]
- lint用のコメントみたいだなw
- 192 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:30:30 ]
- >>1
プログラマは信号は守るべきだが 小石を取り除くかどうかはプログラマしだいだ 尊敬するプログラマのソースを読め
- 193 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:35:44 ]
- >>192
尊敬するプログラマはみんな省略してませんでした
- 194 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:41:49 ]
- 漏れその昔、ビル・アトキンソンをめちゃくちゃ尊敬してたが、
C系のコードは書いてたのかどうか知らん。
- 195 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:10:46 ]
- defineで閉じてるのは軽くいらっとさせるね
if () { ... #if 1 } else #endif ... } GNU関連は関数なんかもこれで閉じてくるよね
- 196 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:22:54 ]
- >>195
仕事でそんなコード書いてるヤツ見たら、思わずはり倒しちゃいそう。
- 197 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:32:13 ]
- return_type
func_name( arg_type arg ) { } はダメダメってことですね。
- 198 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:23:06 ]
- >>197
なんで?
- 199 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:47:52 ]
- つ >>172 >>177
- 200 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 02:07:20 ]
- >>197
俺はよくそのスタイルで書く衝動にかられるけど、 引数リストの行末がカンマで統一できないのが 嫌でいつも思いとどまる。
- 201 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 08:01:41 ]
- > 引数リストの行末がカンマで統一
そ、最後ね arg_type1 arg1, arg_type2 arg2, arg_type3 arg3 最後のarg3だけカンマなしでないとエラー。よく引っかかる。 配列の初期化子は最後のカンマOKなのにね。
- 202 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 14:22:14 ]
- >>187
C++ 使ってると C の頃の感覚が麻痺して 抵抗なく string 返したりもできるようになる筈w
- 203 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 15:09:03 ]
- オーバーヘッドなんて高が知れてるし、参照もポインタも使わずに
構造体やクラスを平気で返しちゃうぜ
- 204 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 20:35:18 ]
- C++クックブックって本は、コンテナクラスは 全部引数でやり取りしてた。
- 205 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 21:53:09 ]
- 何でスレ伸びてるの?
- 206 名前:デフォルトの名無しさん [2007/03/12(月) 23:23:25 ]
- >>76
それおまえさんが強要して出させたんじゃないか?
- 207 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:04:04 ]
- >>206
スレタイの数字の話じゃねえの?
- 208 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:41:45 ]
- ぶら下がりelseに起因するbug発生回数は一回
その他の中括弧の省略に起因するbug発生回数は零回
- 209 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 02:09:20 ]
- どんな書き方をしてもバグを生み出さないソースを書けばいいだけ
どんなにファクターがありそうでも最終的にそこに原因を求めるのは結局責任転嫁だ
- 210 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 02:10:42 ]
- 読みやすい書き方はそれだけでバグの抑制になる
- 211 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 05:57:35 ]
- インクリメントとかシンプルな処理なら{}なんて使わなくても
使うのは数行に渡る見込みがあるか後々まで残す部分くらいだな
- 212 名前:デフォルトの名無しさん [2007/03/13(火) 08:01:55 ]
- やはりbegin〜endの勝利だな
- 213 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:26:05 ]
- Python最強ということで
- 214 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:35:13 ]
- schemeもええで
- 215 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:48:34 ]
- ソレより、 && || をif文中で使ってる場合の方が多いように思うけどな
特に俺が書いた時に無かったのに後から何気なく追加されたような場合、たいてい間違ってるゾ!
- 216 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:02:09 ]
- 70%はそっちの方だね。
- 217 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:08:56 ]
- まだ && ||を2行に別けて書く人はミスが少ない気がする
if( ( hoge == hage ) && ( hige ) ){ } みたいに
- 218 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:12:50 ]
- こういうのは程度の問題で、複雑な式は分けて書いた方が理解しすいだろうが、
シンプルな式まで徹底して分ける事に決めちゃったりしたら、かえってコードの意図がわかりにくくなると思う。 {}の省略についても同様。
- 219 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:39:36 ]
- if修飾子が使える言語(PerlやRuby)だと、やることが1つなら修飾子にして
おいて、増えたら複文支配のifに書き換える、という使い分けが出来るな。
- 220 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 13:07:20 ]
- むしろ後置ifが使えるなら、
前置ifでの単文修飾は不可能にすべきじゃなかろうか。
- 221 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 13:16:18 ]
- perlはそうだね。
- 222 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 14:06:40 ]
- 俺はPBP6.2の通りに後置ifはnext, last, redo, return, goto, die, croak, throwでのみ使うようにしてる。
メンテ不要な書き捨てプログラムはこの限りでないがw
- 223 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 22:45:43 ]
- if文より型の変換とか値入れてない変数とかの方がやばい気がする。
- 224 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 22:46:14 ]
- 全ての分岐をgoto文で書いてやる
- 225 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:02:08 ]
- gotoが必要なのは多重ループを抜けるときだけだよな。
- 226 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:14:43 ]
- ttp://gedo-style.net/g/?v=361721&d=d.jpg
- 227 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:27:29 ]
- 多重ループは関数化で対処
- 228 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 04:07:30 ]
- gotoはエラー処理と字句解析のハードコード。
- 229 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 04:48:53 ]
- if()
{ ; } ↑これは異端か?
- 230 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 05:29:00 ]
- 異端もクソも、なぜ if() の中を ! で否定しないよ
- 231 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 06:53:59 ]
- 頭ごなしに否定するのはよくない
- 232 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 10:31:18 ]
- ケツで否定してやる。
{ ; } unless hoge;
- 233 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 10:41:26 ]
- { } を付けたら女の子にもてるようになりました
- 234 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:09:17 ]
- スーパー括弧閉じ
- 235 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 17:26:03 ]
- 括弧閉じはコッカって言わないか?
- 236 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 19:21:20 ]
- 通じるけど恥ずかしいから自分では言わない。
- 237 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 16:12:21 ]
- >>235
それは局所的にしか通じないだろう。
- 238 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 16:57:00 ]
- sh 系だとそんなだよな。
esac ってなんだろと。
- 239 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:06:36 ]
- fi はまあ想像つくけどなw
- 240 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 22:54:36 ]
- 言語規格の中で if() ; 形を if() { ; } の省略形であるとしている
言語はどんなものがありますか。
- 241 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:11:15 ]
- そんなのあるのか?
- 242 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:24:53 ]
- お前らエディタのソース整形機能とか使ったことなさそうだな
- 243 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:25:18 ]
- COBOLにそんな機能ねーよ
- 244 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:43:26 ]
- ソース整形が必要なほどのクソコードに出会ったら
とりあえず腹をくくることにしている。
- 245 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:51:37 ]
- おまえはソース整形について誤った観念を抱いているのではないか
- 246 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 13:52:38 ]
- ソーッスねぇ
- 247 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:27:11 ]
- ソース整形したらテスト全部やり直しなんだけどそれついてはどうなの?
- 248 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:29:25 ]
- >>247
なんで?
- 249 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:33:05 ]
- >>248
あ?遊びでやってんじゃねーんだぞ
- 250 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:34:46 ]
- >>247
kwsk
- 251 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:37:04 ]
- バイナリがかわんなきゃよくね?
or テストケース再実行すりゃいいじゃん 好きなほうで
- 252 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:40:18 ]
- テストする前に整形すればいいだけじゃん
- 253 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:41:43 ]
- リポジトリにコミットするとき、自動的にソース整形すりゃよくね?も追加
- 254 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:45:04 ]
- >>247は自動化したテストですらとんでもなく時間を食う
ちょー大規模プロジェクトをやってるんだろう。
- 255 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:49:30 ]
- >>251
>バイナリがかわんなきゃよくね? これは納得できる >テストケース再実行すりゃいいじゃん 手動のテストケースもあるから無理 仮に全自動であったとしても時間無駄にしてんじゃねーよ >>252 ソース整形しただけの個所までテストするのが時間の無駄 >>253 改行した瞬間に自動的にソース整形するVBが最適解か……orz
- 256 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:53:35 ]
- やはりpythonが・・・
- 257 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:54:49 ]
- >>255
時間かかるテストは、夜走らせとけよ エディタorIDE ↓ リポジトリ(コミット時にソース整形) ↓ CI(夜間に自動ビルド+テスト) これ大抵の言語でいけるだろ。
- 258 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 16:57:26 ]
- バイナリが変わるようなコード変換はもはや整形じゃないと思う
- 259 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:12:11 ]
- >>175
そんなの^(unsigned)*[int|char|short|float|double] [a-Z]+[0-9|a-Z]*\(とかで検索すればいいんじゃね?
- 260 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:20:04 ]
- 無理やりこうやればできるとかいう話じゃなくってさ。
viでは検索が日常的なカーソル移動手段のひとつなんだよ。
- 261 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:34:57 ]
- >>259
ぜんぜんだめ。おはなしにならない。
- 262 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 01:51:22 ]
- C言語は文脈自由文法だから正規表現で完璧にマッチさせるのは不可能
- 263 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 05:35:27 ]
- >>262 こういう話疎いので、初心者にも解るように解説してください。
- 264 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 07:02:14 ]
- >>263
コンパイラの本でも嫁
- 265 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:30:39 ]
- 突然舞い上がったようなレスだな。>>262は
そもそもどのレスに依存するのだろう。
- 266 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:33:56 ]
- 259のあたりだろ。
- 267 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:41:31 ]
- >>265が>>262を全く理解できなかったということだけはわかった。
- 268 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:50:27 ]
- まあ規約ガチガチなのはそのせいだしな
- 269 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 13:40:30 ]
- 正規表現に疎い俺に>>173はどういう正規表現を書いているのか教えて欲しい。
- 270 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 13:49:32 ]
- そこらじゅうに未定義・未規定・処理系依存が
ぽっかり口をあけているC言語のどの辺がガチガチ?
- 271 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:23:15 ]
- コーディング規約でガチガチにするって意味だよ
- 272 名前:263 mailto:sage [2007/03/18(日) 18:26:20 ]
- そんな連関、聞いたこと無いけどな。
- 273 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 19:16:41 ]
- >>263
かっこが自由に無制限に入れ子に出来るパターンは 正規表現じゃ理論上無理らしいよ
|

|