-
プログラム
-
初心者の作ったプログラムにありがちなこと
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
ありそうでなかったスレ - コメントを投稿する
-
sudo kill >>1
-
せめてマ板に立てればいいものを...
-
まじれすすると
「動かない」 -
ポインタ変数を宣言しただけで、そこにメモリの平原が広がっていると妄想する。
-
変数の型が何バイトかわかっていない。
-
タブインデックスが設定されてないとか、ウインドウは可変になってるのにコントロールの配置は固定になってるとか、
OK、キャンセル系のボタンでフォームを閉じる時には後始末の処理をやってるけど、×を押されると対応してないとか。 -
メニューバーがなく、OKボタンで終了する。
-
C#なのにクラスがない
-
publicだらけ
-
コピペ
-
staticなメソッドしかない
-
インデントがタブ/スペース混在。
-
そこそこの規模があるのにすべて一つのクラス
-
意味もなく個性を追求
-
main関数内でなんでも終わらせようとする
(慣れると、むしろそのほうが難しいよね・・・) -
フラグ用グローバル変数の山
-
メソッドに「○○する関数」というコメントがついてる
-
>>19
それは別にいいんじゃね? -
インラインアセンブラを使うが逆効果
-
コードを手直ししてもコメントはそのまま。
-
>>22
下の様に書く言語もあるから,メソッドもプロパティも関数でいいんじゃね?w
class MyClass {
function MyMethod() {
}
function get MyProperty() {
}
function set MyProperty() {
}
} -
メソッドというと脳がショートする同僚がいるので、
例えどのようなものでも関数と呼ぶようにする。
クラスは最近慣れたらしいが構造体とか列挙子がと言ったほうが通じる。 -
動きや使いどころが違うものに似た記述方法を用いると、
分かりやすい部分もあるが、分かりにくい部分もあるな
-
C++はメソッドをメンバ関数というな
オブジェクト指向性が中途半端なのが原因だが -
コメントがない
-
えーむしろ初心者の方がコメントを打つような気が。
ただしコメントの内容がわかりづらいけど。
#もし戻り値がfalseだったらエラーにする
if not foo(baz) :
print "エラーです"
sys.exit(1)
いや、それは見たら分かるから、どういうチェックさせている端的に書けと。 -
簡単な処理をわざわざ難しく書く。
-
自分が書いたコードでも数日経つと読めない
-
int* null_ptr = NULL;
*null_ptr = 50;
-
ポインタだとわからなくなるので
全部配列にする。
-
初心者に毛が生えると>>22のようにどうでもいいことにこだわりだしますw
-
俺が初めて作ったシューティングゲームは1ファイル15000行
-
起動しようとすると「〜.dll(デバッグ用ライブラリやダイナミックリンク用メモリマネージャなど)が見つかりません」と出る。
-
>>33
逆に、高速化を狙いポインタを使ってわけのわからないことをする -
ファイル名がうんこ
-
細かく分けすぎ&雑な名前付けのせいで、何をする関数か当人でも即答できなくなる
-
>>37
その挙句に、却って遅い罠。 -
>>36
しかもそのdllがない客先でそれを起こす。 -
変数名をworkとかa,b,num等の名前から内容を推測できないものにし、しばらくしてから書いた本人も読めなくなる。
・・・というのは誰でも初めはやるわな。
むしろ早い段階でやっておいて、後悔したほうが勉強になっていい。
あと、インクリメント演算、デクリメント演算を使わない、for文を使わないなどもあるね。
最初はそれもいいと思うけど、とりあえず書けるようになってきたら、
頑張って使う努力をしないと何時になっても使えない気がする。 -
>>38
俺は今でも使うぞ -
cntとか下品な言葉を使いまくりのやつとか。
-
それ、カントのことじゃないよ?
-
>>44
警察のどこが下品なの? -
>>44
関東と近畿 -
巨大なクラスと巨大なメンバ関数が
ほとんどを占めていて大丈夫か?
と思うが、意外と何でもできる。
こいつ天才か?と、
でも
次の瞬間シヌ。
-
if の連続で、よくみたら
最初のif が閉じたのが数ページ後
-
確かにありそうでなかったw
これ、何故動かないのか悩みに悩んだソース。
10 A="PRINT"
20 A "HELLO"
run
Syntax Error in 20
■
ほんとのほんとに初心者だったからなぁ。 -
>>50
プログラマの素質がありません -
ド・モルガンの法則を知らない
-
集合論は数学Aの修学過程に包含されて高校1年後期〜2年前期で習うわけだが…。
-
ワード単位でごっそりMOVするくせにTSTやTSTNでせこくビット展開した挙げ句、
XFERやXFRBを駆使して点在した値を再度ワードアドレスに転送したりする。
よく分からなくなったら立ち上がり微分のb接点で自己保持を切ったり、強引にRSTかましたりする。 -
>>56
電気屋乙 -
not (2 < a and a < 8)
のとき
2 >= a or a >= 8
と同値ってすぐ判るよな?
-
多くの言語では違うと思う
-
それはないw
-
>>58
お前がすぐ判らないのは判った -
演算子の優先順位に依存します
-
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)
とか冗長な書き方するのは別にいいと思う
「視認性の為の冗長さをかっこわるいと思う」ってのも初心者にありがちじゃないかい -
初心者に毛が生えると>>58のように凡ミスをします
-
>>64
それはandの場合ならね -
>>64
無駄をかっこわるいと思うのは初心者じゃなく中級者じゃね -
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リフレッシュを行う。 -
>>50
イキロ -
最近の言語では
a = print
a("hello")
が普通に動いたりするし、ある意味時代を先取りじゃね?w -
C++0xだとさらに
auto a = printf;
a("hello¥n"); -
Java でクラス一つ、メソッド多数、main() の中で手続き型構造化プログラミング。
-
gccならできるだろ
-
サンクス
そりゃ便利だな。g++にはfinallyもあるし結構ツボな拡張が多いよね。
gccはほとんど使ったことないんだけどw -
C++0xでググれ
-
でもfinallyは現状でもかなりの処理系で実装されてるよね
-
ちなみにfinallyは時期C++でも非標準だからね。
-
init();
try{
}finally{
done();
}
って距離が遠すぎるんだよな。
begin{
init();
} end {
done();
} main {
}
にしてくれ。 -
距離が遠すぎると感じるくらい詰め込みすぎのプログラムは初心者にありがちですね
-
ボトムズに乗れば勝機はある
-
わざわざスペース入れるの面倒臭い
詰め詰めで書いて後で整形ツールで一括整形するわ
というか構文木で保存しておいて編集するときは整形ルールを適用して表示するようにすりゃいいのだ
XMLとスキーマみたいにさ -
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 = 値 -
>>90
Delphi だと
with foo.bar.baz.hoge do begin
fuga1.Text = XXX;
fuga2.Text = XXX;
...
fuga23.Text = XXX;
end;
だな なつかしい -
>91
いや、VBにもほぼ同じ機能の With があるんだよ
なのに >90 みたいなコード書く人が居るからスレタイ通りなワケで… -
まぁ、withを使うのは下策だとする書籍もあるがな。曰く、検索したときにヒットしにくいとか。
あれは誰の書いた本だったか。物書きとしては兎も角、技術者としては初心者レベルだったのだろう。 -
どっちかっつーとwith云々よりも
fuga1〜fuga23を一々書いてる辺りが問題じゃね?
配列的な何かが使えないのか -
配列を使わないでText1、Text2…
って変数作っちゃったことはあるな。そう言えば。 -
MFC使ってるとブトゥンウィンドウひとつごとに
CButton button1;
CButton button2;
CButton button3;
ってデータメンバ作っちゃうことなんて普通。プチスール。
-
VB6とかなら
dim a as variant
a = "123"
dim i as long
i = a
こんな感じの暗黙キャストしまくりとかあったな… -
こんな酷いの専門の時よく見たなぁ
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);
} -
ファイル分けで躓く
とりあえず動かせるようにと、ファイル間共有する変数は全てextern
書きなおすより作りなおしたほうが早いことに気付く
自分はそうだった……
↑今すぐ読める無料コミック大量配信中!↑