当前位置: 首页 > Web前端 > CSS

前端工程师:现在是最坏的时候也是最好的时候

时间:2023-03-31 00:24:22 CSS

从行业角度来说,前端最坏的时候已经过去了;从开发者的角度来看,这确实是一个糟糕的时期。首先,从前端行业的发展历程来看,前端越来越成熟。如果跟以前比的话,以前的前端真的很烂。如果我们从未来的角度来看现在,那么现在也不好,但没有过去那么坏。十年前,我们正处于前端的石器时代,那时候的前端开发用一个词来形容就是“刀耕火种”。有多糟糕?前端开发者的噩梦:兼容IE6。IE6于2001年发布,ES5直到2009年才定型。IE6除了可以运行JavaScript,还可以运行VBScript和JScript(Javascript的一种方言)。当时有一种只能在IE上运行的技术叫“ActiveX”,所以很多银行和政府网站只能用IE浏览器打开,甚至只能用特定版本的IE打开。另一种技术是Flash,目前已过时。我们现在说的前端通常包括HTML、CSS、JS,甚至是Node.js、SVG等与WebUI层相关的开发技术。那么在没有ES6、HTML5、CSS3的时代,前端有多烂?糟糕到连“前端工程师”“前端开发者”这些词都没有了。当时,这个职位被称为“图片切割师”。”、“切图子”。在大多数公司,HTML和CSS由设计师完成,页面上的动态效果,如鼠标悬停显示菜单和轮播,则由后端开发人员完成。这是常见的当时后端JSP和PHP开发者兼职写jQuery的现象,对比一下同时期的后端,各种工具链和技术都非常成熟,当时只用前端作为后端MVC架构中的View层,在没有前后端分离的时期,View层也是前后端开发的,现在我们开发前端项目,涉及到打包、压缩、混淆等,以前虽然还是有一些大型的前端项目,但是当涉及到上百个js文件时,前端也会用到诸如此类的工具比如打包、压缩、混淆,这些工具当时几乎都是Java提供的,比较流行的有雅虎开发的YUICompressor和谷歌开发的GoogleClosureCompiler。经过这么多年的发展,尤其是Node.js发布到成熟的时候,前端已经非常成熟了,“烂”的时代已经成为历史。从另一个角度来说,作为前端开发者,现在可能是个不好的时候。多年来开发的以前的开发技能不再适用。前端逐渐标准化的后果是大量“经典/保守”的前端开发者被淘汰,抢风头的开发者实现了弯道超车。俗话说“乱世出英雄”,也有人说“乱世葬残骨”。Node.js出现后,前端是当时最赚钱的行业之一。目前这个outlet应该也关门了,所以对于很多人来说,现在是不好的时候。如果我们看大公司,比如阿里,基本上那些高P的前端公司都是在2010年以后搭上了Node.js的快车。Node.js不仅拓展了前端的边界,同时也提高了前端研发的效率。有人说只有不好的东西才需要不断地重新发明。我不同意这句话,我觉得这句话的理由和结论都有问题。首先要颠覆的不是前端,而是前端的某种技术和工具;而且,不是因为它不好才被颠覆,而是因为前端是活的,所以才会有颠覆性的创新和改变。让我们来看看后端。以前Java是用Eclipse开发的,现在几乎都是IDEA。我们是否可以得出结论,Java不断推后,所以后端处于一个糟糕的时代。很明显不是。工具的升级可以带来前端的繁荣。让我们讲一个真实的故事。英国工业革命期间,机器生产逐渐取代体力劳动,导致大部分人失业,工资下降。如果你失业了,你就会无所事事,于是他们开始思考:我们为什么要失业?因为工厂不需要那么多人。为什么工厂不需要那么多人?因为机器可以做很多事情。没有机器怎么办?然后工厂会招更多的人。终于找到了失业的原因,于是莱斯特郡一位名叫路德的工人率先砸了袜机,随后在全国掀起了砸机热潮。无数工人涌入工厂砸坏机器。2333333,该运动被称为“勒德运动”。这一运动导致许多工厂被迫关闭,加剧了更多工人的失业。最后,英国政府立法镇压了勒德分子。故事中,“机器生产逐渐取代体力劳动”是生产力的变化。打个比方,前端技术的更替也是生产力的改变。比较React/Vue开发维护几万行代码的项目和使用jQuery开发维护几万行代码的项目哪个更容易?是技术差距吗?不必要。只要规划合理,jQuery也可以开发出比大型项目更大的工具链。之前是Java开发者,对前端越来越感兴趣,直到Chrome和Node。搭上了前端快车,实现了工资的爆发式增长。刚开始学习最流行的Prototype库时,jQuery出现了;刚学Underscore的时候,Lodash就出现了;就在我庆幸没学Grunt直接学Gulp的时候,Webpack出现了。我大概在2015/2016年实现了我的第一个目标:加薪10倍。不要厌倦追求新的工具,给自己一个清晰明确的定位,然后去学习不同领域的相关知识。从进入前端行业开始,我就对前端工程和前端性能有很深的了解。新工具、新框架出现后,不能仅仅停留在框架用户的身份,而应该思考框架为什么会出现,解决了哪些痛点。如果没有XXX框架,是不是可以解决类似的痛点....总之,说白了,现在的前端是一个不好的时代,因为前端开发人员的薪水不能像以前那样爆炸。但现在也是最好的时机。前端开发人员可以靠综合能力拿到更高的薪水。如何将他们的前端知识转化为生产力?或者只是对某个框架有一定的了解,每天写bug,找bug,修bug。对于一些开发者来说,现在的前端太烂了。另一个原因是工具迭代太快,没有专家指导。面对琳琅满目的前端技术,他们眼花缭乱,不知如何学习,更不知道该学什么。.但是网上的知识点比较零散,不系统。我自己看书,但缺乏实践。看了很多知识但是在实际项目中还是不能用。工作了几年,并没有太大起色,甚至遇到了事业的天花板。想学习web前端的朋友可以在这里加入技术交流裙子,点此进群蓝色,裙子从学生到老板应有尽有,还有面试真题合集(含答案)2020大厂,免费领取,不见不散!HTML浏览器页面的三层是什么,分别是什么,作用是什么?HTML5的优点和缺点是什么?Doctype的作用?如何区分严格模式和混合模式?他们的意思是什么?HTML5中有哪些新内容,删除了哪些元素?您在哪些浏览器上测试过您的网页,这些浏览器的核心是什么?每个HTML文件的开头都有一个很重要的东西,Doctype,你知道这是干什么用的吗?说说你对HTML5的理解?(what,why)对WEB标准和W3C的理解和理解?……CSS解释一下CSS的盒模型?请告诉我CSS选择器有哪些类型,并举几个例子来说明它们的用法?请告诉我CSS有什么特别之处?(优先级,计算特殊值)常见的浏览器兼容性问题及解决方法?列出显示值并解释它们的作用?如何居中一个div,如何居中一个浮动元素?请列出几种(至少两种)清除浮动元素的方法?块、内联和inlinke-block细节的比较?什么是优雅降级和渐进增强?谈谈浮动元素带来的问题和你的解决方案。你有哪些性能优化方法?......JavaScriptjs的各种位置,比如clientHeight、scrollHeight、offsetHeight,以及scrollTop、offsetTop、clientTop的区别?js拖拽功能的实现js的异步加载js的防抖节流方法谈谈闭包谈谈你对scopechainJavaScript原型、原型链的理解?有什么特点?请解释一下什么是事件委托/eventdelegationJavascript如何实现继承?函数执行改变了thisbabel的编译原理函数currying说说类的创建和继承说说前端的事件流如何让事件先冒泡再捕获说说图片的懒加载和预加载jsnew操作符是干什么的?把函数内部的this指针改成函数(bind、apply、call的区别)Ajax解决浏览器缓存问题...VueVue中key值的作用为什么Vue组件中的数据一定要是函数?vuex的State特性是什么?介绍Vue响应式系统中computed和watch的区别介绍Vue的生命周期为什么一个组件的数据必须是组件之间的函数如何交流如何在Vue.cli中使用自定义组件?你遇到过什么问题吗?Vue是如何实现按需加载和webpack设置的?简述每个周期适用于哪些场景。什么是scs?Vue.cli的安装步骤是什么?有哪些主要特点?谈谈你对Vue.js模板编译的理解?Vue路由跳转的几种方式Vue是如何实现按需加载和webpack设置的?Vue的路由实现:hash模式和history模式Vue、Angular、React有什么区别?Vue路由的钩子函数Vue的计算属性是什么?......React介绍reactReact单数据流react生命周期函数和react组件生命周期reactJs组件通信的原理、区别、亮点、作用你了解过react的虚拟DOM吗?VirtualDOM是如何比较的?项目中用到了react,为什么选择react,react有什么好处?如何获得真正的dom?选择React的原因?React的jsx,函数式编程react的组件判断刷新什么不刷新React-Router路由的动态加载模块如何配置什么是Redux中间件,接受几个参数Redux请求中间件如何处理并发浏览器跨标签页面通信BrowserArchitecture浏览器下的事件循环(EventLoop)从输入url到显示过程重绘和回流存储WebWorkerV8垃圾回收机制内存泄漏回流(reflow)和重绘(repaint)优化如何减少重绘和回流?一个页面从输入完成页面加载和显示的URL。在这个过程中会发生什么?localStorage和sessionStorage以及cookies的区别总结...服务器和网络HTTPS和HTTPHTTP版本的区别从输入URL到页面渲染发生了什么?HTTP缓存缓存位置强缓存协商缓存资源用户行为影响浏览器缓存缓存优势不同的刷新请求执行过程...算法和数据结构二叉树层序遍历B树的特点,B树和B+树的区别尾递归如何写大量阶乘?递归方法会出什么问题?多维数组转一维数组的方法说说冒泡快排的原理堆排序方法的原理?复杂性?几种常见的排序算法,手写数组去重,如果方法尽量多写有一个很大的数组,里面全是整数,怎么求前10个最大的数最后想学习web前端的朋友,需要PDF文档的朋友可以加入这里的技术交流裙子,点这里进入蓝色文字群,从学生到老板,资源免费分享,再见!