判断(web)前端真伪的两个参考因素
是否基于文档流进行视图设计,以及对视图状态进行分析时的粗细程度
数据向前端开发与视图向前端开发
对于前端初学者,要么选择做视图方向的前端开发,要么选择做数据方向的前端开发。视图向的前端与产品经理(产品经理也分视图向、数据向等多个方向,这里特指视图向的产品经理)、视觉设计师、交互设计师有更多的共同语言,技术栈方面也有交集,具体点说,需要懂包括设计在内的其它非计算机学科范畴内的东西。数据向的前端的工作重心则始终放在数据业务、数据算法等方面,技术栈仅限于计算机学科,狭义的前端也就以是B/S那一套知识架构为基础扩展而来的技术栈。
前端建模与后端建模
前端无法做到后端那样的抽象程度。一个视图界面(user-interface)少则十几多则上百个状态变量,用来维护这些状态的视图模型(view-model)可能用一次就不会再用了,甚者改变部分状态变量后需要重新建模;后端数据建模完成之后,抽象程度相对较高,修改的频率不会太高,系统运行阶段会无限重用。
关于flutter的一点憧憬
可以将flutter视作(大)前端技术栈的加分项,其短期的应用场景是类似 RN (但区别很大)的跨平台移动应用开发框架,长远的应用场景是构建 fuchsia 的视图层,最近 flutter 突然火起来可能是谷歌想提前布局,等正式发布 fuchsia 的时候有能力尽快抢占 andorid/ios,乃至 windows(pc)的市场。 现阶段接触 flutter,大致相当于 08 年左右开始接触安卓开发,那个时候接触并坚持到现在的自然早已是神级的人物。
番茄与蛋
基于tpl&ssr思想的视图渲染方案:厨师甲想做番茄蛋汤,厨师乙却递给厨师甲一碗番茄炒蛋,让厨师甲把番茄和蛋挑出来再加工为番茄蛋汤。
基于DOM思想的视图渲染方案:厨师甲想做一碗汤,厨师乙直接递给他一些生的、处理过的(比如清洗)番茄与蛋,厨师甲很快做出了一碗新鲜的番茄蛋汤。