Web 3 项目前端 repo 代码疑问

2022-07-06 16:32:24 +08:00
 YadongZhang

可能是普遍现象:

楼下有补充吗

4364 次点击
所在节点    职场话题
65 条回复
anguiao
2022-07-06 16:36:31 +08:00
去掉 Web 3 可能也适用。
按我个人的粗浅认知,起码在前端层面,暂时没发现 Web 3 和现有的开发模式有多大区别。
YadongZhang
2022-07-06 16:37:39 +08:00
@anguiao #1

因为我 Web 2 项目接触的不多,所以不敢评价。。。
233373
2022-07-06 16:37:39 +08:00
anyscript
foil2
2022-07-06 16:39:18 +08:00
@anguiao web2 项目 + ethers.js / web3.js 等于 web3 😂
zhixiao
2022-07-06 16:39:28 +08:00
没啥差别,你说的那几个现象大部分是习惯问题

话说 web3 开发其实跟普通前端开发也没啥差别
YadongZhang
2022-07-06 16:42:31 +08:00
@233373 #3

是的,我也愿称之为 anyscript
YadongZhang
2022-07-06 16:43:27 +08:00
@zhixiao #5

上面那几个问题可能会影响到开发体验( DX )
daliusu
2022-07-06 16:45:08 +08:00
聊一下我的认知吧,我觉得你这个跟 web3 没得啥关系

有 Vue3 为啥还要 Vue2.
这个问题我前几天面一个国企也碰到了,他们明明是一家新创的部门,但是技术就是 vue2 ,我们还简单讨论了一阵 vue2 的一些问题(比如 vue2 很多逻辑无法抽离,options 写法太容易把逻辑混杂一起),为什么不直接 vue3+ts ,但是他认为只要你组件抽离做的好就没有这些问题。后来出来我才反应过来,根本原因就是这个前端负责人自己玩不透 vue3 又不太愿意去接触,因为 vue3 明明也能兼容 vue2 的 options 。

path alias 这个我觉得根本无所谓,ts 下都是自动导入,只要别混着一会绝对路径一会相对路径,我觉得都没啥问题

default export 这个看写法,内部规定一下就行。dayjs 和 moment 的问题很多就是习惯和第三方库了,一些第三方库用的 moment 还要自己替换掉,替换完了也还有点类型问题,如果真不在乎大小,moment 多省力。
anguiao
2022-07-06 16:49:19 +08:00
@YadongZhang
为什么选 moment 和 Vue 2 ,个人感觉是惯性吧,习惯的东西就懒得改了。而且有些其它的第三方库,对它们也是有依赖的。
至于 Vue 2 和 TS ,首先选项式的写法对 TS 并不是很友好,然后 Vue 2 的周边生态对 TS 的支持也不怎么样。索性破罐子破摔了,any 就 any 吧。
rbq123456
2022-07-06 16:49:21 +08:00
1 ,懒,老项目用 moment 也不想切换
2 ,定制化的时候组件库里的 css 不好改
3 ,export 的太多,加上不记得名字,只记得一两个字母,直接 default.xx ,编辑器提示后 tab 就行
4 ,没见过不见 path alias 的项目
5 ,老项目用 2 ,新项目用 2 也有可能是兼容老旧设备。也不排除有人不会。
6 ,懒
Leviathann
2022-07-06 16:49:30 +08:00
我猜只是纯粹的垒屎山不想动脑
@daliusu moment 那 mutable 的 api 用起来真的恶心
Sin
2022-07-06 16:57:34 +08:00
没啥好说的,能推得动就改,推不动就尽量保持一致
(然后改完又会有新来的问,能用老牌的库为什么要用阿里的产品,能样式分离为什么要混在一起,能 export default 为什么非要用 named export ,能显式优于隐式为什么非要搞一堆 alias )
rongchuan
2022-07-06 17:09:43 +08:00
你列举的问题分几类,一类是 web3 比较重视项目安全性,毕竟直接跟钱打交道,所以不能随意引入第三方依赖,需要安全部门审核,有时候为了方便就会使用现有的库。一类是技术栈选型,react 生态技术栈很杂乱,没有官方标准,这就需要各个开发团队来制定规范,没有规范那就说明 leader 还有工作需要做。一类是代码书写质量问题,可以用 eslint 和 code review 来做代码质量检查
YadongZhang
2022-07-06 19:27:52 +08:00
可能是我 Web3 项目接触得少,没遇到用 dayjs 了,还要用 moment 依赖的第三方库。
YadongZhang
2022-07-06 19:29:43 +08:00
@Sin #12

啊这,怕被新来的问,Code Review 咋办
YadongZhang
2022-07-06 19:31:00 +08:00
@rongchuan #13

技术栈选型和代码质量赞同,确实是这两类问题,至于安全性。。。
rongchuan
2022-07-06 21:08:18 +08:00
@YadongZhang 安全性反而是最重要的,web3 都是要连钱包的,发生盗币的可能性非常大。几个大一点的交易所都发生过盗币事件,各种原因都有。所以现在都会统计第三方依赖,会有专门部门的同事去审核源码,审核完后会锁对应版本,要升级的话需要再次审核源码,审核会借助第三方工具检测
其实即使不是 web3 的公司,也有不少大厂是 fork 开源项目来 gitlab,自己维护的,并不会直接用开源。比如前端使用的 webpack 之类的,也都是内部 fork 以后二次封装
YadongZhang
2022-07-06 21:42:09 +08:00
@rongchuan #17

安全性是很重要,但是和用 dayjs 还是 moment 有什么关系
YadongZhang
2022-07-06 21:56:17 +08:00
Web3 连接钱包最常用的是这两个库:

https://github.com/Web3Modal/web3modal

https://github.com/rainbow-me/rainbowkit


盗币好像是因为进错网站了,所以会有一些项目进入网站后会出现一个 banner 让检查网址是否正确,比如 pancake ,好像也没多大用处
YadongZhang
2022-07-06 22:01:23 +08:00
不是 web3 的公司,魔改 stripe 的倒是见过,然后发个 private package 用

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

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

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

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

© 2021 V2EX