2011-02-17 29 views
4

使用面嚮對象語言(如Java或C#)進行開發時,開發人員在開始實現之前使用UML等設計工具來製作類圖,創建接口,定義主要組件和交互,勾畫API等等並不少見。我知道這些軟件工程原理可能是過量的,但如果你正在開發一個庫(jQuery,YUI)或創建一個大型應用程序(Gmail,Google Docs),那麼這是個好主意。在開始編寫任何代碼之前創建一個設計並提前計劃。是否有任何優秀的JavaScript開發設計實踐或標準?

在JavaScript開發或Web開發中是否有類似的做法?

編輯:

只是爲了澄清,我沒有興趣在創建類/接口或進行UML爲JavaScript。 JavaScript是與Java/C#不同的範例,因此需要不同的設計工具。我很想知道這些JavaScript設計工具/實踐是什麼,如果有的話。

也許這個問題更好地提出了我想知道的問題:如果像Google這樣的公司創建了一個大型Web應用程序,並且有幾十個團隊成員創建它,那麼這個團隊將使用哪些流程,文檔和實踐來成功創建,協作和鞏固設計?使用什麼工具(例如UML,流程圖,一張紙上的潦草的筆記)來處理和共享應用程序的設計(無需編寫一行代碼)?

+3

可以應用任何語言無關的設計方法爲JavaScript。我傾向於定義模塊的接口並開發單元測試。您還可以使用像underscore.js這樣的庫來應用高級功能抽象。 – Raynos 2011-02-17 17:29:16

回答

1

我認爲答案在很大程度上取決於使用客戶端的庫(如果有的話)。例如,Jquery代碼與Sencha或Sproutcore代碼看起來非常不同。在Sencha和Sproutcore中,框架爲您提供了用於開發組件的'類'系統,因此這些框架適用於設計模式的規範形式。

另請注意,JavaScript與Java或C#非常不同。你可以在你的代碼中強加一個接口類型系統,但是很多人會認爲你正在殺死JavaScript動態語言迷人的東西。

這就是說,它總是有一個好的計劃。如果你可以通過擴展JS對象來保持DRY,那麼我認爲你應該。將高層設計放在適當的位置總是有意義的。

+0

感謝您的評論。我知道JavaScript是與Java/C#不同的範例,這就是爲什麼我不想使用爲面嚮對象語言構建的設計工具的原因。但是,我也不想在記事本或Word文檔中塗寫設計筆記。如果有標準或最佳實踐方式說「這是我們對我們的Web應用程序達成共識的設計/ API」,那將會很不錯。 – 2011-02-17 16:38:07

+2

@zarjay,對。如果這是一個真正的RIA,那麼我相信你應該設計它。看看我的答案,看看我是如何設計我的一個應用程序的一部分:http://stackoverflow.com/questions/5018391/finite-state-machine-pattern-the-one-true-pattern/5018499#5018499 – hvgotcodes 2011-02-17 16:47:02

相關問題