2008-10-05 65 views
10

我一直都在爲文檔編寫代碼,但是當涉及到AJAX + PHP時,並不總是那麼容易:代碼真的很分散!邏輯,數據,演示 - 你的名字 - 在服務器端和客戶端代碼之間被拆分和混合。有時也有數據庫端代碼(存儲過程,視圖等)完成部分工作。記錄AJAX + PHP代碼的最佳方式?

這挑戰我想出一個有效的方式來記錄這樣的代碼。我通常在.php文件中提供.js文件列表以及.js文件中的.php文件列表。我也做內聯評論和函數描述,我列出了什麼函數被什麼文件使用以及預期輸出什麼。我爲數據庫過程執行類似的任務。也許有更好的方法?

任何想法或經驗?

注意:此問題適用於任何客戶端+服務器端應用程序,而不僅僅是Javascript + PHP。

回答

3

我認爲最好採取分層方法。

對於這樣的函數和類級別的API級文檔,編寫代碼內聯文檔和使用許多文檔工具,在那裏(JSDocphpDocumentorOraDoclet等)生成HTML文檔了出來。如果您的文檔工具可以與您的源代碼管理工具集成,那麼您可以跳轉到API文檔中的特定代碼行,從而獲得積分。

一旦你有你的文檔工具,開始生成文檔作爲你的構建過程的一部分(你有一個構建過程,對嗎?)爲每個新的構建和推文檔到一個標準的Web位置。

一旦這些api文檔在線,您可以創建一個高級文檔的wiki,例如browser-> web-> db交互,用戶故事,模式圖等。最好寫一個簡短的散文或項目符號高級文檔,必要時鏈接到api文檔和源代碼管理。

4

我認爲你的方法很不錯。唯一的問題是,js文件中的所有內容都可以被其他人讀取,因此記錄使用哪些PHP文件可能會導致一個安全漏洞,以至於他們可能會返回一個不應該返回的文件。此外,雖然沒有什麼大不了的,但在更高流量的網站上,下載說500bytes的評論可以加起來。

這些都不是很大,但只是我以前有過的想法。

1

通過PHP服務您的JavaScript(和CSS) - 您可以將源文件保存在一起,以便輕鬆進行交叉引用,並小心使用可輕鬆處理緩存的標頭。這樣做還可以讓您有一個格式良好的註釋源代碼版本,然後您可以在發送到瀏覽器之前進行壓縮或混淆。

function OutputJs($Content) { 
    ob_start(); 
    echo $Content; 
    $expires = DAY_IN_S; 
    header("Content-type: x-javascript"); 
    header('Content-Length: ' . ob_get_length()); 
    header('Cache-Control: max-age='.$expires.', must-revalidate'); 
    header('Pragma: public'); 
    header('Expires: '. gmdate('D, d M Y H:i:s', time()+$expires).'GMT'); 
    ob_end_flush(); 
} 
0

對於具有大量的JavaScript項目中,我使用一個構建系統(生成文件)用javascript minimizer。正如jsmin作者所指出的那樣,剝離評論「鼓勵更具表現力的編程風格,因爲它消除了乾淨,文字自我記錄的下載成本。」

獎勵是,jsmin也從CSS中刪除評論 - 所以你也可以在那裏自由開始評論。 (我發現使用css類對於編寫清晰的javascript是至關重要的。)

使用PHP動態去除代碼並組織javascript文件是一個有趣的想法。請記住,針對網絡應用程序的重要優化是reduce HTTP requests,因此將小型JavaScript文件連接在一起通常是明智之舉。 (我發現簡單地將最小化的js文件連接成單個文件,效果很好。)