V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
brader
V2EX  ›  程序员

再也没有了当年的激情,去写出优雅和兼容并存的代码

  •  
  •   brader · 2023-07-07 10:38:54 +08:00 · 8126 次点击
    这是一个创建于 508 天前的主题,其中的信息可能已经有所发展或是发生改变。
    你还记得那些年你写的另你感到骄傲的代码吗?

    94 条回复    2023-07-08 17:01:42 +08:00
    coderxy
        1
    coderxy  
       2023-07-07 10:42:13 +08:00
    我也渐渐失去了当年对代码优雅高效的追求了。 。。
    NessajCN
        2
    NessajCN  
       2023-07-07 10:48:06 +08:00   ❤️ 8
    天哪你管这叫优雅吗....
    你知不知道,数字,或者叫 number, int 类型的变量,在计算机中本身就没有所谓的「进制」之分的?
    如果一个变量是 int,你给他赋值 0x10, 或 16 或 0b10000, 都是完全等价的
    只有打印的时候为了让你这个人类看懂才需要表示成 10 进制或 16 进制?
    eilisonLiang
        3
    eilisonLiang  
       2023-07-07 10:49:59 +08:00
    优雅的时候,效率有时候就低了,如果只要效率,那就要放弃优雅
    brader
        4
    brader  
    OP
       2023-07-07 10:54:05 +08:00
    @NessajCN 这个工具类有具体实用场景的,做数字币的接触多了就知道了,不纠结具体业务了,我只是缅怀以前对代码的激情,当年水平有限,以现在的眼光去看,可能几年前刚入行写的代码,是有瑕疵的,但是当时我是用心去写的
    brader
        5
    brader  
    OP
       2023-07-07 10:54:50 +08:00
    @eilisonLiang 是啊,我现在的状态,对优雅的态度,总结起来就是:时间太赶算了、能跑就行算了
    idealhs
        6
    idealhs  
       2023-07-07 11:06:17 +08:00
    没看出来这个进制转换在倒腾啥
    j3llypunk777
        7
    j3llypunk777  
       2023-07-07 11:09:16 +08:00   ❤️ 3
    优雅的代码有一个很重要的前提是“优雅的需求”
    xinyewdz
        8
    xinyewdz  
       2023-07-07 11:11:54 +08:00
    哈哈,前两年还在写优雅代码,喷同事垃圾代码。去年开始,我就开始堆山了,能跑就行。
    pkoukk
        9
    pkoukk  
       2023-07-07 11:15:10 +08:00
    copilot 出来之后我又重新开始写简洁干净清楚的代码了。因为我需要让 AI 看得懂,他看得懂,我需要写的东西就少
    brader
        10
    brader  
    OP
       2023-07-07 11:19:38 +08:00
    @idealhs 抛开业务场景的话,肯定很难想象啦,这种业务代码要结合业务看才好理解
    brader
        11
    brader  
    OP
       2023-07-07 11:20:00 +08:00
    @xinyewdz 我已经摆烂好多年了
    eilisonLiang
        12
    eilisonLiang  
       2023-07-07 11:22:05 +08:00
    @brader 估计要看结果导向吧,有的领导要求能跑就行,有的是要求质量,不同情况写不同的代码,优雅的代码,bug 会少一些,就是要折腾一下
    oneisall8955
        13
    oneisall8955  
       2023-07-07 11:29:19 +08:00 via Android
    能看懂就是好代码
    nikola11
        14
    nikola11  
       2023-07-07 11:30:01 +08:00
    时间有限,就顾不上优雅
    zjj19950716
        15
    zjj19950716  
       2023-07-07 11:30:41 +08:00
    一头扎进了大染缸
    iSNN
        16
    iSNN  
       2023-07-07 11:31:52 +08:00
    @eilisonLiang 有的领导...有的领导...其实只有一种领导。开发快、质量高、可维护、BUG 少、稳定性好
    Rache1
        17
    Rache1  
       2023-07-07 11:42:53 +08:00   ❤️ 3
    如果要说你列出的代码是优雅的正例的话,还真有些问题。

    1 、魔法字符串,这里的 1000000...、还有 bcdiv 的那个 18 、0x
    2 、dexToHex 和 hexToDec 这俩方法 php 都自带了的,我不太确定你这个实现跟自带的有什么区别。
    3 、你的 remove0x 和 add0x ,在这里就是个摆设吗,71 行、48 行、这些明显就应该用你这个函数了吧。
    4 、再说回你这个 add0x 和 remove0x ,如果是我的话,我会改成 withPrefix 和 trimPrefix
    5 、你这里面判断以 0x 开头的,也至少存在 2 处调用了,那就应该也单独提成函数。
    6 、你这 48 行的 decToHex 前面拼接的 0x ,不是可以直接传给 dexToHex 的 mark 么
    QlanQ
        18
    QlanQ  
       2023-07-07 11:44:29 +08:00
    我还没有,最近接手的代码,让我 无从下手

    比起代码,数据库设计的烂才是最难受的

    去年的项目用的 yii 1.1 + layerui ,还说是自研


    借楼问下,
    @coderxy
    @NessajCN
    @eilisonLiang
    @brader
    @pkoukk

    数据库关联表,冗余数据才是正常的吗?
    最近看到好几个项目这样做,我都怀疑自己是不是错了?
    azui999
        19
    azui999  
       2023-07-07 11:45:36 +08:00
    能跑就行,很多东西,我也把握不了
    bybyte
        20
    bybyte  
       2023-07-07 11:47:50 +08:00
    能破就行永远在第一
    coderxy
        21
    coderxy  
       2023-07-07 11:50:54 +08:00
    @QlanQ 冗余数据是合理的,你学过三范式,肯定也学过反范式吧? 在很多场景下三范式的写法是个灾难。
    sslyxhz
        22
    sslyxhz  
       2023-07-07 11:54:44 +08:00 via Android
    罗永浩. jpg
    ElvY
        23
    ElvY  
       2023-07-07 11:57:44 +08:00
    老鸟最应该做的是面向文档编程,代码写的和文档一样。
    brader
        24
    brader  
    OP
       2023-07-07 12:08:33 +08:00
    @Rache1 兄弟,有些代码,离开业务场景空想是想不明白的,这个代码我四五年前写的了,模糊记得一些,你疑问的点大概和你说下吧:
    1 、1000000000000000000 和 0x 是业务需要,它是不会也不可能变化的,所以我写死了专用值,也不存在我需要添加除 0x 前缀外的场景,这个是专用于数字币计算的。
    2 、我不知道你所说的 PHP 自带的的十进制和十六进制转化是否指的是 dechex 这个函数,如果是的话,这个函数是用不了的,数字币都是高精度计算,数字位数是 n + 18 位,用自带函数计算是超出上限的。
    3 、我直接拼 0x 是因为我很确定我上一步的值是不存在 0x 的,无需重复调用兼容性的方法增加判断,当然,你要说非要调用比较优雅,也不是不行,这个见仁见智,我不反驳,我当年怎么想的,我也记不起来了。
    4 、同 1 解释,因为只专注于+0x
    5 、此工具函数比较简单,当时为什么没有单独提出来,我已经记不清了。
    6 、是的,可能当时忘记了吧。
    brader
        25
    brader  
    OP
       2023-07-07 12:10:55 +08:00
    适量的冗余是正常的,有时候是为了查询方便,而且对于没有要求前后数据变更强一致性的数据,也无需花精力去同步。
    比如之前我做过一个客服聊天记录表,我就在里面冗余了用户昵称,方便查询,用户改昵称,我也不会同步过来的,已经问过产品,说无所谓
    brader
        26
    brader  
    OP
       2023-07-07 12:19:21 +08:00
    @Rache1 奥,对了,第 1 点 bcdiv 的 18 这个疑问忘记告诉你了,这个是因为数字币 eth 中, 单位 wei 转 eth ,存在小数,精度需要保存到小数点后 18 位
    brader
        27
    brader  
    OP
       2023-07-07 12:24:23 +08:00
    @ElvY 我现在是代码随意,因为是我自己维护的。文档我倒是挺认真写的,因为我不想坑前端同事
    caixiangyu17
        28
    caixiangyu17  
       2023-07-07 12:52:20 +08:00
    代码优雅不优雅不是程序员说了算。你在屎山里面,咋也写不出来好东西的。
    想要好代码,需要团队的规范,大家都高要求,你自己反而就没什么负担。
    git commit comment 格式不对,测试不过,coverage 不够,linting 不过,有 Vulnerabilities 等等,都会在各个环节卡住你的代码。要么不能 push ,要么不能 merge PR 。这样每个人写的代码都不得不这么做,质量就上来了。
    TedS
        29
    TedS  
       2023-07-07 12:58:48 +08:00
    优雅就是个伪命题,在保证质量前提下,让团队合作更轻松,才是好代码。
    Rache1
        30
    Rache1  
       2023-07-07 13:29:45 +08:00
    @brader 对于魔法字符串、魔法数字这些,如果你做不到在小单元内使用,最好的方式就是提成常量,并加以注释。

    实际上你这个 add0x 里面本就不应该包含 remove0x 的逻辑,你应该在外部就确定是否要 rmeove0x ,亦或者单独提一个方法
    Leviathann
        31
    Leviathann  
       2023-07-07 13:39:43 +08:00
    优雅是虚的,代数才是真的
    zhutai0201
        32
    zhutai0201  
       2023-07-07 13:46:09 +08:00   ❤️ 1
    又不是不能用?
    tcpdump
        33
    tcpdump  
       2023-07-07 13:48:25 +08:00   ❤️ 1
    老板:当年他们努力工作给我买的宝马 5 系,现在提了库里南,不过再也没有了当年的激情。
    Seulgi
        34
    Seulgi  
       2023-07-07 14:00:47 +08:00
    这两年疫情影响,一个是跳槽不会那么随意,一个是工资涨幅没有那么大之后,确实是不管是学习/代码/态度都有所躺平。
    locoz
        35
    locoz  
       2023-07-07 14:05:26 +08:00 via Android
    再也没有了当年的激情,去写出代码,现在都是能让 AI 解决的绝对不自己动手…
    Pastsong
        36
    Pastsong  
       2023-07-07 14:15:04 +08:00
    你觉得优雅别人接手的人觉得是屎山

    优雅就是件感动自己的事情,没什么卵用
    nikola11
        37
    nikola11  
       2023-07-07 14:17:52 +08:00
    @QlanQ 大多数场景 冗余都能满足需求,sql 应该尽可能的简单,不冗余 sql 太复杂了,不利于维护
    tool2d
        38
    tool2d  
       2023-07-07 14:19:05 +08:00
    @locoz 当年产品经理巴拉巴拉聊一天,程序员埋头写代码。
    现在程序员巴拉巴拉聊一天,AI 埋头写代码,附赠一堆 BUG 。
    tool2d
        39
    tool2d  
       2023-07-07 14:22:40 +08:00
    记得早年 twitter 上一项活动,比谁删历史旧代码最多最快。

    我倒是觉得,写代码不仅是为了优雅,而是为了便于以后维护和复用。

    而好维护代码是准则之一,就是子模块越简单越好,代码量越少越好。
    locoz
        40
    locoz  
       2023-07-07 14:29:16 +08:00
    @tool2d #38 不至于,在描述清晰且模型能力足够( GPT4 )的情况下,输出的代码基本都是可用的,极少出现 BUG 。最多也就是因为 Token 过多,导致 AI 忘记了某一条或某一些要求(根据长度而定),需要检查后重新要求补充。
    janus77
        41
    janus77  
       2023-07-07 14:29:34 +08:00
    优雅是自己的事。。。。一个人觉得优雅,别人接手的时候可能会觉得这写的什么玩意儿。还有三年前觉得优雅,三年后感觉一坨屎的情况。
    最佳实践才是王道
    如果做不到最佳实践,那就还是那句话,又不是不能用.jpg
    tool2d
        42
    tool2d  
       2023-07-07 14:34:20 +08:00
    @locoz 可能是领域关系,我让 GPT3.5 写比较复杂的后端代码,会出现不少问题。如果是前端,应该没问题。
    veike
        43
    veike  
       2023-07-07 14:40:19 +08:00
    追求优雅是个误区,应该追求语义化、别人看得懂,简单的代码,追求容易维护扩展的系统设计。
    代码写的再好,想挑毛病还能挑不出毛病?要挑毛病,linus 来了都要给我叫爹
    QlanQ
        44
    QlanQ  
       2023-07-07 15:07:28 +08:00
    @nikola11
    @tool2d 冗余的意思是,例如把用户的昵称带上了,
    问前面设计的人说,昵称不能改
    现在产品说要加改的功能,改个昵称,至少要改 7 张表,这也算是正常场景?

    冗余数据去解决查询问题,我认为不合理,冗余 在我看来就没有优点
    tool2d
        45
    tool2d  
       2023-07-07 15:15:37 +08:00
    @QlanQ 老旧代码没人想去维护,是 7 张表最主要的原因。

    twitter 上老外有一定的时间可以给你整理旧代码,国内很少见,项目周期很紧张。大家都只加新代码,不删旧代码。

    当项目换了几波人接手后,加一个新功能别说 7 张表,改动 10 张表我都不会觉得奇怪。
    buffzty
        46
    buffzty  
       2023-07-07 15:17:42 +08:00
    第一行不是严格模式,没有类型,代码冗余 实现方式太 low
    比如第一个直接一行就够 ltrim(ltrim('0x1234','0x'),'0X')
    多次使用的魔数没有定义为常量
    重复实现内置函数,dechex, hexdec
    变量命名不符合语义,比如$value,跟写$a 没啥区别
    差评
    locoz
        47
    locoz  
       2023-07-07 15:18:12 +08:00
    @tool2d #42 事实上结果恰恰相反,让 AI 写前端很难,因为前端太抽象了,描述做不到那么准确,反而是写纯后端类的代码很好写。你这其实单纯是 GPT3.5 的问题而已,不仅可注意的 Token 数量少,本身逻辑能力也弱,换 GPT4 就解决了。
    Shosuke
        48
    Shosuke  
       2023-07-07 15:25:21 +08:00
    渐渐对写代码失去兴趣,也慢慢不知道自己要做什么。
    brader
        49
    brader  
    OP
       2023-07-07 15:34:09 +08:00
    @buffzty 写的 low 不 low 就随你说了,但是不像你挑别人毛病,自己给出的方案还是 bug ,你用 dechex 把 1000000000000000000000 转化成十六进制给我看看
    QlanQ
        50
    QlanQ  
       2023-07-07 15:45:18 +08:00
    @tool2d 去年新开的坑,我觉得这样设计,实在是有问题
    如果说以前 通过冗余是为了避免过度链表
    但是一个新项目还这样设计,我觉得就是设计上的问题
    brader
        51
    brader  
    OP
       2023-07-07 15:52:23 +08:00
    @QlanQ 不管新旧项目,都离不开发展历史问题,只能说你遇到的项目还不够多吧,有时候某个模块当初的开发者设计的挺好的,但是顶不住需求变更。比如常见的 用户表、用户信息扩展表、供应商用户表、地推员 等等等等,开始是挺独立的业务,但是后来某天产品要求做个列表,产品为了方便,这个列表的展示信息,居然横跨 7 个表,你能选择的无非就是上面讨论的两个方案,要么冗余出来,要么查多表
    cedoo22
        52
    cedoo22  
       2023-07-07 15:54:54 +08:00
    每个人的优雅方式不一样, 当一个项目经过 N 个人的手之后, 你会发现跟荒地上的 杂草一样。
    所以。。。能用 if else 解决的 就不要优雅的用设计模式。
    fyxtc
        53
    fyxtc  
       2023-07-07 15:58:14 +08:00
    这个帖子,贴了代码之后就很容易跑偏,本来是随想贴,变成了指点贴
    brader
        54
    brader  
    OP
       2023-07-07 16:00:48 +08:00
    @fyxtc 我也很无奈,现在的我,也不是想贴段代码比个高低,争个第一了,没有意义了啊,哎
    yhm2046
        55
    yhm2046  
       2023-07-07 16:02:15 +08:00
    先把汉字打对再说,是“令你感到骄傲”。
    另外有本书叫《重构》,有个工具叫 chatgpt
    QlanQ
        56
    QlanQ  
       2023-07-07 16:03:55 +08:00
    @brader 项目也做了不少,接手的也很多,没见过,明知会改,还要用来冗余的,而且只是为了查询所以加了冗余的,
    丝毫不考虑 修改的时候怎么处理么?

    那么多数据冗余在一张表里面,查询效率也不会高吧,

    两种方案,实在是看不出来 冗余的方案,有什么优势或者说好处
    flyqie
        57
    flyqie  
       2023-07-07 16:04:06 +08:00
    吃饭的项目不要想优雅,能跑就行。

    自己业余兴趣搞的项目,最好还是追求下。
    onehao28
        58
    onehao28  
       2023-07-07 16:10:04 +08:00
    Rache1
        59
    Rache1  
       2023-07-07 16:10:36 +08:00
    @buffzty trim 系类函数的第二个参数是按照字符进行处理的,你这个还可以简化成 ltrim('0x1234', '0xX'),但是这样是会存在问题的。

    比如 ltrim('0x0f', '0xX'),的输出结果将会是 f 而不是预期 0f
    Rache1
        60
    Rache1  
       2023-07-07 16:16:57 +08:00
    @buffzty 不过可以改为:ltrim(ltrim('0x0f','0'),'xX')
    baijiahei
        61
    baijiahei  
       2023-07-07 16:19:47 +08:00
    用 go 撸 就不用自己写这些了
    brader
        62
    brader  
    OP
       2023-07-07 16:23:19 +08:00   ❤️ 1
    @QlanQ 没有明知会改这回事,以后出什么需求谁都不知道。冗余数据到某种表,只是挑几个字段,不存在那么多数据问题,而且按你认知,单独冗余出某张表查询效率不高的话,连表查询效率只会更低下。
    既然说到连表了,冗余的好处就是只查一张表,你连表的话,查询慢,特别是后台,基本上产品会要你很多字段可以检索,检索字段多的时候,连多表是个灾难,特别是存在模糊检索字段,无法用上索引的时候
    brader
        63
    brader  
    OP
       2023-07-07 16:24:48 +08:00
    @baijiahei 抄官方的是吧
    Rache1
        64
    Rache1  
       2023-07-07 16:25:46 +08:00
    @Rache1 或者考虑使用正则或许更简单、直观些 preg_replace('/^0[xX]/', '', $hexNumber)
    QlanQ
        65
    QlanQ  
       2023-07-07 16:34:13 +08:00
    @brader 名称这类不固定的,肯定会有修改的需求呀
    不一定要链表呀,不都是 单独 用 in 么,然后组合数据
    Bazingal
        66
    Bazingal  
       2023-07-07 16:38:27 +08:00
    别光 show 你的屎山代码啊,show 出你的优雅和兼容并存的代码让我们学习一下
    brader
        67
    brader  
    OP
       2023-07-07 16:43:16 +08:00
    @QlanQ 单独用 in 有检索查不了吧,举个例子,要查 abc 三个表,abc 三表都有检索条件,并且要分页和排序,怎么查?
    brader
        68
    brader  
    OP
       2023-07-07 16:44:11 +08:00
    @Bazingal 不需要给你学习,你比我厉害
    CodingNaux
        69
    CodingNaux  
       2023-07-07 16:47:13 +08:00
    到目前为止,我没写出任何骄傲的代码,都是一次性的,也没写出啥库给别人用过
    veike
        70
    veike  
       2023-07-07 16:49:26 +08:00
    @QlanQ 一般 log 类的数据都需要一些冗余字段
    retrocode
        71
    retrocode  
       2023-07-07 16:57:57 +08:00
    《如何优雅的让一帮程序员免费帮自己代码挑毛病》
    smirkcat
        72
    smirkcat  
       2023-07-07 16:59:35 +08:00
    我从事区块链这么久,第一次看到用 java 写的,我基本都用 golang 和 js
    smirkcat
        73
    smirkcat  
       2023-07-07 17:00:07 +08:00
    @smirkcat 说错了 看到 php 写的
    brader
        74
    brader  
    OP
       2023-07-07 17:11:33 +08:00
    @smirkcat 嗯,写链的话,是 go java c c++比较多,区块链里 php 的话一般是处理业务层的东西
    QlanQ
        75
    QlanQ  
       2023-07-07 17:22:48 +08:00
    @brader 再有搜索条件的时候,会使用到链表查询,但是只查询主表的数据,然后在组合 其他表的数据
    QlanQ
        76
    QlanQ  
       2023-07-07 17:23:19 +08:00
    @veike 是的,也就是 log 里面,比如操作日志,防止后续改名,会稍微冗余一下
    baijiahei
        77
    baijiahei  
       2023-07-07 17:52:31 +08:00
    @brader 现成的 直接用 用不到抄
    mxT52CRuqR6o5
        78
    mxT52CRuqR6o5  
       2023-07-07 17:53:38 +08:00
    没有激情就用 gpt/copilot 嘛
    brader
        79
    brader  
    OP
       2023-07-07 18:06:32 +08:00
    @QlanQ 所以说你还是绕回去了连表的问题啦,而且后台查询很灵活的,你预测不到使用者会用到哪些检索条件,你当然可以写一堆判断来动态组合缓解一些压力,但最终也避免不了有连表的情况,这个表设计模式,问题就在于这里
    o562dsRcFqYl375i
        80
    o562dsRcFqYl375i  
       2023-07-07 18:22:51 +08:00
    你就说能不能用嘛
    kaneg
        81
    kaneg  
       2023-07-07 21:27:07 +08:00 via iPhone
    代码是给机器执行的和给人看的,优雅不优雅机器不知道,但人知道。就像乔布斯说的,看不见的机箱内部也要做的好看。
    wupher
        82
    wupher  
       2023-07-08 00:13:47 +08:00
    休息一下,或者尝试换个岗位,比如前端试下后端,后端去学下前端甚至 App 。
    soulomoon
        83
    soulomoon  
       2023-07-08 01:30:39 +08:00
    换一门语言写吧,例如 haskell
    SilencerL
        84
    SilencerL  
       2023-07-08 01:34:38 +08:00
    当我曾经写出引以为豪的优雅代码,但是 Leader 说:「写清楚点,要不别人看不懂」后,我也妥协了,我也开始写:

    var foo = "";
    if ( a == 1 ) {
    foo = "xx";
    }
    if ( a == 2 ) {
    foo = "yy";
    }

    这样的大白话代码,写多了感觉也还行,至少傻子都能看得懂
    wxf666
        85
    wxf666  
       2023-07-08 02:18:41 +08:00
    @locoz #47 能让 AI 帮写一个,能识别视频站的 澳 门 威 尼 斯 人 广告,并自动跳过的代码吗?
    bestcondition
        86
    bestcondition  
       2023-07-08 02:40:01 +08:00 via Android
    @SilencerL 写个 map 别人看不懂?{1:"xx", 2:"yy"}
    SilencerL
        87
    SilencerL  
       2023-07-08 05:37:16 +08:00
    @bestcondition #86
    没得,只是举个大白话代码的例子
    jumpsky
        88
    jumpsky  
       2023-07-08 09:46:12 +08:00
    能跑不出 BUG 没有漏洞就行,就算冗余现在电脑硬件足够运行。
    locoz
        89
    locoz  
       2023-07-08 10:43:28 +08:00
    @wxf666 #84 能,只要你思路清晰地告诉它要怎么做就行。
    justin2018
        90
    justin2018  
       2023-07-08 10:46:45 +08:00
    没激情了

    看得懂 能跑 基本上没有 Bug 就行
    binge921
        91
    binge921  
       2023-07-08 13:50:30 +08:00
    根本没激情了 我现在都是 自己乱写一通 然后让 ai 帮我优化下 拉倒了
    mango88
        92
    mango88  
       2023-07-08 14:04:28 +08:00
    能跑就行
    wxf666
        93
    wxf666  
       2023-07-08 14:40:14 +08:00 via Android
    @locoz 我的朴素思路就是想跳过时不时插播的 澳 门 威 尼 斯 人 广告。

    你能演示一下,如何让这个思路演变成,足以让它写出完美达到目的的代码?
    locoz
        94
    locoz  
       2023-07-08 17:01:42 +08:00
    @wxf666 #92 你需要能提供出具体的思路给 AI ,至少要包含完整的处理流程。目前即使是 GPT4 ,细化能力也还是不够,你让它自己思考,它会遗漏细节。所以单凭一句“跳过时不时插播的 澳 门 威 尼 斯 人 广告”这种描述,在具有一定复杂度且并非常见任务的情况下,是写不出可用代码的。

    你需要先自己思考出处理流程,比如是先通过语音识别检测有没有提到澳门威尼斯人,还是通过图像识别检测是不是广告,或者是什么其他方式,然后想具体怎么做,是找找有没有现成的库/服务,还是说是自己训练一个图像分类模型等等;然后就是实现检测了之后又怎么跳过、要做到什么样的跳过效果,比如直接检测视频文件内是广告的片段,并直接得到准确的时间段在播放时自动进行跳过,那么视频文件怎么获取、检测过程应该怎么做等等。这些做法、思路层面的细节都是需要你自己思考后描述给 AI 的。

    如果你有研究过一些让 AI 全自动写代码的项目的话,你会发现其实基本都涉及到一个 Q&A 环节,让 AI 通过提问的方式进一步细化需求,得到更准确的思路,为的就是避免一句话描述让 AI 做不出可用的东西。

    而在不做 DEMO 级且非常见任务的情况下,就那么几步的 Q&A 是远远不够的,一个完整项目/模块的实现中涉及到的细节非常多,都需要具体设计。说白了本质上就是把产品经理/架构师之类职位干活的产出,用文字描述的形式告诉 AI ,AI 完成具体的代码编写。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3781 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:30 · PVG 18:30 · LAX 02:30 · JFK 05:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.