成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何設計理想的新項目前端開發流程?

譯文
開發
作為一名前端工程師,我總會在開始新項目前確保工作流程的明確性與組織性。本文將與大家分享自己的整個設計過程。

【51CTO.com快譯】一位前端開發者分享她的工作流與理想工具集選項。每個新項目總會帶來一段令人興奮的旅程,但糟糕的規劃也可能毀掉這一切。人們往往將前端開發工作流程視為繁瑣且優先級較低的任務,但由此帶來的后果往往會在生命周期當中出現。

事實上,工程技術的本質就是提升產品水準、從以往錯誤中總結經驗,而后制定出一套精簡的實施流程。我們應當將這些原則運用到流程當中,從而在項目開始時即建立起可供每位開發者使用的規則、工具與技術選項。如此一來,產品本身亦將更加靈活、可擴展且易于維護。

[[175840]]

作為一名前端工程師,我總會在開始新項目前確保工作流程的明確性與組織性。下面,我將與大家分享自己的整個設計過程。

1. 設置一套任務運行器

有些朋友可能不太熟悉任務運行器,這實際上就是一種用于自動執行重復任務的軟件。其適合處理的任務包括JavaScript壓縮、文件連接、復制文件/目錄、執行腳本以及編譯CSS文件。任務運行器通常立足于命令行,允許開發者“觀察”特定文件或者目錄的變化,而后在適當時運行任務。

在這方面,我個人推薦Grunt與Gulp。關于二者孰優孰劣的問題,恐怕很大程度上取決于使用習慣。Grunt以配置為核心,較為笨拙緩慢,但卻易于上手且擁有龐大的技術社區。Gulp需要更為復雜的操作流程,但速度卻更好。

下面來看二者的優劣總結:

Grunt

+ 易于上手

+通過配置實現更高控制水平

+發展歷史更久,社區規模更大,插件選項更多

–非流式文件I/O使其速度較慢

Gulp

+ 需要配置的部分較少

+ 處理速度更快

+流式機制,允許異步文件處理

+ 代碼編寫需求更低

–API較為有限

Grunt與Gulp都運行在Node.js之上,因此團隊中的每位開發者都需要首先安裝Node.js。

另外一種適合由任務運行器負責的任務為編譯模板語言,例如Jade。

2. 定義CSS流程

接下來,大家需要選擇一種CSS方法,答案可以是BEM、SMACSS或者Atomic CSS。具體選擇同樣取決于您的個人喜好。我自己使用的是BEM,其易于學習且能夠在大型團隊中用于高效處理各類應用組件。

在決定了CSS的編寫規則之后,大家應當考慮如何編寫CSS代碼。結合當下趨勢,大家都在利用Sass或者Less編寫更為簡潔的CSS代碼。然而,CSS4很可能在不久的將來徹底取代這些“語言”。

考慮到預處理機制會給構建流程增加額外的時間投入,因此應當討論其是否必要。例如,如果大家選擇使用BEM,則可能不再需要使用Sass或者Less中的嵌套功能優勢。

使用Compass等Sass庫能夠顯著提升Sass的功能性,引入包括sprite-map生成、跨瀏覽器混合、文件讀取以及數學輔助函數等,這一切都能讓開發者在其CSS中實現更多效果。不過需要注意,使用Sass與Compass的前提是要求每位開發者預先安裝Ruby。

另外,大家可以利用postcss等JS插件對CSS進行后處理。作為可擴展插件,postcss允許大家自動根據瀏覽器支持需求添加瀏覽器前綴、檢查CSS、壓縮文件并生成sprite等。我也在使用postcss,這里向大家強烈推薦。

3. 制定JavaScript規則

這也是開始新項目中最令人興奮的部分,正確處理亦能夠切實降低后續的技術債務。大家可以整理出一些嚴格的要求,包括JS如何編寫、使用哪套框架以及設計模式等。

編寫哪種風格的JavaScript?ES 5、ES 6+、TypeScript還是其它?

這是個大問題,而且往往很難找到惟一的正確答案。

ES5

ES5的優勢在于,它能夠幫助所有開發者更為順暢地使用JavaScript,面對易于理解的結構并掌握如何使用各類動態語言特性。對于經驗豐富的開發者而言,其不會帶來任何學習曲線,且全部主流JS MVC框架皆能夠支持ES5。

當然,其***缺陷在于迫使開發者繼續編寫平淡無奇的陳舊JavaScript代碼。其冗長、松散且面向對象的傳統語言特色使其無法吸引使用C#、Java以及Ruby等語言的開發者。根據我的個人經驗,JavaScript會給新手軟件開發者帶來陡峭的學習曲線。

“Undefined不是函數??這是什么意思??!”——每位軟件開發者肯定都有過這樣的疑問。

ES6+

ES6代表著JavaScript的未來——或者會是ES7?總之,利用現代語言標準編寫代碼以應對未來需求絕對是個正確的選擇。ES6提供一系列***吸引力的語言特性:類、接口、Lambda函數、模塊導入/導出功能以及其它多種能夠在“真正的”編程語言中發現的元素。

ES6的缺點在于,大家仍然需要將代碼轉譯為ES5以獲得更為廣泛的瀏覽器、服務器與操作系統支持。這雖然不是什么大問題,且相信能夠在不久的將來得到解決,但就目前來講其仍在構建流程中增加了額外的步驟。另外,其確實會帶來學習曲線,但這同時也是提升開發團隊技能水平的好機會。

TypeScript

TypeScript是微軟針對JavaScript自身不足給出的解決辦法。其優勢包括ES6+中包含的一切提升,同時亦面向Visual Studio提供工具,且受到Angular v2的大力支持。TypeScript旨在通過添加更多現代語言特性以實現JavaScript的可擴展性,同時幫助開發者更輕松地立足.NET開發環境。

在缺點方面,大家仍然需要將TypeScript轉譯為ES5,且面對相關學習曲線。

而這就引發了下一個問題。

我們該使用哪套JavaScript框架?

目前市面上的JavaScript框架不計其數,因此我們幾乎很難確定下惟一***的一款。相反,我們在這里選擇了最出色的三種,分別為Angular、Ember與Backbone。三者皆擁有相對悠久的發展歷史,因此成熟度更高且具備規模可觀的社區資源庫。另外,三者分別采用區別明顯的方式構建應用程序。下面來看它們的優缺點:

Angular

Angular v2是我個人的首先方案,其具備與Angular v1相同的出色體驗,我也期待著能在下一個項目中使用其***版本。

+ 極高的原型設計與構建速度

+ 為TypeScript與Dart提供說明文檔

+ 可輕松配合Jasmine與Karma實現測試驅動型開發

+ 大量獨有功能

– 大量獨有功能

– 要求開發者必須遵循Angular獨有的方式進行開發

Ember

良好的中間性選項。

+ 組件驅動型特性

+ 獨有功能少于Angular,但多于Backbone

+ 使用handlebars模板引擎

+ CLI

+ 可經由CLI輕松實現測試

Backbone

老派而又純粹的框架

+ 幾乎不具備任何獨有功能

+ 可對設計模式、代碼樣式以及架構進行全面控制

+ 部分***影響力的應用與網站皆運行于Backbone之上

+ 可選擇您偏好的模板引擎

+ 基本上屬于簡潔版HTML,無需額外屬性

– 要求使用大量樣板代碼

– 不存在依賴性,但可配合Marionette等視圖框架提升使用體驗

– 總體代碼編寫量要求更高,但亦可借此實現更佳優化

– 自帶測試環境

總結

通過以上探討,下面我來匯總自己理想中的***前端開發流程:

  • Grunt負責任務運行
  • Sass負責CSS預處理
  • Postcss負責后處理
  • 編寫TypeScript
  • 利用 AngularJS進行構建

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:王雪燕 來源: 51CTO
相關推薦

2019-07-17 22:07:14

前端開發框架

2013-04-11 09:43:15

Android創建項目Android開發

2013-09-03 09:58:51

Web前端

2023-07-28 06:51:43

2009-09-03 16:52:44

Java Web開發框

2021-07-24 11:41:42

前端開發技術

2020-04-15 10:50:19

編程語言工具技術

2011-01-14 08:35:03

iPhoneiPad敏捷設計流程

2009-03-27 09:11:26

設計流程軟件項目

2011-06-21 14:46:44

Hibernate

2009-07-15 10:24:25

小型軟件項目開發

2015-12-28 10:56:10

react nativ前端

2015-12-28 11:09:17

React Nativ前端

2009-06-22 17:09:00

J2EE項目開發流程

2015-07-14 10:00:55

Android學習資源

2013-04-02 09:31:20

項目前期

2021-02-22 10:20:06

云計算分析數字化轉型

2014-03-06 10:50:59

iOS開發

2019-07-01 16:24:56

數據中心云計算軟件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级免费毛片 | 欧美视频第二页 | 欧美视频第三页 | 免费看黄视频网站 | 亚洲九九| 日韩免费高清视频 | 一区二区免费视频 | 怡红院免费的全部视频 | 99在线精品视频 | 能看的av网站 | 精品日韩 | 伊色综合久久之综合久久 | 国产精品视屏 | 国产一极毛片 | 男人的天堂在线视频 | 在线观看免费高清av | 91色综合| 日韩欧美在线视频观看 | 人人爽人人爽 | 国内自拍真实伦在线观看 | 在线免费观看视频黄 | 成人深夜福利 | 成年人在线观看 | 亚洲顶级毛片 | 久久久久久高潮国产精品视 | 日韩精品人成在线播放 | 久久精品国产免费一区二区三区 | 欧美日韩在线播放 | 久久中文字幕一区 | 精品久久香蕉国产线看观看亚洲 | 国产精品视频区 | 国产成人福利 | 一区二区在线观看免费视频 | 天天拍夜夜爽 | 成人三级网址 | 久久国产精品免费一区二区三区 | 国产精品一区二区三区久久久 | 久草色视频 | 午夜在线小视频 | 国产传媒在线观看 | 成年人在线 |