V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
BestVPS
V2EX  ›  程序员

硬肝 1 个晚上,一条代码也不懂的小白,弄了一个机器人信息转发器,由此引发 2 个思考

  •  
  •   BestVPS · 10 天前 · 3149 次点击

    起因:

    使用某个通讯软件的机器人转发器,发放邀请码的时候,在转发链接的同时,有不明来源的 ip 来点击,高度怀疑信息泄露可能有安全隐患

    加上这几天工作不太忙,有点自己的时间,想着自己做个转发器

    经过:

    之前购买了 ChatGPT Plus ,闲置了比较久,英语也没怎么做对话训练,正好可以派上用场,于是就拿来写代码了。

    我是一个小白,一点编程基础都没有(说一点不懂也不准确,会懂一点数据库 select * from * where * 仅此而已)

    于是我将我的需求,都说给了 ChatGPT ,让它一步一步教我如何做一个信息转发和自动回复的机器人,同时带一点安全属性 image

    另外同时也试了 claude.ai ,不得不说,在编程这个领域 claude.ai 比 gpt 要聪明,要快,代码出错的概率小,输出的结果更符合我的预期。

    可惜 claude 是免费的,用了几条就不让我用。但它的体验太好了,等腰包再膨胀一些就买它! image

    用了高性能的 vds 来编译成 docker 版本,等版本定了,我再把完成版本推送到 docker 上去,给大家做贡献 image 主程序写好了,再配合一个配置文件,还有前端的 display.html image

    结果: 看到效果了,网页显示+自动转发给我的主号,主号通过回复信息,能让用户收到信息 image image 自此,机器人转发功能都切换到自己的服务器上,不用通过某通讯软件内的转发机器人,增加了安全性。

    不过现在没有用户发送指定语句自动回复的功能,或许后续有时间再添加,现在全是人工操作

    我的机器人链接: https://t.me/Bandwagon_invitation_codes_bot

    肝了一个晚上,中年人身体吃不消。

    通过这次的写程序体验,我有一个很强烈的不安全感,由此引发 2 个思考:

    1 、中级及以下的程序员可能会失业,只有顶端程序员还能活下去。我的角色就是动动手输出要求,作为项目经理角色,人工智能给出结果,完全替代了程序员的工作,而且结果尚可(肯定很多漏洞,所以顶级程序员还有查漏的空间);

    2 、现在有人工智能颠覆程序员、画师,那未来几年肯定有新的产品出来,再一次颠覆某个行业,到底什么才是安全的?

    没有什么是不变的,或许这种对新事物的不安全感,会一成不变。

    30 条回复    2024-12-23 17:05:37 +08:00
    cmdOptionKana
        1
    cmdOptionKana  
       10 天前
    你的想法有很多问题,我提一点:以你这个程序为例,“项目经理”借助 AI 要搞一个晚上,而普通初级程序员一个小时就搞定了,工作效率差别巨大。

    高级程序员就像建筑师,中低级程序员就像建筑工人,多数程序员在 AI 出现之前做的就是“熟练工”的角色,拼的是熟练度。在 AI 出来之后,拼的还是熟练度,没啥变化。项目经理之类的非程序员做做业余爱好可以,真的直接去做程序员的岗位,就这个熟练度,怎么干活?
    asanelder
        2
    asanelder  
       10 天前   ❤️ 7
    "一条代码也不懂的小白" =》"中级及以下的程序员可能会失业,只有顶端程序员还能活下去"
    “连方便面也不会煮的小白” =》 “买了一个做饭机器人” =》“中级及以下的厨师可能会失业,只有顶端厨师还能活下去”
    NoOneNoBody
        3
    NoOneNoBody  
       10 天前
    始终还是那句话:掌控工具的是最底层的,掌控人的才是上层
    这是亘古不变的定律,只要活在“社会”,就离不开这个,把我的下层全都淘汰了,我就成为“最下层”
    COW
        4
    COW  
       10 天前 via Android
    两个热知识,1.程序员的学习能力通常比一般人强,对 AI 的运用也比一般人更有效率,2.程序员每天的实际编程时间可能不到 10%,更多的时间是用在了思考,调试,沟通,协作上。
    个人结论是,初中级程序员不一定会失业,但失业以后更可能会抢占掉其他人的位置。
    Rorysky
        5
    Rorysky  
       10 天前
    不要总是大惊小怪, 普通人通过 ai 工具变成水平从 0.1 到了 0.8 , 程序员通过 ai 工具,编程效率从 1 到 2
    qiaobeier
        6
    qiaobeier  
       10 天前   ❤️ 1
    为啥我组里的妹子跟猴子一样,用了 AI 还整天给项目添💩,一天天的一个 fun 都能绕个五六层,一堆业务代码放到 Global Store 里面去,我真是服了!
    XTTX
        7
    XTTX  
       10 天前   ❤️ 4
    "一条代码也不懂的小白" 是来引流的..............
    kk2syc
        8
    kk2syc  
       10 天前
    现在吹 AI 替代的这群人和当初吹 web3 元宇宙的如出一辙,搞不清楚还在装 P ,反正他们开心就好了。
    qiaobeier
        9
    qiaobeier  
       10 天前
    @XTTX 明显的,光一个环境搭建就必须要掌握基础的软件工程知识,而且他还用了 docker 。也许具体到某个业务可以使用 ai 解决,但整体项目搭建肯定要有一定经验。
    choryan
        10
    choryan  
       10 天前 via iPhone
    让 ai 写个复杂的业务需求 跟客户探讨半天的那种 烧冒烟 ai 也写不出来
    giter
        11
    giter  
       9 天前 via iPhone
    原来是引流的帖子,搬瓦工邀请码 bot 。
    iorilu
        12
    iorilu  
       9 天前
    id 说明了一切
    evan9527
        13
    evan9527  
       9 天前
    只会淘汰一种人,就是不会用 ai 的人。
    speedmancs
        14
    speedmancs  
       9 天前
    一条代码都不懂的小白会用 docker ? 别扯了。
    speedmancs
        15
    speedmancs  
       9 天前   ❤️ 1
    真正不懂代码的小白,是连打开 terminal 都会头晕的人,更不用说 docker 了
    Tink
        16
    Tink  
       9 天前
    小白不会知道还有 gpt 这种东西
    kebamt
        17
    kebamt  
       9 天前 via Android
    有请 GPT 选手闪亮登场🤓
    kebamt
        18
    kebamt  
       9 天前 via Android
    不过不丢人,但是 AI 还有很多局限性
    walterdarrell063
        19
    walterdarrell063  
       8 天前
    可白嫖 cursor.
    慈鿋先付了
    BestVPS
        20
    BestVPS  
    OP
       8 天前
    @iorilu
    @giter
    @XTTX
    不可以名取人
    proxytoworld
        21
    proxytoworld  
       8 天前
    @speedmancs
    你第一次写 hellworld 出来的黑框你会头晕?
    GeekGao
        22
    GeekGao  
       8 天前
    很讨厌 affman 的这种哗众取宠的引流手段。
    BestVPS
        23
    BestVPS  
    OP
       8 天前 via iPhone
    @GeekGao 发个历程就能被定义为哗众取宠引流?现实生活中又不是写代码的,和程序员工作不沾边,写个历程发表下写代码的感受都能被定义为引流,只能说大佬心里有什么,看什么像什么。
    tonytonychopper
        24
    tonytonychopper  
       8 天前
    太颠覆了
    cnbatch
        25
    cnbatch  
       8 天前
    目前的 AI 用来生成 OP 这类简单任务能应付,稍微复杂点、比较新鲜或者没那么热门的,AI 直接错给你看

    例如,问 ChatGPT:
    std::move_only_function 是哪个 C++标准的?

    它会回答是 C++20 。然而正确答案是 C++23 。

    如果依赖 ChatGPT 来写 C++20 标准的代码,很容易越写越翻车。


    再一个例子,问 ChatGPT:
    var theName = "hello"u8; 这段 C# 代码的 u8 是什么意思?在哪个 C# 版本可以用?
    或者
    var theName = "hello"u8; What does 'u8' mean? Which C# version supports it?

    它会乱答一通,说 C# 没有这种用法。


    如果进一步提问:
    var theName = "hello"u8; 这段 C# 代码的 u8 后缀是什么?在哪个 C# 版本可以用?

    那么它才有可能给出正确答案。
    (小提示:u8 后缀是 C# 11 引入的)

    如果想让 ChatGPT 帮忙重构代码,同样不能无脑相信,提问时的提示词必须多次更换,要不然同样越写越翻车。
    encounter2017
        26
    encounter2017  
       7 天前
    @cnbatch 你说的这两个问题我用 gpt 4o 版本验证了下都答对了:
    Q: std::move_only_function 是哪个 C++标准的?

    A: std::move_only_function 是 C++23 标准新增的功能。

    它是 std::function 的一种变体,专门用于只允许移动而不允许复制的可调用对象。std::move_only_function 提供了更高效的语义,特别适合需要独占所有权的场景(例如异步任务调度、回调管理等)。

    这个类型定义在头文件 <functional> 中。


    Q: var theName = "hello"u8; 这段 C# 代码的 u8 是什么意思?在哪个 C# 版本可以用?

    A:
    在 C# 中,u8 是 UTF-8 字符串文字后缀,用于表示一个字符串文字是 UTF-8 格式的字节数组。这一特性是在 C# 11 中引入的。

    特性解释
    csharp
    复制代码
    var theName = "hello"u8;
    "hello"u8:

    表示将字符串 "hello" 编码为 UTF-8 字节数组。
    结果类型为 ReadOnlySpan<byte>,它是一个不可修改的字节序列。
    行为:

    这段代码的作用是将字符串 "hello" 转换为 UTF-8 编码格式的字节序列。
    例如,"hello"u8 会被编译为字节数组 { 0x68, 0x65, 0x6C, 0x6C, 0x6F }。
    C# 版本
    u8 后缀是在 C# 11 中引入的,因此你需要确保以下环境支持:

    语言版本:C# 11 或更高。
    .NET SDK:需要 .NET 7 或更高版本支持。
    应用示例
    csharp
    复制代码
    using System;

    class Program
    {
    static void Main()
    {
    var theName = "hello"u8;

    Console.WriteLine($"Type: {theName.GetType()}");
    Console.WriteLine($"Bytes: {string.Join(", ", theName.ToArray())}");
    }
    }
    输出:

    vbnet
    复制代码
    Type: System.ReadOnlySpan`1[System.Byte]
    Bytes: 104, 101, 108, 108, 111
    适用场景
    高效处理 UTF-8 数据:
    避免字符串在内存中多次编码转换。
    与低级字节处理结合:
    更容易与 Span<byte> 或 Memory<byte> 结合使用。
    序列化和网络通信:
    适合在序列化或处理网络协议时直接操作字节。
    注意事项
    只读:

    u8 后缀生成的是 ReadOnlySpan<byte>,不能直接修改。
    如果需要可修改的字节数组,可以使用 .ToArray() 方法转换为 byte[]。
    C# 版本要求:

    如果代码未在支持 C# 11 的环境中运行,会导致编译错误。确保项目文件启用了 C# 11:
    xml
    复制代码
    <LangVersion>11</LangVersion>
    通过 u8 后缀,可以简化对 UTF-8 编码数据的处理,同时利用 ReadOnlySpan<byte> 的性能优势。
    Fastmail
        27
    Fastmail  
       7 天前
    错误的,ai 不能背锅,程序员可以
    cnbatch
        28
    cnbatch  
       7 天前
    std::move_only_function 这段,我昨天无意中告诉过它是 C++23 标准,似乎它记住了。

    不过第二条提问倒是依然乱答,摘抄开头一段:
    “在 C# 中,u8 并不是一个标准的数据类型,因此这段代码中的 u8 看起来是一个语法错误,或者是误用了其他语言中的数据类型符号。”
    不清楚是不是地区或椅子的原因,以至于我访问时 OpenAI 给出降智版
    cnbatch
        29
    cnbatch  
       7 天前
    对于没那么热门的,ChatGPT 直接答错,例如:
    在 FreeBSD14 的/boot/loader.conf 设置了 net.fibs=3 ,如何把 FIB 0 (主路由表)的条目全部复制到其他 FIB 当中?

    它会给出一段脚本,像是这样的:
    for route in $(netstat -rn -f inet | awk 'NR>2 {print $1}'); do
    route -F 1 add $route
    done

    然而这段脚本是错的,FreeBSD 的 route 命令并不存在“-F”这种参数。
    GiggleSmile
        30
    GiggleSmile  
       7 天前
    没必要焦虑,有生之年是见不到 ai 替代人类。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1235 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:55 · PVG 01:55 · LAX 09:55 · JFK 12:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.