12/04/28 15:26:26.29
>>493
でも、名前は英語ですよね。
その名前から連想できるものは何でしょうか?
そこは変わらなはずですが。
むしろ、自然言語から連想できるように
キーワードを選んでいるわけだけど。
497:仕様書無しさん
12/04/28 15:28:25.70
例えばifという名前が、繰り返すという意味だったりしたら
わけがわからないことになる。
そんな事するぐらいなら、ifもforもやめて、
A01、B02 とかいうキーワードの方がまだまし。
でもそうしないで、ifという単語を割り当てているというのは、
ifという単語の本来の意味が重要だってこと。
498:仕様書無しさん
12/04/28 15:28:31.58
>>493
Javaなどでは、オブジェクト.動詞目的語
という命名規則が普通ですね。
499:仕様書無しさん
12/04/28 15:50:55.83
>>496
日本語でも、イスラム語でもフランス語でもいいぞ。
500:仕様書無しさん
12/04/28 15:53:58.39
>>496
構文に自然言語を求めてないと言ってるんだが。
大体、Unixのソースコードとか英語名称に準拠してるか?
アルファベット使ってるだけで略語だらけじゃねぇか。
アルファベット使ってりゃ自然言語だというなら、そりゃ全部自然言語だろうよ。
501:仕様書無しさん
12/04/28 16:00:09.18
馬鹿って絶対に自分の非を認めないよね
故に馬鹿なのか
502:仕様書無しさん
12/04/28 16:04:07.16
英語で書いてある部分なんて機能が解るシンボルとしてしか見ないな
言語自体が英語らしいかどうかなんてどうでもいいや
COBOL見たいなの見せられたら吐き気がするし
503:仕様書無しさん
12/04/28 16:05:57.41
>>500
> 構文に自然言語を求めてないと言ってるんだが。
あなたわかってるじゃないですかw
自然言語を求めてないのは構文でしょう?
単語には自然言語を求めてるんですよ。
504:仕様書無しさん
12/04/28 16:06:45.08
略語も自然言語。自然言語の略語。
505:仕様書無しさん
12/04/28 16:22:10.58
>>492 は、「アルファベット」を見ると「英語」と言ってしまう
ローマ字未修得の小学生、あるいは戦中派に違いない。
506:仕様書無しさん
12/04/28 16:25:09.14
>>505
え? 普通言語って英語を元にしてるでしょw
507:仕様書無しさん
12/04/28 16:27:30.60
俺の大得意な言語は
日本語を元にしてますよ。
なんてなーwwww
508:仕様書無しさん
12/04/28 16:32:49.85
>>506
UKとUSAの人間が読めなくても英語なのか?
509:仕様書無しさん
12/04/28 16:33:55.58
>508
if が読めないのですか?
510:仕様書無しさん
12/04/28 16:34:11.97
string や compare が読めないのですか?
511:仕様書無しさん
12/04/28 16:34:34.45
TSUNAMI, HENTAIは英語だけど
Heigh Visionは日本語という不思議。
512:仕様書無しさん
12/04/28 16:35:51.86
英語が分かる人
「strcmpって何?」
「string compare の略だよ」
「なるほど!」
513:仕様書無しさん
12/04/28 16:36:21.62
>>509
"if"だけじゃなぁ。interfaceの略かもしれんし、
イタリア語かもしれんし、フランス語かもしれんし。
514:仕様書無しさん
12/04/28 16:36:57.36
>>511
英語わからないならムリしないほうがいいよw
515:仕様書無しさん
12/04/28 16:38:06.09
>>509
ifとかdefaultとか予約語じゃない言語もいっぱいあるぞ
関数型系とかSmalltalkの派生とか
516:仕様書無しさん
12/04/28 16:38:10.51
>>513
英語と考えれば辻褄が合うでしょw
だからほとんどの言語=英語が元になっているわけです。
517:仕様書無しさん
12/04/28 16:39:29.02
>>516
if( a == b )
これをよめるヤツはプログラマーぐらいだろ
518:仕様書無しさん
12/04/28 16:40:07.42
>>515
予約語かどうかは本質じゃねーw
プログラム言語はほとんど英単語が
元になってるってことだろ。
英単語そのものか、英単語の略語ばかりだ。
よってコーディングする時は
英語の意味を考えなさいということ。
519:仕様書無しさん
12/04/28 16:41:12.04
>>517
ifが英語だからプログラマーは読めるよね。
gtaweg( a == b)
これ、読めるかい?
520:仕様書無しさん
12/04/28 16:41:29.02
>>518
cat と cdr はどういう意味?
521:仕様書無しさん
12/04/28 16:42:12.07
>>519
言語仕様読めば解るんじゃね?
522:仕様書無しさん
12/04/28 16:43:51.60
>>519
プログラマー外の英語圏の人間はすぐ解らんだろうと
いう意味で書いたんだが
523:仕様書無しさん
12/04/28 16:43:51.88
Lisp の car や cdr が、以下の略であることぐらい、Lisp をかじったことのある人なら知っているでしょう。
Contents of the Address part of Register number
Contents of the Decrement part of Register number
524:仕様書無しさん
12/04/28 16:44:53.93
>>522
そりゃそうだろ。
そんな話はしていない。
ほとんどのプログラム言語は
英語が元になってることに異論はないね?
525:仕様書無しさん
12/04/28 16:45:31.86
>>523
やっぱりcatやcdrも英語の略なんだね。
526:仕様書無しさん
12/04/28 16:48:37.26
>>524
COBOLレベルなら英語が元になってるとは言えるかもしれんが
シンボルだけ英語使ってるものを英語が元になってると言われると
違和感が有るぞ
527:仕様書無しさん
12/04/28 16:49:23.26
> シンボルだけ英語使ってる
あ、認めたw
シンボルだけじゃなくて
意味も英語の意味を使ってる。
528:仕様書無しさん
12/04/28 16:51:22.35
文法は英語じゃなくが
単語は英単語だし
意味も英単語だ。
なのだからその意味に当てはまらない使い方をしたらダメ。
529:仕様書無しさん
12/04/28 16:56:57.83
>>528
> 意味も英語だけど
int 変数 = 0;
classs Type { public Type(){} }
英語の意味でどう読むんだ?
530:仕様書無しさん
12/04/28 16:59:31.80
>>527
俺は構文が英語じゃないから、言語全体は自然言語に近い必要はないと
いう意味でしかレスしてない。名前云々のレスといっしょにすんな。
531:仕様書無しさん
12/04/28 17:04:57.39
>>529
変数は日本語ですが?
int ・・・ integerの略。なるほど整数か!
class ・・・種類
Type・・・型
public・・・公開
英語だと考えれば、辻づまがあう。
532:仕様書無しさん
12/04/28 17:05:54.91
>>531
単語の意味じゃなく英文として読めよ
533:仕様書無しさん
12/04/28 17:06:08.67
>>530
俺は単語が英語だから
その英語の通りの使い方をしろと言ってる。
534:仕様書無しさん
12/04/28 17:07:24.65
>>532
なぜ英文として読まないといけないの?
俺は最初から構文は英語じゃないが
単語が英語であり、
その意味のとおりに使えと言ってるだけですが?
535:仕様書無しさん
12/04/28 17:13:37.49
>>534
俺は最初から構文は英語じゃないからコードが英文に準じる必要はないと言っている
まぁ、>>500で余計なことは書いたが。
536:仕様書無しさん
12/04/28 17:15:42.11
なら単語が英単語になっている理由は?
537:仕様書無しさん
12/04/28 17:15:57.31
英単語の意味を無視していいなら、
英単語を使う理由はない。
538:仕様書無しさん
12/04/28 17:19:33.03
名前と構文をごっちゃにするなって
ダンボールに英語のラベルはってあったら、
ダンボールが英語に準拠してんのかよ
539:仕様書無しさん
12/04/28 17:21:25.05
そうですが何か
540:仕様書無しさん
12/04/28 17:21:47.37
つられて英語と書いてしまったが
そもそも、自然言語に準じる必要が無いといだけで
英語かどうかは重要じゃないだろ。
541:仕様書無しさん
12/04/28 17:28:03.72
>>539
XSLTとXMLの仕様をごっちゃにしてそうな発言だな
542:仕様書無しさん
12/04/28 17:30:35.83
多分最近のaviにはH.264が入ってることが多いから
>>539にとってaviはH.264がなんだろうな
543:仕様書無しさん
12/04/28 18:55:32.75
ダンボールの中身が英語に準拠しているかもしれないと期待することは出来るかな
544:仕様書無しさん
12/04/28 20:41:52.10
プログラムは自然言語ではないが
自然言語に似せて書くのが上手い書き方だろ。
何故なら、コンピュータが読むものであると同時に、人間が読むものでもあるからだ。
545:仕様書無しさん
12/04/28 21:33:26.78
>>544
「個人的見解」って頭につけといた方がいいですよ。
546:仕様書無しさん
12/04/28 21:34:38.61
>>545
まずお前から実践なw
547:仕様書無しさん
12/04/28 21:53:43.30
>>544
人間が読む場合と、コンピュータが読む場合があるところまではいい。
ただし、人間が読む場合は、人間らしい人間が読む場合と、コンパイラみたいな人間が読む場合と、宇宙人が読む場合があるんだよな…
「個人的見解だが」
すべての人間に読みやすいプログラムというものは存在しないと思う。
なので、読む人に合わせた書き方が求められる。
これは、もはやソースコードを介したコミュニケーションであって、そういう意味では、やはりプログラマは物書きだなーと思うし、コミュニケーション能力が求められる仕事だなと思う。
548:仕様書無しさん
12/04/28 22:17:18.20
>>547
すべての人間ではなく、
大部分の人間といえばいいだけの話。
549:仕様書無しさん
12/04/28 22:40:44.94
>>544
COBOLが読みやすいか?
ならCOBOL使えばいい。
ひまわりでもかまわんぞ
550:仕様書無しさん
12/04/28 22:51:04.29
>>549
URLリンク(www.aoky.net)
551:仕様書無しさん
12/04/28 22:56:54.08
>>550
すごいな。
たまたま英文風に読める文章を
持ってきて全てを語るなんてw
552:仕様書無しさん
12/04/28 22:58:44.27
>>550
そのページが読みにくいのはなんでだ?w
553:仕様書無しさん
12/04/28 23:04:43.00
>>550は
自然言語とプログラム言語は白と黒のようにはっきり分かれておらず
プログラマは皆、灰色の領域で仕事をしているのだと判らせてくれる。
554:仕様書無しさん
12/04/28 23:05:57.12
>>550
>['toast', 'cheese', 'wine'].each { |food| print food.capitalize }
英文まねても読みづらいだけだな。
555:仕様書無しさん
12/04/28 23:07:10.90
>>554
そもそも英語が読みやすい言語かっつうのもあるしな
556:仕様書無しさん
12/04/28 23:11:55.82
しかし、単語は英単語であり、
その英単語の意味通りを使い方をしているのは
どの言語も同じなのだ。
557:仕様書無しさん
12/04/28 23:25:22.95
何が問題か解ってないコミュ障が居るな
558:仕様書無しさん
12/04/28 23:30:53.03
じゃあ、話を最初に戻そう
if(!strcmp(foo,bar)){
問題はこれ。
strcmpは文字 比較の略であり、
ifはもし。
つまり、「もし(文字比較)なら」
という意味になるので、これはイラッとするコーディングである。
559:仕様書無しさん
12/04/28 23:33:13.51
この話に対して、プログラム言語は、
英語の文法と違うとか的外れのこといいだして、
そうじゃなくて、単語は英語であり
単語の意味通りの使い方をするべきという
話だよって教えてるだけ。
それを分からず、文法が~文法が~と
的外れのことを言い続けてる。
560:仕様書無しさん
12/04/28 23:38:06.42
>>558
! が Not ならいいの?
561:仕様書無しさん
12/04/28 23:43:31.70
違うね、ごめん。
562:仕様書無しさん
12/04/29 00:00:23.13
>>559
英単語と名前の話が一番ずれてる
563:仕様書無しさん
12/04/29 00:02:23.85
>>559
>つまり、「もし(文字比較)なら」
>という意味になるので、これはイラッとするコーディングである。
問題は、文としての書き方なのに何でお前は名前に拘ってんだ?
564:仕様書無しさん
12/04/29 00:08:33.22
> 問題は、文としての書き方なのに
どこ見てそう思いましたか?
565:仕様書無しさん
12/04/29 00:09:46.10
>>564
「もし(文字比較)なら」
566:仕様書無しさん
12/04/29 00:10:20.91
strcmpの戻り値が真偽値ではない、
真偽値ではないものを、もし(if)で使うなという
話ですよね?
567:仕様書無しさん
12/04/29 00:11:05.12
>>564
文の話じゃねーよ。
真偽値を返さないものを
ifで使うのが気持ち悪いという話だよ。
568:567
12/04/29 00:11:30.38
× >>564
○ >>565
569:仕様書無しさん
12/04/29 00:12:46.49
なぜ真偽値じゃないものをifで使うのが気持ち悪いかというと
ifが、もし~なら という意味だからでしょうね。
570:仕様書無しさん
12/04/29 00:17:59.45
>>567
だからif文の中で真偽値を返さないものを返してる文の書き方がおかしいんでしょ
571:仕様書無しさん
12/04/29 00:21:13.19
>>570
文がおかしい?
じゃあ、どういう文ならおかしくないというの?
”文”ですよね?
572:仕様書無しさん
12/04/29 00:28:03.95
>>571
真偽値を返す関数を使った文だったらよろしいんじゃないでしょうか
573:仕様書無しさん
12/04/29 00:29:31.39
>>572
つまり、式を変えるってことですねw
あれ?文の話じゃなかったのかいw
574:仕様書無しさん
12/04/29 00:31:34.03
直感と反するのが気持ち悪い
一緒だったらって判定に!使うな
575:仕様書無しさん
12/04/29 00:32:25.05
strcmpは「一緒だったら」ではなく、
「比較したら」
576:仕様書無しさん
12/04/29 00:37:31.36
>>573
文として分かり辛いから文の中の式を直すってのがおかしいか?
577:仕様書無しさん
12/04/29 00:38:41.57
もし(おなじである(a, b))なら
なら気にならない。
578:仕様書無しさん
12/04/29 00:39:49.83
>>576
文はおかしくなかったから、文はそのままで
式を書きなおしたんだろw
お前、文がなにかわかってるのか?
if文の定義・・・if (条件式) 真文
仕様書見てもこんな感じでしか書いてないぞ。
579:仕様書無しさん
12/04/29 00:40:38.23
>>577
つまり、英単語の意味と合っていないということか。
580:仕様書無しさん
12/04/29 00:40:50.64
>>575
大元のif文はどう見ても一致してるかの判定
それ以外の意図で書いてたらなお悪い
581:仕様書無しさん
12/04/29 00:40:53.63
もし(ひかくする(a, b))なら
だとわかりにくい
さらに
もし(文ひか(a, b))なら
だからもう死ね
582:仕様書無しさん
12/04/29 00:43:04.40
>>578
仕様書には書いてないから実現は可能だが、プログラムには意図を込める事が出来る。
プロなら使わない手はない。
583:仕様書無しさん
12/04/29 00:44:04.46
>>582
で、何が言いたいの?
584:仕様書無しさん
12/04/29 00:44:39.33
>>583
より分かりやすく書けって話だよ。
585:仕様書無しさん
12/04/29 00:45:43.69
>>580
> 大元のif文はどう見ても一致してるかの判定
もし(否定 比較する(a,b))
これを「aとbが一致した場合」と解釈するのは難しい。
586:仕様書無しさん
12/04/29 00:47:20.56
もし( 比較する(a,b) == 差が0なら)
こう書けばわかりやすい。
587:仕様書無しさん
12/04/29 00:49:40.01
>>585
書き方のぜひはともかく文字列一致判定の定型文だろ
588:仕様書無しさん
12/04/29 00:52:37.27
>>586
どんな顔してこんな当たり前の書き込みするのか興味深い
589:仕様書無しさん
12/04/29 00:59:33.34
>>587
こんなのを定型文と言わなきゃいけない事自体がおかしい。
590:仕様書無しさん
12/04/29 01:00:23.87
>>588
え? 当たり前のことを言ったような顔を
しているだけですが・・・?
591:仕様書無しさん
12/04/29 01:05:32.77
>>578
if文 = if statement
CやC++だと、そもそも式も文も同じ意味なんだが
592:仕様書無しさん
12/04/29 01:10:42.27
C/C++のif文は、値を返さないので式として使えませんよ?
if式っていうのはこういうものです。(Scalaの例)
val msg = if (true) "true dayo" else "false dayo"
593:仕様書無しさん
12/04/29 01:12:18.69
>>591
文と式の違いも知らん奴が
さっきから喚いていたんだなw
594:仕様書無しさん
12/04/29 01:37:33.40
日本語として正しいテキストのやり取りでこれだけ揉めてるんだから、
言語としての正しさは、意思疎通の効率化の一要素でしかないってのを
自ら証明してる罠
595:仕様書無しさん
12/04/29 01:37:58.64
>>594
日本語でおk?
596:仕様書無しさん
12/04/29 01:40:09.09
>>595
日本語の議論でもこれだけ揉めるのだから、やはりプログラムは奥深くて楽しい。
597:仕様書無しさん
12/04/29 01:40:59.74
What's your point?”
598:仕様書無しさん
12/04/29 01:48:55.76
何か伸びてると思ったら、何の話してんの?
599:仕様書無しさん
12/04/29 03:27:22.81
毎年この時期は色々とアレな人が湧くなあ、というお話。
600:仕様書無しさん
12/04/29 05:25:20.32
↑ここまでイラッとするレススタイルの話
↓ここからイラッとするコーディングスタイルの話
601:仕様書無しさん
12/04/29 05:27:33.91
終了
602:仕様書無しさん
12/04/29 05:30:53.97
>>598
理系のボクにはよくわからないお話。
603:仕様書無しさん
12/04/29 05:32:15.06
>>602
理系とか関係なく
単にあなたがお馬鹿であるだけ。
604:仕様書無しさん
12/04/29 18:30:27.78
三項演算ってのがあってだな・・・
605:仕様書無しさん
12/04/29 18:31:41.69
それで?
606:仕様書無しさん
12/04/30 11:28:44.34
ハンガリアン記法を使うなら使うで統一してればまだいいが、
ハンガリアンな変数名とそうでない変数名が混在しているソースコードはバカだと思う。
607:仕様書無しさん
12/04/30 14:32:32.64
b p m_ g_ だけ付けてる。
608:仕様書無しさん
12/04/30 14:57:12.58
それはハンガリアンではない
609:仕様書無しさん
12/04/30 15:26:03.24
>>606
ハンガリアン記法で統一されていても、記法が実態と合っていないと、
もっとイラッつとする。不具合修正後にたまに見かけるんだが……。
610:仕様書無しさん
12/05/01 04:35:45.89
システムハンガリアンをコーディング規約に盛り込む連中は漏れなく無能。
611:仕様書無しさん
12/05/01 09:48:20.21
プログラムのお勉強的な意味でどうしてこんな事が必要だったのかを
若手に学習させるためにシステムハンガリアンは割りと良いんだよなw
612:仕様書無しさん
12/05/01 13:26:21.50
システムハンガリアン使ってるヤツは、ハンガリアン使うときどうするんだ?
例えば、↓とかどう修飾してる?
ptX; // ポイント単位のX軸
cmX; // センチメートル単位のX軸
dbY; // デシベル単位のY軸
613:仕様書無しさん
12/05/01 13:35:03.26
fPtX
nCmX
dDbY
614:仕様書無しさん
12/05/01 13:42:21.92
イラッとするな
615:仕様書無しさん
12/05/01 14:30:32.62
他人のコーディングスタイルは常にイラッつとするものなんだよ
616:仕様書無しさん
12/05/02 21:39:30.85
なにがハンガリアンだよハムスターかよ!
俺はローマ字で変数を使うからな!
617:仕様書無しさん
12/05/02 22:13:12.04
だったら日本語でかきゃいいのに
最近のコンパイラーは日本語使えるんだぞ
#define 整数 int
#define 無 void
#define 本体 main
#define 戻す return
整数 本体(無)
{
整数 値 = 0;
戻す 値;
}
618:仕様書無しさん
12/05/02 23:35:31.92
キモイwww
619:仕様書無しさん
12/05/03 00:05:17.09
そうか?
英語で命名しても認識する時は日本語だからそんなに気にならないけど。
620:仕様書無しさん
12/05/03 03:58:47.27
なでしこ思い出した
621:仕様書無しさん
12/05/03 04:01:24.82
ひまわりでやれ
622:仕様書無しさん
12/05/03 04:29:44.89
>>617
マクロの謝った使用法の中でも最悪だなこれ。
623:仕様書無しさん
12/05/03 05:00:42.74
変数名に$aとか$bとかマジ勘弁
624:仕様書無しさん
12/05/03 05:13:27.17
>>623
VMS「…(´・ω・`)」
625:仕様書無しさん
12/05/03 10:37:35.39
>>623
でも $i は良いんでしょ?
626:仕様書無しさん
12/05/04 13:03:50.07
$iiiまでは許してくれ。
627:仕様書無しさん
12/05/05 04:07:53.59
$とか通るのかよ。アセンブラでおかしくなるだろ?
628:仕様書無しさん
12/05/05 06:16:15.35
phpならきっと・・・
629:仕様書無しさん
12/05/05 19:21:20.26
むしろPHPでは$つけわすれるのがエラーの筆頭だろ
630:仕様書無しさん
12/05/05 23:03:56.89
Perlも?
631:仕様書無しさん
12/05/07 03:22:45.46
Perlは頭に何付けるか考えなきゃいけないから
他の言語を直前までやってたときに新規でソースファイル起こしたときの最初の数分だけかな忘れるのは
632:仕様書無しさん
12/05/07 03:52:46.25
#define ZERO 0
#define ONE 1
#define TWO 2
…
#define ELEVEN 11
驚愕したそして
12以降は普通に使われていた
俺は泣いた
633:仕様書無しさん
12/05/07 07:09:08.37
よくあるコード改善本の指摘に「できるだけマクロを使うな(コンパイラを働かせろ)」というのがあるけれど
実際どれくらいメリットがあるのだろう・・・?
634:仕様書無しさん
12/05/07 19:42:52.59
「マクロを使わない=コンパイラを働かせる」
の意味がわかんないんで教えて
635:仕様書無しさん
12/05/07 20:36:38.67
Cの本読めば最初の章に出てくるだろ
マクロの部分を処理するのは、コンパイラではなくプリプロセッサ
(気を利かせることができて賢い)コンパイラを使え = (単純で馬鹿な)プリプロセッサを使うな
636:仕様書無しさん
12/05/07 21:30:39.56
てか、マクロを多用するコードの方がコンパイラの仕事が増えるような気が。
637:仕様書無しさん
12/05/07 21:34:21.83
一緒だと思う。
638:仕様書無しさん
12/05/07 22:28:35.51
マクロ展開した後のソースがどんだけデカくなるのか見たことないのかよ!
コンパイラさん凄い頑張ってんぞ!
639:仕様書無しさん
12/05/07 23:53:37.14
>>633
知らない方がいいよ。それを知ったとき、おまえは地獄にいる。
640:仕様書無しさん
12/05/07 23:56:57.94
>>636
ようは、コンパイラをプログラマの道具として使えってことだよ。
コンパイラが分かる形にしておくと、
コンパイルした時にミスを色々教えてくれる。
静的型付け言語ならではの、コンパイラを使った
快適プログラミングテクニックが生かせる。
641:仕様書無しさん
12/05/08 10:40:28.54
プリプロセッサを働かせずにコンパイラを働かせろということだと思うが、
コードの肥大を防ぐのが目的なのかなんなのか
642:仕様書無しさん
12/05/08 10:47:16.38
マクロは基本的に定数定義とか、移植性の向上のために使ってるな。
643:仕様書無しさん
12/05/08 12:20:14.89
マクロ禁止って暗にCをディスってるような気がする。
C++かC#陣営の策略に違いない。
644:仕様書無しさん
12/05/08 16:18:08.66
コメントは40カラム目から
645:仕様書無しさん
12/05/08 17:30:22.51
>>644
うわ、それ強制されたことあるわ
646:仕様書無しさん
12/05/09 07:53:56.36
switchには必ずdefaultをつけるべし
ifには必ずelseをつけるべし
647:仕様書無しさん
12/05/09 08:32:49.88
それ嫌いだわぁ
else書いといて中身無しとか
せめてプログラミング作法くらいは皆読んで欲しいところだ
648:仕様書無しさん
12/05/09 11:01:52.47
switch () {
default:
;
}
これはあり。というか、俺はいつもそうやってる。
defaultの考慮漏れはしていないし、defaultではやることないよという表明。
> ifには必ずelseをつけるべし
これはあまり見たこと無いな。
「if~else if~には必ずelseをつけるべし」なら、見たことあるし、俺も実践してる。
switchのdefaultと同じ理由。
649:仕様書無しさん
12/05/09 11:27:41.36
たまに頭が回らん時とか、if文の条件が書きづらい時とか
if( !(条件) ){ 処理 }
ってしないで
if( 条件 ){}else{ 処理 }
って書くのも他人から見たらイラッつとさせてるんだろうなと思った。
650:仕様書無しさん
12/05/09 21:39:26.50
>>633
1.オーバーロード可能になる
2.using宣言、もしくは名前空間の別名で短い名前が使える
この2点だけでも結構楽になる。
651:仕様書無しさん
12/05/09 23:27:06.14
リポジトリからソースを落とすとThumbs.dbがついて来た。
システムに必要なファイルだろうから消すなだと。
652:仕様書無しさん
12/05/10 22:36:52.26
>>649
何もやることないよ
というより
書き忘れたのかと思ってしまう。
653:仕様書無しさん
12/05/11 00:07:09.59
>>648
> defaultの考慮漏れはしていないし、defaultではやることないよという表明。
オレだったら、それはコメントに記述するなあ
654:仕様書無しさん
12/05/11 00:34:49.93
そういえば以前の上司がどうしても『defaultは最後に書け』と言ってゆずらなかったな。
655:仕様書無しさん
12/05/11 00:56:41.06
デフォルトに出会った時点で分岐終了するウンココンパイラなかったっけ
656:仕様書無しさん
12/05/11 01:16:38.05
名付けて、運コンパイラ
657:仕様書無しさん
12/05/11 14:08:06.49
>>653
defaultが無いとwarning出す静的解析ツールとかありがちなんで、俺はコードで書く。
658:仕様書無しさん
12/05/11 17:24:17.65
>>653
俺はdefaultに assert(false) を入れとくなあ。
ミスの検出にも役立つし。
659:仕様書無しさん
12/05/11 17:28:42.09
そこに
assert(false); // 来ないはず
とか書いてあるソースは見た事ある。
来ないはずの所に来るバグがあるって事なんだろうな、と思った。
660:仕様書無しさん
12/05/11 17:54:19.52
>>658
いや、来ないのでは無くて、来ることもあるが処理は無しよ、って意味なんだけど。
来ないはずならエラー処理入れるわ。
661:仕様書無しさん
12/05/11 21:13:10.20
いいこと考えた
assert(true); // 入れとけばいいんじゃねw
662:仕様書無しさん
12/05/12 00:02:23.15
定義増えた場合の取りこぼし対策でASSERTいれるのはアリ
663:仕様書無しさん
12/05/12 04:08:02.61
でふぉるとさんはどんな条件にも引っ掛からなかったダメな子を許容してくれるお姉さんキャラ
たまに「絶対に書いておけ」と言う参考書がある為に
//ここに来る事は無い
と言う書き残しをして居る時があるが
nullやDBNull判定をすり抜けて来た0や空白さんがたまに来る
初期値はシステムで統一しろ
664:仕様書無しさん
12/05/12 04:28:51.61
ifにelseは必要ない。
なぜなら、条件を満たしているか?という質問をするならば
みたいしていない場合が存在するのは明らかだから。
switchに関しては、case一個だけ書くことなんてまずない
Aの場合、Bの場合、Cの場合、じゃあそれ以外はどうなるんだ?
ということになる。
取りうる値がA、B、Cの三つしかないというのであれば、
Aの場合、Bの場合、それ以外(default)。でいいはず。
defaultがないということは、なにか意味があるということなので
それを明記するのが良い。
665:仕様書無しさん
12/05/12 04:31:07.25
>>659
assertionはdefaultだけで使うものではない。
何のためにassertionを使っているかを考えれば分かる。
666:仕様書無しさん
12/05/12 04:52:54.88
>>664
>ifにelseは必要ない。
お前は何を言っているんだ
667:仕様書無しさん
12/05/12 05:50:36.01
bool値を返す関数で
bool func(){
if(exp){
return true;
}else{
return false;
}
}
668:仕様書無しさん
12/05/12 05:52:39.62
途中で書き込んでしまった。。
bool値を返す関数で
bool func(){
if(exp){
return true;
}else{
return false;
}
}
って書いてるのがイラッとする。
669:仕様書無しさん
12/05/12 06:49:59.39
>>666
あれじゃないか○○であるの条件のelseは明示的に書かれていないだけで○○ではないのif文
つまり読みやすいとは別として理解しやすいと言う部分、何がしたいかをはっきりさせたい場合はifを2回書いた方がいい
つまりelseは要らない
670:仕様書無しさん
12/05/12 06:55:40.08
>>669
「それ以外」の条件をいちいち列挙するの?面倒くせえ
671:仕様書無しさん
12/05/12 08:26:14.32
面倒くさいだけじゃ済まないぞ
わざわざ別に書いてる位だから、本当は別の条件があるのに記述漏れがあんじゃねーかって疑念が湧くし、
ifに入る条件がより限定されるような修正する際に、
else使うなら一箇所の修正だけで済むものを、使わない場合はelse相当のif文も修正が必要になる
どう考えてもバグの誘因になる
言語仕様でelseが無いとか、switchのdefaultが無いならともかく、
言語仕様としてあって、更にそれを使うのに適した場面なら、それを使う方が良いと思う
まぁ、全部にelseやdefaultを入れろって縛りはどうかと思うけど
672:仕様書無しさん
12/05/12 09:42:39.16
>>668
どう書けばいいのでしょう・・・
ご教授していただけると嬉しいです
673:仕様書無しさん
12/05/12 10:23:26.26
return (bool)exp;
だろ?
674:仕様書無しさん
12/05/12 10:29:07.54
else書くなって言ってるんだろ
675:仕様書無しさん
12/05/12 13:21:10.78
gotoは基本的に使用しないこと
ただしエラー処理や多重ループから抜ける場合などは使用した方が見やすくなる
・・・ったく、いつまでクヌースの呪縛に捕らわれてんの?
全面禁止だろ、いまどき
676:仕様書無しさん
12/05/12 14:00:43.31
>>675
全面禁止ってことは、
breakもcontinueもreturnもダメってこと?
これらはgotoと同じ事出来るんだけど。
677:仕様書無しさん
12/05/12 14:25:20.15
いや、だからだよ
今の言語はブロック制御に則ったジャンプ命令があるのに
いつまでALGOL時代の「goto」という命令に捕らわれてるんだって意味
678:仕様書無しさん
12/05/12 14:34:49.81
>>675
いつまで構造化プログラミングの呪縛に縛られてるの?
679:仕様書無しさん
12/05/12 15:23:16.21
>>678
アウフヘーベンするならともかく、goto使うところに戻るんじゃただの退化じゃん。
680:仕様書無しさん
12/05/12 15:47:39.09
>>677
それらで出来ないことだって有るだろ。
681:仕様書無しさん
12/05/12 16:08:22.41
>>679
今更gotoがどうとかどっちでもいいじゃん
682:仕様書無しさん
12/05/12 16:55:46.12
>>673
return (exp) ? true : false;
かな
でも、おれ、三項演算子好きじゃない
こまった・・・
683:仕様書無しさん
12/05/12 17:30:18.41
三項演算子を好んで使うやつなんか存在するのか?
684:仕様書無しさん
12/05/12 18:02:26.13
bool func(){
bool result = false
if(exp){
result = true;
}
return result;
}
685:仕様書無しさん
12/05/12 18:08:45.16
return exp;
686:仕様書無しさん
12/05/12 18:13:32.23
>>683
エレキ屋あがりが「オブジェクトファイルを開いてみろ!if-elseと比べてこんなにシンプルだぞ!」と
しきりに勧めてくるのだが・・・・・実際どうなんだろうと思う
687:仕様書無しさん
12/05/12 18:38:40.32
最近カンスト付きの加減算で好んで使ってたりしてる。
無理に使えとは言わないw
num = ((num+hoge) > max) ? max : (num+hoge);
688:仕様書無しさん
12/05/12 23:08:11.15
ifが戻り値を返したいって時は
三項演算子使うだろ。
var a;
if(exp1) {
a = 1;
} else if(exp2) {
a = 2;
} else {
a = 3
}
var a = (exp1) ? 1 :
(exp2) ? 2 :
3;
どっちが見やすいかなんて一目瞭然だと思うが?
689:仕様書無しさん
12/05/12 23:15:57.08
>>688
複数の判定がいるならswichかテーブル使ってしまうなぁ
690:仕様書無しさん
12/05/12 23:19:05.66
三項演算子を使って一行で書ける時はよく使う。
>>688はイラッ
691:仕様書無しさん
12/05/12 23:21:21.33
>>689
switchだって戻り値返せないだろ?
var a;
switch(exp) {
case cond1 : a = 1; break;
case cond2 : a = 2; break;
default : a = 3; break;
}
var a = (exp == cond1) ? 1 :
(exp == cond2) ? 2 :
3;
値を返すならこっちのほうがシンプル
692:仕様書無しさん
12/05/12 23:23:03.00
処理を分岐させたいなら
if、switch
条件に応じて値を返したいなら
三項演算子
693:仕様書無しさん
12/05/12 23:42:10.01
一番のネックは三項演算子をやたらに憎む奴らが多い事なんだよな
まあ、IFの変わりに使うひとが大量に居たせいだと恨んでるけとw
694:仕様書無しさん
12/05/13 00:05:26.98
三項演算子くらいラムダ式に比べたらまだまだまだまだ可愛い。
695:仕様書無しさん
12/05/13 00:07:43.98
>>693
関数型言語では三項演算子(風)の記述が主流
三項演算子を嫌うような老害は
このあと消える。
696:仕様書無しさん
12/05/13 00:09:47.61
老害って言葉好きだね。いつまでケツが青いままのつもり?
697:仕様書無しさん
12/05/13 00:14:04.30
>>676
一緒じゃねぇよ全然ちげぇよ。
ダイクストラが提起した問題は、gotoそのものや、ジャンプじゃない。
処理ブロック(forやifといった分岐反復のまとまり)のネストを無視して、
処理ブロックから、処理ブロックに飛べる事が問題なんだ。
なんでgotoがあるのにbreakやcontinueがあるか解ってんのか?
698:仕様書無しさん
12/05/13 00:15:36.69
>>688
3講演子の条件式をカッコでくくってんのがイラっとする
699:仕様書無しさん
12/05/13 00:18:57.46
>>698
カッコがないと見難い
700:仕様書無しさん
12/05/13 00:20:09.10
>>697
ダイクストラが提起した問題は、gotoそのものや、ジャンプじゃない。
処理ブロック(forやifといった分岐反復のまとまり)のネストを無視して、
処理ブロックから、処理ブロックに飛べる事が問題なんだ。
だから、処理ブロックから、処理ブロックに飛ぶようなことをしなければ
gotoを使ってもいい
701:仕様書無しさん
12/05/13 00:22:12.48
x = 10 + ( n ? n / 100 : 0 );
こういうことしたいとき、条件にかっこつけやがると
x = 10 + ( ( n ) ? n / 100 : 0 );
こんな感じでカッコが二重になんのが非常に見づらい
702:仕様書無しさん
12/05/13 00:22:42.49
>>700
そうだよ
703:仕様書無しさん
12/05/13 00:24:24.94
>>700
だからCにもgotoが残ってる
ネストを飛ぶとき警告だすぐらい仕様にいれても
よかったとはおもうが
704:仕様書無しさん
12/05/13 00:24:46.55
当たり前だろw
条件式が変数一つの時に
カッコつけるなよw
(exp)という書いてある時のexpってのは
変数の意味じゃないだろ。
705:仕様書無しさん
12/05/13 00:25:39.55
>>675
結局お前、否定されたぞw
goto全面禁止とかありえないってさ。
706:仕様書無しさん
12/05/13 00:29:38.06
>>703
警告出すのは、ネストの中に入る時だろ?
ネストから出るときは、returnなどと一緒なので問題ない。
707:仕様書無しさん
12/05/13 00:30:44.82
>>706
ネストからネストに飛ぶときの話
708:仕様書無しさん
12/05/13 00:31:40.42
IClass a = (state) ? new ClassA() : new ClassB();
みたいに「確実に何か代入されるけど条件によって違う」場合に使うんじゃないかなぁ
709:仕様書無しさん
12/05/13 00:32:39.01
>>704
式だろうと見づれぇよ
x = 10 + ( ( n > 0 ) ? n / 100 : 0 );
こっちの方が明らかにすっきりするわ
x = 10 + ( n > 0 ? n / 100 : 0 );
710:仕様書無しさん
12/05/13 00:37:03.95
>>708
大抵変数作るのがめんどい時だろ。演算子なんだから。
function( 5 > n ? 1 : 9 );
とか
( max > n ? alpha : beta ).Execute();
みたいな場合。
711:仕様書無しさん
12/05/13 00:37:47.22
x = 10 + n > 0 ? n / 100 : 0 ;
見難い
712:仕様書無しさん
12/05/13 00:38:15.20
>>707
> ネストからネストに飛ぶときの話
”ネストから” ってのは必須条件?
713:仕様書無しさん
12/05/13 00:40:26.30
x = (n > 0)
? n / 100 + 10
: 10;
714:仕様書無しさん
12/05/13 00:42:26.39
>>710
それはifでやれよ…
715:仕様書無しさん
12/05/13 00:45:29.39
>>712
ネストを1段上げる、ネストを1段下げるなら
goto使わんでも出来るし問題にならんだろ
716:仕様書無しさん
12/05/13 00:47:09.13
>>713
そんな書き方すんならifつかえよ
717:仕様書無しさん
12/05/13 00:49:00.52
>>716
「ここで確実にxが変わる」ってわかるじゃないか
「if使え」っていうことはわかんないのか。困ったな
718:仕様書無しさん
12/05/13 00:51:14.52
>>717
カッコつけてブロックでインデントするぐらいならif使えといってんの
見づらいだろ
719:仕様書無しさん
12/05/13 00:53:09.54
x = ((10 + n > 0) ? n / 100 : 0);
みづらい・・・
カッコが好きならいっそ全部くくりゃいいのに
x = ((10 + n > 0) ? (n / 100) : (0));
720:仕様書無しさん
12/05/13 00:58:03.94
>>718
ifだと
if (n > 0)
{
int x =
}
else
{
int x =
}
って書けないじゃん
先にint xって書いても節でxx = って書くかもしれない
もちろんコンパイラがワーニング出すけど
721:仕様書無しさん
12/05/13 01:00:41.19
>>714
面倒だろ。特にメンバー関数なんかは、引数2回書くのがだるい。
かといって、オブジェクトをifでポインターに入れて、
そのあとメンバー関数呼び出すのも面倒い。
( max > n ? alpha : beta ).Execute( arg_first, arg_second, arg_third );
722:仕様書無しさん
12/05/13 01:03:46.98
他人に見せるか他人のを読むかという前提で
「おれがめんどくさい」っていわれたら
もう何も言うことはない
723:仕様書無しさん
12/05/13 01:04:16.78
>>715
なんの話してるの?
gotoで警告出す時の条件の話でしょ。
使わない時の話はしてないよ。
724:仕様書無しさん
12/05/13 01:04:32.84
>>720
んな事はどうでもよくて、カッコつけて見づらい書き方するんなら
三項演算子つかうの止めろと言ってるんだよ
725:仕様書無しさん
12/05/13 01:06:01.68
条件式や値のコードが極端に長くないなら、
処理を分岐させたいなら
if、switch
条件に応じて値を返したいなら
三項演算子
この2つで決めればいいだけだろ。
726:仕様書無しさん
12/05/13 01:07:20.76
>>724
カッコつけて見やすくする書き方なら
問題ないでしょw
727:仕様書無しさん
12/05/13 01:07:59.44
>>724
変な書き方してたら「何か変なことしてるな」ってわかるじゃん
1行でさらっと流したら絶対見落とすぜ
728:仕様書無しさん
12/05/13 01:08:48.84
>>723
gotoつかってネスト上げたり下げたりするのは、
他の構文と同じだから、警告だすなら
ネストからネストに飛ぶ時だけでいいでしょって話。
729:仕様書無しさん
12/05/13 01:10:41.61
>>727
x = n > 0 ? n / 100 + 10 : 10;
こうだったら文句いわんよ
730:仕様書無しさん
12/05/13 01:12:30.19
条件に括弧つけるのはif文の代わりって意味なんじゃないの?
俺ならbool値にも括弧つけるよ (flag)? って
731:仕様書無しさん
12/05/13 01:14:08.44
三項式はメンバ変数のコンストラクタ渡しとかで使う
732:仕様書無しさん
12/05/13 01:14:12.54
>>728
だから、”ネストから”ってのは要らないよね?
単に「ネストに入るときだけ」に警告でいいよね?
って話。
733:仕様書無しさん
12/05/13 01:16:39.41
>>729
x = nantoka > 0 && nantoka < 100 ? nantoka / 100 + defvalue : defvalue;
こんな感じですか?
カッコつけたほうがいいよ。
734:仕様書無しさん
12/05/13 01:18:39.26
x = nantoka > 0 && nantoka < 100 ? nantoka / 100 + defvalue : nantoka >=100 && nantoka < 200 nantoka / 100 + defvalue2 : defvalue;
こんな感じですか?
カッコつけたほうがいいよ。
735:仕様書無しさん
12/05/13 01:19:08.41
訂正
x = nantoka > 0 && nantoka < 100 ? nantoka / 100 + defvalue : nantoka >=100 && nantoka < 200 ? nantoka / 100 + defvalue2 : defvalue;
こんな感じですか?
カッコつけたほうがいいよ。
736:仕様書無しさん
12/05/13 01:20:35.76
x = (((10 > a) ? a / 4 : 0)>((5 > b) ? b : 0) ? (( c == d) ? 4 : 2 ) : (( e || f ) : 3 : 1 );
737:仕様書無しさん
12/05/13 01:20:38.32
x = (0 < nantoka && nantoka < 100) ? nantoka / 100 + defvalue :
(100 <= nantoka && nantoka < 200) ? nantoka / 100 + defvalue2 :
defvalue;
こんな感じですか?
738:仕様書無しさん
12/05/13 01:21:41.88
やっぱりカッコ多すぎると分かり辛いな
739:仕様書無しさん
12/05/13 01:22:24.89
>>732
ネストに入るだけなら問題ないって
740:仕様書無しさん
12/05/13 01:24:58.07
>>735
nantoka > 0 && nantoka < 100 ?
nantoka / 100 + defvalue : nantoka >=100 && nantoka < 200 ?
nantoka / 100 + defvalue2 : defvalue;
?で切ればいいだけだからすぐ解るじゃん
カッコあると余計迷う
741:仕様書無しさん
12/05/13 01:26:16.70
>>736
x = ( (10 > a) ? a / 4 : 0 ) > ( (5 > b) ? b : 0 )
? ( (c == d) ? 4 : 2 )
: ( (e || f ) ? 3 : 1 );
742:仕様書無しさん
12/05/13 01:26:50.03
>>737
最初と条件違うじゃねぇか。間違えるならカッコつけんなよ。
743:仕様書無しさん
12/05/13 01:29:49.62
x = 10 > a ? a / 4 : 0 > 5 > b ? b : 0 ? c == d ? 4 : 2 : e || f ? 3 : 1;
744:仕様書無しさん
12/05/13 01:30:20.32
>>740
見難い
745:仕様書無しさん
12/05/13 01:35:12.76
三項演算って言語によって動作が違うから困る
746:仕様書無しさん
12/05/13 01:35:19.87
>>741
どの部分が条件文なのかが見やすいね。
747:仕様書無しさん
12/05/13 01:41:15.20
長い三項演算子を一行で書く奴が馬鹿ということでw
748:仕様書無しさん
12/05/13 01:49:00.22
>>741
x = ( 10 > a ? a / 4 : 0 ) > ( 5 > b ? b : 0 )
? ( c == d ? 4 : 2 )
: ( e || f ? 3 : 1 );
749:仕様書無しさん
12/05/13 01:51:18.27
?より左が全部?より右の条件だって知らない人おおいの?
750:仕様書無しさん
12/05/13 02:09:52.04
>>747
長かったら何行に分けようと莫迦だろう。
あと、副作用のある式が含まれてる場合も。
751:仕様書無しさん
12/05/13 16:23:11.54
>>750
なんで馬鹿じゃなく莫迦と書いた?
752:仕様書無しさん
12/05/13 16:31:51.39
>>750
話しするたびに、無駄に疲れさせるタイプだとみた。
こういうタイプは浅い理解しか出来ないクセに
他人には1を聞いて10を知れみたいな理解を求める人が多い。
753:仕様書無しさん
12/05/13 16:48:25.33
>>751
別段意味はないよ。
強いていえば、救い様のないレベルであることを
強調したい気持ちが伝わるといいなー、程度。
そこ大事なトコだった?
754:仕様書無しさん
12/05/13 17:10:39.27
>>753
表現の仕方がイラッとする。
コーディングも同じようにイライラさせてると推測する。
そういう意味で大事なトコ。
755:仕様書無しさん
12/05/13 18:20:24.05
>>740
commit前にformatter通すというルールがあるところだと、こういう、
改行で複雑な式の区切りを示すってやりかたはできないなぁ。
自然と、長い複雑な式は使わないようになってくる。
756:仕様書無しさん
12/05/13 19:17:09.64
1行の文字数制限とかアホだよなーと思う。
右のほう見に行かなきゃ見えない部分は、どうせ後から読む奴には重要じゃない情報しか無いから。
全体の流れの把握を助けるために、敢えて長くしてるんだってばよ。
もちろん>>740のようなコトをやってない前提だけど。
757:仕様書無しさん
12/05/13 19:37:53.74
エディタのフォントサイズを10にしてる
文字はみにくいが、全体が見渡せる。
758:757
12/05/13 19:48:00.58
フォントサイズを小さくしてるからカッコがあった方がパッと見わかりやすい
759:仕様書無しさん
12/05/13 20:38:36.97
>>755
そもそも長い三項目演算子書かなきゃいい
現実はせいぜいこんなもんだろ
z = n + ( 0 < x ? y / x : 0 );
760:仕様書無しさん
12/05/13 21:35:42.19
「三項演算子の中にベタ書きで処理を入れるな」と
761:仕様書無しさん
12/05/13 22:14:41.06
長い行のときだけスペース入れずに書いてあるのはかなりイラッとする
複数行にするよりスペース省いてでも無理やり一行で書いたほうが見やすいと思ってるのか
762:仕様書無しさん
12/05/14 18:17:39.06
括弧でくくると見やすくなるの法則って、何法則だっけ?
763:仕様書無しさん
12/05/14 18:20:08.27
プレグナンツの法則
764:仕様書無しさん
12/05/14 19:04:53.78
C言語のくせに、インデックス指定が1から始まるのは
嫌がらせとしか思えない。
765:仕様書無しさん
12/05/14 23:58:57.22
場合によるだろう
month[0] == January, month[1] == February, month[2] == March ……よりも
month[1] == January, month[2] == February, month[3] == March ……のほうが直感的だ
766:仕様書無しさん
12/05/15 00:46:28.70
そういう問題じゃねぇ
下手したらバグの温床になる
0版にはゴミは入るし、
配列の要素数とループカウンターの
上限があわねぇし
767:仕様書無しさん
12/05/15 01:19:55.22
その理屈だと日付も0日からはじめるべきじゃね?
day[0] == 1, day[1] == 2
768:仕様書無しさん
12/05/15 02:46:24.41
そんなもん配列にいれんな
じゃダメ?
769:仕様書無しさん
12/05/15 03:04:10.81
日付も0からはじめろ
770:仕様書無しさん
12/05/15 04:01:20.32
噂の9月0日か…
確か1年を30日が12回ってゲームあったな
プログラマにとっては楽そうだなと思った
771:仕様書無しさん
12/05/15 10:41:01.70
>>770
FF11のことかw
772:仕様書無しさん
12/05/15 12:42:31.47
カレンダーの仕様がおかしいから変えちまえ!ってことか潔いな
773:仕様書無しさん
12/05/15 13:05:26.93
Luaの配列のインデックスが1からで結局綺麗に書くの諦めた覚えがある。
774:仕様書無しさん
12/05/15 18:23:08.80
上に行ったら下から出てくる。
左に行ったら右から出てくる。
こんな世界もプログラマにやさしい。
775:仕様書無しさん
12/05/15 18:54:18.17
> 左に行ったら右から出てくる。
これはいいんじゃね?
776:仕様書無しさん
12/05/15 20:17:29.03
0はnullやfasleと混同しやすいから、バグを生む
777:仕様書無しさん
12/05/15 23:56:12.94
fasle ?
778:仕様書無しさん
12/05/16 00:12:07.19
#define fasle false
問題は解決だ
779:仕様書無しさん
12/05/16 00:37:47.33
>>778みたいな定義があった上で
そこら中でfalseとfasleが混在してたら
イラッ☆つとくるじゃ済まねーぜ
780:仕様書無しさん
12/05/16 23:30:24.88
1ヶ月に28日有る月は何ヶ月有る?
781:仕様書無しさん
12/05/16 23:52:23.69
12ヶ月
782:仕様書無しさん
12/05/16 23:52:58.77
訂正、1年あたり12ヶ月
783:仕様書無しさん
12/05/17 01:08:31.49
無限
784:仕様書無しさん
12/05/17 09:15:07.96
コーディングスタイルの問題というのかわからないけど、
10年前の改修履歴が残ってるのを見るとイラッつとする
785:仕様書無しさん
12/05/17 17:28:54.79
「コメント禁止。ソース内ではなくExcelファイルに対応するコメントをまとめること。」
という内部規約のプロジェクトのソースを貰った。
案の定ソースとコメントがずれまくっててシャレにならん・・・
786:仕様書無しさん
12/05/17 17:47:12.96
コメント禁止の方はそれほど問題じゃ無いな
俺、コメントなんかほぼ書かないし
787:仕様書名無しさん
12/05/17 20:35:40.97
関数作るのに申請が必要。
関数名は申請番号をつける。
788:仕様書無しさん
12/05/17 22:46:50.74
>>784
けれど、その履歴が熟成された30年物だったら……?
789:仕様書無しさん
12/05/18 00:27:51.60
行数を出来る限り短くするのが俺のポリシー
なので極力変数は切らない。
分岐は参考演算子のネスト。
俺流コーディングスタイル。
790:仕様書無しさん
12/05/18 02:14:19.65
if(ture or fasle){
contineu;
}esle{
fasle retrun;
}
791:仕様書無しさん
12/05/18 03:05:53.38
>>790
はぁ?
これでリターンする言語なんてあんの?
792:仕様書無しさん
12/05/18 03:08:30.98
ああああ そゆことか。 こりゃ確かにイラつくわw
793:仕様書無しさん
12/05/18 07:46:00.94
>>657
それはコーディングスタイルの話じゃないよね
794:仕様書無しさん
12/05/18 08:04:32.31
/*
この関数なんだか挙動がおかしいからとりあえずコメントアウト
中の人が悪さしているかも
fn();
*/
795:仕様書無しさん
12/05/18 21:32:33.68
>>791
C言語
int true = 1;
int false = 1;
796:仕様書無しさん
12/05/18 22:58:22.00
>>790
間違い探し?
797:仕様書無しさん
12/05/19 20:24:54.71
baseClassとかでいい物を、clazzと書く
798:仕様書無しさん
12/05/19 20:51:41.00
コボラの書いたコードで
1ファンクションに3万ステップあった。
799:仕様書無しさん
12/05/19 22:09:26.69
それはもはやコーディングスタイルの問題ではなく
そいつのプログラミングスキルの問題だな
800:仕様書無しさん
12/05/22 22:47:53.70
>>684
それ自分はよくやる。戻り値を変数に居れて最後にリターンしたいから。その際に変数名で悩みたくない。
801:仕様書無しさん
12/05/23 06:05:53.66
>>800
いやこれの注目点はif文の条件の出所じゃね
クラス変数としても使うなら引数として用意して欲しい
802:仕様書無しさん
12/05/23 06:44:26.47
>>800
処理の見通しが悪くなるから俺はイヤだな
関数の前半で値が確定してるにもかかわらず
最後でreturnされたら、影響が後半で発生してないか
いちいち考えなきゃならんのがメンドイ
803:仕様書無しさん
12/05/23 09:33:43.27
え?>>684て>>685で答えが出てるんじゃないの?
804:仕様書無しさん
12/05/23 10:39:15.55
>>684は解釈の仕方がいくつかあるなw
自分的には finally 使わないで書く事多いからよくやる。
805:仕様書無しさん
12/05/23 19:23:20.20
>>803
分岐とreturnの間に別の処理があるつもりで
反応してるやつも多いんだろ
806:仕様書無しさん
12/05/23 22:13:17.23
>>805
まさかそのままだったのかwww
当然ながら処理が省略されてるもんだと思ってたw
807:仕様書無しさん
12/05/23 23:25:54.83
>>806
確かにコレがそのままなら、>>685で終わりw
808:仕様書無しさん
12/05/24 09:12:00.04
分岐とreturnの間に戻り値に影響しない処理が入ってたらそれこそイラッとする
809:仕様書無しさん
12/05/25 09:29:11.35
引数をアンスコ+大文字にする奴が居てイライラする
int func(int _Hoge, int _Hage)
みたいな感じ
810:仕様書無しさん
12/05/25 09:35:20.83
>>809
C/C++なら、「それは非常識だ」と罵っていい。
811:仕様書無しさん
12/05/25 19:09:41.26
public:
↓
private:
この順番、どうよ?
812:仕様書無しさん
12/05/25 19:38:14.00
というか無駄にprivate:があるのがイラッとする
privateメンバーがあるなら、classのデフォルトアクセスレベル。
全てpublicならstructのデフォルトアクセスレベルでいい。
813:仕様書無しさん
12/05/25 21:14:25.63
>>811
classを使いたい奴が第一に欲する情報は、公開されているメンバに関するもの
それが先頭にまとめられていれば見やすい
よってそのスタイルは何ら問題ない
814:仕様書無しさん
12/05/25 21:51:40.56
>>813
言いたいのはメンバ関数だと思うが、それはさておき
クラスの素性を知るには、そのクラス特有の基本的管理データ、つまりprivate変数を見るべきじゃないのか?
815:仕様書無しさん
12/05/25 21:59:23.64
漢のなかの漢な規約では
構造体は一切使わず、全てクラスを使う
潔いから、というのがある
816:仕様書無しさん
12/05/25 22:36:31.36
>>814
普通はprivate変数を見なくても分かるように設計します。
クラスを編集するときの話は別な。
817:仕様書無しさん
12/05/25 22:59:17.56
コーディングスタイルの話じゃないけど、javaの記憶クラスのデフォルトが
publicでもprivateでもない中途半端なのがイラッつとする。
818:仕様書無しさん
12/05/25 23:08:03.36
>817 しかも、明示的に"package"等と書けないのがイラッつきを加速させる
819:仕様書無しさん
12/05/26 00:33:39.55
>>813
pimpl使えば気にならんだろ
class XxX
{
public:
;こう始まるほうがウザイわ
820:仕様書無しさん
12/05/26 00:34:37.90
>>814
privateのメンバって、実装上の理由でたまたま持ってるだけだったりするから
クラスの素性を知るには、公開されているI/Fをまず調査する。
821:仕様書無しさん
12/05/26 00:35:16.85
>>817
原則publicよりinternalスコープ使えって事だよ
いわせんな恥ずかしい
822:仕様書無しさん
12/05/26 03:39:46.06
>>110
うちマジで、
> 入口一つに出口一つ
になりそうで、逸脱するときは手続きとれって事になりそうなんだけど、
まぁ俺今品証で直接は関係ないんだけど、文句でないのが不思議だ。
レガシーコードの中には間違いなくあると思うんだけどな。
みんなソース見せてくれないんで知らないけどw
823:仕様書無しさん
12/05/26 04:32:07.43
perl書くときに、どうせ人に見せる事もないので、
C言語のように、main文がほしいと思って
#!/usr/bin/perl -w
use …
&main;
sub main{
}
と書いてますが、イラッつとしますか?
824:仕様書無しさん
12/05/26 19:45:38.20
他人に見せないのなら気にすることはない
825:仕様書無しさん
12/05/26 20:32:38.77
>>823
最初からそう書くことは少ないけど、段階的にそうなることはあるなw
ベタで書く→サブルーチンを分ける→途中の修正で、面倒くさいからとグローバル変数を直接参照する
→収拾がつかなくなってきたところでmainを分離して、出てきたエラーを一気に修正する
826:仕様書無しさん
12/05/26 21:27:34.77
オブジェクト指向ですね
827:仕様書無しさん
12/05/26 21:55:23.91
違うから
828:仕様書無しさん
12/05/26 22:30:59.78
>>823
-w は今時使わない
& は今時使わない
お前のコードは古い。
829:仕様書無しさん
12/05/26 23:05:10.42
即ちイラッつとするコーディングスタイルである
830:仕様書無しさん
12/05/27 10:52:44.39
軽口叩いてるコメントって書くのはいいけど読まされるとイラッと来るからやめて欲しい
831:仕様書無しさん
12/05/27 11:13:42.55
まともな神経してたら、書くのも違和感を覚えるだろう。
832:仕様書無しさん
12/05/27 12:26:47.70
変数名や関数名にROMAJIを使わないでください
833:仕様書無しさん
12/05/27 16:58:11.32
samuraiとかninjaみたいに、英語にしたくてもアッチの国でローマ字で通っちゃってる言葉の場合はどうすればいいだろう。
834:仕様書無しさん
12/05/27 17:07:07.97
>>833
それは立派な英語だろ
835:仕様書無しさん
12/05/27 21:23:27.48
配偶者特別控除なんて変に英訳されたらたまらん。
836:仕様書無しさん
12/05/27 21:54:28.02
それはコード内で識別子に使わずに文字列データとして扱うべし
837:仕様書無しさん
12/05/27 23:21:47.22
HaiguusyaSpecialKoujo
838:仕様書無しさん
12/05/27 23:36:18.74
某社の自治体向けパッケージではそのまま「配偶者特別控除」だな
個人的には漢字識別子名は邪道だと思うが、視認性がずば抜けてるのは認めざるをえない
839:仕様書無しさん
12/05/28 00:23:45.53
// オブジェクト作成に必要なコードをこの下に挿入します。
840:仕様書無しさん
12/05/28 01:17:07.48
if(1==a) というスタイルで書かれたソースをメンテしたときに、
for(i=0;10>i;++i)
i[dst]=i[src];
というコードを追加してやった。
841:仕様書無しさん
12/05/28 02:08:59.50
>>840
普通に意味分かんない。
dst[i] = src[i] か?
842:仕様書無しさん
12/05/28 06:21:33.73
a[b]でもb[a]でも参照するアドレスが同じ言語があるらしい
そう皆さんもよくしってるあれです
843:仕様書無しさん
12/05/28 07:01:57.72
意味がわからずただ反抗するバカっているよな
844:仕様書無しさん
12/05/28 07:02:58.73
意味がわからずただ反抗するバカっているよな
845:仕様書無しさん
12/05/28 14:10:25.95
>>809
_大文字や__はCなら予約語だな。
#ifndef __HOGE_H__
とかもイラッとする
846:仕様書無しさん
12/05/28 14:33:29.24
>>841
Cすらわからん奴がここにいるとは、信じられん
847:仕様書無しさん
12/05/28 14:45:44.74
わかりやすく書け、ってちょっとイラッつとしたw
848:仕様書無しさん
12/05/28 16:14:24.26
そういうネタだろう
849:仕様書無しさん
12/05/28 17:40:17.47
>>832
ローマ字でもあってればまだいい。
一見英語なんだけどつづり間違いってのがあって
どんだけ直したかったかw
850:仕様書無しさん
12/05/28 20:22:44.61
ここでもまたUwaRiteか
851:仕様書無しさん
12/05/28 20:38:56.59
この板の伝説の逸品のひとつだな
852:仕様書無しさん
12/05/28 21:38:10.07
>>840
if(1==a)
for(i=0;10>i;++i)
はありだな。定数が左に来ないと
比較演算子が画面右に寄って見づらい
853:仕様書無しさん
12/05/28 21:50:05.01
結局>>840はどういう意味なんでしょうか?
Cはやったことが無いのでまったく意味がわかりません
誰か教えてください。
854:仕様書無しさん
12/05/28 22:00:25.08
Cの配列はポインタみたいなものだっけ
もう五年くらい触ってないから忘れた
855:仕様書無しさん
12/05/28 22:03:06.42
>>852
10>iはちょっといやじゃね?
数学の書き方からの借用でi<10が世界標準なきがする
856:仕様書無しさん
12/05/28 23:18:07.63
>>853
>>855
857:仕様書無しさん
12/05/28 23:53:36.86
>>853
通常、a(変数)==1(定数)って書く条件式を逆に記述してるから、他も入れ替えて記述したった!って事よ。
858:仕様書無しさん
12/05/29 03:05:01.58
バカじゃないなら=を書き忘れた時の対策になる書き方の癖を付ける前に
=を書き忘れない癖を付けるもんなw
859:仕様書無しさん
12/05/29 03:08:17.86
フェイルセーフ
860:仕様書無しさん
12/05/29 04:51:14.73
癖の問題じゃねえよどう考えても
861:仕様書無しさん
12/05/29 05:48:59.62
int arr[]={
1
,2
,3
,4
,5
};
という最高にメンテしやすい表記編み出したんだけど使っていい?
862:仕様書無しさん
12/05/29 06:32:50.37
>>857
左に変数書くのは常識でも何でもないのに身勝手極まりない話だよ
寧ろ左に定数置く方が多数派だろうに。
if( S_OK == Xxxx() )
オプソや、MS、Oracleなんかのサンプルコードじゃ大概
こんな風に左定数。
863:仕様書無しさん
12/05/29 06:34:03.20
>>857
>i[dst]=i[src];
この部分は動くんですか?
864:仕様書無しさん
12/05/29 06:44:33.06
>>863
*( i + dst ) = *( i + src );
865:仕様書無しさん
12/05/29 08:14:25.89
言語実装上の間抜けな穴と認識している
動作が同一だからといって文法に基づく意味が同じとはいえない
866:仕様書無しさん
12/05/29 12:40:39.34
>>858
一つの言語しか使えない土方はそうかもしれんが、
たいていのプログラマは複数の言語を使うわけよ
等号が = な言語で仕事しているときに、ちょっとデバグでC++のソースを触ったりすると、
間違えることもあるのだよ
867:仕様書無しさん
12/05/29 13:06:33.50
まともなプログラマなら「運が良ければエラーになる」ようなものに頼らない。
868:仕様書無しさん
12/05/29 14:57:58.26
逆にSQLとか書いてると==でエラー吐かれてずっと悩む時があるもんな…
869:仕様書無しさん
12/05/29 16:41:24.05
ねーよ
870:仕様書無しさん
12/05/29 18:19:43.91
>>863
自分で試さない奴がいちばんイラッつとする。
871:仕様書無しさん
12/05/29 19:43:14.85
int a = 0 ;
int b = 0 ;
scanf("%d %d" , &a , &b ) ;
a ^= b ^= a ^= b ;
printf(" a = %d \nb= %d\n" ,a , b ) ;
みたいな感じで、一行スワップ書いたら怒られた
872:仕様書無しさん
12/05/29 19:53:53.57
怒られたのはたぶん scanf() なんて使ってるから
873:仕様書無しさん
12/05/29 20:11:27.21
scanfって一度の使ったことない
874:仕様書無しさん
12/05/29 20:38:37.38
>>872
>>873
いや、実際にscanf使ったわけじゃないから。
875:仕様書無しさん
12/05/29 21:54:21.53
>>872
何でだよ
scanfのパターンマッチが理解出来てねぇだろお前
876:仕様書無しさん
12/05/29 22:07:31.87
aとbが同じ値のときのこと考えてないから怒られたらんじゃね?
877:仕様書無しさん
12/05/29 23:15:03.81
>>871
自己満のトリッキーコード書く奴は怒られて当然
どうしてもそれがやりたきゃせめてマクロ化だろ
878:仕様書無しさん
12/05/29 23:20:00.07
>>871はそれ書いて何がしたかったの?
格好つけたかったのか?
879:仕様書無しさん
12/05/29 23:27:30.27
入力にscanfを使っても何も感じない馬鹿が1名いるな
特有の臭さがあるんでこいつのレスはすぐ分かる
880:仕様書無しさん
12/05/30 01:19:50.06
やっぱsscanf_sくらいは使って欲しいよな!
881:仕様書無しさん
12/05/30 04:12:19.10
sscanfなんざ使うよりscanfの方が安全だし、
文字の取りこぼしも少ない
実際scanfを使うことは少ないが、
一時ファイルなんかを対象にfscanfを
使うことは多い
882:仕様書無しさん
12/05/30 06:17:59.87
まあたまにやりたくなるよな
地獄のミサワ
「ふ~ん、このトリッキーコード、3年位前に俺も思いついたわ~」とか
883:仕様書無しさん
12/05/30 07:01:00.94
sprintf(buf,…);
int len=strlen(buf);
884:仕様書無しさん
12/05/30 10:43:58.62
>>881
ひょっとしてギャg(ry
885:仕様書無しさん
12/05/30 10:44:55.03
>>866
ない。
886:仕様書無しさん
12/05/30 10:45:33.57
>>862
ひょっとしてギャg(ry
887:仕様書無しさん
12/05/30 10:47:55.32
>>861
前職場の同僚にいたなあ>先カンマ
今のC/C++だと後カンマで書けと言わんばかりの仕様なんだが
888:仕様書無しさん
12/05/30 15:59:23.52
アホみたいにステップ数を稼ごうとするのはコボラー時代からの悪習
889:仕様書無しさん
12/05/30 17:46:05.44
前に見たC++のコードで
while(1) {
int Hoge = Hage();
if (Hogeの判定) {
goto Label;
}
break;
}
:
:
Lablel: :
ってのがあったんだけど、エラー処理にgoto使っているせいで変数宣言に
いちいちエラーが出るのを回避するためににやっていたみたい。
よくまあ思いつくなぁwwwと思ったんだが、ちょっとイラッつとした。
890:889
12/05/30 17:48:27.06
× Lablel
○ Label
891:仕様書無しさん
12/05/30 18:20:27.23
>>889
longjumpだっけ?
関数越えのgoto
それしないだけマシだと思う。
892:仕様書無しさん
12/05/30 19:34:40.78
>>886
は?scanfの使い方も知らん素人が
マ板なんか来るなよ
893:仕様書無しさん
12/05/30 20:00:39.11
>>892
背伸びしてレスしても恥かくだけだよ
fscanfとsscanfは稀に使うことはあるが、scanfを使うことはまずない
894:仕様書無しさん
12/05/30 20:03:28.25
>>893
fscanfの話してたんだけど
つかレス番まちがえた >>884 だったな紛らわしい
895:仕様書無しさん
12/05/30 20:05:56.45
try/finallyやまともな一行入力ライブラリが
標準でついてない糞言語にイラッと来る
896:仕様書無しさん
12/05/30 20:21:25.16
>>887
長いSQL書いてたときは間カンマ(カンマで1行とる)にしてたなぁ。
あとSQLだと、
WHERE 1=1
AND a=hoge
AND b=hage
...
なんてのも。
897:仕様書無しさん
12/05/30 20:21:26.50
>>886
事実ですが
URLリンク(msdn.microsoft.com)
898:仕様書無しさん
12/05/30 20:23:08.56
WHERE
1 = 1
AND
a = hoge
AND
b = hage
899:仕様書無しさん
12/05/30 21:03:52.60
>>897
これは?
URLリンク(msdn.microsoft.com)
900:仕様書無しさん
12/05/30 21:06:58.12
全体として少数派
901:仕様書無しさん
12/05/30 21:08:52.98
てっきりコピペしてそのまま使わせないためにそうしてるものかと思っていた時期が私にも
902:仕様書無しさん
12/05/30 21:49:22.51
>>897
そもそもネストが深すぎだろw
903:仕様書無しさん
12/05/30 21:59:51.00
サンプルなんて盲信するなよ
904:仕様書無しさん
12/05/30 22:40:23.90
どこぞの教科書やサンプル通りに右に定数書くヤツは
条件分岐で何を一番に見るか考えてない
905:仕様書無しさん
12/05/30 23:30:29.43
>>904
$ tar xfJ linux-3.4.tar.xz
$ cd linux-3.4/
$ find . -name '*.c' | xargs pcregrep '==\s*[A-Z0-9_]+' | wc -l
127939
$ find . -name '*.c' | xargs pcregrep '[A-Z0-9_]+\s*==' | wc -l
6971
フム・・・・
定数が右ばかりにあるLinuxは危険だ。
今すぐインターネットから切断した方がいい。
906:仕様書無しさん
12/05/30 23:34:56.89
定数というより式であるモノを持って来てドヤ顔
しかも何が問題か解ってないという
907:仕様書無しさん
12/05/31 00:03:00.58
そもそも「定数を左に置く」なんてC/C++のバッドノウハウであって、
警告レベルを上げたり静的解析ツールかませば一発で解決すること
まぁ、C/C++はともかくとして、それをC#やJava等の他言語で実践している奴にはマジでイラッとくる
908:仕様書無しさん
12/05/31 00:10:14.91
なんてこった読みやすくて素晴らしいGNUスタイルは定数を右に置くのか
しかし、定数だけGNUスタイルに合わせるのは問題だな
改行もインデントも至高のGNUスタイルにあわせなきゃっ!
909:仕様書無しさん
12/05/31 00:12:53.26
未だ定数を左に置くのはエラー出すためだけだと思ってるヤツが居るんだな()
910:仕様書無しさん
12/05/31 00:17:41.38
>>909
他に何があるっていうんだい?
911:仕様書無しさん
12/05/31 00:20:34.98
定数を右に書くヤツは数個前のレスすら読めないそうだ
912:仕様書無しさん
12/05/31 00:27:53.74
while( GetMessage( &message, 0, 0 ) > 0 )
読みづらいっつうの