现代前端技术体系,你怎么看

本贴最后更新于 1428 天前,其中的信息可能已经时移世易

前端技术发展太快了,是良性发展么?

一个是 Tom MacWright 对现代前端的二次思考,吐槽框架给当代前端带来的一些问题

https://macwright.org/2020/05/10/spa-fatigue.html

一个是捍卫现代前端技术体系

https://dev.to/richharris/in-defense-of-the-modern-web-2nia

有的人认为当代前端技术体系,比如 Vue、React 等框架,带来的困惑就是工具或构建过程的复杂程度越来越高了,不像以前直接谢谢 HTML、CSS、JS,再加上一个 nginx,基本上完成了网页开发。(表达的意思就是目前开发者更要关注构建、配置等)

我个人理解目前的三大框架都是非常休息的,基本上隐藏了配置构建复杂性

但因为我不是构建专家,所以当我需要定制化配置的时候,就需要了解构建工具,包括 Babel 转化等等,我不是专家,所以当我需要了解的时候,我会话很多时间,并且很头疼~trollface

image.png


很好奇,大家对于当代前端技术体系有什么想法么?

当代前端技术发展走错了路么

单选 公开 永不结束 27 票
错误
7% 2 票
没错
37% 10 票
看不清
55% 15 票

  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1347 回帖
  • 思考
    29 引用 • 120 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6507 引用 • 29243 回帖 • 246 关注
1 操作
Rabbitzzc 在 2020-05-21 09:58:35 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone48938 1

    前端真的很迷,完全看不清。

    之前放弃搞前端就是因为感觉前端需要做太多繁琐但是收益不大的事情,搞起来很难受wulian

  • 88250 1 赞同 2 评论

    考虑语言种类在内,前端框架不是太多而是太少了。

    语言毕竟离不开三剑客,这是网页基础,不过最近的 webAssembly,flutter 也算是领域的扩展吧
    Rabbitzzc
    讨论的点倒不是框架数量,而是现代框架对网页的优点与缺点,比如框架导致了高度交互失去?不过我倒不认可这点
    Rabbitzzc
  • someone1764

    我想看龙姐怎么选 @Vanessa

    1 回复
  • Vanessa 1 8 评论

    楼主想说的应该是当代前端框架吧,个人一直的观点就是自己需要长期维护的项目尽量不要使用。

    当代前端的发展从原生 JavaScript 规范,浏览器特性,electron,node.js 方面来说应该是非常不错了,相信以后会更好。

    当前三大框架的缺点,也是 Svelte 框架想要解决的问题,不过感觉前路漫漫
    Rabbitzzc
    长期维护的项目不要使用前端框架,而是使用自己写的原生代码吗?
    someone1764
    @mymoshou 是啊,十年以后这些框架不流行了怎么办?
    Vanessa 1
    @Vanessa 你有没有考虑过 html 、js、css 十年后不流行了怎么办?
    someone9891
    @Vanessa 不流行了是不是得选择重构或者迁移呢?
    Rabbitzzc
    @gitors 十年后发现这个世界都是虚幻的怎么办?
    Vanessa
    @Rabbitzzc 十年的系统已经千疮百孔,修修补补吧
    Vanessa
    @gitors 这个不现实,网站的根基 root,分支任你走,根基跑不了
    Rabbitzzc
  • someone9891 1 1 赞同

    请问洗衣机的发展错了吗?

    以前洗衣服都去河边,要么搓衣板、要么棒子捶,现在多复杂,甚至有些智能的光操作都得学几天,还要用店,对家里的装修、水路、地漏都有一定的要求,请问洗衣机的发展是良性的吗?

  • zhangle1

    长久来说,我们都死了trollface 。谁管后人呢,先自己玩爽了再说。

  • 正常情况下 babel 应该没有 ,

    umd ,commonjs 类似这种应该没有

    缺乏统一思想,就像爬山虎一样

  • wizardforcel 1 赞同

    w3c 对于页面的理解过时了,页面的本质是应用(类似 app),不是文档(类似 word)。至少 h5 之后就不是了。

    三大框架的任务就是填平这个 gap。说白了就是把 dom api 封装成一个 mvvm 框架那样。

    三大框架的问题一部分是时代性的,比如命名不统一,应用模型不统一,他们也想知道最好的模式是什么。还有一部分是底层 api 不给力,这个如果 w3c 那边不变,还会一直别扭。

  • wizardforcel 1 2 赞同

    如果你觉得前端应该像以前那样,那就去写 ppt 吧,你拿相似的工具应该能完成相似的任务,毕竟一个人拿着锤子看什么都是钉子。

    别人想进步也好,修复已有的缺陷也好,不应该阻拦别人探索。所以你为啥不愿意用 dom api 写一个页面?还不是因为这些 mvvm 框架方便嘛。

  • Rabbitzzc

    下面的答案都挺好,都是思想的碰撞

  • 8823 1 评论

    终究会走向统一,请珍惜百家争鸣的时代。

    持续保持统一,开发人员统一了,就会觉得枯燥了
    Rabbitzzc
  • lanesun

    个人观点

    前端的发展速度是很快,但大概没有楼主想像的那么快,一个行业的发展速度,是由行业标准和准标准的事物决定的。那么对于前端来说,它的发展其实取决于前端各个技术的标准以及 jQuery、Vue 这一类的流行框架,如果以 2010 年左右作为前端兴起的开始时间来算的话,其实并没有网络上所说的那么快速,虽然相比而言还是很快的。

    对于楼主所问的“前端有没有走错路”,个人的回答是暂时还没有。因为目前来看,构建网页所使用的技术还是完全可以自己决定的,就算不使用大框架自己构建也是完全可以的,同时各个技术标准也维持在良好的状态。所以现在的前端拥有很多种类的技术并且没有限制程序员使用哪一种,并没有走错路,反而是一个比较好的状态。

    对于楼主所引用的二次思考那篇文章我也是认同的(另一篇感觉好偏激没有去看),那一篇文章从两个角度说明了当下几个大型框架的缺陷,同时对现代程序员的滥用行为作了批判。但是,如你所看到的,他并没有提及前端走错了方向。当下的前端依然是兼容并包的,出现问题不是前端,甚至本身有缺陷的大型库们也没有错,毕竟没有哪种库是开发出来应对所有情况的。那么最终的问题在于大多数程序员/行业的使用方式,公司及个人不加任何思考就使用大型框架作为开发基础才是应该纠正的地方,这一现象在国内尤其明显。

    就如玩游戏上瘾的人固然有责任,但开发游戏的公司如果刻意去引导成瘾的话也是不对的一样。有些框架也许促成了当下的一些行为,比如 Vue——Vue 跨越的领域太多了,导致用户产生了“用它的话什么都可以做”的错觉,可以做和适合做是不一样的,个人认为,特别是这些大型框架的贡献者们,在拓展它们的适用领域的时候应该好好考虑一下。

    最后对楼主所引用的文章做一下补充,文章中所提到大型框架的影响分为技术方面和习惯方面,技术方面不作补充了,虽说有很多,但并不是我的专长而且也列举不来。习惯方面的话,和楼主所说的一样,大型框架普遍屏蔽了实现方面的细节,让使用者方便地进行开发,结果就是——对于不成熟的开发者,阻断了其对于底层和程序架构的学习动力,这也是如之前所说的为什么前端的开发人员数量巨大但是发展速度却没有预想的那么快速的原因:大多数人并没有促成前端的发展,只是在利用已有的前端技术完成任务而以;另外,即使对于大多数成熟的开发者来说,过多地使用大型框架也会阻断其对于新架构的创造力,就如同大家习惯了对象型编程后就很难想到其他编程模式一样。

请输入回帖内容 ...

推荐标签 标签

  • 招聘

    哪里都缺人,哪里都不缺人。

    189 引用 • 1056 回帖
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    139 引用 • 441 回帖 • 1 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    523 引用 • 4581 回帖 • 692 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 53 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    76 引用 • 421 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6507 引用 • 29243 回帖 • 246 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 4 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖 • 1 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    311 引用 • 1666 回帖
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 401 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    180 引用 • 447 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    5 引用 • 15 回帖 • 223 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    25 引用 • 215 回帖 • 163 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 5 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 551 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 160 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 431 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 4 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 422 关注
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    172 引用 • 990 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 54 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 7 关注