我认为前端现在可以说是最好的时代。因为各种新技术层出不穷,让前端可以做的事情越来越多,同时大大减少那些浏览器兼容性等仅仅只和(陈旧)经验挂钩的 tedious 的工作。

前端工程师的工作正在越来越受重视。前端岗位的趣味性,挑战性也越来越大。从最开始的前后端分离到现在将近 20 年的时间里,前端主要经历了以下的变革:后端生成静态页面 → ajax 前端渐进式加载 → virtual dom → ssr + treeshake ssr 等各种新技术逐渐成熟,让 web 开发变得越来强大,而且可以让前端工程师把主要工作精力放在数据结构、算法等工程相关优化上,从而带来更好的用户体验。

而花在诡异语法、畸形 CSS hack 的时间也越来越少。类似“茴香豆的茴有几种写法”的 JavaScript “无用”知识点也越来越受到摈弃。下面是我在前端开发的短暂长河里几个回忆瞬间,你感受一下前端是不是越来越有活力?

2008
当年前端大部分时间除了 PS 切图,主要的时间基本都是花在了类似下面这种处理浏览器兼容的事情上。
由于需要各种复杂浏览器兼容性的问题,jQuery 在当时几乎是神一样的存在。另外 cross-domain 则是另一个沉重的话题。各种奇葩方案应运而生,例如我记忆最深刻的是 JSONP 这种个性的跨域解决方案。现在看来简直心惊胆战,由于需要用 eval 来运行后端 GET 返回的函数 + 数据,所以非常容易受到攻击。

在职前端开发,如果你也想学习前端开发技术,可以加入我组建的前端学习交流裙:851 231 348 也可以关注我的
微信公众号:【前端留学生】自己根据多年来的开发经验总结录制的一套web前端精讲视频和学习方法,
以及一些前端学习手册,前端面试题,端开发工具,PDF文档书籍教程,无偿分享给大家。需要的话都可以自行来获取下载。

2010

当年比较流行的是以下相关的讨论

徒手写一个兼容主流浏览器的“事件监听器”
一些简单的正则表达式例如捕获组
一些奇怪的 JavaScript 编程方法

大家会经常讨论类似 [‘1’, ‘2’, ‘3’].map(parseInt) 会得到什么返回。以及下面的这个有趣的问题。

5 Convert float number with a ',' in every 3 digitsEg: 123456.7 => 123,456.7 or 123456 => 123,456

2012

大概在这年前后 JavaScript OOP 开始大行其道。尤其是以 BackboneJS 为代表的 MVC(VM)前端框架开始流行。平时讨论最多的是 JavaScript Class 的不同实现方式以及各种类的继承。我能记起来的就有 5 种不同的方式。

作者:一个小老虎
链接:https://www.zhihu.com/question/406996057/answer/1408287350
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。function Parent(){ this.name = 'Tiger';
}
// http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript
Parent.prototype.getName = function(){};
function Child(){ // to inherit parent's 'this' so you can get this.name Parent.call(this);this.age = 99;
}Child.prototype = new Parent();
Child.prototype.constructor = Child; Child.prototype = Parent.prototype;
Child.prototype.constructor = Child; Child.prototype = Object.create(Parent.prototype); function deepCopy(parent){ var child = Array.isArray(parent) ? [] : {}; for(var i in parent) { if(parent.hasOwnProperty(i)) { if(typeof parent[i] === 'object') { child[i] = deepCopy(parent[i]); }else{ child[i] = parent[i]; } } } return child;
}

从入门到进阶
L4 前端工程师考察重点
高级 JavaScript 核心

2014

这年 React 发布了。虽然当时还不是很火,但在接下来的日子里大家就发现这东西越来越好用。首先可以完全摈弃 jQuery,其次 virtual dom 的发明几乎改写了前端开发的思路。尤其是 JSX 的引入,重新将 CSS 和 JS 结合到一起,虽然第一次开始写的时候觉得非常奇怪,但后来就发现这么做的好处:React 的组件可以做到高度模块化、高度复用,可以封装地非常好,非常方便小组之间的代码共享。

也就是从那年往后的日子,BackboneJS 们的路越来越不好走,用的人越来越少。而 React 这种 Reactive 的函数式编程也开始变得流行。

我也是亲眼见证了这些年前端从 OOP → FP 的趋势,两种截然不同的思想解决同样的问题,感觉非常有趣、也很有挑战。

2020

看完我的这篇介绍,你在看看现在的前端标准就会发现以上我所提到的问题几乎全都没了。ES2020 的标准里已经将上面这些都简化成 API 供你调用。

以前如果要写一个开源的类库放到 Google Code / GitHub 上,大家用的最多的是 IIEF(Immediately Invoked Function Expression)来封装自己的代码以避免全局污染,而现在 ES6 里面仅仅用 import export 就可以完美解决。ES2020 里甚至还提供了对包的动态加载的原生支持,配合 webpack 简直分分钟做到 require.js 所实现的动态加载功能。

所以这一路走来我并不认为前端现在处在一个糟糕的时代,相反应该是蓬勃发展的时代。好处是正如开头提到的工作重心的转移,可以把精力花在处理和业务相关更核心的事物上,而坏处是由于蓬勃发展所带来的部分语言相关“经验”贬值加速,对于资深前端开发展需要不断学习才能在技术栈上做到和主流一致;而对于刚入行的小伙伴们这恰好是一个机会,因为你根本不用关心已经被淘汰的技术,直接从 ES2020 开始学起。

新的前端时代正在来临。

前端当前是否处在一个糟糕的时代?相关推荐

  1. 处在一个浮躁的时代如何做自己

    前几天读了清华校长邱勇在17年研究生毕业典礼上的讲话,感触颇深,也是为了进一步加深自己的印象,不要那么快遗忘,在自己的博客上重温一下这篇好文–<少一些浮躁,多一些情怀> 这是一个充满无限希 ...

  2. 前端工程师:现在是最糟糕的时代,也是最好的时代

    从行业角度看,前端最糟糕的时期已经过去了:从开发者角度看,现在确实是个糟糕的时代. 首先从前端行业的发展历史来看,前端正在变得越来越成熟.如果和过去相比,之前的前端才是真的糟糕.如果我们从未来的视角来 ...

  3. 前端基础知识点-每天一个基本知识点(100+个前端小知识,你是否都知道?)

    文章目录 前言 第一回合 一.知识点:cookie(21/09/06) 二.知识点:节流和防抖(21/09/07) 三.知识点:var和let以及const(21/09/08) 四:知识点:深拷贝和浅 ...

  4. 论一个糟糕的大数据码农的自我修养

    幸福的家庭都是一样的,不幸的家庭各有各的不幸 - 论一个糟糕的大数据平台工程师的自我修养 本来想写写如何成为一名优秀的大数据平台开发工程师,但说实话,这个话题太简单了!虽然我没有被Jeff dean大 ...

  5. Java程序员:这是一个最好的时代,也是一个最坏的时代...

    狄更斯的<双城记>有一句话:这是一个最好的时代,也是一个最坏的时代. 对大多数人来说,这是一个最坏的时代.因为变化太大.太快,远远超过普通人的想象力和承受力.对极少数人来说,这也是一个最好 ...

  6. 学霸君袁荣喜:K12一对一辅导,这是一个收割的时代| MCtalk教育访谈摘录

    MCtalk教育创业者说 聚焦教育行业,  倾听创业故事,  洞察行业痛点 在线教育是个慢行业,因为其不可逆的时间成本,所有的教育产品都需要时间来慢慢的打磨."如何让学生学得更好?" ...

  7. 前端开发推荐-创建一个精美的jquery图片库效果

    在Web和图形设计的世界,jquery它是使用最广泛的技术. 在他的帮助下,我们可以创建很多伟大的事情.丰富的jQuery插件,在互联网上,使我们能够毫不费力地创建幻灯片,表格,动画和其他各种良好的效 ...

  8. 前端项目如何向一个后端项目传递数组?(批量删除如何传参)

    1)丶前言(问题分析): 在前后端分离项目中传参收参往往是一大难事,比如时间类型(Date)向前端传递时规范一个自己的格式导致再次从前端传到后端会出现格式错误,就需要再次转换 //将Date类型转为j ...

  9. 这是一个浮躁的时代(程序员)

    在当今社会中,一切都是项目,一切也将成为项目. --美国项目管理专业资质认证委员会主席 保罗·格瑞斯 今天如果你不生活在未来,明天你就将生活在过去. --澳大利亚未来学家 彼得·伊利亚德   当今时代 ...

最新文章

  1. Mac上搭建Nginx + rtmp
  2. Java Semaphore实现线程池任务调度
  3. hadoop 全分布式部署
  4. VS2008如何自动添加消息映射
  5. 36个引人注目JQuery导航菜单
  6. java 泛型嵌套泛型_Java泛型嵌套
  7. pytest测试框架(五)---使用xfail将用例标记为失败
  8. 网络管理 之 Fedora Core 网络配置工具system-config-network介绍
  9. GHOST镜像导入VHD的虚拟机
  10. 如何培养客户忠诚:你要的不是会员,而是粉丝!
  11. Python学习笔记—Dict和set
  12. 学校管理 学生会管理系统(SSM)vue+ssm+shiro
  13. cs231n assignment1 SVM详解
  14. [团队项目]英语学习助手之 NABC 模型
  15. python如何提交作业_用python 实现录入学生作业情况的小程序
  16. 华为手机流量日显示无服务器,华为手机开启了数据流量却不能上网怎么办
  17. Python3 多种方式爬取最新30期双色球历史数据存入csv
  18. ygo游戏王卡组_游戏王ygocore
  19. #微信公众号互联登录-01#
  20. 模电(二)半导体二极管

热门文章

  1. 一维搜索斐波那契C语言,斐波那契数列在一维搜索中的应用
  2. java 单例 并发_完美的单例实现(The Perfect Singleton)
  3. 2018 年的 Apache 社区不平凡:让数字来说话
  4. [Oracle]如果误删了某个数据文件,又没有被备份,能否恢复?
  5. 内核与ramdisk到底是什么关系
  6. 《SolidWorks 2017中文版机械设计从入门到精通)》——1.3 常用工具命令
  7. Swift中viewWeb执行JS
  8. bzoj3687简单题*
  9. Robotium导入被测源码遇到问题 had used a different Landroid/support/v4/view/ViewPager
  10. Spring MVC 3.0 RESTful controller