Heim  >  Artikel  >  Web-Frontend  >  热炒的前端什么时候能冷静下来?

热炒的前端什么时候能冷静下来?

WBOY
WBOYOriginal
2016-06-07 08:41:411340Durchsuche

到底什么是好的页面?什么是好的前端工程师?为何如此多的前端概念?我已经被砸晕了!!

回复内容:

知乎上不是有好多程序员吗,现在排名第一的是什么鬼。看不下去了,指点你们一下。
在三线城市的一家互联网公司当技术总监,不是那种三五个人十几条枪那种,正儿八经的重视技术、钱掰成两半花的创业公司。
第一,前端热,但不需要冷静,如果可能的话,我希望更热闹一点;
第二,目前的状态下,页面很难写好,纯css和js撸出来的页面测试和维护成本都很高,用框架也有用框架的问题;
第三,前端技术栈非常复杂,根据应用场景的不同千差万别,在足够快的加载速度、足够好的兼容性的前提下,保证代码的可测试性和可维护性,是好的页面和好的前端程序员的方向;
第四,新技术都有其应用场景,我们用Angular换掉jQuery的场景中,生产力提高了7-8倍,但是我们的Angular仅限于单页面应用。

我们使用web的地方包括公司官网、手机嵌入简单的页面、学工系统、内部管理端等,需要面对的是有限的资源、不太强的技术实力、永远不充足的人手、紧迫的工期等常见问题。
我们的学工系统是典型的单页面应用,之前使用ExtJS,目前在往Angular迁移,互联网产品,追求用户体验嘛。使用的前后端分离,后台用Golang写的,总体性能还不错,写了半年,已有subview接近200个,只有一个前端在做(是的,你没看错),如果用jQuery的话,程序员估计已经疯了。另外完成后subview可能近千个,我们需要高度的自动化测试,不可能每次发布版本人工测试一遍,用jQuery做这个并不容易,以我们的水平,妥妥的写不出来。
内部的各种管理端全是Angular写的,套的bootstrap,并没有严格的测试,也是前后端分离的,这样的话可以App和网页共用一个后台,一些图表控件我们封装了ECharts,基本上谁有空谁写一点,用jQuery的话,维护没有这么容易,写起来也没这么快。
我们的手机嵌入的一些数据填写、统计信息什么的,也没有用jQuery,用CSS3的选择器和原生的HttpXMLRequest挺好的,加载速度也比较快,用户体验嘛。这一部分基本上一人写一个界面,维护挺麻烦的。
公司的官网,大多数是静态的,因为要SEO,我们也没有人手去做一套内容管理的东西。有些很漂亮的特效是CSS3做的,一样没有用jQuery。
后续一些活动可能使用WebGL之类的一系列技术,如果吃力的话我们还是继续CSS动画。我们有一些界面设计器准备往React迁移。

以上就是我们的应用情况,可以看到根据应用场景的不同,技术栈的差异蛮大的。

我们面临的问题有

人员确实贵,互联网行业人力成本确实是黑洞,引入新的技术既可能增加成本,有可能降低成本。在一个三线城市,新技术的代价很高,实际上除了我们很少有别家用Angular,我们坚持用了之后,开发速度提高了7-8倍,对比每个人薪资百分之二十左右的增幅很划算。
另外,人确实难招,学校里不专门讲,很多人觉得很简单,但是水平多数停在百度代码实现动画效果的水平。没有框架的情况下,学工系统这么复杂的东西都写不了。

技术上面
首先,我对jQuery没有成见,我们的Angular的很多插件还是封装了jQuery的,但是距离目前排名第一的包打天下还差一点;
第二,js不好用,ES6还没普及,普及了会好一点,用不起TypeScript,当然了,也有它爹是微软的原因,很多团队成员不喜欢它;
第三,css不好用,项目大了难以维护,我们试着往sass上面迁移,但是失败了,成本过高,也可能是我们的设计师对响应式设计理解不好,很难项目一开始规划好各种组件,Sass没有大幅度的降低工作量,年后会再试一次。

未来前端应该还会持续演进,让我们的开发成本再低一点点,日子再好过一点点,当然了,这意味着它会继续热下去,直到ES 6普及,我们有类和模块可以用(实际上我们招聘不到搞得懂js原型继承和闭包的程序员),设计师的工具能更好的跟程序员合作的那一天(每天应对不同的分辨率,心情并不好)。

也就是五年之内,都不会“冷静”下来了,好好学新技术,好好招人吧。 别人瞎跟风对自己是好事。
精力是有限的,他去跟风,今天搞这个明天搞那个,你静静的提高你的代码水平和工程水平。当互联网寒冬来的时候,刷掉这一批用框架找工作的孩子,底子扎实的孩子出头之日就到了~

注意,我说的是瞎跟风,如果你的业务需求有更好的解决方案但是你又不知道,这就叫没有跟上技术发展,而不是不瞎跟风~ 之前看过一篇文章,写的是作者十几年前开始写前端,到如今却发现前端新出的技术都看不懂了。三十好几的人却要跟十几岁的小屁孩站在同一起跑线上重新再来,如何能竞争得过?
虽然只是入坑两年多,我对此还是感触颇深,前端的技术变化太快了。比如构建工具,13年还是用的ant,14年初grunt火了,14年底是gulp,15年则是webpack。单页面应用,13年是Backbone,14年是angular,15年是React。以上每个工具框架的使用虽然入门耗时不高,但累积起来所花费的学习成本就很可观了。更何况前端这几年产生的轮子还远远不止上面所提到的。
这两年我为学习这些新玩具付出了很多的时间和精力,到头来却发现自己还是当年自己眼中的三流程序猿,没有什么长进,这是很令人沮丧的一件事情。
对于前端中的新技术,没必要每样都亲自去试验。每周扫扫《JavaScript Weekly》,仔细看一两篇自己感兴趣的就够了。等到平时工作中遇到了相同的场景,再去仔细研究下相应的新技术是否能够解决问题,提升工作效率。
前端也是程序员,在掌握好HTML,CSS,JS的前提下,把时间花在算法数据结构,提升代码可维护性等方面上才是比较有意义的。 2016.1.22
更新一下,把自己认为比较重要的一句话挪到前面来


不同的框架产生只是为了满足不同的需求,不是为了产生一个新型的东西统一前端世界



所有问题看需求!
所有问题看需求!
所有问题看需求!

重要问题说三遍

---
目前赞数排在第一的匿名说的有部分道理,但我不是全都同意

1. 先说有人说国内不冷静没有造出轮子的事情

国内的前端在整个国际前端社区的影响力到底有多大?BAT社区里比较活跃的就是 A厂和 B 长了。
即便有技术,不是说想造一个轮子就可以造的,造了好轮子就有人用的。围观国内几个大厂,内部经常会出现自己造的不错的轮子,不怎么用,why?举个栗子:阿里云的 ui design,曾经出现过一些交互和设计比 bootstrap 漂亮很多、icon 时尚炫酷,简直提升逼格,为什么不用?因为没人继续维护了。你可以想象一下一直使用的一个依赖的样式框架,突然没人维护了,跟不上你现在的需求变化,你还用吗?当然不了...所有的东西都有维护成本,放眼目前很多人忙着到处跳槽涨工资的情况,人力成本还是非常紧张的,包括厂内紧张的业务节奏,还有很多着急的老板 push,不现实。

2. 前端热炒就真的不好吗?

不见得,很多开发 webapp 的人,不少可能都经历过 jQuery -> backbone -> angular -> react
真的就是脑子一热吗?
当一个页面的逻辑复杂度成倍增长,用户的需求可能变得更加复杂,全部写 jQuery?那会死人的...
MVVM 的 概念,angular 确实是真的改进了一些项目的开发效率。
当我们非常希望数据能保证 immutable 的状态,你能清晰地把握数据流,flux 当然是非常好的选择
抑或你的页面有大量的重用组件,需求能够允许 diff dom 的速度,react 也不错啊



新东西肯定永远都在变化的,想跟上进度不是一直学新框架、学新的库...
而是从现有知识深入,扎实自己的基础。

grunt/gulp,如果只会用,那多没意思,gulp 的任务是怎么并行的?自己打开源码看一看,剖析一下(或者了解个大概),才能更清楚。而不是 grunt 出来我就光学 grunt 怎么配置,gulp 出来我就看看 gulp 怎么写,哪些插件和 grunt 的对应...

好的页面没有定义的,这概念太大了。工程师是为了解决问题的,技能多而扎实固然好,不过真正能优雅地解决现有问题的才是好工程师 ##2016-1-22更新

今天又仔细看了那个排名第一的内容,我发现了一些算是正确的内容,比如新人应该先打好基础。

但我不会改变反对的立场,因为他对于新技术消极的态度是没有正能量的,同时他对于node生态圈的贬低也主要在于没弄清楚node出现的意义。

所以我对他的猜测如下:他是一个主做后端(如java)的,但是对于前端有一定了解,并没有经历过大型web应用的构建,又以为现在的前端还是两年前那个样子。

我想对前端新手和后端转前端的说几句,现在入前端的坑不能算是一个好时机,因为发展速度太快导致脱节会非常严重。新手入门之后的普遍反应是不知道我接下去该学什么。这个问题不好解决,因为对不同的项目有不同的技术原型,并没有一个类似于spring对于java web一样具有标杆性质的项目。

那新手该怎么办?最简单的答案就是“做项目!”找中大型项目做,按照你目前的知识体系去做,做完总结问题,想办法解决问题,问题解决完想办法优化,发张优化不了进行新的技术原型然后重构。一定要想办法做到最好,这样你才会发现,这些新的框架新的工具出现的意义,以及会给你带来什么帮助。

现在的前端市场,牛逼的人继续牛逼,但是菜逼的人却很难变得牛逼,这不是时间能解决的问题了,而是市场决定的结果,在这个大环境下,你必须要学学学,不进步就是退步。共勉~

---------------------以下为原答案

排名第一的那个匿名回答我表示完全无法理解这么多的赞是谁点的?

先不说angular是不是已经被react替代,就angular带来的开发效率提升用过的人都清楚吧?那人说用angular等框架会踩坑,我去你用jquery实现angular实现的复杂功能写的代码多一倍你能保证你没坑?

那哥们说自己很菜,我觉得这是通篇说的最正确的一句话。他应该没做过架构吧?他做的一般都是类似企业站这样没什么前端功能需求的网站吧?但凡来个稍微复杂点的表格处理到时候你是自己写还是用jquery table插件?那个插件源码也有几十k,你确定没坑?

一旦项目复杂起来了势必涉及到设计模式和架构。你用jquery给我实现个好的设计模式我看看?

那些点赞的和评论区支持的人:

如果是刚入门的看到前端百花齐放的技术不知道如何选择,那么我建议你找个大一点的项目一个个实现一次。

如果是做了前端几年的了,那么我建议你换个职业。

如果是后端人员几年前写过一点前端,那么我建议你好好写你的后端代码,你早就跟不上前端的节奏了。 凑个热闹。

所有的互联网项目都有用户界面,而用户界面的实现方法就只有ios/android/web。随着互联网项目的增多,这三种用户界面技术都变得很火。也许在很远的将来,当整个互联网都变慢的时候,web前端自然会变得不温不火

相对于ios和android都是由一家公司控制技术的局面,web前端没有一家公司控制技术,所以出现了百花齐放。给web前端一段时间,好的东西自然会脱颖而出,例如react,而不好的东西自然就被时代抛弃。我们这些从业者,唯一能做的就是努力学习,跟上时代,否则就会被淘汰

在这个过程中,要记得记得一切的辛苦都是为了解决用户的问题,要记得相信数据和逻辑,而不是相信所谓的大神或者潮流

最后用俗套的话给所有从业者自勉,『这是最好的时代 也是最坏的时代』 热得正好,热比冷好,越热越好,工具多选择多,这难道不是好事吗?

跟不上而抱怨迭代快,不会挑而抱怨选择多,不看场景而盲目追新,我怎么感觉这都是怎么选择的问题,不是选项太多的问题。

简单的页面你就简单做,复杂的应用您就试下热门的 mvvm/react 啥的,或者您继续用 jQuery 堆砌,这都没有问题,慢慢踩坑,慢慢补经验。

但是实践出干货,空谈白费劲,省下争论的功夫,多写两行代码吧哪怕只是 todomvc。

=============

目测一下这个问题其实是匿名用户自问自答吧?

“jQuery、requirejs、seajs、grunt、underscorejs、hightchar、moment、bootstrap、zepto、handlebars”

只用过这些,不就是 jQuery + 插件吗?根本还不知道别人在做什么,用在什么场景,要解决什么问题呢,用过,踩过,跌倒过,站起来再抱怨吧。想得太多,做得太少,有此一惑,也是难怪。 2014年的TOIBE,programming language of the year是Javascript,15年是python,所以可以认为那一年是社区的顶峰。
<code class="language-text">~~~增评第3栏~~~
</code>
我也算是服了…关前端何事?编程从来就没冷下来过,有这么多蓬勃发展的新技术是好事。好的技术当用则用,当学则学。少关注用什么,多关注为什么。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn