この記事は「プログラミングの間違い」シリーズに含めたいと思います。私は大学の通常の授業でソフトウェア エンジニアリング、エンタープライズ ソフトウェア アーキテクチャ、データベース設計に触れてきましたが、今でも時々次のような事実に「罪悪感」を感じます。もちろん、これらはすべて私の主観的な感情であり、Eclipse に向けたものです。 :
あなたは次のような PHP 初心者です:
1. phpDoc などのツールを使用してコードに適切にコメントできない
2. Zend Studio や Eclipse PDT は見て見ぬふりをする
3. Subclipse などのバージョン管理システムを一度も使用したことがない
4. 特定のコーディングおよび命名標準、および一般的な規則を採用しないでください。プロジェクトを開発する サイクル中に実装する
5. 統一された開発方法を使用しない
6. 特定の入力文字列または SQL クエリ文字列を変換しない (または) 検証しない (注釈: PHP 関連関数を参照)
7.コーディングする前にプログラムを徹底的に計画してください
8. テスト駆動開発を使用しないでください
9. エラーを有効にしてコーディングおよびテストしないでください (注釈: PHP 関数 error_reporting を参照)
10.デバッガの利点
11. コードをリファクタリングしないでください
12. プログラムの異なるレベルを分離するために MVC のようなパターンを使用しないでください
13. KISS、DRY の概念を理解していない、MVC、OOP、REST
14. 関数またはクラスでコンテンツを直接出力 (エコー/出力) します
15. 単体テストまたは一般テストの利点に目をつぶる
16常にハードコーディングされた HTML を返しますが、純粋なデータ、文字列、オブジェクトは決して返しません
18. SQL クエリ ステートメントを最適化しないでください
19。 __autoload は使用しないでください (注釈: PHP マニュアルの該当する説明を参照してください)
20. インテリジェントなエラー処理は許可されていません (翻訳: PEAR の ErrorStack を参照してください)
21. 破壊的な処理を行うには、$_POST の代わりに $_GET を使用してください。転送操作
22. 正規表現の使い方がわからない
23. SQL インジェクションやクロスサイト スクリプティングについて聞いたことがない
24. クラスのコンストラクターは使用できません。パラメータの受け渡しを受け入れてから set/get メソッドを実行するか、コードを OOP に従ってください
28. スマートなデフォルトを使用しないでください
29. 単一の設定ファイルはありません
30.ファイルのソース コードを公開したくないが、.php の代わりに .inc 接尾辞を使用する
31. データベース抽象化レイヤーを使用しない
32. DRY スタイルを維持できない。いつも何かをコピーして貼り付けている場合は、設計が不十分であることを意味します
33. 関数/クラス/メソッドを実装しないと実行できるのは 1 つだけであり、それらを組み合わせることができません
34.抽象クラス、インターフェース、ポリモーフィズム、継承、アクセス制御修飾子などの OOP の長所を試すことができませんでした (注釈: public、private、protected など)
35. プログラム アーキテクチャ設計を最適化するために既存の設計パターンを使用しないでください
36. 多数のファイルまたはディレクトリがある場合は、ユーザーにベース ディレクトリの定義を許可しないでください。
37. 名前空間を汚染します。たとえば、ライブラリ関数の名前に共通の文字列を使用します。
38.データベーステーブルを使用する場合
39. 統合されたテンプレートエンジンを使用しないでください。
40. 既存の PHP 開発フレームワークに注意を払わず、実際には、高度な開発コンセプトと素晴らしいコードが含まれています。 。
翻訳メモ: Ma Yongzhan 著の「40 Bad Habits of PHP Programmers」の翻訳版もあります。これは簡潔で、翻訳者の注釈が付いています。