Troubleshooting of PHP errors: Difference between revisions

Jump to navigation Jump to search
m
Line 222: Line 222:


== 避免的 coding 習慣 ==
== 避免的 coding 習慣 ==
* 避免使用簡化的的變數名稱,例如 $sd 或 $d 也許一開始還會記得,但是過一陣子就會忘記這是什麼
[[Maintain legacy code]]
 
* 重複複製貼上的內容,但是內容可能常被其他使用者更改,導致內容更新困難,需要修改多處的程式碼
 
* 絕對路徑或絕對網址寫死在程式碼內,導致日後移機或對外公開網站服務時,需要修改多處的程式碼
 
** 存取檔案時將完整路徑,例如 {{kbd | key= <nowiki>D:/AppServ/www/abc.csv</nowiki>}} 寫死在程式碼內。可以改成使用相對路徑,例如 {{kbd | key= <nowiki>__DIR__</nowiki>}}<ref>[https://www.php.net/manual/en/language.constants.magic.php PHP: Magic constants - Manual]</ref> 代表檔案所在的資料夾。
** 將測試網址 (127.0.0.1 或 localhost) 寫死在程式碼內
 
* 容易閱讀的錯誤訊息:除了 500 Error ,如果可以讓使用者自行處理,建議改成容易閱讀的錯誤訊息。
 
* 「你那邊不能跑嗎?可是在我這邊跑起來是沒問題的。」通常問題出在開始者與程式執行的環境不同,需要檢查是否程式版本環境、相依套件版本。如果是網頁程式,則需要進一步檢查瀏覽器的快取與擴充套件是否衝突。
 
* 「昨天下班前明明還好的啊,怎麼今天我沒有還沒動它就壞了,」使用 Docker 重新建立執行環境,進行測試。
 
* 「程式一直找不到問題出在哪裡?」請搜尋單元測試。將複雜的資訊系統拆解成可測試的模組。
 
* 「Bug 不知道問題原因在那裡,但是這一版改完就可以動了」請搜尋單元測試。
 
 
 
 
 
* [[Maintain legacy code]]


== unified coding style ==
== unified coding style ==
Anonymous user

Navigation menu