为什么学前端

作者: 前端学习 | 来源:发表于2017-03-20 10:38 被阅读150次

    我的前后端分离态度

    前后端分离是指技术架构上的分离而不是对“职位”的分离。可以随便打开一个招聘网站看一下“前端工程师”的要求:

    熟悉HTMLCSSJavaScript

    熟悉一个前端框架,Angularjs、ReactJS

    熟悉webpack之类的打包工具;gitsvn之类的版本控制工具

    为什么会有专业前端

    正如数据库出现是为了“通用式数据共享”问题;URI出现是为了解决“统一资源标识”的问题,每个技术的出现都有它出现的时机。前端也不例外,我个人理解它的出现要解决核心问题是——前台组件化或者工程化。

    从B/S系统的演进历史我划分二个阶段

    第一阶段——动态页面

    HTML代码和某个脚本语言混合在一起。“不必过分多说,你自己清楚,你我到底想要做些什么”,

    第二阶段——结构化阶段

    (我不喜欢用MV$这个词,已经别用烂了要结合上下文才能理解它的含义)。

    HTML和脚本混合在一起的滋味很不好受,修改代码的时候往往是牵一发而动全身。所以第二阶段就尝试把HTML从代码中剔除出去引入了——模板。

    不完整的“结构化”

    但是这场“结构化”并没有针对前端带来什么帮助。前端主要面临的问题

    大家还在一次一次的重头写CSS,缺少一个框架;

    前端的出现

    解决HTML粒度的问题很多人都尝试过努力,从后端角度出发的GWT、JSFAsp.netWebForm;从前端角度出发的ExtJS、YUI,但是这些工作成效甚微。究其原因我觉的是“做得太多”,无论哪种方式它都是在试图过多的隐藏复杂度,GWT是典型的“JavaScript是万恶”;JSF一门心思非要“所见即所得”;WebForm则完全无视“设计师”的感受,让你告别HTML;ExtJS、YUI则一切都是“组件”。过分的简化问题会让问题更加复杂,一个框架一定要暴露出必要的细节。

    现在的前端定义了一种更加抽象的标签来代替HTML,比如Reactjs的jsx、VueComponent、Angular的componentdirectives之类的都极大的提高了HTML的抽象粒度也提高了代码的复用程度。这些框架都暴漏了必要的细节给使用者(没有一个声称告别HTML、JavaScript;一切都是组件)而且明确的区分出了“组件化”的范围是在“页面”层次——所有的页面渲染逻辑全部放到前端来做而后端代码只提供数据(再次说明,此处的前端、后端仅仅是指技术架构上的变化而不是说工作职责的变化)。

    现在开始学习

    软件领域的很多新技术要解决的核心问题都是复用,这似乎是整个领域的“魔咒”。经历了多年的发展我们从非结构化走向结构化,从杂乱无章走向模块化、组件化。我们用UML、用软件工程、用设计模式、用面向对象、用各种华丽的技术来试图让我们的代码更加容易维护、更加容易被修改——而背后的动机都是通过复用节省成本。

    HTML抽象粒度太细带来的直接问题就是无法复用,比如“列表页面”,所有的表格长的都差不多,唯一的变化是不同的列不同的数据来源,但是我们却很难寻找一种方式可以“封装”这个表格。再比如“表单页面”,也是这种尴尬的局面,我们的HTML结构差不多但是就是没有办法做封装。我觉得这就是前端能带给我们最大的改变。

    最后,每个人学习前端的原因以及目的都不一样。

    相关文章

      网友评论

        本文标题:为什么学前端

        本文链接:https://www.haomeiwen.com/subject/zsgunttx.html