前端的边界

前端的边界_第1张图片

最近在做一款 Chrome 插件,就一直思考,前端到底能做什么,能做什么东西。我感觉前端貌似已经无所不能了。

本质

前端本质大家都很清楚,是在浏览器内页面编程,HTML 为骨架,CSS 为样式,JS 为动作,三者结合,呈现在浏览器中。

发展

对于前端来说,13年 React 的出现就像 09年 Node 出现一样,意义是巨大的。

Node 的出现,前端实现了模块化(bower、npm)、工程化(Grunt、gulp、bf、webpack)。这些再配合 babel 使用 ES2015+,写代码简直不要太舒服。

但,直到 React 的出现,前端才终于有了一个公认的组件化框架,它能够 HTML in JS,
把 HTML 和 JS 结合,后来 CSS in JS,至此,HTML、CSS 和 JS 终于能够写在一起,实现了组件化。

React 不光能够实现组件化了,还能够 Virtual Dom,一方面很快,但我觉得另一方面意义更大:

前端的边界_第2张图片
Virtual Dom

因为 VM,所以我们前端可以使用 React Native 用写前端的方式去写客户端程序。

  • iOS 、Android 是 React Native
  • DOM 是 react-dom
  • SSR 甚至可以是 react-dom/server

周边

  • 微信小程序

  • 谷歌的 PWA 出现,给了前端更多挑战和机遇,我们可以让用户拥有更好的体验

  • Chrome 插件也算是使用前端的方法去写 Chrome App

  • Electron 甚至已经可以让前端去写桌面应用了

未来

说了这么多,前端的本质还是 HTML、CSS、JS 么?现在是不是已经走向全端了。是不是要掌握上面说的那些技术才是一个合格的前端呢?

我从去年开始觉得,客户端开发和 Web 前端开发其实是一回事,都是基于界面编程,所以思想都是一样的,只不过是语言和环境不同而已。所以,今年开始想学学 Android 开发,不过现在还没入门 -_-! 。

我看到很多公司的前端部门也都有这一想法,成立了一个所谓的『大前端』部门,里面有 Web 前端、iOS 开发、Android 开发。其实,倒也合理,因为一个工作2、3年的人,对于前端这一『思想』熟络之后,再去学 iOS、Android 只不过是过语言关而已。这就是『全端』吧。

而因为 Node 的出现鼓吹了很多年的『全栈』,我倒是很不看好。首先,因为 Node 的出现很多前端觉得 JS 也可以写服务端了,可是你要知道语言可是最好学的,而相应的后端知识岂是一个 JS 就能涵盖的。

所以,前端的未来应该是『全端』而不是『全栈』。

不知道自己能不能做到呢,惆怅。

你可能感兴趣的:(前端的边界)