推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
FrankFang128

这会是 2016 年前端的年末撕逼吗?

  •  
  •   FrankFang128 · Dec 14, 2016 · 29074 views
    This topic created in 3460 days ago, the information mentioned may be changed or developed.

    知乎传送门: https://www.zhihu.com/question/53625252/answer/135820259

    利益相关:不认识阿当……用过 Angular 1 、 React 、 Vue 、 SCSS 、 LESS 、 Grunt 、 Gulp 、 Webpack 等一系列有的没的。

    前端三大爱好:
    1. 语法糖
    2. 字符串转换
    3. 用别人的框架

    现在说 Angular 、 React 或者 Vue 的不好,都是政治不正确滴。

    声明,我没说我站在阿当这一边哈。我可是很怕得罪了整个前端界的呢 O(∩_∩)O !。

    不过依照中国大部分前端的计算机基础知识素养,能跟阿当正面撕逼的也没多少个。

    其实我觉得吧,中国的前端就是认死理,非要给自己带一个「前端」的帽子,生怕别人不知道他只会 JS 。多看看不同意见,多看看别的语言,你会发现 JS 能做的,很少很少。

    以下是我自己理解的,以阿当的口吻说的,大家不要以为真的是阿当说的:

    2016 年我喷了 Sass 、 React 和 Angular ,被前端各种布道者鄙视,于是我们互相伤害起来。
    但我研究的技术可比你们学得这点东西多多了。
    我以我的经验,认为这些才流行几年的玩意儿,是值得怀疑的。
    1. 有些玩意是高手发明出来给高手用的,小公司的几个前端玩得转?
    2. 你们这些布道者只说优点不说缺点是什么意思?安利你听说过没。
    所以前端新人们,你们要长点脑子,别听风就是雨。

    关于 SCSS 和 LESS

    优点你们都吹得那么好,我偏说缺点。
    直接能运行在浏览器里的 CSS 你不用,加一道字符串变化在中间挡着,一来增加上手门槛,要学新知识;二来新的语法增加新的复杂度;三来这玩意有传染性,我想用你的代码我就必须也用 SCSS/LESS 。
    而且,你 SCSS/LESS 依然没有解决你想要解决的问题呀!
    所以我认为弊大于利。

    跨界、 CoffeeScript 、 TypeScript 和 ES6

    前端你为啥这么在意语法糖?你个前端不好好研究优雅的用户体验,去研究什么语法糖,你忙得过来吗?
    CoffeeScript 是 Ruby 社区搞出来的, TypeScript 是 C# 社区搞出来的,它们都是非前端社区的产物,迎合的也是非前端的工程师群体的编程习惯。适不适合前端,走着瞧。
    最终你们这些前端看上了 ES6 ,但是你们这些前端在语法还没成型的时候就用 Babel 来转译是不是有点太激进啊?
    学学 jQuery ,通过原生 JS 来加语法糖,稳定过渡。你们前端咋这么猴急呢?

    关于 Node

    Node.js 作者本人就把这玩意儿当个玩具,你们前端居然当个宝。
    前端没有拿着玩意写后台,而是那它做脚本。
    写写脚本就算了,前端居然还妄图一门语言统一前后端。然后整天布道什么「全栈」。
    可是孩子呀,你一个跟 DOM 打交道的人能理解后端那些概念吗?你们就知道个 JS ,连数据库也只喜欢长得像 JSON 的 MongoDB 。
    半吊子想当架构师。
    你们看看现在有几个公司用 Node 做服务器啊?服务器端 Node 完败。
    你们这些不会写 shell 的人就老老实实用 Node 写脚本吧。
    但是你们写脚本也要有个限度好不好?看看现在的前端工具流有多复杂了啊。而去年的工具今年你们就抛弃了。
    孩子气。

    关于跨界、全栈、公司定岗

    前端这么乱,不就是因为前端没主见吗,尽听别的圈子扯。
    CoffeeScript 是 Ruby 社区的; LESS 也是 Ruby 社区的; Node 的作者就是一个票友,平时根本不用 JS ; Angular 是 Google 的服务端团队搞的; React Native 是为了做原生 App ;全是跨界的!
    他们解决的是他们自己的问题,对你有没有用你不想想?
    你引入任何一个中间层都会有弊端,你不知道吗?
    你用技术要在在乎其缺点。

    全栈。
    你想做全栈我不反对,但是你要看看公司给不给你机会呀。
    你以为你学了 Node 公司就愿意你去开发后台?你有这个能力吗?
    你以为你学了 React Native 公司就愿意让你开发 App ?你有这个能力吗?
    你真的比得过人家专职团队吗?
    全栈是顶级高手团队才有的, Google 、 Facebook 。在小公司还是安心做前端把。

    关于前端的核心竞争力

    前端你不要拿自己的弱项跟别人的强项比了,找死呀。
    你拿 Node.js 跟 Python 后台比得了?他们学起 Node.js 不甩你一条街啊?
    你拿 React Native 跟 iOS 开发比得了?他们学起 React Native 不甩你两条街啊?
    用 Java 写安卓应用的程序员什么时候找死跟 Java 后台程序员抢饭碗了?
    用 C++ 写桌面应用的程序员什么时候找死跟 C++ 服务器程序员抢饭碗了?
    就你能啊?
    你前端的核心竞争力应该是搞清楚浏览器上面的东西!
    HTML 标签、 CSS , JavaScript , Form2.0 、 Websocket 、离线缓存、 Webworker 、 Border-image 、 Canvas ……
    这些东西是有难度的。你让一个后端开发写个 CSS 垂直居中并说出优缺点你看他会不会。要想破头啊。这东西靠经验啊。
    你不好好看核心,去学一些乱七八糟的是什么意思?
    那么什么是核心呢? HTML 、 CSS 和 JavaScript (我认为还有 HTTP )
    现在的那些个前端布道师,不讲核心专讲新技术,又是几个意思?

    关于 Angular ,后台, SPA

    这是给服务器同学用的,如果你的团队以服务器开发人员为主,你再用这个吧。
    你们这群没主见的前端,追捧这个干什么?根本就不是给你用的好吗? Angular 2 一升级你是不是又傻眼了,怎么后端又改用 TypeScript 了?
    你去追前端基本功呀!
    另外 Angular 真的好吗?其实后端程序员可以自己找前端同学封装一些更轻量的框架。(你们前端不行?当我没说)

    关于 React

    React 组件化的思路,我是认同的。 Flex 的组件化方案比 HTML 不知高到那里去了。 React 组件化 是对 HTML 很好的扩展。
    但是 React 太重了,条条框框太多了,把简单事情搞复杂了。
    我推崇「轻框架 + 组件化 + 面向对象」。你们不好好改进原来那一套运行得不错的方案,为什么非要去追新,而且还一年换一个星来追。
    如果 React 就火个几年,后面的前端新人不学 React ,你这个 React 项目谁来负责?你怎么跟公司交代?用新框架重写?!
    你作为个人学习去玩玩 React 我是鼓励的。
    关于抽象和面向对象,你真的掌握了吗?封装、继承、多态、设计模式、解耦、 API 设计这些真的都熟练了吗?我接触过的前端,绝大多数同学都毫无概念。来看看我的代码。

    关于 SPA 和 Web Site

    SPA 不是说你动态加载页面和数据就叫做 SPA 的。 SPA 强调的是功能。你要用新技术做出新的功能。现在中国有几个是真正意义上的 SPA 页面?网页游戏、在线 IDE 、网页版 PhotoShop 之类才是真正的 SPA 。
    所以别老是说什么你在做 SPA 。

    React Native 和 PhoneGap

    不看好。除了开发成本低,没有任何优点。但是哪个公司是因为开发成本低成功的?

    关于微信小程序

    这玩意既不是 HTML 5 也不是 Native ,不看好。

    关于前端的缺人和高薪水

    现在前端多,只是因为前端太少,跟新技术没关系。
    同时 HTML 5 的应用场景变多了,所以需要更多前端了。
    等前端足够多了你再看看你的工资。
    最终工资高的,还是基础知识好的人。

    写在最后

    虽然我写了这么多,但也有可能,全是错的。

    握草怎么这么长,中途差点就想关网页了。
    你就摘对自己有用的看吧。其实他说的也是有道理的。
    而且我跟他的观点是一致的。

    Supplement 1  ·  Dec 14, 2016
    尤大神微博发言了!应该会发文反击。
    我对尤大神的评价已经准备好了。
    尤大神说的也有道理!支持。

    你现在懂了我的套路了吗?听两种极端的声音,你就会了解真相。
    而不是,站队。
    Supplement 2  ·  Dec 14, 2016
    怎么我成了 V 站运营了。
    回想一下好像是的。
    最近的几篇帖子都是 Top 10 啊。
    不过我的标题取得这么欢乐,你们就一起来吐槽就好了。前端该怎么发展还是怎么发展。痛苦的是前端又不是你对不。
    Supplement 3  ·  Dec 14, 2016
    另外我营造的这么好的欢乐氛围,不要破坏了。马上就圣诞了。🎄
    239 replies    2017-02-16 17:04:31 +08:00
    1  2  3  
    codespots
        201
    codespots  
       Dec 15, 2016
    楼主,我挺认同你的,就像我觉得前端工程师可以尝试下 Node.js ,但是要我个人用可以,但是在公司商业项目中推行,我还是老老实实用 PHP 吧,不是每个团队都有淘宝 UED 的水平的,技术要为业务服务。兼听则明,注重基础,冷静选择技术方案!
    xcatliu
        202
    xcatliu  
       Dec 15, 2016 via iPhone
    直接写原生 css 怎么解决浏览器兼容性?
    -o-
    -ms-
    -webkit-
    哪些属性需要这些你记得住吗?

    一些变量和继承的功能是可以用原文中的单独类实现,但是一些数值或计算的需求怎么办?

    觉得 scss/less 学习成本高,可以只用它的一部分功能。上手门槛基本忽略了。

    不能因为一个东西有缺点就不用,你可以只用它的优势部分。
    sammo
        203
    sammo  
       Dec 15, 2016
    术业有专攻嘛
    jwdstefanie
        204
    jwdstefanie  
       Dec 15, 2016
    Vue 千秋万代 一统江湖
    flybluewolf
        205
    flybluewolf  
       Dec 15, 2016
    看完楼主的文章,总结下来“我不是专门针对你,我是说在座的各位都是辣鸡,直接用 010101 编码才是王道”。
    mars0prince
        206
    mars0prince  
       Dec 15, 2016
    看第一段就不想看了,语法糖和框架,你以为 java 就少吗? PHP 就少吗? Python 就少吗?盯着 js 喷来喷去,什么鸟心理,说的好像后端都是 0 框架原生代码疯狂敲一样
    iugo
        207
    iugo  
       Dec 15, 2016
    然后发现楼主是比较清闲, 上班时间来闲扯.
    holy_sin
        208
    holy_sin  
       Dec 15, 2016
    撕起来就好了
    mqtt
        209
    mqtt  
       Dec 15, 2016
    react 是最好的 js 框架
    FrankFang128
        210
    FrankFang128  
    OP
       Dec 15, 2016 via Android
    @iugo 我自己创业,上啥班
    fundon
        211
    fundon  
       Dec 15, 2016
    新人多了解行业风向、趋势准没错,再来有实践会更好。老人一味固守老本,闭关锁国,不利自己,也不利于带队,“没办法你的细胞还在不断更新呢!”
    ppwangs
        212
    ppwangs  
       Dec 15, 2016
    编程语言无所谓好坏,他就是一把剑,这把剑耍的好不好,不是看剑锋利与否,而是看耍剑的人技术是否高超~

    @guyskk 其实 Mingge js 基础扎实的很呢~
    Rice
        213
    Rice  
       Dec 15, 2016
    对 NODE 批判不了解,对于 sass , react , vue , es6 那段批判完全无法理喻。
    现在我就在维护着一个纯 js+jq+css 做的东西。痛苦啊。
    如果一开始他们是用 react 或 vue 来做,现在根本不会如此痛苦哇。
    murmur
        214
    murmur  
       Dec 15, 2016
    @xcatliu 记不住也得记住,这是考点 我被问过 box-model 和 flex 要不要前缀 什么浏览器用什么前缀
    nilai
        215
    nilai  
       Dec 15, 2016
    楼主,我挺认同你的
    nine
        216
    nine  
       Dec 15, 2016
    我们公司给机会

    位置郑州

    Ruby on Rails
    React + Ant.Design
    Weex
    hololens
        217
    hololens  
       Dec 15, 2016
    楼主,我表示你转帖之前动一下脑子。
    somethin
        218
    somethin  
       Dec 15, 2016
    全文只有这句话有价值:虽然我写了这么多,但也有可能,全是错的。
    feehey
        219
    feehey  
       Dec 15, 2016
    中午刚用 node.js 的文件系统码了一个词法分析器,逃~。
    lijingyu68
        220
    lijingyu68  
       Dec 15, 2016
    JS 语法糖多!?
    crayonyi
        221
    crayonyi  
       Dec 15, 2016
    应用新技术也是要讲场景。 现在好多前端都是为了技术而技术。
    scgy5555
        222
    scgy5555  
       Dec 15, 2016
    反过来说有什么是前端真正值得推荐的?
    浏览器原理吗? ecmaScript 规范细则吗?还是别的什么?
    我倒是觉得撕不起来,因为就没有讨论点。

    楼主说这些技术有问题,某些角度看确实不好,的确现在又回归海洋时代了。
    各种工具层出不穷,各种概念相互碰撞,但使用工具和做什么事没多少关系吧?

    脑子是个好东西,有时间多看看书,多了解几个工具,饿不死。
    yunshansimon
        223
    yunshansimon  
       Dec 15, 2016
    @FrankFang128 感觉前端 js 和 html 什么的,本身就没有什么稳定的基础。因为 html 和 js 的规范一直都在变。现在的 es6 跟 10 年前的 js ,除了基本数据类型一样,连写法都大相径庭了(起码不要写分号了)。想要从 js 里面学习写代码的基础,简直就是缘木求鱼。学一门主要语言比如 C , JAVA 什么的,才叫基础吧。脚本类语言都是工具而已。他的目的就在于快速实现。哪个工具能快速实现,哪个就是好工具。简单说,页面布局,最早是 table ,后来微软推 iframe ,再后来是 block/inline ,接着就是 float ,现在是 flex. 哪个才是最佳实践?都是技巧,几乎没有知识。一个以技巧和经验累积起来的东西,能叫基础?跟人家学 C 的,学 JAVA 的,怎么比啊。 java 的虚拟机是统一的, c 的环境的单一的, js 运行的浏览器环境完全是各种残,各种坑。在都是坑的跑道上练习长跑,跑再好也参加不了奥运会吧。我觉得应该这样号召,不会 JAVA 的 js 程序员不是好前端。
    mritd
        224
    mritd  
       Dec 15, 2016
    个人观点,跨界装逼结果基本都是悲惨的;前端写后端就是扯淡,后端写前端也是逗逼;如果你能同时写前端后端那么我可以认为 你很牛逼,是个全站,但是如果你准备用一种语言称霸前后端,那么我只能认为 呵呵。。。后端那么多语言都要等死吗? Google 费力搞 Go 是傻逼吗?一线 IT 公司 都是脑残么?

    回到我自己的一贯观点: 永远不要认为自己比别人聪明,发现新大陆的肯定不是你;这不是不思进取,而是量力而行。
    FrankFang128
        225
    FrankFang128  
    OP
       Dec 15, 2016 via Android
    @楼上的楼上, 你不能因为一个东西在发展就说它是不好的,十年前的 js 拿到现在的 chrome 一样能运行。你也不能因为一个东西稳定就说他是好的,易语言也很稳定呀。如果你的论点在于 js 这门语言好不好,其实没什么好讨论的,因为没得选。
    invalidtoken
        226
    invalidtoken  
       Dec 16, 2016 via iPhone
    有点为了喷而喷的感觉, SCSS/Less 这些虽然只是语法糖,但是如果要写一个稍微大一点的 App 只用面条式的 CSS 明显是不合适的。一个 import 一个请求,没有变量没有层级,没有 Mixin ,没有简单的颜色处理, calc 计算兼容性又不能算非常好...


    NodeJS 虽然很多地方仍然有待发展,但是也带来了很多东西,不用学习一门新语言就可以写简单的工具,也带来了不少 Electron, VSCode 这样优秀的项目和工具
    tyrealgray
        227
    tyrealgray  
       Dec 16, 2016
    @yunshansimon 一个程序猿不应该只学 js ,而且同样一开始的时候最好从编译类静态类语言学起。但是不代表你学了这些语言就能很快掌握 js ,反之也是。这不是基础的问题。一个好程序猿不会 java 也可以是好程序猿,只要他对计算机编程的理解到位了就行。
    realpg
        228
    realpg  
    PRO
       Dec 16, 2016
    认同楼主的大部分观点
    当然很多偏激之处过于偏激
    但是现在前端乱象,真的烦死了
    尤其是前端 js ,搞这个的大多不是编程出身,不太会有效的组织代码和规范化。后端代码上,大部分主流程序员,写出来后不依赖文档,别人可以很轻松读懂看懂。写 js 的,见过无数写出来 JS 以后过了三五天自己都读不懂的……
    leisure
        229
    leisure  
       Dec 16, 2016
    @nine 什么公司~~
    FrankFang128
        230
    FrankFang128  
    OP
       Dec 16, 2016
    @nine Rails 提供 RESTful API 前端用 React 这样么?可有分享,我最近也在这么玩,但是我 Rails 水平一般
    nightYe
        231
    nightYe  
       Dec 16, 2016
    吃瓜群众围观
    nine
        232
    nine  
       Dec 16, 2016
    @leisure
    民生药业集团
    看我发的招聘贴 https://www.sunp.eu.org/t/300987#reply15


    @FrankFang128
    目前没有纯分离, react 只是接管了 rails 的绝大部分的 view 层
    用的 react_on_rails 这个 gem 包整合 react 和 rails
    用 npm 管理 js 包

    分享随后会整理,目前项目才走了 2 个月,很多东西还都没到最佳实践。
    backfrw
        233
    backfrw  
       Dec 17, 2016
    @wizardoz 恩,感谢解答
    backfrw
        234
    backfrw  
       Dec 17, 2016
    @Durandal01 那应届生的竞争力的怎么表现呢?
    adv007
        235
    adv007  
       Dec 18, 2016 via iPhone
    不可否认,楼主的确说出了当前前端圈的浮躁,用了那么多框架和工具,不知道其设计思想的大把。大家只是一窝蜂的跟,跟技术无关
    hanbing135
        236
    hanbing135  
       Dec 18, 2016
    完全不懂 但是看到一群搞前端的人无原则的纯粹攻击文章作者 让人感觉这些前端自己又能好到哪里去呢
    chenyachao
        237
    chenyachao  
       Dec 18, 2016
    回归本质,技术为成果服务。谁能解决问题,谁就可以上阵。至于谁解决的累,谁解决的爽,还是自己知道。
    susucoolsama
        238
    susucoolsama  
       Dec 19, 2016
    撕撕撕,不过个人觉得出现新技术总是好事,难不成因为 c java 好,就一辈子用 c java 了?不用用怎么知道?
    wizardforcel
        239
    wizardforcel  
       Feb 16, 2017
    node 能干的事情和 python 一样多,区别只是有多少人在用。但是这跟他的功能没多大关系。
    1  2  3  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2746 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 05:24 · PVG 13:24 · LAX 22:24 · JFK 01:24
    ♥ Do have faith in what you're doing.