一个后端程序员对前端技术的彩虹屁

2021-12-13 11:05:01 +08:00
 WadeLaunch

我上次正式的写前端代码还是 10 年前,那时候要处理各种浏览器的兼容问题,IE 678 ,Firefox ,Chrome 等等。那时候 WebSocket 标准还是草案阶段,Firefox 和 Chrome 实现的版本还不一样,其他浏览器根本不支持,要开发一个聊天的功能,用了多种方案兼容不同的浏览器。

那时候大家的简历都是写的“熟悉 Div+CSS”,哈哈。而我从来没有真正把 CSS 里的 float: left|right, clear: left|right 搞明白,只知道加了某一行,刷新浏览器,噎,可以了。

JavaScript 框架大部分都是用的 jQuery ,有些项目用的 IBM 的 dojo ,还有 Yahoo 的什么框架,名字也忘记了。

用 Node.js 写聊天功能的后端逻辑,各种回调搞到吐。

后来也写过一些自己用的监控管理页面,一般都是用的 jQuery 和 Bootstrap 。


直到最近我要做一个业务管理后台,同时想趁机学一下久仰大名的 Vue 和前端的各种最新技术,就找到一个使用 Vue 的开源后台方案。在学习使用这些新技术过程中,让我每天都感叹现在的前端技术太强了,太好用了,太牛逼了。

请原谅我下面的失态。

ES6 真是太好用了!!!

1. for of, for in, Array.isArray(), Object.keys()...,让循环简单了很多。
2. Let, const, destructuring, template string 太方便了。
3. async, await, promise 太好用了,彻底解决了回调黑洞。
4. Arrow function 赞赞赞!
5. fetch() 这个 API 真是简练啊,同时给 axios 点赞。
6. 给 new FormData() 点赞!
7. 各种浏览器都实现了 ES6 ,然后终于把 IE 淘汰了(同情还要兼容 IE 的朋友)
8. 还有很多优点没写,有同样感觉的可以补充。

CSS 里的 display: flex 真棒! CSS 其他的新技术我还没学,肯定有很多好用的技术。

然后 Vue 太牛逼了!想起以前用 jQuery hide/show 、append DOM 苦日子,我现在每天都感叹 Vue 牛逼!这就是响应式(reaction) 啊?

题外问:非浏览器的原生界面是否一直都是响应式这种方案? Vue 是把这种技术移植到了浏览器前端?

再来一次:Vue 牛逼!

在编辑器保存后浏览器自动刷新界面,太方便了🥰。这是用 vite 实现的吧?还没有仔细研究 vite 的功能。

最后,TypeScript 这么牛逼的语言 V 站上怎么才 5 页讨论帖啊,比 Rust 还少,它比 Rust 简单多了吧,是大家很少用吗?类型系统这么强的语言怎么不用,能避免大部分写 JavaScript 时的低级 bug ,赶紧用起来。 虽然我现在不用 Node.js 了,但我认为新项目应该要强制用 TypeScript ,可以避免很多问题。

我本来打算上周就写贴彩虹屁的,但拖延症发作,今天看到下面这贴,被它催更(写)了。 “现在的前端技术栈真的太恶心了!”

13354 次点击
所在节点    程序员
119 条回复
Alander
2021-12-13 17:34:35 +08:00
@lanten

“只有新手才会在 jsx 中添加大量业务代码。” 新手解决这个的问题不就是拆分函数吗?

“上千行的代码难道不是糟糕的代码吗?” React 、webpack 、vue 的源码中均存在大量上千行的代码,它们也都是糟糕的代码吗?

“vue 的 template 类 UI 描述方案饱受诟病的核心原因是在 js 代码中无法插入元素,只能手动创建 VNode ”,都不讨论什么业务场景下驱使开发者即使在使用了 Vue 或者 React 框架后仍需要在 js 中插入元素了,你说的 Vue 只能手动创建 VNode ,那同样的需求场景下 React 不也是只能手动创建 ReactElement 吗?

“以及没有 TS 类型提示,这将导致功能性、灵活性丢失。” 这句话居然没有人反驳也是很奇怪。

React 和 Vue 的优劣势明显的很。但是抓着说 React 写出来的 jsx 优美,我用了这几年 React 真不觉得,虽然 Vue2.x 中连最基本的 @click 事件传参都做不到统一,但是 Vue 的 template 就是 template ,js 就是 js ,这一点来对比,说 jsx 优美的话应该很多人都不服气吧。

楼上吹的理念、坚持听着就想笑,React 设计的初衷是什么我不得而知,但是给了开发者更多的对应用和代码控制权限的同时写出来的代码必不可能优雅到哪里去。
66beta
2021-12-13 17:35:28 +08:00
@lanten 能写出来上千行的朋友,用 react 不也是上千行
otakustay
2021-12-13 17:45:16 +08:00
@Dragonphy #5 这样挺好的,真正有兴趣的人是学不死的,最后他们会更有竞争力被留下来,不会劣币驱逐良币
DOLLOR
2021-12-13 17:55:25 +08:00
selfcreditgiving
2021-12-13 18:04:34 +08:00
非针对哈,只有我觉的楼主很有钓鱼嫌疑嘛,呵呵。
楼主挺厉害,故意把 数据绑定 写成 响应式,
故意说不懂前端,TypeScript 也用上了,nodejs 写后端也用过了。async await promise 也用的很溜了。

我想楼主可能已经是用原生 js 自己写组件的前端大牛了吧。
gadfly3173
2021-12-13 18:07:13 +08:00
@DOLLOR #64 可问题是在 react 里写 render 的时候写得是一堆长得很像 html 的东西,但是你又得按照 js 的思路来加属性
gadfly3173
2021-12-13 18:11:37 +08:00
@selfcreditgiving #65 数据绑定和响应式这个锅也许该给 vue 的文档,vue 的文档里有专门讲响应式 api ,但是没有特地提数据绑定,提数据绑定的时候基本都是在说组件传参
rrfeng
2021-12-13 18:35:16 +08:00
建议楼主学一下 Angular ,后端思维都不用变的,直接干
darknoll
2021-12-13 18:52:20 +08:00
前端门槛太低了,一天就能学会了
wjploop
2021-12-13 19:21:36 +08:00
回题外问:Android 原生界面是落后浏览器前端技术的,一直在学,从未跟上,曾出了一个 ViewDataBingding ,似乎没多少人用
Aditya
2021-12-13 19:21:51 +08:00
@darknoll 牛蛙
chunzhang5748
2021-12-13 19:38:25 +08:00
@darknoll 666 我觉得你不用学都会 这玩意还用学
M003
2021-12-13 19:42:59 +08:00
但是真正的从那个年代的人才懂得 js 的乐趣,全是 vue ,全是组件。手撸轮播图的感觉多爽,现在又有多少人只会写业务了。。。
shyling
2021-12-13 19:57:23 +08:00
jsx 虽然糅合了 html + js ,但用起来确实很香 =。=

不像 @click :bind v-if="字符串里写代码",让人觉得那么别扭。。<slot>也是凭空出来的定义

jsx 就一个 html 标签 + {里写表达式}
murphytalk
2021-12-13 20:09:37 +08:00
@rrfeng 哈哈,后端写了十几年以前只鼓捣过 jQuery ,两年前开始全栈用的就是 Angular 全家桶,感觉很爽啊。另外不解楼上抱怨 Typescript 类型检查的,你们是继承了多少历史 JavaScript 代码还是上手就把 Typescript 当 JavaScript 用 any 满天飞啊😯项目稍微大点没有类型检查你们得损失多少睡眠啊,更不用说因为有类型帮忙 IDE 也可以聪明准确若干倍。现在连 python 都有 typing 了。另外有人用 svelte 吗
zhwithsweet
2021-12-13 21:40:51 +08:00
作为后端程序员,我确实更喜欢 angular
从 angular 的代码里,可以看到一种哲学,一种体系,一种笃定,难能可贵
学 vue 的时候,没有感受到这种编程上的美感
cmdOptionKana
2021-12-13 21:49:06 +08:00
作为后端程序员,我确实更喜欢 vue
从 vue 的代码里,可以看到一种哲学,一种变通,一种柔韧,难能可贵
学 react 和 angular 的时候,没有感受到这种佛光普照度众生的美感
123jiayue
2021-12-13 21:57:16 +08:00
@cmdOptionKana 你写个代码怎么那么多感悟 还佛光普度众生 不知道还以为你边嗑药边写代码写到飞升😄
123jiayue
2021-12-13 21:58:27 +08:00
@cmdOptionKana 好吧我更应该吐槽你上面那一个🐶
alexkkaa
2021-12-13 23:47:41 +08:00
这些 c#早都玩过了。mvvm xaml 十多年前就有了,可惜是基于 xml 的,xml 堪称最垃圾的发明,罗里罗嗦,简直跟 java 绝配。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX