2012-04-06 111 views
2

我剛剛熟悉extend.js,並想知道是否有使用本機JavaScript使用本機JavaScript的附加價值。讓我示範;使用extend.js有什麼好處?

隨着extend.js,我將宣佈一個命名空間,如下所示:

extend('some.madeup.namespace',{ 
    foo : 'bar' 
}); 

…而如果沒有它,我唯一要做的是:

var some = { madeup : { namespace : { foo : 'bar' } } }; 

我在KISS原則的堅定信仰者,我真的覺得外部依賴應減少,使事情變得更加簡單。所以,如果這個庫所做的是爲我保存(一次性)賦值聲明,我想如果它是值得的麻煩。

有什麼我在這裏失蹤,這一切都有它嗎?

+0

我也是KISS。這就是爲什麼我不使用jQuery的例子。或者其他任何框架。如果我自己編寫所有代碼,實際上我可以從哪裏開始調試。 – 2012-04-06 22:04:48

+0

var some = {madeup:{namespace:{foo:'bar'}}}; //更簡潔 – 2012-04-06 22:05:42

+0

@SteveH。 - 你只是讓我更加憤怒,因爲問題更相關:)我會相應地編輯我的問題,只是爲了強調這個問題。謝謝。 – 2012-04-06 22:06:56

回答

1

我懷疑這個問題的明智答案很大程度上依賴於任何第三方工具的通用答案。

人們在幫助他們更快更優雅地完成工作時使用第三方工具,至少這是理論。但是有些人,包括我自己在內,他們認爲減少依賴並從頭開始實施會更優雅。對我們來說,在我們的項目中加入糖是沒有價值的,因爲這會降低我們的原則。

對於其他人來說,它具有價值,因爲它減少了他們編寫的代碼量,並且可能感覺結構稍微有點。他們自己也會做同樣的抽象,所以使用經過深思熟慮和測試的庫是有道理的。

它重視您的個人偏好和使用情況。無可否認,我沒有特別提到這個庫的用法,它只有51行代碼。閱讀所提供的功能並得出自己的結論不需要很長時間。

從我可以告訴這個庫僅僅創建名稱空間層次結構並檢查衝突的名稱空間。大部分代碼似乎都集中在創建層次結構和驗證名稱空間的獨特性。這可能暗示我將它設計爲可能發生衝突的情況下的通用工具 - 比如說你正在出版自己的圖書館以供大衆消費。

如果你想要我的意見,但它會來自一個人誰不會選擇使用它。命名空間實際上是不必要的。如果你真的擔心命名空間衝突,那麼所有這些努力來防止窗口上的多個命名空間衝突聽起來很有必要,但是任何好的設計永遠都不會。

+0

對我來說,這一切都很清楚,顯然「不應該花太長時間......才能得出結論」,但我希望得到一個在項目中使用該庫的人的實際迴應(大規模,或許)並徹底斷言了利弊。無論如何,謝謝你的迴應。 – 2012-04-06 22:21:03

+1

希望你能在最後的評論中找到有意義的東西。正如我試圖強調的那樣,這是一個非常主觀的問題。如果你想詳細說明你正在考慮用這個庫來解決的用例的具體情況,那麼有人可能會提供更好的使用建議。我當然懷疑任何使用它的人都會遇到問題。你突出了自己,你沒有看到這一點。我想你需要的是找到遇到多個命名空間衝突的人。我不是因爲我選擇了好的設計,而且我認爲這只是修復了糟糕的設計。 – 2012-04-06 22:31:06

+0

有趣的編輯,你會如何定義一個'好設計'?爲什麼命名空間是不必要的? – 2012-04-06 22:31:41