プログラマがやってはいけない97のこと

  1. 全角スペース使う

  2. インデントにタブと空白が混在

  3. 変数名や関数名でスペルミス

  4. 変数名が女の名前

  5. char aznable;

  6. 浮動小数を等値比較

  7. 三項演算子の数行に渡る多重ネスト

  8. 同じシステムの中で複数の文字コードが混在

  9. 増殖する #define XXX_OK, #define XXX_NG シリーズ

  10. ロジック修正してもそのままのコメント&関数・変数名

  11. 人のソースを何があったとしても絶対に読まない

  12. これと同じ処理を他の機能でやってるからコピペでいいよね

  13. めんどくさいから全部 public でいいや^^;

  14. staticを使えば,わざわざインスタンスを作る必要などない

  15. 全部グローバル変数

  16. 見積もり時の規模に合わせるため,やたら冗長な処理やコメントを入れたりする

  17. 1関数1000行越え

  18. 1000行以上のプログラムなのにコメントが先頭のテンプレだけ

  19. 以前の実装は全てコメントアウトして残しておく

  20. コメントアウトソースコードのみで5000行突破

  21. ドキュメントとソースが微妙に違う

  22. ドキュメントはソースのみ

  23. / おまじない /

  24. / このプログラムは作り直した方が良いと思う /

  25. / エラー処理は後で実装 /

  26. / 念のため /

  27. / 暫定 /

  28. / 後で直す /

  29. / 気が向いたら直す /

  30. / 直すんじゃないかな /

  31. / ま,ちょっと覚悟はしておけ /

  32. / 絶対にバグはない /

  33. / 警告が出るが問題ない /

  34. / コンパイルエラーはコメントアウト /

  35. / さわるな危険 /

  36. / ここで例外は起きない /

  37. / ここにはこないはず /

  38. / ロジックとしてはおかしいけどなぜか動くのでこのまま /

  39. / やる意味があるのかわからないけどやっておく /

  40. / ここをコメントアウトしたら動く /

  41. / この一行を加えると何故か動く /

  42. / この変数は使わないけど消すと動かない /

  43. / どうして動くのかわからない /

  44. / このプログラム,汚すぎてバグ直すにも直せないよ,わけがわからないよ /

  45. / こんな短期間で組めるわけねーじゃん /

  46. / echo どうかしてるぜ! /

  47. / 山田さんに修正しろって言われたから修正しました /

  48. / 田中さんが仕様を考えました,田中さんに聞いてください /

  49. / <\fileserverほげプロジェクト仕様書.xls />

  50. / 神プログラムなので動かすと死にます /

  51. / ここ元々は GPL のコード /

  52. ifdef NOT_USE

  53. int temp1, temp2, temp3;

  54. int kaunta1, kaunta2, ...

  55. int i, j, k, l, m, n, o, p, q; / とりあえず宣言しておく /

  56. int flg; / flag /

  57. unsigned char notuse[1024]; // メモリ破壊される対策に空間あけておく

  58. printf(""); // この行を取り除くと動かない

  59. sleep(100); //なぜかうまくいく

  60. sleep(0.001); //実行順序入れ替え

  61. } catch (Exception e) { / エラー対策 / }

  62. this++;

  63. 「C++をマスターしました」

  64. 乱立する xxxString クラスシリーズ

  65. 『初めてのC』を居間に放置

  66. ポテチ(お菓子)食べた手で画面を指さす

  67. コピー&ペーストした時に不要なコードを削除するのを忘れる*2

  68. ノートPC持ったまま飲み会参加

  69. twitterにハマる

  70. rm -rf /

  71. それは仕様です

  72. ビルドの通らないソースをコミット

  73. テストコードのないリファクタリング

  74. 共有フォルダでソースコード管理

  75. 共同プロジェクトでのファイル上書き

  76. 課題一覧.xls、課題一覧(最新).xls、課題一覧_今日の日付.xlsが入っているフォルダ

  77. バージョン管理なしでの日付.zipデグレ

  78. コンフリクトしたソースコードを強制コミット

  79. SVN でのコミット合戦

  80. 休み前日にコードをコミットしてから自動ビルドが終わる前に帰ること

  81. 時間がないからレビューは割愛

  82. 運用環境に「エラーorz」みたいなメッセージを残す

  83. バックアップなしの本番データの更新

  84. 本番環境のJSPを稼働中に修正

  85. 未テストの環境に納品すること

  86. 開発者の本体でしか動いた実績のないコード

  87. 直前までコード弄って現地でテスト

  88. すぐ出来ますと言う

  89. 一度も動かしていないのに「出来ました!」(ヒドイときはコンパイルすら通らない)

  90. 周りの迷惑も考えずぶつぶつ独り言を言いながらやるセルフペアプログラミング

  91. 「なんか,一箇所変数未定義でコンパイラ通らないから,宣言足しといたよ~」

  92. 「あ,これって仕様自体間違ってるからバグじゃね・・・まぁいいか,問い合わせるのめんどくせーし」

  93. 「まぁいいか.どうせ俺が使うシステムじゃないし」

  94. 「コード汚いから1から書き直そう!!」

  95. 自分が書いたソースコードを共有せずに退職

  96. 逃亡

  97. go to #やってはいけないプログラマーのNG