2011-09-30 12 views
2

我是一名初學者,但我寫了第一個小項目,並且關於它的一些內容並沒有真正的感覺。我希望我能清楚地描述問題。一堆互相呼叫的小函數。更好的方式來組織我的代碼?

我的整個程序基本上的相互調用的,然後的代碼的一個或兩行調用初始函數來啓動關閉「連鎖反應」,並返回所需的結果小的功能的樁。

它看起來有點像這樣(我使用PHP):

$result = func_A($args); 

function func_A($arg1, $arg2){ 
    $localvar1 = blah blah; 
    $value = func_B($localvar1, $arg2); 
    return $value; 
} 

function func_B($arg1, $arg2){ 
    $localvar1 = blah; 
    $value = func_C($localvar1, $arg2); 
    $return value; 
} 

function func_C($args){ 
    blah blah blah 
} 

所以,當我試圖去通過我的代碼,我到處亂竄亂跳遍佈像瘋了似的功能之間的地方。

有沒有更好的方法來做到這一點?我應該在我的其他功能中創建本地功能嗎?這只是感覺不太對。

回答

2

總的來說這很好。我們需要更多地瞭解具體目標以及代碼如何進行更多細節。一般來說,保持功能上的細節和從一個主要的「命令」中心調用它們是程序編程的好方法。

然而,這對我的工作的一般高層次的規則:

  • 不要重複自己。如果你發現你正在通過 重複做同樣的事情,請對此做一個函數。如果你從一個 文件中加載一個值,用它計算一些東西,然後回顯一下,爲它創建一個函數 。

  • 不要過分專注太多。大量的2線功能可能是 不是一件好事。

  • 如果可以的話,一般。不要使5個不同的功能將 連接到5個不同的數據庫。創建一個函數並傳遞數據庫的名稱以連接到該數據庫。請參閱有關不要自行重複 的規則。

  • 如果您有一個調用另一個函數調用另一個函數,並且它們總是以這種方式使用,請考慮使用它們的單個函數 。

  • 對象對於處理一組值和處理它們很有用。對於一個快速的腳本來說,並不是那麼多,但是如果你要做一些實質性的工作,比如驗證數據,存儲數據,讀取數據,將數據寫入單個字符串,那麼這就是創建一個班級的好機會。類可以方便地放入一個文件中,然後您可以在其他項目中使用這些文件,並且如果您經常對此類進行維護,那麼如果您的初始設計是穩定的,則使用它的腳本可能根本不需要進行更改。

+0

感謝您的幫助,這清除了我的東西。我想我可能已經安排好了我的功能,使它不那麼容易混淆,但是我很高興看到使用一堆這樣的輔助函數是很好的。 – MikeJerome

2

有什麼本質上錯誤的(事實上很多右)這種方法,如果你正在做的過程編程(因爲它似乎你)。

PHP現在的確支持對象(儘管在一個令人難以置信的醜陋的方式,在我看來),所以,有可能是修改代碼更OO的說法。但是,將各種任務分離成可以編輯的小型單個函數是有意義的。

我知道這是有點爭議,但如果你只是在PHP中起步的,除非它是你的客戶/僱主的核心要求,我將完全繞過它,並期待到Node.js的 在客戶端/服務器島兩側使用一種語言會帶來很多好處,而不是將任務分成兩個相似但看起來不同的語言,它們在您工作時持續共享屏幕空間,要保證服務器和代碼的顯示部分真正分離是多麼麻煩。

當然PHP已經成爲根深蒂固,以至於很多人都認爲這是一個定局。但是(我毫不相干的觀點)把所有粉絲放在一邊,它有很多缺點,而且退休真的很成熟。

0

您可以使用引用來避免重複。將你的函數名稱添加到數組中,當你需要一個解決方案時,你有一個主函數循環訪問該數組,並用$ this - > $ function_name調用該函數。

相關問題