FC2ブログ

おじいコード

Qiitaにこんな記事が上がった。
https://qiita.com/yuu_j/items/d6e6fc4476ab1dc35cdc
こんなコードは嫌だ、おじいコード駆逐したい(とりあえず9つ)

コメント欄が繁盛しているがw、概ねその通り。

転職してきた若いプログラマが変なコード書いている。
どうやら前社の社内研修で教わったとのこと。
さて、老害は何を教えたのだろうか。


いや全くもってその通り。
  1. 変数名が雑
    IDE使ってるなら別にどうだって良いのだろうけれど、スペルミスは勘弁して欲しい。
    datasとかやめてよと。それならdtの方がましだよと。
    年寄り的解説:変数名の長さに制約があった時代の名残りとか、スペル調べる環境がない現場でそれっぽくするための便法だったり。今となっては必要がないだろう。
  2. 無駄な省略
    これも別にいいんだけど、countはcountと書けよと何度思ったことか。
    年寄り的解説:変数名の長さに制約が(略
  3. 無駄に()つけている
    処理系によっていろいろあるのは理解できるが、少なくともC/C++では評価順序が決まっているので不要な箇所で()つけられると理解に困る場合がある。所によっては不要な()を強制することも。
    「return の戻り値には必ず()をつけるべし」ってとこ多いでしょ。やめてよと。
    年寄り的解説:C/C++のごく初期には関数マクロが多用されていたこともあり、誤動作を避けるため何でもかんでも括弧つけるのが推奨された場面もあり。
  4. 変更するときに昔のコードをコメントアウトして残す
    これはルールとして明文化されているベンダーも多いが、邪魔なだけ&嘘だらけ。
    今時こんなのは、「ソース管理されていない」ってことで評価落とすだけだから若いお方はやめるように。
    同様にコメントも独自の記述を編み出しちゃったりしててdocument作成ツールに食わせられないものも多数。これも自動化していないってことは仕様書への反映が怪しいことの証明なので評価を落とす。
    年寄り的解説:これは百害しかないので言い訳できないよ
  5. 必要以上に広いスコープで変数宣言する
    これもごく初期のC(ANSI以前)では「関数先頭での宣言」以外は許されなかったりしたが、ANSI(1989)以降はブロック先頭での宣言~どこでも宣言と言い訳にならなくなっている。
    年寄り的解説:「LSI C-86試食版ではそうだから(キリッ」
  6. ハンガリアン
    これはまーいろいろ紆余曲折あったんだろうけれど、変数名に型情報を含めることは結局何の解決にもならない。だって嘘混じってるんだものw。
    今時普通にIDE使ってリファクタリングもワンタッチなら型変更にも耐えられるんだろうが、こいつら秀丸でgrepしかしないから結局型変更しても変数名変えずってのが増殖する。
    年寄り的解説:Microsoftとかがハンガリアンマンセーとかいう記事を出すとそのままマンセーしちゃったり。それを考え無しで後継に押し付けたんだろね
  7. ヨーダ記法
    元々は、「==と=を間違えた時にコンパイルエラーとなるように」と誰かが編み出した書き方なんだけれど、もうずいぶん前からコンパイルはwarningを出せるようになっている。(LSI C-86試食版は知らん)
    年寄り的解説:「俺はこういう経緯を知っているのだぜ」アピール以外の何者でもない。しかも何の役にも立たない。
  8. 言語として用意されている機能を使わない
    これについては指摘する際にちょっと注意してもらいたい。
    最近の言語であっても(スクリプト系であれば特に)「使ってはいけない」理由があったり、「使わない」理由があるケースが多い。
    使わない=知らない であることも多いだろうがそうでない場合も結構あるので自身の実になるかもしれないのでまず聞こう。
    年寄り的解説:とりあえず経験だけはあるので、本人が忘れていても体が覚えてそうしていることもある。それが適当であるのかないのかまではすぐに思い出せないが一緒に考えようw
  9. goto
    そりゃー通常は使っちゃいけないNo.1ですよ。今も昔も。
    でもあえて使う場面がないわけではない。が、やっぱり何か変なことがほとんどなので特殊な組込み系以外では治すべき。
    年寄り的解説:「だからdo~while(1)でbreakしろと」って輩も出てくる。もうそういうやつは無視して全部ロジック組みなおすのをお勧め。こういうやつらは治らない


とりあえず年寄り(もちろん俺含め)は理由をつけたがるが、これは若い人が素直すぎるのも一因。なんで信じるんだよーと。
コードのコピペもそう。まぁ張ってエラーをちょっと直していくと出来上がるってのを全否定はしないが、そこで何か考えなくてよかったのか?気にならないのか?と気になってしまう。

とまー、たまにぐずぐず言っておかないと心が病むので無責任な愚痴を吐き出しっと。
スポンサーサイト



プロフィール

f_yamaki

Author:f_yamaki

アクセスカウンタ
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク