yshaojun / blog

1 stars 1 forks source link

盘点前端领域的六个方向 #4

Open yshaojun opened 5 years ago

yshaojun commented 5 years ago

在日常业务开发中,前端的工作大多是“写界面加事件”,但是现代前端的内容远不止此,这里整理几个方向,有其他的见解欢迎探讨和补充。

1. 常规表单

这是从事B端/内部系统工作的主要内容,典型的例子是各种后台管理系统,技术上仅使用 DOM 接收和展示数据即可满足绝大部分需求。对 css 和动画的要求不高(毕竟可以“css 不够,js 来凑”),也很少有深度使用 svg/canvas 的场景。

这个方向的追求,个人认为是统一设计语言下的 标准化组件库,以大幅降低重复劳动,快速响应业务需求。

2. 可视化

这个方向不再主要使用 DOM,而是以 svg/canvas 为主了,需要掌握大量 svg/canvas api,以及一定的计算机图形图像知识。应用场景主要有两类,统计图表3d 画图,这些图一般都不是静态图,因此对动画的要求也比较高。

这个方向侧重视觉效果,因此是前端里最炫酷的领域了。

3. 工程化

这是为了支撑大规模前端应用的方法论和工具集,比如静态语言 TypeScript,开发框架 React/Vue/Angular,css 预处理 Sass/Less,打包工具 Webpack,代码压缩 UglifyJS/cssnano 等。除了开发、编译,还应该包括部署方案,比如 serverless 下的容器部署、cdn、缓存等。

这个方向的目标是让开发人员能够专注业务实现,而工程化工具能保证上线的一定是 符合预期且性能最优 的。

4. 编辑器

编辑器以 功能复杂允许用户任意操作 的特点,成为前端最有挑战性的领域之一。编辑器功能众多,不同功能难度差异巨大,比如 BIUS(加粗、斜体、下划线、删除线)一行代码就行,但像插入表格,则难度很大。类型上除了文本编辑器,还有表格、幻灯片、日历、脑图等,不同类型的技术架构和实现方案截然不同。

随着在线文档的流行,业内对 Web 编辑器的需求和期待也越来越高。

5. 跨端跨平台

在移动端上,指 H5、iOS/Android 原生应用、小程序;在 PC 端上,则是浏览器和 Windows/Mac/Linux 客户端。对于一个产品,特别是轻应用来说,每个场景都单独开发成本巨大,因此需要一套或几套跨端跨平台技术。目前 PC 端主要是 Electron,移动端则 Flutter 呼声最高。

6. 偏 Node

这时已经不太能称之为前端工程师,而是 “JavaScript 后端工程师”。除了开发语言,所做的工作及技能要求和后端基本没有差别,需要掌握 HTTP 服务框架、数据库 ORM、高并发、缓存等等,常见的工具有 koa2(或者 egg.js)、sequelize 等。

埋头搬砖,抬头看路,从这些方向可以看到,我们的征途是真的星辰大海!

changfuguo commented 5 years ago

有同样的感慨,可视化我们正在做,有几点感悟吧

组件库;

可视化

目前我们也在做,这个的话就需要一套完备的基础组件做支撑。并且这套组件库是不能拿来直接用的,因为在可视化的编辑状态和实际release 状态的组件库是两种形态,要用更高阶的组件处理:

等等,要解决的问题不仅仅是这些,百度的amis,阿里的飞冰,宜搭吗,uform等都是在积累沉淀

工程化

工程化目前也有现成的套件,react 有阿里的umi,react官网的,vue有自身的cli,但是这些或多或少都不能满足自己的需求,比如每个公司都有自己的一些服务,如图片,cdn之类的,所对于工程化的问题,我有几点感悟吧

关于跨端,现在其他兄弟组也在和公司其他部门在做thonas,node这个我觉得前端出身做工具还中,真正做服务端做精深的还是少,io 网络 事件,多进程?大多数应该都是浮于皮毛(哈哈我自己也是),所以现在我觉得要做就要做深了

早上来了看到这个话题,感悟特别多,提笔写了一些感悟,可能文不对题。

目前的话在业务上来看,组件->脚手架->业务框架(ant pro)->可视化->node 是一个大家常用的路线。 不过这条路线对于大家来说都比较熟悉了,以至于前端在晋升的时候问你,你都做了啥? 答曰,积累xx组件库,搞了一个yy的脚手架,写了n个模块,支持了多少业务,评委绝壁在心里唏嘘~ 答辩的人只好露出一个尴尬但不失礼貌的微笑~~