天天看點

PHP程式員的40點陋習(轉)

Reinhold Weber 提出PHP程式員的40點陋習.(本E問隻寫了一部分内容,譯者找到原版翻譯,以下是完全版)

       1不寫注釋

       2不使用可以提高生産效率的IDE工具

       3不使用版本控制

       4不按照程式設計規範寫代碼

       5不使用統一的方法

       6編碼前不去思考和計劃

       7在執行sql前不執行編碼和安全檢測

       8不使用測試驅動開發

       9編碼時不打開自動報錯(error_reporting)

       10不使用一種好的調試工具

       11不重構你的代碼(refactor)

       12不采用MVC這樣的分層結構

       13不知道以下等等概念:KISS,DRY,MVC,OOP,REST

       14在函數或者類裡直接用print或者echo輸出東西而不是傳回(return)

       15不使用也不去了解單元測試

       16傳回HTMl而不是data,strings,objects等類型

       17糟糕的代碼和配置參數(hard code messages and configuration parameters)

       18不優化sql查詢

       19不使用__autoload

       20不支援自動錯誤操作(應該是智能糾錯)

       21使用$_GET替代$_POST去進行危險的參數傳遞(記得這40條都是錯誤的東西)

       22不知道怎樣使用正規表達式

       23從未聽說過sql注入和跨站腳本(安全方面,應該了解下這兩個東西的英文:sql injection,cross-site scripting)

       24不支援簡單配置,傳遞參數給類的構造函數,set/get方法,定義常量

       25不能了解OOP的優缺點

       26無論要做的東西有多小,都使用OOP

       27認為做可複用的軟體就是OOP

       28不使用預設值(don't choose intelligent defaults)

       29不使用單一配置檔案

       30不想讓别人看到代碼,卻使用.inc替換掉.php

       31不使用資料庫抽象層(持久層)

       32開發時不DRY(Dont repeat yourself). (就是總開發重複的東西)

       33不開發可以重複使用的類或者方法.

       34不使用抽象類或者接口類,繼承,多态,封裝.

       35不使用已有的設計模式優化你的程式.

       36不允許使用者定義基礎目錄(這點好象PHP不太适合,畢竟不是基于作業系統的開發)

       37錯誤的使用命名空間,使用大家都普遍使用的單詞作為字首.(這樣以後别人使用會造成沖突.,例如自己定義一個function 叫 array_push())

       38使用資料庫時不使用表字首(這個很重要...)

       39不使用或者使用一個陌生的模闆引擎(友善團隊開發,大家要使用常見的模闆)

       40不去看PHP的架構(大多數架構中都包含優秀的代碼和先進的概念.值得我們學習)

其中譯者還有很多做不到的,還需要努力!