該如何選擇框架?

現在開源世界已經越來越流行,軟件的開發也越來越簡單。

一般來說,只需要選擇幾款開源框架,然後結合自己業務的特色,整合起來,就可以快速成爲一個平臺。


那麼,如何選擇一款好的技術框架呢?


大家都知道,選擇一款技術框架,大多數都是作爲平臺底層運行,一旦使用,基本上沒有替換的可能。

如果選擇的框架有一些未預見的缺陷性,越到後期,越是如鯁在喉,吐不出,咽不下。

很多同學可能覺得這樣說有些過分,我卻覺得當一個有追求的程序員,在遇到這種境地時,恰恰就是這種感覺....


接下來,我們就聊聊如何選擇一款好的框架。

首先,我認爲一個好的框架,應該在如下特性上有突出表現:

擴展性

所有程序員都遇到過你所不能理解的需求,所不能忍受的功能!這些在開發中司空見怪,如果你選擇的框架不具有強大的擴展性,後期需要各種Hardcode來解決問題,當Hardcode越積越多,直接導致你的平臺不倫不類,之後就是永無休止的“技術債務”。

剛下海的程序員可能理解不了,但凡有點經驗的開發人員,都很能理解這種“技術債務”,直接表現就是:平臺不添加任何新功能,Bug還是幾年修不完!


功能性

一個框架起碼要具備它所該有的功能。如何定義該有呢?面對絕大多數的需求,都能滿足。而特殊的需求,結合其擴展性也可實現。


易用性

難用的東西都被我們慢慢捨棄...這個不僅僅限於技術的世界,大家都懂的。

以前Struts2的高擴展性外加強大的功能,成就了SSH的威名,而Struts的使用難度,我曾經深有體會。

之後SpringMVC橫空出世,輕量級,簡單化征服了所有程序員!各大平臺都充斥着SpringMVC的身影,如果你的印象還停留在SSH,說明你該補補課了。


流行性

每個人都有救世主情結,以爲可以隨時拯救萬民於水火之中,但是往往需要我們出手時,我們卻無能爲力。

在技術世界,這種情結尤甚,每一種技術都會被吹噓成XX的終結者,XX標準框架,XX技術規範,XX廣泛支持...

這些程序員毫無抵抗力的詞語充斥在你的耳邊,讓你欲罷不能!

有多欲罷不能呢? 來看看這些詞語:粉色誘惑,蕾絲,制服, 少婦 ......

往往在這時候,各位程序員一定要清醒的記住:被大衆所選擇的,纔是有前途的。

技術框架一旦定性,萬難回頭!大衆選擇的,最起碼證明其價值,反過來想,如果這前進的路上,沒有普羅大衆的支持,簡直是地獄之行!

如果你還是認爲自己是救世主,選擇救世主一樣的框架,且你還真有這權利!!!那麼,祝你好運。


社區性

這個和流行性是一體的,一旦大衆選擇,它所屬的社區必然活躍。

當社區活躍時,框架的Bug,缺陷性都會暴露在處女座的眼光下,有了衆多的處女座,即使框架官方不更新,還怕沒有插件來彌補嗎?


更新頻率

框架的更新頻率,直接影響着社區性,而社區性和流行性又息息相關。

更新頻率更代表着解決Bug,增加新功能的硬性指標,說不定你今天還糾結的問題,明天官方已經出標準功能了呢?

技術世界日新月異,舊的不一定代表過時,但一定不會引領潮流。我想你也不會相信,最後一次在2011年更新的JSF,真的會引領Java Web走向組件化時代!

況且很多開發人員在選擇框架時,看到最後更新是2011年,已經很難提起興趣了,我就是這種!!


按照如上特性,對比你想選擇的同類框架,相信很快就可以找到你中意的。

不過很多開發人員會問:擴展性,功能性,易用性這些指標,在選擇時,根本不可能深入瞭解,要怎麼辦呢?


引用上篇文章所寫:

一個框架,我認爲最最最最重要的是社區性和更新速度!


根據這兩條,就可以確定大部分的框架,不信,我們比比看!


WEB框架 [SpringMVC] [Struts] [JSF] =>SpringMVC

可以自己看看Maven的更新頻率,我就不去截圖了。


JSON框架 [Jackson] [Fastjson] => Jackson

這號稱世界上最快的Fastjson,更新卻是奇慢。也着實坑了我一回,無法隨意定義時間格式,坑哭了!


CMD框架 [RequestJS] [SeaJS] =>RequireJS

這號稱[簡潔優雅][明顯沒有Bug]的SeaJS,竟然沒有一個插件,所謂的社區僅僅就是百度前10條,各種對比RequireJS的文章。好吧,我也被它坑過!我承認,我對有些詞語沒有抵抗力!


更多的,就不舉例子了,建議直接看Maven的更新歷史,我反正不信,一個沒人使用的框架,還能保持一月一更新。








版權聲明:本文爲博主原創文章,未經博主允許不得轉載。

發佈了43 篇原創文章 · 獲贊 17 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章