网站营销方案模板,长沙网站排名优化报价,信阳市住房建设局网站,大连高新园区地图之前用AI协助开发了一个Vue模块#xff0c;感觉意犹未尽#xff0c;所以决定再让AI 来协助我做一个todo list。 todo list对我来说真是一个刚需#xff0c;从我决定做一件事情#xff0c;到这件事情做完#xff0c;我的todo list不但不会减少#xff0c;反而会增加。
回…之前用AI协助开发了一个Vue模块感觉意犹未尽所以决定再让AI 来协助我做一个todo list。 todo list对我来说真是一个刚需从我决定做一件事情到这件事情做完我的todo list不但不会减少反而会增加。
回来说说应用AI这件事情。我之前使用AI的量和现在比相对要少很多其中一个原因是我之前对那些技术细节很“熟悉”使用AI帮忙写代码总是有隔靴搔痒的感觉。我对Vue的了解细节相对于React要少一些因此在应用AI上感觉思想上的排斥要少很多。
这次我打算在Rust上继续尝试使用AI从1月29日开始到2月7日完成todo list的开发工作。 为什么是这段时间因为这段时间是旅行时间白天都在外拍照打卡只有晚上才有时间来写代码我要的就是要尽量压缩自己写代码的时间更多让AI来下场写代码。
今天是2月7日这个todo list应用的开发工作基本完成此刻我正在珠海金湾机场写这篇博客。 todo list的应用gitee 地址https://gitee.com/hanshu_alan/todolist/tags
开始正文来谈谈我的感受。首先我发现我是比较适合这么干的。回想10多年前我做tech lead时我会将项目拆分成多个尽量简单的小任务将这些小任务分配给组内的开发者。我记得我在做项目任务拆分时不只是简单的拆分还会考虑设计模式并且还会经常先完成一些框架代码。因此从接到项目到项目开始的这一小段时间里我会非常忙碌。当任务分配出去之后我又会感到轻松许多。
这段经历和我现在使用AI的体验特别像最显著的区别是之前我是和人沟通而现在我是同AI沟通。
在我让AI来帮忙写代码时我也在体验另外一个大家的关注的问题即AI能否代替程序员对于这个问题的内省与体验我目前的答案是“能”和”不能“。 说“能”我想不用我说很早就有人用AI生成正则表达式的相关功能代码从这个角度来说AI 已经替代了程序员的工作了。我也晒晒我在开发todo list使用到的prompt
帮我创建一个Rust的yew组件这个组件包含一个多行文本框和一个按钮。按钮上显示的文本是“添加”点击按钮时会出发on_add_todo事件on_add_todo事件传递的参数时文本框的当前值。在文本框上当用户按下ctrlenter组合健时也要触法on_add_todo事件。
这个组件也包含一个属性这个属性的值用于多行文本框的value值使用Rust的sqlx框架基于下面这个实体的定义以owner_key为条件返回所有满足该条件的实体实现的代码中要使用sqlx::query_as::_, TodoItem
#[derive(Debug, PartialEq)]
pub struct TodoItem {id: String,owner_key: String,title: String,description: OptionString,finished: bool,created_at: DateTimeUtc,updated_at: DateTimeUtc,
}这两个prompt比较有代表性一个是前端的一个是后端的。AI都能生成代码或者从一个程序员的角度来说AI都能把代码写出来。因此说AI“能”代替程序员是有道理的甚至可以激进一点说AI已经能代替程序员了。
但是这些代码并不能直接使用就拿使用的yew框架来说。我现在使用的是yew 0.21版本。而AI生成的代码应该是基于0.18的yew的版本。也就是说AI帮我生成的前端代码几乎不能直接使用还要我自己翻译一遍。另外当我需要把代码组装时这些地方还是需要我自己亲自下场。这倒不是说AI不能干而是这里的业务逻辑比较复杂它本身就是一个黑洞需要开发者本身去探索因此自然也不知道该如何告诉AI了。因此 从这个角度来说AI是代替不了程序员的。嗯不对可能不能再用“程序员”这个称呼我觉得“开发者”或者“创造者”更合适。
写到这里我感觉到了一个更加宏伟的蓝图。
如果你稍微留意一下todo list v0.0.3的代码你会发现它是比较臃肿的因为这个版本只是通过组装AI写出来的代码完成了功能的开发。它的可维护性是比较低的还需要继续迭代。而这个迭代的需求来源于我们对未来的探索。
最后我说明一下文中提到的“AI”我使用的是“文心一言”和“ChatGPT-3”。
欢迎大家留言区交流。
2024.2.7 珠海.金湾机场 这篇文章收录我的Rust-实战专栏。请关注我不要错过更新哟。