上周在北京聽了一位大牛的內(nèi)部分享凑保,回來整理了一下手頭現(xiàn)在移動端web開發(fā)的工具流。以下文字基本都是copy官方說明欧引。
//部分才是我的補充。一切工具和工作流都是圍繞【產(chǎn)品】→【設(shè)計】→【前端】→【測試】→【交付】這個體系循環(huán)進行的芝此。
GitHub 存放使用Git版本控制的軟件代碼和內(nèi)容項目。除了允許個人和組織創(chuàng)建和訪問代碼庫以外婚苹,它也提供了一些方便社會化軟件開發(fā)的功能岸更,包括允許用戶跟蹤其他用戶、組織膊升、軟件庫的動態(tài)怎炊,對軟件代碼的改動和 bug 提出評論等用僧。GitHub也提供了圖表功能结胀,用于顯示開發(fā)者們怎樣在代碼庫上工作以及軟件的開發(fā)活躍程度责循。
//這個不廢話了糟港。
SMACSS(Scalable & Modular Architecture for CSS)院仿,其主要原則有3條:Categorizing CSS Rules(為css分類)
? Naming Rules(命名規(guī)則)
? Minimizing the Depth of Applicability(最小化適配深度)
SMACSS認為css有5個類別秸抚,分別是:
? Base (基本)
? Layout(布局)
? Module (模塊)
? State (狀態(tài))
? Theme (主題)
參考文檔:https://nicolas.steinmetz.fr/web-enthusiasts/post/2013/06/05/Atomic-design
http://bradfrost.com/blog/post/atomic-web-design/
http://www.slideshare.net/bradfrostweb/atomic-design?ref=http%253A%252F%252Fbradfrost.com%252Fblog%252Fpost%252Fatomic-web-design%252F
//Atomic工作流優(yōu)化和革新了設(shè)計師面對頁面時的視覺歹垫,創(chuàng)作不再是一個個圖層,而是按照原子→分子→生物→模板→網(wǎng)頁的構(gòu)架模式一步步展開的排惨。
Yeoman是Google的團隊和外部貢獻者團隊合作開發(fā)的吭敢,目標是為開發(fā)者創(chuàng)建一個易用的工作流暮芭。
Yeoman主要有三部分組成:yo(腳手架工具)鹿驼、grunt(構(gòu)建工具)辕宏、bower(包管理器)畜晰。這三個工具是分別獨立開發(fā)的瑞筐,但是需要配合使用凄鼻,來實現(xiàn)我們高效的工作流模式。
? Yo 搭建新應(yīng)用的腳手架块蚌,編寫你的Grunt配置并且安裝你有可能在構(gòu)建中需要的相關(guān)的Grunt任務(wù)。
? Grunt 被用來構(gòu)建匈子,預(yù)覽以及測試你的項目河胎,感謝來自那些由Yeoman團隊和grunt-contrib所管理的任務(wù)的幫助虎敦。
? Bower 被用來進行依賴管理,所以你不再需要手動的下載和管理你的腳本了政敢。
//有些部分,比如Grunt現(xiàn)在看來已經(jīng)過時或不適應(yīng)高度碎片化的移動端web開發(fā)了喷户,但工具控建議至少用它們度過你工作成長期的一個階段。
http://gruntjs.com/ http://www.gruntjs.org/
Grunt是一個自動化的項目構(gòu)建工具褪尝,如果需要重復(fù)的執(zhí)行像壓縮、編譯河哑、單元測試避诽,代碼檢查以及打包發(fā)布的任務(wù). 那么你可以使用Grunt來處理這些任務(wù), 你所需要做的只是配置好Grunt璃谨,這樣能很大程度的簡化工作沙庐。
Bower 基于nodejs的模塊化思想佳吞,把功能分散到各個模塊中拱雏,讓模塊和模塊之間存在聯(lián)系底扳,通過 Bower 來管理模塊間的這種聯(lián)系铸抑。
包管理工具一般有以下的功能:
? 注冊機制:每個包需要確定一個唯一的 ID 使得搜索和下載的時候能夠正確匹配衷模,所以包管理工具需要維護注冊信息鹊汛,可以依賴其他平臺算芯。
? 文件存儲:確定文件存放的位置柒昏,下載的時候可以找到熙揍,當然這個地址在網(wǎng)絡(luò)上是可訪問的职祷。
? 上傳下載:這是工具的主要功能,能提高包使用的便利性有梆。比如想用 jquery 只需要 install 一下就可以了是尖,不用到處找下載泥耀。上傳并不是必備的饺汹,根據(jù)文件存儲的位置而定痰催,但需要有一定的機制保障兜辞。
? 依賴分析:這也是包管理工具主要解決的問題之一夸溶,既然包之間是有聯(lián)系的逸吵,那么下載的時候就需要處理他們之間的依賴缝裁。下載一個包的時候也需要下載依賴的包扫皱。