摘要:使用代替可以使用工具代替結(jié)語(yǔ)我們應(yīng)該根據(jù)公司情況業(yè)務(wù)場(chǎng)景和團(tuán)隊(duì)具體情況來(lái)制定適合自己的開(kāi)發(fā)規(guī)范,開(kāi)發(fā)規(guī)范不需要最好,也沒(méi)有最好的開(kāi)發(fā)規(guī)范,只有適合自己的。后期我將和大家分享如何制定開(kāi)發(fā)規(guī)范。
0 為什么要有規(guī)范?
與性能無(wú)關(guān)
與功能無(wú)關(guān)
與效果無(wú)關(guān)
與能力無(wú)關(guān)
與工期無(wú)關(guān)
但是,規(guī)范必不可少
與效率相關(guān)(開(kāi)發(fā)、迭代和維護(hù),重點(diǎn)提升維護(hù)及迭代效率)
與團(tuán)隊(duì)相關(guān)(減少團(tuán)隊(duì)之間的不一致性)
與面試相關(guān)(提高代碼健壯性,通過(guò)面試)
與習(xí)慣相關(guān)(保證最近實(shí)踐)
與開(kāi)源相關(guān)(開(kāi)源項(xiàng)目均有嚴(yán)格的開(kāi)發(fā)規(guī)范)
1 效率代碼風(fēng)格(eslint)
書寫規(guī)范(eslint)
1.1 易讀 1.1.1 空格(英文、數(shù)字與中文結(jié)合)// 不理想
AlexShan畢業(yè)于2008年
// 理想
AlexShan 畢業(yè)于 2008 年
數(shù)字、英文與中文直接左右應(yīng)該留有 1 個(gè)空格1.1.2. 習(xí)慣
布局
// 不好的布局風(fēng)格,用行內(nèi)元素包裹塊級(jí)元素(新的 ESlint 規(guī)則默認(rèn)禁止如此布局)
不好的布局風(fēng)格
// 較好的布局
較好布局風(fēng)格
我們應(yīng)該合理選擇和使用html中的DOM元素進(jìn)行頁(yè)面布局
換行
// 無(wú)換行
// 換行
我們應(yīng)盡量保證代碼清晰,按結(jié)構(gòu)布局,如果代碼密密麻麻,估計(jì)review的時(shí)候就會(huì)被打回來(lái)。并且嚴(yán)重影響閱讀速度。1.1.3. 命名
變量 | 對(duì)象、類 | 常量 | 函數(shù) | 布爾值 | 私有屬性 |
---|---|---|---|---|---|
小駝峰 | 大駝峰 | 大寫 | 小駝峰 | 小駝峰 | 小駝峰 |
區(qū)分單復(fù)數(shù) | 單數(shù) | 動(dòng)詞開(kāi)頭 | is has can 肯定 | _ 下劃線開(kāi)頭 | |
myName="" colleagues=["", ""] names =[] | class DogHouse | MAX_WIDTH | createUser deleteUser | available hasUser showName | _sum() |
避免無(wú)意義變量名 | 避免沖突 | 全局存儲(chǔ) | 多用肯定詞 | 不對(duì)外暴露 |
應(yīng)該盡可能讓代碼精簡(jiǎn),越少的代碼犯錯(cuò)的概率越低。維護(hù)和迭代成本也越低。
函數(shù)應(yīng)該保持單一功能原則,避免大而全的函數(shù)。哪怕一個(gè)函數(shù)只有 1 行代碼,也應(yīng)該成為一個(gè)獨(dú)立的函數(shù)。
2 團(tuán)隊(duì)團(tuán)隊(duì)協(xié)作是稍具規(guī)模公司必不可少的問(wèn)題,也是項(xiàng)目開(kāi)發(fā)進(jìn)度保證的重要基石。只有團(tuán)隊(duì)協(xié)作,各自的功力發(fā)揮到極致,才能保證團(tuán)隊(duì)生產(chǎn)力最大化。
我曾經(jīng)遇到過(guò)一個(gè)團(tuán)隊(duì),各自為營(yíng),都按照自己想法和風(fēng)格寫代碼,對(duì)代碼風(fēng)格也沒(méi)有統(tǒng)一,關(guān)鍵是并非每個(gè)人都是大佬,寫出的代碼仍然具有非常多的問(wèn)題,也么有嚴(yán)格按照最近實(shí)踐進(jìn)行編寫,我的編譯器紅彤彤一片。
這個(gè)是線上環(huán)境的真實(shí)代碼,問(wèn)題非常多。
無(wú)用代碼未及時(shí)去除
未遵循Vue.js最佳實(shí)踐進(jìn)行開(kāi)發(fā)https://vuejs.org/v2/style-guide/
使用行內(nèi)樣式
我們不總結(jié)更多的存在的問(wèn)題,可想而已,多人一起去維護(hù)這樣一套代碼,后期問(wèn)題將非常多,非常有必要制定統(tǒng)一的規(guī)范。至少保證大家代碼風(fēng)格相同,否則提交代碼時(shí)因格式問(wèn)題也會(huì)引發(fā)大量沖突。解決沖突可不是我喜歡的事情。
3 面試面試這個(gè)環(huán)節(jié)是每個(gè)開(kāi)發(fā)人員都必不可少的經(jīng)歷,如果想進(jìn)大廠,或者拿到好的薪酬。就必須通過(guò)面試,我們作為老司機(jī),必須讓自己的代碼足夠健壯,書寫足夠規(guī)范,邊界條件的處理,哪怕很簡(jiǎn)單的面試題,也是能夠看出一個(gè)人的編碼能力的。
4 習(xí)慣有人可能在偷樂(lè),公司無(wú)規(guī)范,編碼無(wú)人管,自己說(shuō)了算。想怎么寫就怎么寫,如果你想自己一直是個(gè)碼農(nóng),或者放棄自己進(jìn)入大廠或者成為大牛的機(jī)會(huì)。那自然可以瀟灑走下去。如果希望自己能夠快速成長(zhǎng),何不做個(gè)領(lǐng)導(dǎo)者,領(lǐng)導(dǎo)自己,給自己給公司制定一個(gè)規(guī)范,也會(huì)讓領(lǐng)導(dǎo)刮目相看。我想,好的領(lǐng)導(dǎo),應(yīng)該沒(méi)有不喜歡有規(guī)范、有約束的代碼風(fēng)格吧?
5 開(kāi)源想成為開(kāi)源的貢獻(xiàn)者、或者參與開(kāi)源項(xiàng)目,我們就必須遵守開(kāi)源項(xiàng)目的規(guī)范。像Angular,連提交代碼的格式和書寫都有嚴(yán)格的要求,并且開(kāi)發(fā)了自己的代碼提交命令行工具。有興趣的同學(xué)可以深入了解。
使用Commitizen代替 git commit
可以使用cz-cli工具代替 git commit
我們應(yīng)該根據(jù)公司情況、業(yè)務(wù)場(chǎng)景和團(tuán)隊(duì)具體情況來(lái)制定適合自己的開(kāi)發(fā)規(guī)范,開(kāi)發(fā)規(guī)范不需要最好,也沒(méi)有最好的開(kāi)發(fā)規(guī)范,只有適合自己的。例如谷歌的開(kāi)發(fā)規(guī)范未必適合小的、需要快速迭代的實(shí)驗(yàn)性項(xiàng)目。后期我將和大家分享如何制定開(kāi)發(fā)規(guī)范。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104958.html
摘要:可能很多人和我一樣首次聽(tīng)到前端架構(gòu)這個(gè)詞第一反應(yīng)是前端還有架構(gòu)這一說(shuō)呢在后端開(kāi)發(fā)領(lǐng)域系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵因此架構(gòu)師備受重視早在開(kāi)發(fā)工作啟動(dòng)之前他們就被邀請(qǐng)加入到項(xiàng)目中而且他們會(huì)跟客戶討論即將建成的平臺(tái)的架構(gòu)要求使用還什么技術(shù)棧內(nèi)容類型 可能很多人和我一樣, 首次聽(tīng)到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說(shuō)呢? 在后端開(kāi)發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備...
摘要:可能很多人和我一樣首次聽(tīng)到前端架構(gòu)這個(gè)詞第一反應(yīng)是前端還有架構(gòu)這一說(shuō)呢在后端開(kāi)發(fā)領(lǐng)域系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵因此架構(gòu)師備受重視早在開(kāi)發(fā)工作啟動(dòng)之前他們就被邀請(qǐng)加入到項(xiàng)目中而且他們會(huì)跟客戶討論即將建成的平臺(tái)的架構(gòu)要求使用還什么技術(shù)棧內(nèi)容類型 可能很多人和我一樣, 首次聽(tīng)到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說(shuō)呢? 在后端開(kāi)發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備...
摘要:可能很多人和我一樣首次聽(tīng)到前端架構(gòu)這個(gè)詞第一反應(yīng)是前端還有架構(gòu)這一說(shuō)呢在后端開(kāi)發(fā)領(lǐng)域系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵因此架構(gòu)師備受重視早在開(kāi)發(fā)工作啟動(dòng)之前他們就被邀請(qǐng)加入到項(xiàng)目中而且他們會(huì)跟客戶討論即將建成的平臺(tái)的架構(gòu)要求使用還什么技術(shù)棧內(nèi)容類型 可能很多人和我一樣, 首次聽(tīng)到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說(shuō)呢? 在后端開(kāi)發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備...
閱讀 669·2023-04-25 15:49
閱讀 3121·2021-09-22 15:13
閱讀 1262·2021-09-07 10:13
閱讀 3484·2019-08-29 18:34
閱讀 2567·2019-08-29 15:22
閱讀 513·2019-08-27 10:52
閱讀 691·2019-08-26 18:27
閱讀 3028·2019-08-26 13:44