1read 100read
2012年6月プログラム498: 初心者の作ったプログラムにありがちなこと (241) TOP カテ一覧 スレ一覧 2ch元 削除依頼
いまだにVC6から離れられない奴の数→ (214)
一度は読んだほうがいい、ソースコード (306)
【信者】C++の問題点【アンチ】 (372)
Kinect ハック (973)
ポインタを難しいと言う奴が理解できない (850)
【Java】Wicket【HTML】 (580)

初心者の作ったプログラムにありがちなこと


1 :08/03/08 〜 最終レス :12/05/16
ありそうでなかったスレ

2 :
sudo kill >>1

3 :
せめてマ板に立てればいいものを...

4 :
まじれすすると
「動かない」

5 :
ポインタ変数を宣言しただけで、そこにメモリの平原が広がっていると妄想する。

6 :
変数の型が何バイトかわかっていない。

7 :
タブインデックスが設定されてないとか、ウインドウは可変になってるのにコントロールの配置は固定になってるとか、
OK、キャンセル系のボタンでフォームを閉じる時には後始末の処理をやってるけど、×を押されると対応してないとか。

8 :
メニューバーがなく、OKボタンで終了する。

9 :
C#なのにクラスがない

10 :
publicだらけ

11 :
コピペ

12 :
staticなメソッドしかない

13 :
インデントがタブ/スペース混在。

14 :
そこそこの規模があるのにすべて一つのクラス

15 :
メモリが溢れる
>>10
なんという俺のプログラム

16 :
意味もなく個性を追求

17 :
main関数内でなんでも終わらせようとする
(慣れると、むしろそのほうが難しいよね・・・)

18 :
フラグ用グローバル変数の山

19 :
メソッドに「○○する関数」というコメントがついてる

20 :
>>19
それは別にいいんじゃね?

21 :
インラインアセンブラを使うが逆効果

22 :
>>20
functionでないものを関数と呼ぶ理由はないと思われ
普通に「○○するサブルーチン」でいいじゃん

23 :
コードを手直ししてもコメントはそのまま。

24 :
>>22
下の様に書く言語もあるから,メソッドもプロパティも関数でいいんじゃね?w
class MyClass {
    function MyMethod() {
    }
    function get MyProperty() {
    }
    function set MyProperty() {
    }
}

25 :
メソッドというと脳がショートする同僚がいるので、
例えどのようなものでも関数と呼ぶようにする。
クラスは最近慣れたらしいが構造体とか列挙子がと言ったほうが通じる。

26 :
動きや使いどころが違うものに似た記述方法を用いると、
分かりやすい部分もあるが、分かりにくい部分もあるな

27 :
C++はメソッドをメンバ関数というな
オブジェクト指向性が中途半端なのが原因だが

28 :
コメントがない

29 :
えーむしろ初心者の方がコメントを打つような気が。
ただしコメントの内容がわかりづらいけど。
#もし戻り値がfalseだったらエラーにする
if not foo(baz) :
  print "エラーです"
  sys.exit(1)
いや、それは見たら分かるから、どういうチェックさせている端的に書けと。

30 :
簡単な処理をわざわざ難しく書く。

31 :
自分が書いたコードでも数日経つと読めない

32 :
int* null_ptr = NULL;
*null_ptr = 50;

33 :
ポインタだとわからなくなるので
全部配列にする。

34 :
初心者に毛が生えると>>22のようにどうでもいいことにこだわりだしますw

35 :
俺が初めて作ったシューティングゲームは1ファイル15000行

36 :
起動しようとすると「〜.dll(デバッグ用ライブラリやダイナミックリンク用メモリマネージャなど)が見つかりません」と出る。

37 :
>>33
逆に、高速化を狙いポインタを使ってわけのわからないことをする

38 :
ファイル名が

39 :
細かく分けすぎ&雑な名前付けのせいで、何をする関数か当人でも即答できなくなる

40 :
>>37
その挙句に、却って遅い罠。

41 :
>>36
しかもそのdllがない客先でそれを起こす。

42 :
変数名をworkとかa,b,num等の名前から内容を推測できないものにし、しばらくしてから書いた本人も読めなくなる。
・・・というのは誰でも初めはやるわな。
むしろ早い段階でやっておいて、後悔したほうが勉強になっていい。
あと、インクリメント演算、デクリメント演算を使わない、for文を使わないなどもあるね。
最初はそれもいいと思うけど、とりあえず書けるようになってきたら、
頑張って使う努力をしないと何時になっても使えない気がする。

43 :
>>38
俺は今でも使うぞ

44 :
cntとか下品な言葉を使いまくりのやつとか。

45 :
それ、カントのことじゃないよ?

46 :
>>44
警察のどこが下品なの?

47 :
>>44
関東と近畿

48 :
巨大なクラスと巨大なメンバ関数が
ほとんどを占めていて大丈夫か?
と思うが、意外と何でもできる。
こいつ天才か?と、
でも
次の瞬間シヌ。

49 :
if の連続で、よくみたら
最初のif が閉じたのが数ページ後

50 :
確かにありそうでなかったw
これ、何故動かないのか悩みに悩んだソース。
10 A="PRINT"
20 A "HELLO"
run
Syntax Error in 20

ほんとのほんとに初心者だったからなぁ。

51 :
>>50
プログラマの素質がありません

52 :
ド・モルガンの法則を知らない

53 :
うちの会社のソースが、殆ど当てはまるなぁ
>>49とか
おわっとる

54 :
>>52
それ自体は知らなくてもしばらくやってたら自分で発見するだろ、普通
と思ってた時期が俺にもありました・・・・

55 :
集合論は数学Aの修学過程に包含されて高校1年後期〜2年前期で習うわけだが…。

56 :
ワード単位でごっそりMOVするくせにTSTやTSTNでせこくビット展開した挙げ句、
XFERやXFRBを駆使して点在した値を再度ワードアドレスに転送したりする。
よく分からなくなったら立ち上がり微分のb接点で自己保持を切ったり、強引にRSTかましたりする。

57 :
>>56
電気屋乙

58 :
not (2 < a and a < 8)
のとき
2 >= a or a >= 8
と同値ってすぐ判るよな?

59 :
多くの言語では違うと思う

60 :
それはないw

61 :
>>58
お前がすぐ判らないのは判った

62 :
演算子の優先順位に依存します

63 :
>>59-62はおいといて、
2 >= a or a >= 8
ではなく
a <= 2 or 8 <= a
って書いてほしいんだけど!!!!

64 :
C風にいうと範囲を表現するときは
2 < Val && Val < 10          2 < Val AND Val < 10
とかの表記のほうが
2 < Val < 10     という意味を視覚的に表現できてると思う
だから   if ( ! (2 < X && X < 10)     IF ( NOT (2 < Val AND Val < 10)
とか冗長な書き方するのは別にいいと思う
「視認性の為の冗長さをかっこわるいと思う」ってのも初心者にありがちじゃないかい

65 :
初心者に毛が生えると>>58のように凡ミスをします

66 :
>>64
それはandの場合ならね

67 :
>>64
無駄をかっこわるいと思うのは初心者じゃなく中級者じゃね

68 :
>>62
カッコつければいいだけじゃないかっ
優先順位的に必要なくてもカッコつけたほうが処理の括りとしてわかりやすい場合もあるしね

69 :
LD CF113
ANDNOT 0.00
@MOV #0 D0
LD =< #2 D0
AND =< D0 #8
OUT 0.01
++B D0
LD < D0 #9
OUT 0.00 END
―動作説明―
・毎スキャンに渡りブールデバイス0.00がOFFの時、ワードデバイスD0に1スキャンのみ#0を転送する。
・毎スキャンに渡りD0が&2〜8である時、ブールデバイス0.01をONする。
・毎スキャンに渡りワードデバイスD0をインクリメントする。
・毎スキャンに渡りワードデバイスD0が&9より大きい時、ブールデバイス0.00をONする。
・I/Oリフレッシュを行う。

70 :
>>50
イキロ

71 :
最近の言語では
a = print
a("hello")
が普通に動いたりするし、ある意味時代を先取りじゃね?w

72 :
>>71
#include <stdio.h>
main(){
int (*a)(char*, ...);
a=printf;
a("hello");
}

73 :
C++0xだとさらに
auto a = printf;
a("hello¥n");

74 :
Java でクラス一つ、メソッド多数、main() の中で手続き型構造化プログラミング。

75 :
>>73
お前いい事言うな。
出来るか?
なら今すぐやれ。

76 :
gccならできるだろ

77 :
>>73
それって型推論でもやってるの?
auto pi = 3.14;
とかもあり?
autoってauto intの略だったような記憶が。

78 :
>>77
型推論用にautoキーワードができた。
その例だと、環境にもよるけどpiはdoubleになる。

79 :
サンクス
そりゃ便利だな。g++にはfinallyもあるし結構ツボな拡張が多いよね。
gccはほとんど使ったことないんだけどw

80 :
>>72
#define a printf
main () {
a( "hello" );
}
こっちのが近い感じかも。
ちなみに当時小学1年か2年。子供の発想力って凄いわ。

81 :
>>79
g++というか時期C++がそうなる予定。
g++がTechnical Reportの一部をお試し実装しているということ。

82 :
C++0xでググれ

83 :
でもfinallyは現状でもかなりの処理系で実装されてるよね

84 :
ちなみにfinallyは時期C++でも非標準だからね。

85 :
init();
try{
}finally{
 done();
}
って距離が遠すぎるんだよな。
begin{
 init();
} end {
 done();
} main {
}
にしてくれ。

86 :
距離が遠すぎると感じるくらい詰め込みすぎのプログラムは初心者にありがちですね

87 :
ボトムズに乗れば勝機はある

88 :
わざわざスペース入れるの面倒臭い
詰め詰めで書いて後で整形ツールで一括整形するわ
というか構文木で保存しておいて編集するときは整形ルールを適用して表示するようにすりゃいいのだ
XMLとスキーマみたいにさ

89 :
>>88
>構文木で保存しておいて
最初からLispで書けよ

90 :
VB
foo.bar.baz.hoge.fuga1.Text = 値
foo.bar.baz.hoge.fuga2.Text = 値

foo.bar.baz.hoge.fuga22.Text = 値
foo.bar.baz.hoge.fuga23.Text = 値

91 :
>>90
Delphi だと
with foo.bar.baz.hoge do begin
 fuga1.Text = XXX;
 fuga2.Text = XXX;
 ...
 fuga23.Text = XXX;
end;
だな なつかしい

92 :
>91
いや、VBにもほぼ同じ機能の With があるんだよ
なのに >90 みたいなコード書く人が居るからスレタイ通りなワケで…

93 :
まぁ、withを使うのは下策だとする書籍もあるがな。曰く、検索したときにヒットしにくいとか。
あれは誰の書いた本だったか。物書きとしては兎も角、技術者としては初心者レベルだったのだろう。

94 :
どっちかっつーとwith云々よりも
fuga1〜fuga23を一々書いてる辺りが問題じゃね?
配列的な何かが使えないのか

95 :
配列を使わないでText1、Text2…
って変数作っちゃったことはあるな。そう言えば。

96 :
MFC使ってるとブトゥンウィンドウひとつごとに
CButton button1;
CButton button2;
CButton button3;
ってデータメンバ作っちゃうことなんて普通。プチスール。

97 :
>>96
クラスウィザードないと何にもできない奴とか、いるからなー。
オブジェクトがいくつあろうと配列にしてないから、
メッセージマップもひとつづつ指定しやがる。

98 :
VB6とかなら
dim a as variant
a = "123"
dim i as long
i = a
こんな感じの暗黙キャストしまくりとかあったな…

99 :
こんな酷いの専門の時よく見たなぁ
void func(int flg,int flg2)
{
if(grbFlg == OK)
if(flg == 1)
{
if(flg2 == 1)
{
処理1
} else{
処理2
}
}else if(flg == 2)
if(flg2 == 1)
{
処理1
}else{
エラー処理
}
}
}
printf("%d %d %d",grbFlg,flg1,flg2);
}

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
文字コード総合スレ part7 (677)
おまいら最強のリバーシプログラムしてみろよ part3 (247)
【統計分析】機械学習・データマイニング【集合知】 (966)
Excel VBA 質問スレ Part24 (908)
XNA 質問・相談スレッド 2 (915)
著作権フリーのC++高速汎用多倍長演算を作るスレ (228)
--log9.info------------------
7DOWN 8UPPERはどうなのよ (515)
●●●●●●競技ダンスのテレビ放送●●●●●● (805)
帯広のバレエ教室に関係するスレ (704)
YOUYAさん (968)
ロックダンスで使える曲教えて下さい! (361)
【日土地】名古屋のストリートダンス事情 Part2 (473)
駅前でブレイクダンスしている (354)
★東京シティバレエ団 ★ Part 5 (246)
〜Danil.。.* ☆ダニール・シムキン☆*.。. Simkin〜 (533)
☆★☆★☆バレエ教室☆★☆★☆ (798)
    ★小学生からのバレエコンクール★     (456)
東方神起のダンス (299)
大阪バレエアカデミー(元研究所)について語って (282)
「ジゼル」について語ろう (741)
3ヶ月で180℃開脚出来るようになるスレ Part2 (705)
素敵なベリーダンサーがいたら教えてください (664)
--log55.com------------------
【国際】ムン・ザイン、ムン・ジーン、ムン・ジェイク 海外メディアで文大統領の誤表記相次ぐ
【韓国】「タクシー運転手が女性客をチラ見しながらオナニー(2017/11/30スレ)」=2審も有罪[05/28]
【米朝首脳会談】ヘイ、トランプ!ボクはもうシンガポールでキミが来るのを待っているよ[05/28]
【世界的な知識人】「文大統領みたいな指導者は見たことがない」米国の元長官が残した言葉[05/27]
【韓国大統領府】南北米の終戦宣言 朝米会談の成果次第との認識示す
【韓国】対日交流活性化へ作業部会=「日韓パートナーシップ共同宣言」20周年で韓国政府[05/28]
【韓国】韓国元統一部長官、米朝首脳会談中止を支持した安倍首相に苦言[05/28]
【日韓】韓国の国会議員が竹島上陸、外務省が抗議[05/28]