原文鏈接
http://blog.gaoqixhb.com/p/55f5889d167799ee3eb7ec8d
結(jié)果是來自一份調(diào)查的數(shù)據(jù),主要調(diào)查了這么幾個(gè)問題:
問題一:預(yù)處理器
我問的第一個(gè)問題是“你用什么預(yù)處理器?”。
常用的預(yù)處理器基本上都在答案中有了,不得不指出的是我之所以沒有把 PostCSS 放在列表中是因?yàn)?nbsp;PostCSS 作為后處理器很多使用的人往往也會(huì)配合使用其它的預(yù)處理器在他們的工作中,這樣會(huì)引起選擇強(qiáng)迫癥的困擾。我在問卷中指出,如果你真的是只使用 PostCSS 的話,那你就選擇“其它”吧。
預(yù)處理器 |
得票數(shù) |
百分比 |
Sass |
689 |
66.00% |
Less |
140 |
13.41% |
Stylus |
44 |
4.21% |
不使用預(yù)處理 |
141 |
13.51% |
其它 |
30 |
2.87% |
問題二 :PostCSS 和 Rework
下一個(gè)問題,我想要看看到底有多少工程師聽過“后處理器”工具,例如 PostCSS 或者 Rework。所以這道題我的問題是:“你是否曾聽說過下面列出的 CSS 處理工具?”。
這是這道題的結(jié)果
|
聽/看過 |
偶爾用 |
常用 |
從沒聽過 |
PostCSS |
53.64% (560) |
10.34% (108) |
8.91% (93) |
27.11% (283) |
Rework |
21.84% (228) |
2.30% (24) |
0.86% (9) |
75.00% (783) |
從原始數(shù)據(jù)中我們可以知道,有 72.89% 的人是知道或者用過 PostCSS 的,對(duì)比之下 Rework 只有 25% 的人。兩個(gè)工具都只有極少的一部分人會(huì)經(jīng)常使用他們。
分析這個(gè)數(shù)據(jù)我們可以知道,有 269 票(超過 25%)的人既沒有聽過 PostCSS 也沒有聽過 Rework。相比較之下,有 95 票(9.1%)表示他們經(jīng)常使用這兩款工具中的至少一種。
我認(rèn)為這個(gè)結(jié)果反映出了后處理器領(lǐng)域在前端界還是個(gè)比較新的領(lǐng)域,我希望在將來能看到這個(gè)數(shù)字會(huì)飛鼠增長(zhǎng)。
問題三:自動(dòng)化工具
下一個(gè)問題是我最感興趣的——“你更喜歡在你的工作中使用哪款自動(dòng)化工具?”。
我們先看一下 npm 的下載數(shù)量,Grunt 的下載量是 145 萬/月,Gulp 則是 134 萬/月。從下載使用量上來看,這兩者似乎是差不多的,不過從問卷的數(shù)據(jù)來看,用 Gulp 代替 Grunt 似乎成了一種趨勢(shì)。
讓我們來看看問卷結(jié)果吧:
自動(dòng)化工具 |
得票數(shù) |
百分比 |
Gulp |
488 |
46.74% |
Grunt |
274 |
26.25% |
NPM |
40 |
3.83% |
Broccoli |
13 |
1.25% |
Other |
50 |
4.79% |
不使用任何工具 |
179 |
17.15% |
令人驚訝的事,Gulp 獲得了 46.7% 的投票而 Grunt 只有 26.3%,這說明大家越來越喜歡使用 Gulp 了。另外只有 17.2% 的人說他們不適用任何自動(dòng)化工具,說明大部分前端開發(fā)人員已經(jīng)意識(shí)到了自動(dòng)化構(gòu)建工具的好處并將其運(yùn)用在項(xiàng)目和團(tuán)隊(duì)中。
問題四:JS 庫和框架
另外一個(gè)我比較感興趣的問題是現(xiàn)在最流行的 JS 庫和框架是什么,下面是結(jié)果:
|
聽/看過 |
偶爾用 |
常用 |
從沒聽過 |
jQuery |
1.7% (18) |
6.8% (71) |
91.5% (955) |
0% (0) |
Underscore |
33.4% (349) |
19.2% (200) |
38.6% (403) |
8.8% (92) |
Backbone |
58.1% (606) |
21.6% (226) |
18.6% (194) |
1.7% (18) |
AngularJS |
36.4% (380) |
34.9% (364) |
28.5% (298) |
0.2% (2) |
Ember |
76.8% (802) |
15.6% (163) |
4.6% (48) |
3% (31) |
React |
59.6% (622) |
21.8% (228) |
15.7% (164) |
2.9% (30) |
Polymer |
70.5% (736) |
12.2% (127) |
3.3% (35) |
14% (146) |
Knockout |
67.9% (709) |
10.4% (109) |
5.5% (57) |
16.2% (169) |
沒有懸念 jQuery 得到了 91.5% 的最高票數(shù),并且這只是常用它的人。不得不說它是所有庫里面影響最深遠(yuǎn)的一個(gè)了。數(shù)據(jù)還顯示,有 28.5% 的開發(fā)者經(jīng)常使用 AngularJS,18.6% 的人常用 Backbone,15.7% 的人常用 React。
讓我們撇開 jQuery 和 Underscore 兩個(gè)庫看看這些 MV* 框架的數(shù)據(jù),有超過 50%(531票)的人至少使用其中一款框架。
題外話,之后我重開這個(gè)調(diào)查問卷的時(shí)候我會(huì)再問一個(gè)“有多少開發(fā)者開始使用 ES6(ES2015) 了?”我相信這個(gè)會(huì)有很大的增長(zhǎng)空間,并且我很好奇這個(gè)問題的具體現(xiàn)狀。
問題五:你在你的主要項(xiàng)目中使用哪款 JS 庫/框架
這題我問的是:“你在你的主要項(xiàng)目中會(huì)使用哪款 JS 庫/框架?”。這題因?yàn)槭呛竺婕由先サ?,所以只?nbsp;467 個(gè)投票,這個(gè)或多或少會(huì)影響最后的統(tǒng)計(jì)。下面是統(tǒng)計(jì)結(jié)果:
|
得票數(shù) |
百分比 |
只用原生不用庫 |
52 |
11.13% |
jQuery |
264 |
56.53% |
AngularJS |
72 |
15.42% |
React |
38 |
8.14% |
Ember |
15 |
3.21% |
Backbone |
11 |
2.36% |
Underscore |
7 |
1.50% |
Polymer |
2 |
0.43% |
Knockout |
6 |
1.28% |
其它(請(qǐng)指出) |
0 |
0.00% |
即使在投票總數(shù)少了一半的情況下,jQuery 也憑著 56.53%(264票)的高票拿到了最常使用庫的寶座,緊隨其后的是 AngularJS,有 15.42%(72票)。
因?yàn)檫@到底的總票實(shí)太少了,我也不想對(duì)這道題的數(shù)據(jù)進(jìn)行太多的預(yù)測(cè)分析。但是 jQuery 的高票仍讓我比較感興趣,我相信隨著 ES2015 的普及 jQuery 的份額會(huì)慢慢降低,大家都會(huì)轉(zhuǎn)而使用原生或者一些小而美的庫。
問題六:JS 模塊加載器
模塊加載器我自己也使用過一段時(shí)間,不過我比較想知道是否所有的前端工程師們也都會(huì)使用它,如果是的話他們會(huì)選擇使用哪款工具?所以這道題的問題是:“你是否在你的工作中使用過一款 JS 模塊加載器?”
下面是這道題的統(tǒng)計(jì)結(jié)果:
模塊加載器 |
得票數(shù) |
百分比 |
不使用加載器 |
538 |
51.53% |
Browserify |
185 |
17.72% |
RequireJS |
142 |
13.60% |
webpack |
120 |
11.49% |
JSPM |
30 |
2.87% |
其它 |
29 |
2.78% |
數(shù)據(jù)可以看出,48.47% 的開發(fā)者已經(jīng)開始使用模塊加載器管理他們的依賴了。其中 17.7% 的人使用的是 Browserify,13.6% 的人使用 RequireJS,11.5% 的人使用 webpack。webpack 最近得到了高度的關(guān)注而且我們可以看到數(shù)據(jù)上其實(shí) webpack 并沒有差前兩名多少。當(dāng)然在 ES2015 普及之后數(shù)據(jù)將如何變化我也是非常關(guān)心的。
不管怎么說看到大家都在使用模塊加載器我還是很高興的,當(dāng)然我也喜歡在未來那些不適用加載器的人會(huì)越來越少。
問題七:JS 單元測(cè)試
我一直很好奇是不是所有的人都會(huì)對(duì)他們的 JS 代碼或者項(xiàng)目進(jìn)行單元測(cè)試?所以這道題我的問題是:“在你的項(xiàng)目中你使用什么單元測(cè)試工具進(jìn)行測(cè)試?”。
下面是統(tǒng)計(jì)結(jié)果:
工具 |
得票數(shù) |
百分比 |
不使用測(cè)試工具 |
615 |
58.91% |
Mocha |
161 |
15.42% |
Jasmine |
159 |
15.23% |
QUnit |
35 |
3.35% |
Tape |
20 |
1.92% |
Jest |
11 |
1.05% |
Karma |
6 |
0.57% |
Intern |
10 |
0.96% |
其它 |
27 |
2.59% |
數(shù)據(jù)可以看出占大頭的是不使用任何測(cè)試工具,占了 58.91%,數(shù)據(jù)說明有恨大一部分人在項(xiàng)目中忽視了單元測(cè)試這一環(huán)節(jié),雖然它真的很重要。在其它一些使用單元測(cè)試工具的投票中,大部分人選擇了 Mocha(15.42%) 或 Jasmine(15.23%) 這兩款工具??偟恼f來就是前端工程師在 JS 單元測(cè)試這塊有一定的差距。
問題八:其它工具
最后一個(gè)問題列舉了一些包管理和項(xiàng)目管理里常用的工具,然后我問的是:“這里哪些工具你曾用過?”。
下面是統(tǒng)計(jì)結(jié)果:
|
聽/看過 |
偶爾用 |
常用 |
從沒聽過 |
Bower |
23.75% (248) |
26.44% (276) |
47.89% (500) |
1.92% (20) |
Yeoman |
37.45% (391) |
30.56% (319) |
22.13% (231) |
9.86% (103) |
Ender |
30.36% (317) |
1.92% (20) |
0.86% (9) |
66.86% (698) |
NPM |
6.80% (71) |
17.91% (187) |
71.07% (742) |
4.22% (44) |
大家的主要使用工具基本上是 Bower 和 NPM,甚至有很大一部分人沒有聽說過 Ender。而我認(rèn)為我用過的最棒的一個(gè)工具 Yeoman 的普及度也比較低,只有 22.13% 的人經(jīng)常用,將近 10% 的人沒有聽說過它。在我的經(jīng)驗(yàn)里,它能讓項(xiàng)目變的更加簡(jiǎn)單,項(xiàng)目中使用它是非常有價(jià)值的。
總結(jié)
總的說來,還是有很大一部分人在工作中使用前端工具的。當(dāng)然如果你熟練使用 JS, CSS 的那些腳手架工具,你一定是他們當(dāng)中的佼佼者。另一方面來看,JS 測(cè)試工具的普及程度還比較低,唯一的解決辦法就是向大家普及如何在項(xiàng)目中使用和遷移這些工具,當(dāng)然最重要的是如何編寫可測(cè)試的 JS 代碼