我是前端,相信大家也遇到过。
在写项目中经常遇到这种问题:
写一个新的接口,代码格式/样子都是一样的。 如:
const getList = (params)=>{ return ajaxfn({url:'xxx',type:'post',params:params}) }
经常这个项目要加新接口的时候,我都是从别处先复制一下这段代码,然后改改方法名和接口地址即可。
再比如写一个弹框。一般是 xxxModal.vue ,然后要写新弹框也是复制一个 Modal 。改改里面的逻辑即可。
还有类似后台 列表/筛选 等等,都是找之前写好的。然后改改里面的逻辑接口,一般 80%的代码都是一样的。
不要说抽出来写组件什么的,其实已经是最简了。哪怕再抽搞成 组件 + json 配置什么的。下次用还是会去看一下之前怎么做的,把 json 复制配置一下。。。。以此类推。。。。
所以,只有这个项目刚建或者新的业务场景的时候,才会去“思考”怎么手把手来做。其它时间都在 cv 。
我曾经想过,在一个项目里,直接放个 demo 目录,然后大家直接去 copy 相关代码即可。但是也难免有遗漏(偷懒不更新 demo 目录)
也写过用自带的代码片段来维护。但是管理又麻烦。
不知道大家有什么好的办法么?
1
ming159 111 天前
有个东西叫 "Code snippets" 很多 IDE 都支持. 可以将这类东西配置到 IDE 中. 例如 VS Code 就支持
https://code.visualstudio.com/docs/editor/userdefinedsnippets |
2
8355 111 天前
copilot 直接就能弹了。。不需要管理
|
3
wander555 111 天前
live templates....idea
|
4
NessajCN 111 天前
|
5
panlatent 111 天前
恰巧尝试过不少
1.( Code ) Snippets 无论是 IDE / Alfred / Snippets (Mac APP) 需要收集和整理,本质上还是个剪辑板。基本上不用了。 2. IDEA 重点 Live Template 面对特定框架下的高度样板化代码有奇效,缺点是需要自己归纳便携和不断优化才会越来越好用,但可控程度更高。 3. Copilot 等 AI 大部分时间都很好用,主打一个省事。 4. 模板项目或特定生成工具 需要开发和调整,适合框架类项目。 |
6
zjsxwc 111 天前
"Code snippets"不错,
我用的最多的是自己写的代码生成脚本。 |
7
fusi 111 天前
自己写了几个样板页面,对应不同的产品,主要是 vue\css\mixin 几个文件
面向产品编程,我们这边每个产品风格基本固定,新加的页面或者逻辑都是大差不差,逻辑塞到 mixin 中,样式塞到 css 中,差异塞到 vue 中,直接整个文件夹移动到不同项目就能用 当然,这些只针对新页面 |
8
forty 111 天前
如果是 UP 说的这个场景, 我感觉是属于代码抽象的不对,这种雷同的应该是不需要再 cv 代码的.
就比如说你为文章列表的展示写了一份代码,然后又有另一个分类的文章列表展示,又复制粘贴一份代码?不应该。 正常是前端传不同的参数,后端都是同一套代码,不需要到处 cv 同样的代码。 需要 cv 的,一般是大部分不同的。 |
9
seeu2ex 111 天前 via iPhone
要么 ide 代码片段,要么再封装一个通用函数,把公用的抽离出来,只需要填不同的参数
|
10
1wlinesperday 111 天前
单说前后端交互有明显的冗余的部分,这里工程化比较好的方法是参考 GraphQL ,利用中间的 Schema 来同时生成后端和前端交互的代码。
举个例子: API.schema: GET https://xxx.com/api/v1/users Request Type Decl {...} Response Type Decl {...} 前端: 可以利用上述的信息直接生成 hook function useUsers(...){ ... } 后端: 可以利用上述的信息直接生成 API 的 scaffold 列表,modal 那几条应该不是问题 |
11
Xu3Xan89YsA7oP64 111 天前
觉得自带的代码片段不方便管理,可以自己写个 vscode 插件整个界面来维护吧(我猜可能已经有类似的插件了)
|
12
tool2dx 111 天前
我自己写了一个工具,针对源代码级别来提取业务相关的函数和代码。
但其实关键不在于代码复制粘帖的效率,而在于代码的高度业务复用性。 如果不做这点,以后维护代码更麻烦。 |
13
kokutou 111 天前
idea 不是直接弹了
|
14
Chinsung 111 天前
copilot 基本都直接弹了,要么大量相同的定义就直接丢掉 gpt 让他按照规则帮忙生成下
|
15
ruoxie 111 天前
|
16
ruoxie 111 天前 1
|
17
shunia 111 天前
目前用 AI 是相对来说最轻松的,你写类似的代码它自动提示,tab 一下就好了,基本不用改。
|
18
supuwoerc 111 天前
|
19
lizhenda 111 天前
你凭什么觉得你这些代码能一直复用下去?试试过几年再回过头看看?
|
20
crayygy 111 天前
你需要的是脚手架,在这方面个人觉得做得不错的是 Ruby on Rails ,很早以前写 RoR 的时候就觉得,几乎没写过什么重复代码,大多数都是复用的或者是直接调用
|
21
sampeng 111 天前
Copilot 已经干死掉 snippets 了。但是,Copilot 不能解决特别大段的代码。这没什么办法。
以我身边统计学来说,现在的研发 10 个里面只有 1-2 个接受 copilot 。。 所以像你说的:如果你用 gitlab 作为仓库。gitlab 的每个项目可以创建自己的 code snippets 。比目录强多了。 说实话,程序员都是懒得整理的。记得在哪打开文件过去现拷 |
23
air1314 111 天前
一般不整理 因为整理费时间而且基本不会看 业务代码如果有做过类似的直接去对应项目里扣 像工具类这种更适合单独整个仓库 import 进来
|
24
wenye123 111 天前
每个人写代码都有自己那一套东西可以复用 很难说有啥高低之分
毕竟最终目的都是为了业务 然后业务是为了挣钱 只要功能实现了就行 业务不挣钱 代码简洁上天也没用 |