精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Facebook使用Stylelint以期保證CSS代碼質(zhì)量

責任編輯:editor004

作者:韓婷

2016-06-23 10:55:49

摘自:infoq.com

近日,來自Facebook的開發(fā)者Juriy Zaytsev發(fā)布文章稱,他們更換了CSS Linter工具,采用了基于PostCSS的Stylelint作為新的Linter工具,以期保證CSS代碼質(zhì)量

近日,來自Facebook的開發(fā)者Juriy Zaytsev發(fā)布文章稱,他們更換了CSS Linter工具,采用了基于PostCSS的Stylelint作為新的Linter工具,以期保證CSS代碼質(zhì)量。

上千名工程師,多條不同產(chǎn)品線,龐大代碼庫,日漸增加的新特性……種種特點加在一起,給Facebook的代碼質(zhì)量管理帶來了獨特的挑戰(zhàn)。而如何保證上千份不停變換的CSS文件質(zhì)量,對于Facebook來說,也是非常頭疼的問題。Facebook為了解決這個問題,采用了Code Review、代碼樣式規(guī)范、重構(gòu)以及自建的CSS Linter等手段。

然而,F(xiàn)acebook對之前自建的CSS Linter并不滿意。該Linter是基于正則表達式來對CSS進行約束的,因此,所設(shè)定的每一個檢測規(guī)則都需再去設(shè)定相應(yīng)的匹配規(guī)則,并且要去遍歷整個文件進行檢測,這不僅難以維護,而且性能很差。

CSS本身是一門語言,把它當做純文本文件,采用正則表達式來處理并不是一個好選擇。而換種思路,采用抽象語法樹的方式來構(gòu)建一個解析器,則會在性能上有比較不錯的提升。

此時,基于PostCSS的Stylelint走進了Facebook的視野。Stylelint提供了完整的抽象語法樹的訪問方式,因此,使用者可以快速訪問具體的代碼節(jié)點、傳入一些基本函數(shù)。這可以大大增強檢測規(guī)則可讀性和可維護性,正是Facebook所想要的。

Facebook理所當然地選擇了Stylelint,并在具體的使用過程中對Stylelint進行了完善,針對舊Linter的痛點添加了功能。

selector-class-pattern。Stylelint還可以添加自定義規(guī)則,具體的添加方法可以參考built-in plugin mechanism。同時,F(xiàn)acebook也為Stylelint貢獻了一些規(guī)則和插件。

Stylelint尚有不完善的地方,例如沒有提供自動格式化與修正功能,而人工修正會浪費開發(fā)者大量的時間。因此,F(xiàn)acebook正著手為其添加自動格式化與修正功能,這將為Stylelint用戶帶來極大的便利。

同時,F(xiàn)acebook選擇了Jest框架進行單元測試,來檢測當前所處的環(huán)境是否是CSS文件。

Juriy Zaytsev提到,換一個靠譜的CSS Linter工具只是保證高質(zhì)量的CSS的代碼的第一步,F(xiàn)acebook還打算添加更多的自定義的規(guī)則,設(shè)法達到使用規(guī)則的最佳實踐以及制定統(tǒng)一的代碼規(guī)范。

本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2016-06/132592.htm

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 鹰潭市| 桃源县| 贺兰县| 丹巴县| 大田县| 林周县| 莒南县| 岳普湖县| 景宁| 武清区| 大渡口区| 利津县| 蒙城县| 衢州市| 聂拉木县| 江山市| 元江| 蓬溪县| 辛集市| 茌平县| 绿春县| 西青区| 闸北区| 十堰市| 靖边县| 互助| 山西省| 肃北| 灵台县| 高邮市| 和龙市| 安庆市| 林甸县| 木兰县| 怀柔区| 东平县| 安龙县| 东乌珠穆沁旗| 观塘区| 文水县| 吴江市|