[交流] 最近在看前端的内容,接触了一些前端的代码,有一些吐槽

2022-08-10 08:39:58 +08:00
 eryajf

最近在看前端的内容,接触了一些前端的代码,从一个小白的角度,仅以过往一些 go 编程经历对比而言,对前端技术栈吐槽如下:

  1. html 标签里边,需要手写的内容太多,自动补全方面比起一些后端语言,差太多。
  2. 外部的包,已经引入成功,也能正常使用,但是这个包的方法并不会自动补全,写起来很难受。
  3. 函数的写法太多了,什么箭头函数之类的,而且感觉写法挺奇怪挺麻烦,老是记不住。
  4. 前端编码不能很方便地看到函数的入参以及返回值,导致用的时候就很模糊,要么死死记住这个方法,要么就得再次看方法的源码。
  5. 前端对方法的调用也是各有便道(混乱),没有参数的函数不加括号也可以以至于后来再看并不好区分这是用了一个方法还会一个参数。在 template 区域,大多方法都是在双引号的包裹当中,以至于补全不力,无法跳转,更无法直接通过调用的地方看到方法的具体实现。

暂时想到这么多,以后可能还补充,欢迎前端朋友一起交流下你的感受。

仅是一些个人角度的主观感受,没有任何恶意,请友善交流!

11729 次点击
所在节点    程序员
105 条回复
cangcang
2022-08-10 11:29:37 +08:00
槽点太多不知从何吐起。总之,还是多学几天再来吐槽吧
yunyuyuan
2022-08-10 11:33:12 +08:00
如果你说的是 jq 写前端,那确实问题很多,还不止你说这些。

1. html 标签里边,需要手写的内容太多,自动补全方面比起一些后端语言,差太多。
> html 是一种描述性结构,类似 qml 这种。但使用框架是有自动补全的,react 里你输入`<button onClick={`,就能触发补全。

2. 外部的包,已经引入成功,也能正常使用,但是这个包的方法并不会自动补全,写起来很难受。
>js 是动态语言,这个包没有用 typescript ,没有 index.d.ts

3. 函数的写法太多了,什么箭头函数之类的,而且感觉写法挺奇怪挺麻烦,老是记不住。
> 普通函数,匿名函数,箭头函数三种,其实还有匿名 class ,并不难理解吧。比较难理解的是原型链,function 可以用 new 操作符实例化。

4. 前端编码不能很方便地看到函数的入参以及返回值,导致用的时候就很模糊,要么死死记住这个方法,要么就得再次看方法的源码。
> js 是动态语言,想要 IDE 提示,用 typescript 就行了

5. 前端对方法的调用也是各有便道(混乱),没有参数的函数不加括号也可以以至于后来再看并不好区分这是用了一个方法还会一个参数。在 template 区域,大多方法都是在双引号的包裹当中,以至于补全不力,无法跳转,更无法直接通过调用的地方看到方法的具体实现。
> 你说的是`<button v-on:click="func1"`和`<button v-on:click="func2()"`这种吗,func1 不加括号就是默认把$event 当第一个参数,而 func2 拿不到 event 。vue 的 template 区域补全,vscode volar 做得挺好的。

比起你说,我觉得 css 和 node_modules 更值得吐槽
iwh718
2022-08-10 11:33:44 +08:00
对我来说,只要能挣钱的都是好的。
TArysiyehua
2022-08-10 11:42:12 +08:00
楼上很多人回的才是真的傲慢,确实有很多问题却怪楼主不会用。
Torpedo
2022-08-10 11:42:36 +08:00
你是不是写了 vue ?建议使用 react 🐶
Felldeadbird
2022-08-10 11:49:37 +08:00
我能理解楼主的痛苦。后端去写前端,然后打算用一下前端的东西。找到一个 V1 版本。用了一会,发现竟然有 V2 版本了。WTF ,V2 版本语法怎么不一样了? 马上去学习新语法。再一段时间,V3 版本发了,彻底用了最最最最新语法。

到最后,我到底是来写前端,还是学新的编程语言?
murmur
2022-08-10 11:51:38 +08:00
@Felldeadbird 互联网面向造轮子编程是这样的,你一水 var 也没人管你,而且同样的功能,你用内置函数,语法糖,还是网上 npm 下的 util 都可以实现,没有高下之分
ztxcccc
2022-08-10 11:52:09 +08:00
@cheng6563 php 和 python 比 nodejs 阳间多了
murmur
2022-08-10 11:52:46 +08:00
比如说 abc?.def?.hij 这样逐级试探访问,在没有语法糖之前,你可以找个库,比如 objectPath("abc.def.hij", "失败的返回值")
DOLLOR
2022-08-10 11:56:47 +08:00
你是用记事本来写代码的吧?
哪怕是作为文本编辑器的 vscode ,写 html 都有完善的补全功能。
除了第 3 点,其他全是一个完善的编辑器就能解决的事情。
lujiaosama
2022-08-10 11:58:31 +08:00
@ztxcccc nodejs 哪里阴间了? 如果不上强类型, 动态语言都是一泡污.
hsfzxjy
2022-08-10 11:58:43 +08:00
html 装 emmet 插件可减少输入
darknoll
2022-08-10 12:17:04 +08:00
emmet
fox0001
2022-08-10 12:43:01 +08:00
@xz410236056 #30 容许我解析(狡辩)一下。

就是 HTML + JS ,这么多年了,特别是 JS 一直被吐槽,都没有被替代。如果它们是不合理的,就应该有新技术替代它们吧?

再说 JS ,它当初设计出来就不是应对现在的工程化前端。现在也出现了很多更好用的方案,可以考虑使用。

“吐槽”解决不了问题。曾经在 IE 阴影下的 JS 开发更艰难,因此也涌现了一批优秀的框架,解决当时的问题。正视问题本身,想办法解决它,才是该做的事情。

以上纯粹小弟愚见。
fox0001
2022-08-10 12:55:00 +08:00
@eryajf #20 有些事情,就是不认同,但需要接受。
lancelock
2022-08-10 13:35:25 +08:00
你只写过 go 吗
phyzoo
2022-08-10 13:37:31 +08:00
那这是自己还不会用,你会用了这些问题压根不存在
sechi
2022-08-10 13:38:07 +08:00
有没有一种可能以上大部分问题是你的 IDE 或者技术栈导致的,我的建议是换 webstorm 以及使用 ts
alphardex
2022-08-10 13:59:40 +08:00
1. emmet
2. ts
3. arrow only
4. ts (no any)
5. volar
SanjinGG
2022-08-10 14:04:34 +08:00
现在是个人都要吐槽下前端吗?要不发明个新语言把 js 干掉?再让后端学习下把前端干掉?

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

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

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

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

© 2021 V2EX