プログラマがやってはいけない97のこと
- 全角スペース使う
- インデントにタブと空白が混在
- 変数名や関数名でスペルミス
- 変数名が女の名前
- char aznable;
- 浮動小数を等値比較
- 三項演算子の数行に渡る多重ネスト
- 同じシステムの中で複数の文字コードが混在
- 増殖する #define XXX_OK, #define XXX_NG シリーズ
- ロジック修正してもそのままのコメント&関数・変数名
- 人のソースを何があったとしても絶対に読まない
- これと同じ処理を他の機能でやってるからコピペでいいよね
- めんどくさいから全部 public でいいや^^;
- staticを使えば,わざわざインスタンスを作る必要などない
- 全部グローバル変数
- 見積もり時の規模に合わせるため,やたら冗長な処理やコメントを入れたりする
- 1関数1000行越え
- 1000行以上のプログラムなのにコメントが先頭のテンプレだけ
- 以前の実装は全てコメントアウトして残しておく
- コメントアウトソースコードのみで5000行突破
- ドキュメントとソースが微妙に違う
- ドキュメントはソースのみ
- /* おまじない */
- /* このプログラムは作り直した方が良いと思う */
- /* エラー処理は後で実装 */
- /* 念のため */
- /* 暫定 */
- /* 後で直す */
- /* 気が向いたら直す */
- /* 直すんじゃないかな */
- /* ま,ちょっと覚悟はしておけ */
- /* 絶対にバグはない */
- /* 警告が出るが問題ない */
- /* コンパイルエラーはコメントアウト */
- /* さわるな危険 */
- /* ここで例外は起きない */
- /* ここにはこないはず */
- /* ロジックとしてはおかしいけどなぜか動くのでこのまま */
- /* やる意味があるのかわからないけどやっておく */
- /* ここをコメントアウトしたら動く */
- /* この一行を加えると何故か動く */
- /* この変数は使わないけど消すと動かない */
- /* どうして動くのかわからない */
- /* このプログラム,汚すぎてバグ直すにも直せないよ,わけがわからないよ */
- /* こんな短期間で組めるわけねーじゃん */
- /* echo どうかしてるぜ! */
- /* 山田さんに修正しろって言われたから修正しました */
- /* 田中さんが仕様を考えました,田中さんに聞いてください */
- /* <\fileserverほげプロジェクト仕様書.xls */>
- /* 神プログラムなので動かすと死にます */
- /* ここ元々は GPL のコード */
- #ifdef NOT_USE
- int temp1, temp2, temp3;
- int kaunta1, kaunta2, …
- int i, j, k, l, m, n, o, p, q; /* とりあえず宣言しておく */
- int flg; /* flag */
- unsigned char notuse[1024]; // メモリ破壊される対策に空間あけておく
- printf(“”); // この行を取り除くと動かない
- sleep(100); //なぜかうまくいく
- sleep(0.001); //実行順序入れ替え
- } catch (Exception e) { /* エラー対策 */ }
- this++;
- 「C++をマスターしました」
- 乱立する xxxString クラスシリーズ
- 『初めてのC』を居間に放置
- ポテチ(お菓子)食べた手で画面を指さす
- コピー&ペーストした時に不要なコードを削除するのを忘れる*2
- ノートPC持ったまま飲み会参加
- twitterにハマる
- rm -rf /
- それは仕様です
- ビルドの通らないソースをコミット
- テストコードのないリファクタリング
- 共有フォルダでソースコード管理
- 共同プロジェクトでのファイル上書き
- 課題一覧.xls、課題一覧(最新).xls、課題一覧_今日の日付.xlsが入っているフォルダ
- バージョン管理なしでの日付.zipデグレ
- コンフリクトしたソースコードを強制コミット
- SVN でのコミット合戦
- 休み前日にコードをコミットしてから自動ビルドが終わる前に帰ること
- 時間がないからレビューは割愛
- 運用環境に「エラーorz」みたいなメッセージを残す
- バックアップなしの本番データの更新
- 本番環境のJSPを稼働中に修正
- 未テストの環境に納品すること
- 開発者の本体でしか動いた実績のないコード
- 直前までコード弄って現地でテスト
- すぐ出来ますと言う
- 一度も動かしていないのに「出来ました!」(ヒドイときはコンパイルすら通らない)
- 周りの迷惑も考えずぶつぶつ独り言を言いながらやるセルフペアプログラミング
- 「なんか,一箇所変数未定義でコンパイラ通らないから,宣言足しといたよ~」
- 「あ,これって仕様自体間違ってるからバグじゃね・・・まぁいいか,問い合わせるのめんどくせーし」
- 「まぁいいか.どうせ俺が使うシステムじゃないし」
- 「コード汚いから1から書き直そう!!」
- 自分が書いたソースコードを共有せずに退職
- 逃亡
- go to #やってはいけないプログラマーのNG