近年来,Airbnb 这个分享经济的代表性公司不仅在业务层面屡创新高,同时在开发技术上也勇妄前行,其中 JavaScript 技术的运用更是得到充分的展现。下面就来看看 Airbnb 在 JavaScript 方面的一些实践、技巧和经验,以及这些经验所蕴含的智慧和价值。
使用 Airbnb 的前端组件库 React 的同学们一定不会陌生 ES Lint。ES Lint 作为一个静态的 JavaScript 语法检查器,主要的作用是在开发时检查代码布局、语法规范、实践规范以及潜在的错误等。Airbnb 作为业界先锋,在 JavaScript 规范和实践方面自然是表现出色。据悉,Airbnb 在其 React 项目中内置了一份专门针对 React 的 ESLint 配置,不仅涵盖了语法规范,更包含了对 React 相关规范的一些约束。举个例子,Airbnb 规定在 JSX 中使用单引号,而普遍的规范则是双引号。
"rules": { "jsx-quotes": ["error", "prefer-single"], // 其它配置 }
另外,Airbnb 对代码格式的严格程度也可谓是丝毫不马虎。在遵循了 Eslint 标准化代码规范之后,Airbnb 还制订了自己的一套规定,比如空格、缩进、换行等。同时,各种命名规范、代码 module 化等规范内容也一样得到了很好的贯彻。
/* bad */ const foo = function() { console.log('hi'); }; /* good */ const foo = function () { console.log('hi'); };
除了 ESLint 相关的规范,Airbnb 在 JavaScript 技术实践方面也有很多值得借鉴的地方。比如,在 React 的 Context API 中,Airbnb 强烈建议使用 createContext + useContext 的方式来传递值(而不是 Redux 等非必要的库),这样可以极大地简化代码的复杂度、减少渲染次数。
const MyContext = React.createContext(defaultValue); function MyComponent() { const value = useContext(MyContext); // ... }
再比如,在 Redux 数据流方面,Airbnb 不仅对 reducer 内分离出 action 处理逻辑、不传递多余的数据等问题文章处理,还专门针对 immer.js 进行了很多探究和尝试,不断探索最适合自己业务的方案。这种对框架者常规使用的评估和取舍,是前端开发工程师的一项必备技能。
总之,Airbnb 在前端技术实践和规范方面的实践,是前端开发者们需要学习的典范。今天我们所面对的前端领域变化极快,为了应对这种变化带来的挑战,学习 Airbnb 这样业内的先进实践经历,是建立起自己技术文化建设的关键。希望大家都可以在这个技术革命时代找到自己的位置,推动整个前端行业共同进步!