当前位置: 首页 > news >正文

我看到的前端

前端开发在移动浪潮的到来中,越演越烈,在web app的强势驱动下,在native化交互的硬需求下,前端的需求从原先的操作操作dom,来个小动画,转变成了全数据流的末尾处理端。前端再也不是什么ui,再也不是一个bootstrap+jquery就可以解决所有问题的领域。在数据处理的下垂之中,如何在最短的时间内处理用户的交互数据,用户的统计数据,用户的分析数据,成为了前端数据链当中的重中之重。如何处理这些数据,如何处理这些数据和native交互的链接,成为了前端必须要解决的问题。而,由此带来的前端人员的增加,工具的增加,如何有效,有质量的解决这些问题的工程化思维被提上了历史的舞台。

从ui到数据链处理

很久之前,我们pp图,写写html,写写css,写写jquery,觉得前端如此美好,数据由CGI处理,我们不用担心,调用就好,3个人可以解决前端的所有问题。但是,突然,有一天,数据的高墙被推倒,我们看到了墙外面的世界,原来,墙的外面真的有巨人。

是前端,但不仅仅是前端

这里所说的前端,并不是单单指的是前端,而是以前端为代表的ui开发。整个ui开发,其实是一体的,很长时间以来,在整个软件工程体系当中,ui开发一直得不到足够的重视,协议层,数据层的东西才被认为是软件工程的核心,但是当UX越来越被重视,协议层和数据层的发展遇到瓶颈,前端工程才重新被认知和重视,而此时的前端,已经不当当是当初那个写写xml/html接口集,写写css样式集,写写javascript/java/OC/swift脚本的前端,而是一个要求处理数据末端处理的工作流的前端。数据的高墙被推倒之后,前端要怎么去处理呢?

数据才是程序存在的根本要义

那么,我们为什么要把数据放入到前端开发的范畴中来呢,这样是不是有意义的呢?事情是很清楚的,最重要的原因是,数据是程序存在的根本要义。没有人花时间在程序上面,只是为了看代码运行完之后的success,哦,除了程序员。

交互需求是数据存在的根本缘由

而数据的来源又是因为人对机器发出的指令,也就是我们所说的交互需求。换句话来说,前端开发决绝不是什么简单ui处理,而是一个完整的交互开发,一个人与数据处理的开发。

那么,从这个角度出发,前端工程完全是一个独立的软件工程范畴。我们来讨论下工程化,这个问题。

工程化

所谓工程化,表达出来的是,如何将一个看起来简单的事情做的更好。很多时候,我们或许并不关心这样做的根本原因,这样做的理论依据,这样做的专业性知识,但是,我们绝逼会这样去做,因为此,才可能把事情做好呀,这不就是工程师要做的嘛?

工具化

由于前端任务的繁重,所以出现了大量的工具来处理一些人来很容易犯错的任务,比如说合并文件,混淆文件,压缩文件,标注md5码。等等。。。将工作细分,然后引入工具去处理一些问题,成为趋势。各种gulp/grunt/webpack的插件可以说明问题。

模块化,组件化

在以往的前端,一个页面大多都是一个循环生成的。:D,但是现在,不单单是一个个循环可以解决的啦,越来越细小的业务需求,导致我们必须对每个业务有很清晰的是认识,但是,一个人的精力是有限的,人员的增加和代码复用的需求,导致了模块化的出现,而模块化的出现,导致了功能组合和复用的需求,资源和寻求的组合,这就是一个单独的交互的组件。webpack,seajs,requirejs,AMD,CMD以及react,vue是前端模块化组件化的先驱

自动化

工具化的应用和模块化的思维,使得自动化成为了可能。管道的处理方式,和node带来的系统级数据处理能力,导致了前端自动化成为了一个不可阻挡的大趋势。gulp,grunt这类工具是自动化的代表。

标准化

自动化的应用,给前端带来的是对标准化的需求。没有规矩不成方圆。如何处理css module,js module,这些组件要怎么组合,一个组件应该要具备什么基本的要素,这些都是前端标准化的过程。浏览器对ECMAscript标准的统一和对html5,css3标准的统一,也使得前端的开发变的有章可循。

可预测化

工程化带来的,是我们可以很明白的知道,数据的input和output的直接关联。function从一个Object变成一个factory。react的实际做法,就是将pre-function引入到DOM render当中来处理,使得DOM render变的可以预见,可以处理。

流水可处理

前面的这一切,为流水化工业生产打下的理论基础。也就是说,前端的代码编写变的更加的平民化,和普及化。同时,前端的开发效率会有一个质的提示。

可控的前端

所有的这一切,最终的目的,是为了一个高效开发,高可控的前端。而可控的前端,包括了下面的方面。而正是这些需求,促成了函数式编程在前端开发的领域越来越被重视。同时数据上报也成为了末端数据开发的重要部分。

数据可控

在开发阶段,你能知道你要什么样的数据,你得到了什么样的数据。
在部署阶段,你能知道数据哪里错了。

错误可控

发生了什么错误,哪些错误是高频发生的,这些错误是怎么发生的,在什么场景下发生的。错误发生之后,对业务的直接影响是什么。

反馈可控

我们能知道用户对产品的使用情况是如何的。这些产品自己会关心的。

开发可控

我们要知道,具体的代码执行情况,页面请求的时间,页面渲染的时间,首屏可见的时间,等等,这些开发想要的优化数据要可控,可见。而这些就要求,数据上报。

相关文章:

  • CSS 文本
  • Windows10安装Hyper-V
  • ExtJs 3.1 XmlTreeLoader Example Error
  • 从一款概念车联想到的分布式系统
  • C# BackGroundWorker控件演示代码
  • 面向接口编程详解(一)——思想基础
  • MSN登陆问题
  • CiSCO 交换机配置 SSH 登陆
  • 飞鸽传书文件传输实现原理
  • dedecms调用全站相关文章怎么设置
  • Golomb及指数哥伦布编码原理介绍及实现
  • @在php中起什么作用?
  • 2017.3.13笔记 this指向
  • 国内又出一个开源网店系统,值得期待...
  • ASP.NET页面解析(3)
  • [译] 怎样写一个基础的编译器
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CSS3 变换
  • ERLANG 网工修炼笔记 ---- UDP
  • isset在php5.6-和php7.0+的一些差异
  • javascript面向对象之创建对象
  • js学习笔记
  • js中的正则表达式入门
  • Linux快速复制或删除大量小文件
  • MySQL数据库运维之数据恢复
  • ng6--错误信息小结(持续更新)
  • Webpack入门之遇到的那些坑,系列示例Demo
  • Yeoman_Bower_Grunt
  • 创建一个Struts2项目maven 方式
  • 创建一种深思熟虑的文化
  • 番外篇1:在Windows环境下安装JDK
  • 后端_MYSQL
  • 简单数学运算程序(不定期更新)
  • 来,膜拜下android roadmap,强大的执行力
  • 深度学习入门:10门免费线上课程推荐
  • 移动端 h5开发相关内容总结(三)
  • 用element的upload组件实现多图片上传和压缩
  • 2017年360最后一道编程题
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #微信小程序:微信小程序常见的配置传旨
  • #在 README.md 中生成项目目录结构
  • (3)(3.5) 遥测无线电区域条例
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (力扣题库)跳跃游戏II(c++)
  • (十六)Flask之蓝图
  • (算法二)滑动窗口
  • (五)Python 垃圾回收机制
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)jdk与jre的区别
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ***通过什么方式***网吧
  • .net 发送邮件