【アンチパターン】そのプログラミングはNGです!【上級編】

anti-pattern-advanced

コーディングをしていると、こんなシチュエーションありますよね。

つぶやき
  • あの人の書いたコード、なんかちょっとイマイチ…
  • でも、直接そういうと、なんか失礼…

そんなときは、「アンチパターン」の言葉を使って、さりげなく相手に伝えましょう。

目次

車輪の再発明

車輪の再発明

既にあるものを使わず、一から作ること

世の中には、便利なライブラリ、先人のノウハウ、たくさんあります。それらを使わず、コードやプログラミング技法を再び一から作ってしまうことです。

そのような独自に考えたアーキテクチャは、たいてい思慮に欠けた陳腐なものとなり、利用者を困惑させます。

世の中の技術を知り、できるだけ役立てましょう。

参考:ヨシュアツリー原則~名前のないものは見えない

銀の弾丸/黄金のハンマー

銀の弾丸(あるいは黄金のハンマー)

お気に入りの方法が、問題の大半を解決できると思いこむこと

狼男や悪魔を一発で撃退できる「銀の弾丸」。

どんなものでも打ち崩す「黄金のハンマー」。

人は、過去の成功体験に囚われがちです。過去プロジェクトで大成功した技術は、あらゆる問題を解決できる、と信じてしまいます。

しかし技術の流れは速いです。過去の栄光も時代遅れになってしまうことがよくあります。

よく起こりがちなのがWebアーキテクチャ。ServerSideRendering→Ajax→jQuery→SPA…。技術は目まぐるしく変化します。

全ての問題に通用する万能な解決策などないと考え、適切な技術を学び続けて適用しましょう。

カーゴ・カルト・プログラミング

カーゴ・カルト・プログラミング

パターンや方法論を、その理由を理解せずに用いること

カーゴ・カルト:元々は第二次世界大戦後の南太平洋で見られた先住民の宗教に由来。これらの人々は、戦時中素晴らしい積荷をもたらしてくれた神のような飛行機を呼び出そうと、一心不乱に精巧な飛行機の模型や滑走路を作り上げた。

デザインパターンやコーディングスタイルを、その背景を理解せぬまま、過剰に適用してしまうことです。

特に「オブジェクト指向」に関する技術は、一時期は我も我もと、盲目的に適用された時期があり、混乱を招きました。

その技術が生み出された理由や、設計の原理原則を理解して使いましょう。

テスター駆動開発

テスター駆動開発

新しい要求がバグ報告書で記述されるようなプロジェクト

「テスト駆動開発」や「ビヘイビア駆動開発」などと比較した皮肉的な言い方。

テストは、本来は要求が満たされているかを確認する工程です。

しかしそれまでの設計が不十分であると、テスト工程で始めて仕様不備が発覚し、仕様が追加されるといった事態になります。これが頻発するとテスト工程はひっ迫し、品質も低下します。

網羅性を持った設計を行ってから、テストに臨みましょう。

まとめ

アンチパターンを知ることは、コードの品質向上にも役立ちます。

ぜひ身につけましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次