AI能否真的取代程序员?

一个Java程序员从接到需求到最终开发完功能的流程大致如下

  1. 首先是理解原型图,设计表结构
  2. 根据表结构编写增删改查代码
  3. 与前端联调,完成功能开发

那么以上步骤AI能不能完成呢?
让我们试一下:
第一步,使用 AI助手 解析流程图,并帮我们设计出表结构
这是我找的一张原型图:
在这里插入图片描述

AI解析并返回的内容如下:

根据您提供的信息,我们可以设计以下表结构:

用户表 (users)

user_id (主键)
username
password (加密后的密码)
email
创建时间 (created_at)
更新时间 (updated_at)

餐厅表 (restaurants)

restaurant_id (主键)
restaurant_name
address
创建时间 (created_at)
更新时间 (updated_at)

菜品表 (dishes)

dish_id (主键)
dish_name
price
description
创建时间 (created_at)
更新时间 (updated_at)

订单表 (orders)

order_id (主键)
user_id (外键,关联到用户表)
restaurant_id (外键,关联到餐厅表)
order_status (状态,例如:待处理、进行中、已完成等)
创建时间 (created_at)
更新时间 (updated_at)

订单明细表 (order_details)

detail_id (主键)
order_id (外键,关联到订单表)
dish_id (外键,关联到菜品表)
quantity (数量)
subtotal_price (子总价)
创建时间 (created_at)
更新时间 (updated_at)

评论表 (comments)

comment_id (主键)
user_id (外键,关联到用户表)
order_id (外键,关联到订单表)
content (评论内容)
创建时间 (created_at)
更新时间 (updated_at)

以下是您所需的建表SQL语句:

CREATE TABLE `users` (`user_id` INT(11) NOT NULL AUTO_INCREMENT,`username` VARCHAR(50) NOT NULL,`password` VARCHAR(255) NOT NULL,`email` VARCHAR(100),`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`user_id`)
);CREATE TABLE `restaurants` (`restaurant_id` INT(11) NOT NULL AUTO_INCREMENT,`restaurant_name` VARCHAR(100) NOT NULL,`address` VARCHAR(255),`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`restaurant_id`)
);CREATE TABLE `dishes` (`dish_id` INT(11) NOT NULL AUTO_INCREMENT,`dish_name` VARCHAR(100) NOT NULL,`price` DECIMAL(10, 2) NOT NULL,`description` TEXT,`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`dish_id`)
);CREATE TABLE `orders` (`order_id` INT(11) NOT NULL AUTO_INCREMENT,`user_id` INT(11),`restaurant_id` INT(11),`order_status` VARCHAR(50),`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`),FOREIGN KEY (`restaurant_id`) REFERENCES `restaurants`(`restaurant_id`),PRIMARY KEY (`order_id`)
);CREATE TABLE `order_details` (`detail_id` INT(11) NOT NULL AUTO_INCREMENT,`order_id` INT(11),`dish_id` INT(11),`quantity` INT(4) NOT NULL,`subtotal_price` DECIMAL(10, 2) NOT NULL,`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,FOREIGN KEY (`order_id`) REFERENCES `orders`(`order_id`),FOREIGN KEY (`dish_id`) REFERENCES `dishes`(`dish_id`),PRIMARY KEY (`detail_id`)
);CREATE TABLE `comments` (`comment_id` INT(11) NOT NULL AUTO_INCREMENT,`user_id` INT(11),`order_id` INT(11),`content` TEXT NOT NULL,`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`),FOREIGN KEY (`order_id`) REFERENCES `orders(`order_id`),PRIMARY KEY (`comment_id`)
);

拿到sql语句之后,我们可以通过Tool4j在线代码生成器来生成增删改查代码
在这里插入图片描述
至此后端相关表的增删改查代码就已经生成结束了,当然我们还可以用 在线AI助手 基于4.0模型来生成前端代码。

以下是AI返回的内容:
在这里插入图片描述

完整内容:

创建一个基于Vue的移动端订餐系统包含多个步骤,以下是一些概述及代码片段的例子。请注意,这些代码需要在Vue项目中使用,并且可能需要根据您项目的配置进行调整。我们将使用Vue CLI创建一个新项目,并添加所需页面和组件。

假设你已经通过Vue CLI设置了一个 Vue 项目,下面是一些页面和组件的概念性示例。

  1. 安装依赖:首先你可能需要一些相关的库,比如vue-router用于页面路由,vuex用于状态管理,axios用于处理HTTP请求等。
npm install vue-router vuex axios
  1. 设置路由: 在 src/router/index.js 文件中添加菜品选择页面和下单付款页面的路由。
import Vue from 'vue';
import Router from 'vue-router';
import MenuSelect from '@/components/MenuSelect';
import OrderPayment from '@/components/OrderPayment';Vue.use(Router);export default new Router({routes: [{path: '/menu',name: 'MenuSelect',component: MenuSelect},{path: '/order',name: 'OrderPayment',component: OrderPayment}]
});
  1. 创建菜品选择组件: 在 src/components/MenuSelect.vue 创建菜品选择页面。
<template><div class="menu-select"><h1>选取您的菜品</h1><ul><li v-for="item in menuItems" :key="item.id"><div>{{ item.name }} - {{ item.price }}</div><button @click="addToCart(item)">添加</button></li></ul><router-link to="/order">下单</router-link></div>
</template><script>
export default {name: 'MenuSelect',data() {return {menuItems: [// 假设菜单数据{ id: 1, name: '宫保鸡丁', price: 38 },{ id: 2, name: '鱼香肉丝', price: 32 },// 更多菜品...]};},methods: {addToCart(item) {// 添加到购物车逻辑this.$store.commit('addToCart', item);}}
};
</script>
  1. 创建下单付款组件: 在 src/components/OrderPayment.vue 创建下单付款页面。
<template><div class="order-payment"><h1>订单支付</h1><div v-for="item in cart" :key="item.id"><div>{{ item.name }} - {{ item.price }} x {{ item.quantity }}</div></div><div>总计:{{ totalPrice }}</div><button @click="pay">支付</button></div>
</template><script>
export default {name: 'OrderPayment',computed: {cart() {// 这里是从 Vuex 获取购物车内容return this.$store.state.cart;},totalPrice() {// 计算总价return this.cart.reduce((acc, item) => acc + item.price * item.quantity, 0);}},methods: {pay() {// 模拟支付逻辑alert('支付成功!');}}
};
</script>
  1. 设置Vuex状态管理: 在 src/store/index.js 文件中,你需要设置购物车的状态管理。
import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);export default new Vuex.Store({state: {cart: []},mutations: {addToCart(state, item) {// 添加到购物车逻辑,实际情况可能更复杂const cartItem = state.cart.find(i => i.id === item.id);if (cartItem) {cartItem.quantity++;} else {state.cart.push({ ...item, quantity: 1 });}}}
});
  1. 样式: 根据需要添加样式到各个组件。

请注意,以上代码非常基础且理论性的,在实际项目中,你需要添加更多的特性和细节,例如表单验证、支付集成、用户鉴权、响应性设计、状态管理的细分和模块化、API调用等。此外,你也需要考虑前后端数据交互和错误处理。

=========================================================
综上,我们可以看到,结合【Tool4j在线工具】,AI确实能够在很大程度上减轻我们的工作,但是暂时AI还没有完全替代程序员的能力,但是再过十年呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之状态模式【行为型模式】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某…

postman环境变量全局变量设置

postman环境变量、全局变量设置 在公司中&#xff0c;一般会存在开发环境、测试环境、线上环境等&#xff0c;如果需要在不 同的环境下切换做接口测试&#xff0c;显然我们需要把所有接口的域名进行修改&#xff0c;如果接 口测试用例较多&#xff0c;那么修改会非常费力&…

Redis基础系列-哨兵模式

Redis基础系列-哨兵模式 文章目录 Redis基础系列-哨兵模式1. 引言2. 什么是哨兵模式&#xff1f;3. 哨兵模式的配置4. 哨兵模式的启动和验证4.1 主master宕机&#xff0c;看会出现什么问题4.2 重启6379主机 5. 哨兵模式的工作原理和选举原理5.1. SDown主观下线&#xff08;Subj…

基于Python实现地标景点识别

目录 前言简介地标景点识别的背景 地标景点识别的原理卷积神经网络&#xff08;CNN&#xff09;的基本原理地标景点识别的工作流程 使用Python实现地标景点识别的步骤数据收集数据预处理构建卷积神经网络模型模型训练 参考文献 前言 简介 地标景点识别是一种基于计算机视觉技术…

Qt SDL2播放Wav音频

这里介绍两种方法来实现Qt播放Wav音频数据。 方法一&#xff1a;使用QAudioOutput pro文件中加入multimedia模块。 #include <QApplication> #include <QFile> #include <QAudioFormat> #include <QAudioOutput>int main(int argc, char *argv[]) {…

欧姆龙plc学习NJ系列CJ系列资料Sysmac Studio编程软件视频教程

Sysmac Studio是欧姆龙公司开发的一款集成开发环境&#xff08;IDE&#xff09;&#xff0c;用于编程和配置欧姆龙PLC&#xff08;可编程逻辑控制器&#xff09;和其他自动化设备。Sysmac Studio支持以下型号的欧姆龙PLC&#xff1a;1. NJ系列&#xff1a;NJ501、NJ301、NJ101、…

【算法】算法(模拟、指针等)解决字符串类题目(C++)

文章目录 1. 前言2. 解决 字符串类算法题14.最长公共前缀5.最长回文子串67.二进制求和43.字符串相乘 1. 前言 字符串题目有很多种&#xff0c;这里筛选几个考察模拟、双指针等的题目&#xff0c;并用相关算法解决。 2. 解决 字符串类算法题 14.最长公共前缀 思路 题意分析&…

【固态钽表面贴装电容】 MIL-PRF-55365 美军标

钽电解电容器是体积效率、电气参数稳定、高可靠性和长使用寿命是主要考虑因素的应用的首选。 钽/氧化钽/二氧化锰系统的稳定性和对高温的耐受性使固体钽消泡器成为当今表面贴装组装技术的合适选择。 钽不是纯净状态的。 相反&#xff0c;它通常存在于许多氧化物矿物中&#xf…

编曲混音FL Studio21.2对电脑有什么配置要求

FL Studio 21是一款非常流行的音乐制作软件&#xff0c;它可以帮助音乐人和制作人创作出高质量的音乐作品。然而&#xff0c;为了保证软件的稳定性和流畅性&#xff0c;用户需要知道FL Studio 21对电脑的配置要求。本文将介绍FL Studio 21的配置要求&#xff0c;以帮助用户选择…

SQL基础知识4

一、内置函数 1、数值函数 1.1基本函数 1.2时间函数 二、存储过程 1、概述 2、分类 3、创建 4、总结 多了很多传递参数 三、存储函数 说明定义 例子 案例1 方法一 方法二 案例2 例子3 对比 复习

【贪心】受标签影响的最大值

/** 贪心&#xff1a;要想使子集分数最大&#xff0c;应选取values中较大的值。* 思路&#xff1a;使用一个哈希表来记录每个标签使用的次数&#xff0c;相同标签使其不超过useLimit限制* 对values进行降序排序&#xff0c;并对其进行遍历只要标签使用次数不超过限制就…

住宅IP和数据中心IP有何区别?为什么住宅IP更适合爬虫采集?

随着互联网的普及和发展&#xff0c;IP地址作为网络通信中的重要标识&#xff0c;其类型和应用场景也在不断变化。其中&#xff0c;住宅IP和数据中心IP是两种常见的IP类型&#xff0c;它们在某些方面存在明显的区别。本文将探讨这两种IP类型的区别以及为什么住宅IP更适合爬虫采…

python GUI开发:实现主屏幕控制副屏显示

实现效果 实现代码 import tkinter as tk import threading import pygetwindow as gw import subprocess import cv2 import pygame import time import screeninfodef func1():print("影音播放")open_child_window()def func5():print("视频播放")video…

数据库系列:InnoDB下实现高并发控制

1 介绍 并发控制是为了防止多用户并发使用数据库时造成数据错误和程序运行错误&#xff0c;保证数据的完整性。当多个事务并发地存取数据库时&#xff0c;就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据&#xff0c;破坏数据库…

web前端(第二次作业)

1、计算用户指定的数值内的奇数和。例如用户输入的是 10&#xff0c;则计算 1 3 5 7 9 的和 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script>var nprompt("请输入数值&#xff1a;&…

基于开源组件自主开发工作流引擎系统

目前基于Java语言开发的主流开源工作流引擎有osworkflow、jbpm、activiti、flowable、camunda。其中osworkflow、jbpm技术较老已经过时&#xff0c;activiti包括activiti5、activiti6、activiti7三个版本&#xff0c;flowable分开源版和商业版&#xff0c;camunda包括camunda7和…

ETCD 未授权访问实战案例

1、发现 etcd 未授权。 https://xxx200:2379/v2/keys 2、尝试在etcd里查询管理员的token&#xff0c;然后使用该token配合kubectl指令接管集群。 proxychains ./etcdctl --insecure-transportfalse --insecure-skip-tls-verify --endpointshttps://xxx0:2379/ get / --prefix…

12月威胁态势 | 0day占比超82%!两大勒索家族“均分天下”

近日&#xff0c;亚信安全正式发布《亚信安全2023年12月威胁态势报告》&#xff08;以下简称“报告”&#xff09;报告显示&#xff0c;12月份新增安全漏洞1511个&#xff0c; APT 攻防较量日趋复杂&#xff0c;成为网络空间与现实地缘政治融汇交织新的风险点&#xff1b;监测发…

精品量化公式——“主力拉升”,信号出现股价随时准备拉升

► 日线表现 代码评估 技术指标代码评估&#xff1a; 计算变量: HSL1:5;&#xff1a;设置了一个常数变量。 VAR0 到 VAR6&#xff1a;这些变量通过复杂的计算公式来定义&#xff0c;通常涉及收盘价、最高价、最低价、开盘价以及它们的历史数据。 技术指标和信号: 线: VAR6 …

使用Dockerfile构建镜像的详细指南

目录 前言 一、什么是 Dockerfile 二、使用 Dockerfile 定制镜像 开始构建镜像 上下文路径 三、指令详解 四、构建阿里云仓库 前言 Docker是一种流行的容器化平台&#xff0c;可以帮助开发人员和运维团队更轻松地构建、发布和运行应用程序。在Docker中&#xff0c;镜像是…