クソコード

プログラム

プログラム書いてると、当然他人のコードを修正することになることもあるわけで、そんな時に

「は??!!」

ってなっちゃうコードがあります。

1,変数がローマ字

いやローマ字でいいときもあるにはあるんですよ。
基本的に変数は英語にするってのは、わりと暗黙のルールだったりもするんですけれど、あまりにも冗長な変数名になってしまうくらいなら、わかりやすいローマ字ってのもわからんでもないです・・・が、「namae」とかって変数名見たときは、「オイオイ」って思いました。
いやそこは「name」でいいだろ・・・と(笑)

2,一般的な変数がアルファベット1文字

変数iやjやkは部分的に出てくるfor文だけの変数にしましょう。
そのfor文が終わっても延々と出てくる変数iとjとkに悩まされたことがあります。

3,関数名に個人名が使われている

どこで何を主張しているんだ、と。
個人的に使うプログラムならそれでもいいのかもしれませんが、納品するようなプログラムでこれやっちゃうと、最悪プレゼンの時に「このsuzukiファンクションで~」って説明しなきゃいけないことになる恐れが(笑)

4,コピペされまくりのコード

いわゆる共通処理が共通化されていないってやつです。
「あれ?このコードアッチでも見たな」とか「コッチでも見たな」的なやつですね。
まったく別のシステムから、コピペで持ってくるのは別にいいと思うんですけれど、同じファイル内で2度も3度も同じコードが出てくるとゲンナリしちゃいます(苦笑)

5,絶対に実行されないコード

4とは逆のパターンです。
共通化しようと外に出したfunctionが、最終的に使われずにソース内に存在してることがあるんです。
途中で仕様が変わっちゃったときなどに起こりがちで、たまに見かけます。
あって困るものでもないですが、後から自分以外の人が確認する時に「あれ?このfunction何のためにあるんだ?」「どこで使われてるんだ?」って、可読性が悪くなるので止めたほうがいいです。

6,インデントがずれている

通常コーディングではインデントがずれていることって少ないです。
プログラム書いててインデントがずれていたら、単純にエラーになりますし、そもそもそんなクソコード書いているプログラマなんていないって信じたいです(笑)
ただ、記述言語であるhtmlでは非常ーーーーに多いです。
phpなんかで生成されたソースコードのhtmlや、速度重視のためにすべての改行やインデントを削除してるってのはしようがないですけれど、そうじゃない部分でインデントまったく気にしないで書かれているコード、わりと多いです。
そういうソース書く人に限って終了タグが閉じてなかったり、ネストがメチャメチャだったりとヒドいことになっていることが多いので、これはもう性格なんじゃないかと(苦笑)

7,コメントがない

コメントが一切記載されていないのはもれなくクソコード認定です。
当時いろいろな会社の先輩に言われたのは「すべてのプログラム部分を抜くとコメントだけで一つのドキュメントとして成立しているくらいコメントを書け」ってことでした。
何も無いよりは多すぎるくらいの方が、後からソースを読む人に優しいってことですね。
JavaScriptやhtmlなどは、最終的に相手にも見られてしまうコードなので、あえてコメントだけphpで書くってのはアリだと思っています。

8,例外をすべてキャッチしてスルー

ほんとうの意味でthrowです・・・
投げっぱなしです。catchメソッドで、握りつぶして終わりです。

9,意味のないコメントが書かれている

例えば「//ここループ」とか「/*ここでif文*/」など、意味のない誰が見ても「そんなの見りゃわかるわ!」っていうようなコメントはいらないです(笑)
さらに不要になったソースがコメントアウトされていたり、バージョン管理がコメントにかかれていたり、最終的に不要になったコメントは消すべきです。
昔はバージョン管理をコメントでやることもありましたけど、今そんなことしてる会社ないですよねぇ?・・・ねぇ?

可読性も悪くなりますし、誰かに見られたら格好悪いじゃないですか(笑)
過去に実際に見たコメントや、人に聞いたコメントで「これヤバい」と思ったコメント例です。

  • なんで動いてるのかわからない あとでリファクタングよろ(おい!)
  • 結果計算あってるのでここは消さない(え?!)
  • バージョン管理にこの部分のことは書かない(何があったんだよ!)
  • すいません消えちゃったので新たに作りました(まぁ偉いけどねw)
  • テストID「xxxxx」パスワード「xxxxx」(これで実際本番環境でログインできてしまって大問題になりました)
  • ここは○○さんに聞く(誰だよ!)
  • ここでメモリリークします(なおせよ!!)

・・・世の中いろいろありますよね(遠い目

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です