2013-04-12 41 views
0

在SO上提出了類似的問題,但我找不到這一個。如果我錯了,我確定SO警戒會糾正我;)Javascript:我們應該在什麼時候使用庫?

我的問題是(看似)簡單:在什麼時候,我們應該使用Javascript庫?

很多開發人員只提倡使用純Javascript。任何它似乎大多數開發人員確實使用一些庫。我不是(一定)詢問特定的圖書館,但是你決定在什麼時候使用圖書館甚至是框架?

例如:

如果我想顯示一個倒數計時器,這肯定會是浪費包括定時器和DOM操作庫,因爲JavaScript是完全有能力簡單處理這些操作。

如果我建立一個大規模的社會化媒體平臺(認爲Facebook),它肯定會是明智的,至少包括JQuery的跨瀏覽器的用戶界面的一致性,DOM操作,也許阿賈克斯等。 ..

THEN

也許我們可以看一些別人 - 一個MVC框架,模板庫,等等

我知道很多人也建議只拉你實際使用的部分走出圖書館。

SO

的時候(或如何)包括庫中的任何一般性建議?

+0

我一直認爲我不需要重新發明輪子。如果其他人已經解決了某個問題,請使用它們的實現,而不是試圖自己解決它(可能會浪費時間)。 –

回答

3

恕我直言,當你花更多的方式實現的時間運動部件,而不是應用程序本身它的時候開始使用庫

1

在一般情況下,當你舒服,你應該使用一個圖書館。如果您使用jQuery或Mootools,並將其包含在Google Hosted Libraries(https://developers.google.com/speed/libraries/)或另一個CDN中,則文件本身幾乎總是被高速緩存或從高速CDN服務一次,期限爲30天以上。雖然無需使用任何庫就可以實現簡單的問題,但庫的重點在於讓開發人員的生活變得輕鬆。如果你的生活變得更容易,使用一個不會讓你的網站變慢的庫,或者對你的服務器造成壓力,那麼一定要讓它變得更容易。

作爲一個建議,我會改變這個問題:總是使用一個庫,除非你可以像沒有它一樣簡單快速地實現完整的所需解決方案。

1

我不認爲這方面有明確的答案,如果問題因此而關閉,也不會感到驚訝。無論如何,我會提出我的看法。

你們的社交媒體平臺與社交媒體平臺的例子太過於人爲的設計,不符合實際。但即使這是一個合理的例子,我認爲應用程序大小或複雜性(感知或其他)與您的決定很少有關。事實上,我認爲你正在創造一個你可能還沒有的問題。

不用考慮實現應用程序所需的工具,而是思考你試圖用它實現的目標。有些人稱之爲業務邏輯,不管你會怎樣稱呼它,但如果你花時間思考工具而不是如何進入市場,那很可能你把注意力放在了錯誤的事情上。工具以及何時使用它們不應該是您的首要關注點。

這是我認爲你應該做的。記下兩行關於爲什麼你的應用程序有意義,爲什麼它的存在是合理的 - 不要提及任何工具!把它們燒成幸運餅乾,幾天後打開。如果你閱讀它並且它仍然有意義,那麼找出最小特徵是什麼 - 不要提到任何工具!幾天後再看一遍,它還是有意義的嗎?優秀!現在建立一個原型 - 不關心使用什麼工具,只需使用無論工程來證明你的想法。展示給別人,它是一個有用的演示?是?非常棒,你有一個項目!

無論這是否屬於您自己的純JavaScript,受圖書館污染或是否是完全不同的環境都無關緊要。這些工具並不重要。重要的是你想要達到的目標以及如何實現目標。這些工具是外圍的,次要的。他們是你需要用來獲取你要去的地方的任何東西。如果這意味着使用提供移動部件來獲得應用程序的庫 - 很好!如果這意味着在JavaScript上使用coffeescript - 很好!最終,真正重要的是你想要實現的目標,你用來實現目標的工具永遠不會是主要關心的問題。

當你走的時候找出它。在你做對之前,你可能會錯誤地認爲它錯了,這就是cookie崩潰的方式。


您或許還會覺得這段視頻有用。這是一個關於清潔架構的討論,雖然它主要是重點介紹如何專注於工具幫助構建更好的產品,而且很可能是您想要做的。

https://vimeo.com/43612849

相關問題