55 条回复  ·  604 次点击
sgiyy 小成 2024-9-14 16:12:21
1 ,2 ,4 无解,作为领导,考虑项目的稳定性是第一位的,如果改动大组内其他人适应性如何也是一个问题。如果感觉提升不明显,建议跳槽...

3 我倒是想提一下:我觉得问题最大的点不在于上千行,原因在于这个文件没有什么复杂度,其实定位找个接口很容易。问题在于都封装在一个对象里,命名问题很大,到最后起名很麻烦和命名很长。
我习惯于按后端接口模块封装在若干对象里面,比如:
```javascript
export const userAPI = {
  update: () => {},
  get: () => {},
}
export const todoAPI = {
  update: () => {},
  get: () => {},
}
```
jackding1208 该用户已被删除 2024-9-14 16:14:14
提示: 作者被禁止或删除 内容自动屏蔽
saviorjiang 该用户已被删除 2024-9-14 16:21:37
提示: 作者被禁止或删除 内容自动屏蔽
xz410236056 小成 2024-9-14 16:24:32
“會沿用像 vue2 的寫法純粹是因為當時我們幾個一致覺得這種寫法比較好,比 vue3 那種自由奔放,全部宣告的變數都放進 view 裡面好”

纯粹懒得学习找的借口罢了,年纪大了后大多数人都懒得学新东西了
dfkjgklfdjg 小成 2024-9-14 17:01:13
如果做不到固定的开发工作流,确保每一个 MR 都会 review 通过后才会被合并。
那么 OP 你关注于“技术”部分的规范,确实会补充中领导的长远看法一样。

---
关于团队开发规范一般都是开发团队中互相理解认可,最终达成一致的规范。而不是一两个人拍脑袋确定下来的。
至于项目 A 使用,不代表项目 B 也适用。其实和团队 A 认可,不代表团队 B 也会认可一样的。

比如你的举例就很“技术”,并不是一个对于开发流程的规范,更像是 Lint 相关的规范(也就是 Coding Style ),那么确实并不一定适用所有项目。
---

比如你可能会觉得<问题 1>很不爽,但是可能项目开始时期 `script:setup` 并没有实现,所以当时只是使用了 `setup` 并没有使用 `script:setup`。
那么按照你<问题 4>的认定,你多半也不会认可在一个项目中同时出现选项式和组合式两种写法。那么比较合适的情况就是延续旧有的“开发规则”,继续使用 `setup` 开发而不是 `script:setup`,而不是全部重构成 `srcipt:setup`。

至于<问题 2>和<问题 3> 是出于一个中间地带,首先代码量少并不一定就是“好代码”,举个很极端的例子 `const result = condition1 ? condition2 ? 'A' : 'B' : condition3 ? 'C' : 'D';`
虽然示例和 OP 你表达的并不一样,我这样举例有一点抬杠的意味,但想表达的是 代码结构清晰,可以让所有人都可以快速理解的代码,才是真的“好代码”。
不知道你举例的 `useRequest` 是 [VueUse]( https://vueuse.org/core/useFetch/) 这种比较大众的工具类库提供的,还是自己内部实现的工具类库。

API 都声明在一个 `index.js` 文件中,我也觉得会是一个问题,但是可能开发团队已经习惯了直接使用 `import { xx } from '@api' 中引入对应的接口了。
可以贡献一个模块化拆分后 API 维护的 MR ,并且提供和原本一样的聚合后的 `@api/index.js`出口(`export * from './modulesA'`)。
这个 MR 就可以当成首次 review 的一个样例。

---

但是 OP 你得和你的领导确定好,你们想要制定的规范是什么,是开发流程的规范,还是编码风格的规范。
开发流程的规范当形成习惯之后是可以随团队一直延续、传承下去的,但是编码风格的规范会随着不同项目的主导人而不同的。
vaporSpace 小成 2024-9-14 18:21:41
我们团队 vue 的写法就已经有好几种了,用 tsx 、jsx 、composition api 、Options Api ,还有看心情混着用的,再加上不同项目 vue2 、vue3 都有,有的用 vue-cli 有的用 vite ,没点前端基础哪玩得转 vue 呀,还没提开发组件怎么兼容 vue2 、3 呢。哪怕是用 composition api ,有的人是 script setup ,有些人还是保持 component setup 。随便怎么写吧,我已经无所谓了,我自己写就偷偷用 tsx 哈哈
beidounanxizi 该用户已被删除 2024-9-14 20:14:29
提示: 作者被禁止或删除 内容自动屏蔽
Terryx 小成 2024-9-14 20:53:07
你一来就要重构,还要重新定规范,我感觉你更像领导。
真重构,定了规范,有好处你出头,出了问题你领导背锅,而且你这是在抢领导力,傻叉领导才会同意。
你有本事自己弄个厉害的,让别的同事佩服不已,自愿来找你求教,这才能正道。别对老代码指手划脚,你不知道当年的妥协。
年轻要有敬畏之心。
yanqing07 小成 2024-9-14 21:57:45
@ivvei #20 我也觉得这领导没水平,而且还“懒”。
明显前后回答就有矛盾。最后那个理由非常没水平,规范定了就要写下来文档,后面进来的人就是要按规范开发,代码审核人也是按规范审核。什么人走了规范就没了,他明显就没“水平”做技术管理。
按他说的,eslint 里面那么多大厂风格大家都不套用呗。基本规范就应该是要有的,具体项目具体分析也是要有的。
这领导就是技术水平不够,全靠一张嘴。
而且,看到 await 再加 then 的写法,就知道没人 review 才出现这种乱七八糟的代码
Garwih 小成 2024-9-14 22:02:00
看起来你领导好像不知道 ESLint 这种工具的存在。
另外,用 Vue 3 还坚持用 Options API 本质上就是不想学新东西,Composition API 有更好的 TS 支持,关联逻辑可以放到一起,而不用必须分散到各个 option ,会用的话应该写得比 Options API 更清晰易懂。
返回顶部