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

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

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

一个是 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 等。

    246 引用 • 1338 回帖
  • 思考
    29 引用 • 120 回帖
  • Q&A

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

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

相关帖子

欢迎来到这里!

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

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

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

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

  • 88250 1 赞同 2 评论

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

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

    我想看龙姐怎么选 @Vanessa

    1 回复
  • Vanessa 1 8 评论 via macOS

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

    当代前端的发展从原生 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 赞同 via macOS

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

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

  • zhangle1

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

  • someone27889 via macOS

    正常情况下 babel 应该没有 ,

    umd ,commonjs 类似这种应该没有

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

  • wizardforcel 1 赞同 via Android

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

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

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

  • wizardforcel 1 2 赞同 via Android

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

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

  • Rabbitzzc via macOS

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

  • 8823 1 评论 via macOS

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

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

    个人观点

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

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

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

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

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

请输入回帖内容 ...

推荐标签 标签

  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 6 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • OnlyOffice
    4 引用 • 23 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1280 回帖 • 4 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    952 引用 • 944 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 675 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 127 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 241 回帖
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 447 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    411 引用 • 3588 回帖 • 1 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 3 关注
  • AWS
    11 引用 • 28 回帖 • 9 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 28 回帖
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 3 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 2 关注
  • VirtualBox

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

    10 引用 • 2 回帖 • 18 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    84 引用 • 324 回帖 • 2 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 2 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 450 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    181 引用 • 821 回帖 • 1 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 1 关注
  • Follow
    4 引用 • 12 回帖 • 12 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 3 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 757 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 174 关注