找回密码
 立即注册
查看: 797|回复: 0

关于AI编程的一些思考

[复制链接]

1

主题

0

回帖

17

积分

新手上路

积分
17
发表于 2023-7-20 20:07:18 | 显示全部楼层 |阅读模式
比来AIGC(人工智能生成内容)爆火,几乎每个人都能谈两句ChatGPT如何如何,AI如何如何,哪怕一点都没有接触过的,看上两篇文章,刷两条短视频也能信口说的头头是道,各个自媒体传布着AI的新闻,此外一些人在教其它人如何使用AI,卖着毫无营养的AI的课程,几乎各个行业都涌现出一些讲AI的讲师,教人如何用AI赚钱,制造焦虑。仿佛随着ChatGPT的爆火,国内AI从业者数量骤增,国内的AI程度一下子达到前所未有的高度,人人都变成了AI懂王,迎来的AI的狂欢。正所谓GPT与Midjourney齐飞,AIGC共韭菜一色。
这一现象我第一时间联想到的是《乌合之众》中的两句话 “人一到群体中,智商就严重降低,为了获得认同,个体愿意丢弃长短,用智商去换取那份让人备感安全的归属感。”“大众没有分辩能力,因而无法判断事情的真伪,许多经不起推敲的不雅概念,都能垂手可得的得到遍及附和。”
回到本文主题,“我这个需求考虑过用AI写代码吗?AI能代码法式员写代码吗?是不是5个人的活4个人就能干掉?”这将成为每个技术打点者都将遇到的问题,也是每个技术从业者都要思考的问题。
在回答这问题前,我们先分析下,法式员在完成工作时,天天都在干些什么?
提起法式员,很多人顿时联想到哐哐哐敲着键盘996加班,电脑屏幕上代码刷刷的出来,但实际真的如此吗?
正所谓外行看热闹,内行看门道。
你以为的编程:
任何东西都可以通过代码来实现,编程可以为各个岗位效率的巨大提升,只要把要做的东西通过个把小时说清楚,剩下90%的时间法式员敲代码实现。
实际上的编程:
30%时间需求分析和技术设计,30%时间写代码开发,20%时间变换调整,20%时间测试联调。

就我使用几百个小时AI东西的体验来说说我对AI编程现阶段的认知。
首先,我认为目前AI来编程有三种方式

  •   1.  AI编程东西,代码编译器插件,集成在JetBrains IDEA,
    VSCode中使用。如目前最火爆的Github Copilot,输入文字或者部门代码,自动联想补全代码内容。
  •   2.  AI对话聊天,通过对话描述需求,生成代码,如使用ChatGPT通过对话输入需求,由其答复,然后由使用者将内容输出到原代码框架中。
  •   3.  AI无代码软件,输入需求自动生成页面代码。
我针对着三种方式展开说说
1.  AI编程东西其实早就存在了,就使用来说,我认为其代码补全的功能是有用的,比如说你要定义了一个变量,方式,或者注释,它能够帮你按照上下文,自动补全完整的变量名、方式名,输入几个字就能把完整的注释内容补全。但是其按照需求描述生成代码的功能,就使用体验来说我认为是远不如ChatGPT的,几乎90%以上通过需求描述是无法直接拿到答案的,或者答案底子就是不兼容的,无法在当前框架使用。
我看了网上很多写代码的例子,比如你让它给你写个冒泡排序,然儿女码就刷刷的出来了,你让它给你写个什么数据库连接池的方式,代码就刷刷的出来了,关键这些东西我需要让它来给我写吗?公共的东西早就在各种代码框架中封装好,一个JAVA后端的代码框架可能依赖上百个包,通用的功能早就实现了封装,东西类我也不用它给我提供,我需要使用的是它在当前的框架中为我实现客户的定制化需求,其它的我底子不需要它来提供,就这一点来说我认为这些代码生成的插件距离能够真正的人工智能还有很大的差距,目前顶多就是把很多代码仓库喂给它了,对于代码库中没有的功能,它无法给出正确的提示。
2.  AI对话聊天,也就是使用ChatGPT类的对话聊天东西,就我的使用体验来说,还是能够提供一些辅佐的,在需求分析方面,能够给出一些大纲,包罗一些技术的标的目的,代码bug排查的提示,以及生成一些伪代码可以使用。但是每一项也还存在着缺陷,比如

  •   第一,  准确性的问题,它会编一些底子不存在的包出来,你在使用的时候发现底子就调用不了,它就是按照一些原有的代码格式套进来,就像参考文献一样,它会编写一些压根不存在的文献出来。
  •   第二,  编写代码全局性的考量不够,我们凡是是在特定的条件下来进行编程的,比如前端使用Vue、Nodejs、Express、ElementUI、Pinia等等,后端使用SpringbBoot,Shiro,Jwt,Mybatis等等。前后端城市使用很多框架,实际的依赖包非常之多,而这些包和包之间按照小版本的分歧还会有兼容性的问题,也就是说它给出的代码在你的框架中可能会因为兼容性的原因无法使用,或者一个完整的功能它只能考虑到当前这个功能而无法与其他功能串联起来,导致即便在当前功能勉强能用,到其他的功能上就会一直报错。
  •   第三,  给出的代码有bug,这个斗劲烦,比如它有些代码躲藏着不测的bug,而且它也没有做异常措置,这会导致你的应用直接崩掉,又比如它给出一些如果你本身都不熟悉脚本,你跑到你的处事器上面或者数据跑了一下,直接导致你的环境崩溃,而且难以恢复。
  •   第四,  没法子给出完整的教程,举个简单的例子,你要到你的Linux处事器上面去搭建Mysql,Nginx亦或者其他的应用,国内的博客站上面城市有完整的教程,而且会贴心的附上图,包罗可能发生的问题以及措置方式,这里我并不是说ChatGPT不能来实现,但是你要通过多次对话来完成,而且如果你的提示词功底不到位,你可能要墨迹很长的时间来完成此项工作,而且尤其是在傍边如果你问的标的目的错了,可能会一直陷入误区,没错,ChatGPT是无所不知的,包罗它不知道的东西它也知道,你懂的,它嘴硬的时候嘴真的硬。
3.  AI无代码软件,我比来经常能看到一个人在框体里面描述一行需求,然儿女码就刷刷的出来了,然后页面就哗哗的改了,看似很不错,其实存在诸多问题,早在AI无代码出来之前其实低代码框架和无代码框架早就出来了,而且已经有必然的成熟度,AI低代码或无代码的这种形式我有想过实现,就是法式员不用写具体的代码了,或者全民法式员即产物经理、甲方、客户即法式员,提出需求的人直接把需求输入到法式中页面刷刷的就出来了,这多好,可我转念一想,客户什么时候能把需求说清楚呢?给AI低代码框架一句话,我想要一个WMS系统,它能给你生成你想要的WMS吗?不能实现的话,你需要多少次对话才能给你生成一个你想要的?
  举个例子,最简单的一个按钮,假如我此刻想要一个按钮,(伪需求)要求按钮位于页面的xx位置,默认布景是绿色,圆边框,白色字体,字体用xx,字体大小xx号,字是鼠标移动上去后绿色变为白色,字体变成黑色,点击后触发模态框,模态框位于屏幕中间…… 请问甲方能提出来这么细致的需求吗?即便能提出这样的需求,那整个项目的需求描述得多少内容?到时候文字比代码都多,法式员有写这些东西的功夫,为什么不本身来写代码实现?客户有时候想要一个产物不就是想省事吗,不就是想让法式员出设计出解决方案吗?又比如AI生成的功能想改了怎么办,能改的动吗?部署怎么办?高并发如何措置?一个黑盒子的AI无代码软件出来,介绍说是描述几段文字就能使用,你敢用吗?
总结一下
第一,就AI编程东西来说,目前它能够辅佐法式员在代码开发中最不花费时间的敲代码的‘敲’提供辅佐,搬砖的‘搬’提供一些加速,但是对于花费最多时间的需求、设计、兼容到全局的技术框架中的部门提供的辅佐不大,比如我写这篇文章,我最大的工作量是码字的吗?实际影响输出的是我脑子里面的东西,我查阅资料,我思考的过程,而不是我敲键盘有多快。
第二,就ChatGPT对话应用来说,目前它能够帮法式员在开发过程中辅佐梳理思路,提供部门代码的实现,但在很多方面还存在着缺陷,在你不知道的范围,它给出的答复你必然要在搜索引擎那里在问一遍,确保准确性,要谨慎的使用。
  第三,AI的无代码软件目前还不成熟,不建议使用,至少在企业级的应用方面不建议使用,简单的需求有简单的框架来实现,此刻各个范围几乎都有相关的SAAS产物,即便是生成最简单的网站介绍页面我也建议用市面上成熟的应用框架,扩展性和可维护性也是很重要的。
  总之,AI在成长,时代在进步,AI对编程能够带来必然的提升但有限,对于AIGC的使用每个人都是小学生,如何更好的提问,在这个范围每个人都是零起点,要拥抱变化,但也不要吠形吠声,在自媒体的过度宣传下就信以为真,要有本身的思考,要有本身的体验。
  最后,借用《否决本本主义》的一句话,“你对于某个问题没有查询拜访,就遏制你对于某个问题的发言权。这不太野蛮了吗?一点也不野蛮,你对阿谁问题的现实情况和历史情况既然没有查询拜访,不知底里,对于阿谁问题的发言便必然是瞎说一顿。瞎说一顿之不能解决问题是大师明了的,那末,遏制你的发言权有什么不公道呢?”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|T9AI - 深度人工智能平台 ( 沪ICP备2023010006号 )

GMT+8, 2024-12-22 11:51 , Processed in 0.056764 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表