腾讯云云开发 Copilot 深度探索与实战分享
个人主页:♡喜欢做梦
欢迎 👍点赞 ➕关注 ❤️收藏 💬评论
目录
一、引言
二、产品介绍
三、产品体验过程
四、整体总结
五、给开发者的复用建议
六、对 AI 辅助开发的前景展望
一、引言
在当今数字化转型加速的时代,开发效率成为了企业和开发者追求的关键目标之一。腾讯云云开发 Copilot 的出现,为开发者们带来了新的希望和可能性,它将人工智能技术深度融入到开发流程中,旨在帮助开发者更快速、更高效地构建高质量的应用程序。本文将详细分享我对腾讯云云开发 Copilot 的使用体验,包括其功能介绍、实际应用案例、遇到的问题与解决方法,以及对其未来发展的展望和给其他开发者的建议。
二、产品介绍
腾讯云云开发 Copilot 是一款基于人工智能技术的开发辅助工具,它集成在腾讯云的开发环境中,为开发者提供了一系列强大的功能,主要包括以下几个方面:
- 低代码应用生成:
通过自然语言描述应用的需求和功能,Copilot 能够自动生成相应的低代码应用框架。这意味着开发者无需从头开始编写大量的基础代码,只需专注于业务逻辑的实现和个性化定制,大大缩短了开发周期。例如,开发者可以简单描述“创建一个具有用户注册、登录、信息展示和数据存储功能的 Web 应用”,Copilot 就能快速生成包含前端页面、后端逻辑以及数据库配置的初步应用架构,涵盖了用户认证、数据库连接、基本页面布局等常见功能模块。
- 代码块生成:
针对特定的编程任务,Copilot 可以根据上下文和需求生成高质量的代码块。无论是常见的算法实现、数据结构操作,还是特定框架下的功能模块,如在 Spring Boot 框架中实现 RESTful API 的增删改查操作,或者在前端使用 React 实现特定的交互效果,Copilot 都能提供准确且可复用的代码片段。这些代码块不仅符合最佳实践,还能根据开发者的输入进行智能调整,为开发者节省了大量的编码时间,同时也有助于提高代码质量和规范性。
- 智能代码补全和建议:
在开发过程中,Copilot 能够实时分析代码上下文,提供智能的代码补全和优化建议。当开发者输入部分代码时,它可以预测接下来可能需要的代码片段,并给出相关的函数、变量名和逻辑结构建议,帮助开发者更快地编写代码,减少语法错误和逻辑缺陷。例如,在编写一个复杂的条件判断语句时,Copilot 可以根据已有的代码逻辑,推荐合适的条件表达式和相应的处理代码块,使开发者能够更流畅地完成编码任务。
三、产品体验过程
为了深入了解腾讯云云开发 Copilot 的实际能力,我进行了一个基于 Web 的在线商城项目的开发实践,以下是详细的体验过程:
- 项目初始化与低代码应用生成:
首先,我在腾讯云的开发环境中创建了一个新的项目,并打开了云开发 Copilot 工具。
然后,通过自然语言向 Copilot 描述了在线商城项目的基本需求:“创建一个包含用户管理、商品管理、购物车功能、订单处理和支付接口的在线商城 Web 应用,使用 MySQL 数据库存储数据,前端采用 Vue.js 框架,后端基于 Node.js 的 Express 框架搭建。”
不到一分钟,Copilot 就为我生成了一个完整的低代码应用框架,包括前端 Vue.js 项目的基本结构,包含了用户界面组件如登录注册页面、商品列表展示组件、购物车页面等,以及后端 Express 应用的基础代码,涵盖了与 MySQL 数据库的连接配置、用户认证中间件、基本的路由设置等。同时,Copilot 还自动创建了数据库表结构,包括用户表、商品表、购物车表和订单表,并生成了相应的初始数据模型定义。
- 功能开发与代码块生成:
在用户管理模块的开发中,我需要实现用户注册和登录功能,包括密码加密、验证码验证等。我向 Copilot 描述了具体需求:“在 Node.js 的 Express 应用中实现用户注册功能,对用户密码进行加密存储,并发送验证码进行邮箱验证。”Copilot 迅速生成了相应的代码块,包括使用 bcrypt 库进行密码加密的代码:
const bcrypt = require('bcrypt');
// 生成盐值
const saltRounds = 10;
bcrypt.genSalt(saltRounds, function(err, salt) {if (err) {console.error(err);return;}// 对密码进行加密bcrypt.hash(req.body.password, salt, function(err, hash) {if (err) {console.error(err);return;}// 将加密后的密码存储到数据库// 此处省略数据库存储代码});
});
以及使用第三方邮件发送库发送验证码的代码片段,我只需将其集成到我的项目中,并根据实际情况进行一些参数调整,如邮件服务器配置、验证码生成逻辑等,就快速完成了用户注册功能的核心部分。
在商品管理模块,需要实现商品的增删改查接口以及图片上传功能。对于图片上传,我向 Copilot 寻求帮助:“在 Express 应用中实现商品图片上传功能,将图片存储到云存储,并返回图片的访问 URL。”Copilot 生成了使用 multer 中间件处理文件上传,并结合腾讯云对象存储 SDK 将图片上传到云存储的代码:
const multer = require('multer');
const storage = multer.memoryStorage();
const upload = multer({ storage: storage });
// 引入腾讯云对象存储 SDK
const COS = require('cos-nodejs-sdk-v5');
// 初始化腾讯云对象存储客户端
const cos = new COS({// 此处填写腾讯云对象存储的相关配置信息
});
app.post('/upload', upload.single('image'), function(req, res) {const file = req.file;const params = {Bucket: 'your-bucket-name',Region: 'your-region',Key: 'product-images/' + file.originalname,Body: file.buffer};cos.putObject(params, function(err, data) {if (err) {console.error(err);res.status(500).send('上传失败');} else {const imageUrl = 'https://' + params.Bucket + '.cos.' + params.Region + '.myqcloud.com/' + params.Key;res.send({ imageUrl: imageUrl });}});
});
通过这些代码块,我轻松地实现了商品图片上传功能,并将其与商品信息的添加和编辑接口进行了集成,使得商品管理功能更加完善。
3. 智能代码补全与问题解决:
在开发购物车功能时,涉及到复杂的商品数量计算、库存检查以及与数据库的交互逻辑。在编写计算购物车中商品总价的函数时,我输入了部分代码:
function calculateTotalPrice(cartItems) {let totalPrice = 0;cartItems.forEach(item => {// 此处需要根据商品价格和数量计算总价
Copilot 立即给出了代码补全建议,自动填充了从数据库查询商品价格的代码,并完成了总价的计算逻辑:
function calculateTotalPrice(cartItems) {let totalPrice = 0;cartItems.forEach(async item => {const product = await Product.findById(item.productId);totalPrice += product.price * item.quantity;});return totalPrice;
}
在开发过程中,我遇到了一个问题,即当多个用户同时对同一商品进行操作时,出现了库存数量不一致的情况。我向 Copilot 描述了这个问题:“在 Node.js 应用中,多个用户并发购买同一商品时,如何保证库存数量的一致性?”Copilot 建议我使用数据库事务来确保数据的一致性,并提供了使用 Sequelize 库实现数据库事务的代码示例:
const sequelize = new Sequelize('database', 'username', 'password', {host: 'localhost',dialect: 'mysql'
});
// 定义商品模型
const Product = sequelize.define('product', {name: { type: DataTypes.STRING },stock: { type: DataTypes.INTEGER }
});
// 购买商品的事务处理函数
async function purchaseProduct(productId, quantity) {const t = await sequelize.transaction();try {const product = await Product.findByPk(productId, { transaction: t });if (product.stock < quantity) {throw new Error('库存不足');}// 更新库存数量product.stock -= quantity;await product.save({ transaction: t });await t.commit();return true;} catch (error) {await t.rollback();console.error(error);return false;}
}
通过使用这个代码示例,我成功地解决了库存一致性的问题,确保了在线商城在高并发情况下的稳定性和数据准确性。
四、整体总结
通过这次在线商城项目的开发实践,我对腾讯云云开发 Copilot 的能力有了深入的了解和体验,以下是我的整体总结:
- 1. 显著提升开发效率
低代码应用生成功能让项目的初始化阶段变得异常快速,节省了大量的时间和精力,使我能够在短时间内搭建起项目的整体框架,明确各个模块的结构和关系。
代码块生成和智能代码补全功能在具体功能实现过程中发挥了巨大作用,对于常见的编程任务,我无需从头开始编写代码,只需根据 Copilot 提供的代码片段进行适当的调整和集成,大大加快了开发速度。据统计,在使用 Copilot 后,整个项目的开发周期相比传统开发方式缩短了约 40%,尤其是在一些基础功能模块的开发上,效率提升更为明显。
- 2. 提高代码质量
Copilot 生成的代码遵循了行业最佳实践和规范,无论是代码结构、变量命名还是逻辑组织,都具有较高的可读性和可维护性。这有助于我学习和借鉴优秀的编程模式,提升自己的代码质量意识和编写水平。
在代码块生成过程中,Copilot 会考虑到代码的安全性和稳定性,例如在用户认证和数据存储方面,提供了加密、验证等相关代码,减少了因安全漏洞导致的潜在风险,使开发出的应用更加健壮可靠。
- 3. 降低技术门槛
对于一些复杂的技术实现,如与云存储的集成、数据库事务处理等,Copilot 提供了详细的代码示例和指导,使得即使是对这些技术不太熟悉的开发者也能够轻松上手,快速实现相应的功能。这降低了开发过程中的技术门槛,让更多的开发者能够参与到复杂项目的开发中,促进了团队内部的技术共享和协作。
- 4. 仍存在的不足
尽管 Copilot 在大多数常见场景下表现出色,但在处理一些特定领域的复杂业务逻辑时,仍然存在一定的局限性。例如,在涉及到一些行业特定的算法和业务规则时,生成的代码可能无法完全满足需求,需要开发者进行大量的修改和完善。
在与一些特定的第三方库或工具的集成过程中,Copilot 提供的支持还不够全面,有时需要开发者花费额外的时间去查找和解决兼容性问题,这在一定程度上影响了开发效率的进一步提升。
五、给开发者的复用建议
基于我对腾讯云云开发 Copilot 的使用经验,以下是一些给其他开发者的复用建议:
- 1. 充分利用低代码应用生成功能:
在项目启动阶段,详细描述项目的需求和功能特点,让 Copilot 生成尽可能完整的应用框架。然后,仔细研究生成的代码结构和逻辑,了解各个模块之间的关系和交互方式,这有助于快速掌握项目的整体架构,为后续的开发工作奠定坚实的基础。
根据项目的实际需求,对生成的低代码应用进行个性化定制和扩展。在定制过程中,遵循软件开发的最佳实践,保持代码的整洁性和可维护性,避免过度修改导致的代码混乱和难以维护的问题。
- 2. 善用代码块生成和智能代码补全:
在日常开发中,养成向 Copilot 寻求代码块帮助的习惯。无论是实现一个新的功能模块,还是对现有代码进行优化和扩展,都可以先向 Copilot 描述需求,获取相关的代码片段。然后,深入分析这些代码片段的实现逻辑,学习其中的编程技巧和设计思路,将其融入到自己的代码编写过程中,逐渐提高自己的编程能力。
在使用代码块时,要注意对代码的审查和验证,确保其符合项目的需求和规范。虽然 Copilot 生成的代码通常具有较高的质量,但在实际应用中,可能需要根据具体情况进行一些调整和优化,例如参数配置、错误处理等,以确保代码的稳定性和可靠性。
- 3. 积极反馈问题和建议:
在使用腾讯云云开发 Copilot 的过程中,如果遇到任何问题或发现不足之处,要及时向腾讯云官方反馈。这不仅有助于腾讯云团队改进和完善 Copilot 的功能,提高其性能和稳定性,也能够为其他开发者提供更好的使用体验。
积极参与社区讨论和分享,与其他开发者交流使用 Copilot 的心得和经验,互相学习和借鉴,共同探索如何更好地利用这一工具提高开发效率和质量。通过社区的力量,可以更快地发现和解决问题,同时也能够了解到更多关于 Copilot 的应用场景和技巧,拓宽自己的开发思路。
六、对 AI 辅助开发的前景展望
随着技术的发展,AI 辅助开发前景广阔:
- 智能化提升:
未来能更精准理解开发者意图,生成更个性化、高质量代码,全面检测代码问题并提供优化方案,提高开发效率与质量。
- 深度融合开发流程:
AI 将贯穿软件开发全生命周期,从需求分析到运维监控。与云计算、大数据融合,利用其资源与分析能力,提升开发能力与产品适应性。
- 推动低代码/无代码普及:
降低开发门槛,使非技术人员也能创建应用,催生新开发模式与生态,加速软件创新,为开发者提供更多资源与工具,推动行业发展。
总之,腾讯云云开发 Copilot 已显潜力,虽有不足,但未来可期。开发者应积极拥抱,提升自身能力,创造更好软件产品,也欢迎大家分享使用经验,共同进步。
相关文章:
腾讯云云开发 Copilot 深度探索与实战分享
个人主页:♡喜欢做梦 欢迎 👍点赞 ➕关注 ❤️收藏 💬评论 目录 一、引言 二、产品介绍 三、产品体验过程 四、整体总结 五、给开发者的复用建议 六、对 AI 辅助开发的前景展望 一、引言 在当今数字化转型加速的时代,…...
Linux应用开发————mysql数据库表
mysql数据库表操作 查看表的结构 mysql> desc / describe 表名; 或者: mysql> show create table 表名; 常见数据库引擎: innodb, myISAM... 删除表 mysql> drop tabl…...
《军工记忆》第二季播出,科技创新铸国之重器
2019年8月1日晚20点,《军工记忆》第二季在央视纪录频道(CCTV-9)播出,第一集《第一颗氢弹》首当其冲,为我们生动描绘了氢弹研制过程的艰难岁月,重现中国军工事业的漫漫长路,科技创新铸国之重器。…...
linux 无网络安装mysql
下载地址 通过网盘分享的文件:mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz 链接: https://pan.baidu.com/s/1qm48pNfGYMqBGfoqT3hxPw?pwd0012 提取码: 0012 安装 解压 tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz mv /usr/mysql-5.7.33-linux-glibc2.1…...
如何使用Python进行音频片断合成
以下是几种使用 Python 进行音频合成的方法: 使用 synthesizer 库 通过 pip install synthesizer 安装后,利用其提供的合成器类,可自定义振荡器类型,如锯齿波、方波或正弦波,并调制振幅来创造不同音色,还…...
【SH】在Ubuntu Server 24中基于Python Web应用的Flask Web开发(实现POST请求)学习笔记
文章目录 Flask开发环境搭建保持Flask运行Debug调试 路由和视图可变路由 请求和响应获取请求信息Request属性响应状态码常见状态码CookieSession 表单GET请求POST请求 Flask 在用户使用浏览器访问网页的过程中,浏览器首先会发送一个请求到服务器,服务器…...
方正畅享全媒体采编系统reportCenter.do接口SQL注入漏洞复现 [附POC]
文章目录 方正畅享全媒体采编系统reportCenter.do接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现方正畅享全媒体采编系统reportCenter.do接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利…...
SpringBoot Redis 消息队列
文章目录 参考消息队列list源码 pub/sub源码 参考 https://www.cnblogs.com/uniqueDong/p/15904837.html https://www.cnblogs.com/wzh2010/p/17205390.html https://blog.csdn.net/qq_16557637/article/details/121015736 https://developer.aliyun.com/article/1095035 http…...
Oracle 中间件 Webcenter Portal服务器环境搭建
环境信息 服务器基本信息 如下表,本次安装总共使用2台服务器,具体信息如下: Webcenter1服务器 归类 SOA服务器 Ip Address 172.xx.xx.xx.xx HostName wcc01.xxxxxx.com Alias wccprd01 Webcenter2服务器 归类 OSB服务器 Ip Addr…...
域名和服务器是什么?域名和服务器是什么关系?
在互联网的生态系统中,域名和服务器是两个至关重要的组成部分。它们共同构成了我们访问网站和使用在线服务的基础。那么域名和服务器是什么?域名和服务器是什么关系? 1、域名的概念 域名是互联网中用于标识特定地址的一种文字形式。它是用户访问网站时输入的易记…...
设计模式-观察者模式
背景 气象站需要将每天测量到的温度、湿度、气压等数据公布出去, 需要设计开放的API,以便第三方获取气象站的数据, 如果数据有更新,能及时地通知第三方 传统思路: 创建WeatherData类,有温度、湿度、气…...
获取显示器(主/副屏)友好名称(FriendlyName)
在开发涉及多显示器的应用程序时,获取显示器的友好名称(Friendly Name)是一个常见需求。本文将深入探讨GetMonitorFriendlyName 方法,了解其实现细节和工作原理。 方法签名 public static string GetMonitorFriendlyName(bool i…...
打造智慧医院挂号枢纽:SSM 与 Vue 融合的系统设计与实施
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
图漾相机-ROS1_SDK_ubuntu版本编译(新版本)
文章目录 官网编译文档链接官网SDK下载链接1、下载 Camport ROS1 SDK1.下载git2、下载链接 2、准备编译工作1、安装 catkin2、配置环境变量3. 将Camport3中的linux库文件拷贝到 user/lib目录下4、修改lunch文件制定相机(可以放在最后可以参考在线文档)**…...
ENSP实验
一.实验拓扑 二.实验需求 1.学校内部的HTTP客户端可以正常通过域名www.baidu.com访问到百度网络中的HTTP服务器 2.学校网络内部网段基于192.168.1.0/24划分,PC1可以正常访问3.3.3.0/24网段,但是PC2不允许 3.学校内部路由使用静态路由,R1和…...
10. 虚拟机VMware Workstation Pro下共享Ubuntu和Win11文件夹
本文记录当前最新版虚拟机VMware Workstation Pro(2024.12)如何在win11下共享文件,以实现Windows与Ubuntu互传文件的目的。 1. 创建共享文件夹 1.1 先关闭虚拟机的客户机,打开虚拟机设置 1.2 在虚拟机设置界面找到“选项”->“…...
Qwen文章阅读笔记
一、引言 大型语言模型(LLMs)的影响: LLMs通过将大量知识压缩进神经网络,使得它们在复杂推理和问题解决任务上展现出了惊人的能力。这些模型能够执行之前被认为只有人类才能完成的任务,尤其是在涉及创造力和专业知识…...
Docker容器命令
docker 命令说明docker pull拉取镜像docker push推送镜像到DockerRegistrydocker images查看本地镜像docker rmi删除本地镜像docker run创建并运行容器(不能重复创建)docker stop停止指定容器docker start启动指定容器docker restart重新启动容器docker…...
算法 计算大的长方形容器中,存放一排小长形容器,计算出小长形容器中最后一个元素的x坐标的位置的实现方法
1、先上个图: 2、说明 1)中间的蓝色长方形是里面的橙色长方形的容器,比如第一个图中width2width3,因为只有一个,第二个图中有二个小的长方形,也就是说width22width3,第三个图中有3个小长方形&a…...
【libuv】Fargo信令1:client发connect消息给到server
tcp 单机测试,进行模拟 (借助copilot实现) 【Fargo】28:字节序列client发connect消息给到serverserver 收到后回复ack给到客户端程序借助copilot实现。项目构建 Console依赖于Halo.dll提供的api,Halo 依赖于 Immanuel, 运行效果 遗留问题 客户端似乎么有逻辑收到ack做处理各…...
MyBatis主键自增回填功能源码分析
文章目录 难点分析KeyGenerator接口概述SelectKeyGenerator分析 解析selectKey标签执行插入后执行获取主键查询 难点分析 【1】 事务的一致性。 在插入数据并获取自增主键时,可能会涉及事务的一致性问题,尤其是在并发插入的情况下。MyBatis需要确保即使…...
Git使用教程-分支使用/合并分支提交
Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支(branch)的基本操作:二、查看分支:参考 一、分支(branch)的基本操作: git clone https://.git git status …...
TypeScript概述与安装指南
TypeScript概述与安装指南 HarmonyOS Next主要开发语言是ArkTS,ArkTS又是TS的超集,为了更好的学习HarmonyOS 和 ArkTS,从基础的TS入口介绍TS语法。 第一章:TypeScript概述与安装指南 1.1 什么是TypeScript? TypeSc…...
学技术学英文:代码中的锁:悲观锁和乐观锁
本文导读: 1. 举例说明加锁的场景: 多线程并发情况下有资源竞争的时候,如果不加锁,会出现数据错误,举例说明: 业务需求:账户余额>取款金额,才能取钱。 时间线 两人共有账户 …...
Git配置公钥步骤
GIt公钥的配置去除了git push输入账号密码的过程,简化了push流程。 1.生成SSH公钥和私钥 ssh-keygen -t rsa -b 4096 -C “your_emailexample.com” 遇到的所有选项都按回车按默认处理。获得的公钥私钥路径如下: 公钥路径 : ~/.ssh/id_rsa.pub 私钥路径…...
NSDT 3DConvert:高效实现大模型文件在线预览与转换
NSDT 3DConvert 作为一个 WebGL 展示平台,能够实现多种模型格式免费在线预览,并支持大于1GB的OBJ、STL、GLTF、点云等模型进行在线查看与交互,这在3D模型展示领域是一个相当强大的功能。 平台特点 多格式支持 NSDT 3DConvert兼容多种3D模型…...
优先队列【东北大学oj数据结构9-3】C++
优先队列 优先级队列是一种数据结构,其中保存了一组数据 S,其中每个元素都有一个键,并执行以下操作: insert(S, k):将元素k插入集合S extractMax(S):从S中取出S中key最大的元素并返回其值 创建一个程序&am…...
全志H618 Android12修改doucmentsui功能菜单项
背景: 由于当前的文件管理器在我们的产品定义当中,某些界面有改动的需求,所以需要在Android12 rom中进行定制以符合当前产品定义。 需求: 在进入File文件管理器后,查看...功能菜单时,有不需要的功能菜单,需要隐藏,如:新建窗口、不显示的文件夹、故代码分析以及客制…...
SAP PP ECN CSAP_MAT_BOM_MAINTAIN
刚开始的时候ECN总是加不上, 参考kimi给出的案例 点击链接查看和 Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cth1ipmqvl7f04qkggdg 效果 加上了 FUNCTION ZPBOM_PLM2SAP. *"------------------------------------------------------------------…...
STM32HAL I2C函数
8.5 使用IIC协议读写EEPROM 硬件方式实现 (HAL库) **HAL_I2C_Mem_Write() :这种方法可以写1个或者多个字节 ** /*** brief 以阻塞模式向指定的内存地址写入数据* param hi2c 指向 I2C_HandleTypeDef 结构体的指针,包含指定 I2C 的配置信息…...
技术转管理需要有哪些思维上的转变?
不少项目管理行业的负责人都是从技术岗产生,那么技术岗做的是代码、调试之类的内容,除了负责范围增加外,还有什么思维方面的转变呢? 1、从个体到团队 个体的技能决定着工作的完成度,而在管理工作岗位上,项…...
数据结构漫游记:初识vector
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的…...
RestTemplate远程调用、服务注册、
一.RestTemplate Spring给我们提供了一个RestTemplate的API,可以方便的实现Http请求的发送。 同步客户端执行HTTP请求,在底层HTTP客户端库(如JDK HttpURLConnection、Apache HttpComponents等)上公开一个简单的模板方法API。RestTemplate通过HTTP方法为常…...
ARP..
ARP 0 前言 真正接触到现网才发现ARP十分重要,无论是排错还是S-MLAG都需要用到ARP这个协议,以前对于ARP的理解比较混乱;所以这次对其中的主要内容做个梳理;一定要学好ARP!!! 1 ARP的概念 Ar…...
电子电器架构 ---整车区域控制器
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...
HBase、Hive、Redis 和 MongoDB的对比
1. 数据库管理 操作HBaseHiveRedisMongoDB创建数据库N/A (HBase 没有数据库概念)CREATE DATABASE db_name;N/A (Redis 没有数据库命名功能)use db_name; (自动创建)查看数据库N/ASHOW DATABASES;INFO 查看全局信息show dbs;删除数据库N/ADROP DATABASE db_name CASCADE;N/Adb.…...
前端在WebSocket中加入Token
在WebSocket通信中加入Token主要是为了实现身份验证和授权,确保只有经过验证的用户可以建立WebSocket连接。由于WebSocket API本身不支持直接在连接时设置HTTP头部,因此需要采用一些变通的方法来传递Token。以下是几种常见的方法: 1、通过UR…...
图解HTTP-HTTP报文
参考资料:图解HTTP HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行(CR LF作为换行符)数据行构成的文本。 请求报文及响…...
后端使用Spring Boot框架 + 前端VUE 实现滑动模块验证码
在现在常用的登录验证码方式有很多种,但是都不可避免被攻击,但是有很多方式可以防止被攻击,从而进行维护。 现在我就讲解一下滑动块验证码的实现方式: 这个是前端代码,我使用的是vue,在使用的时候注意&am…...
NOTEBOOK_11 汽车电子设备分享(工作经验)
汽车电子设备分享 摘要 本文主要列出汽车电子应用的一些实验设备和生产设备,部分会给予一定推荐。目录 摘要一、通用工具:二、测量与测试仪器2.1测量仪器2.2无线通讯测量仪器2.3元器件测试仪2.4安规测试仪2.5电源供应器2.6电磁兼容测试设备2.7可靠性环境…...
Spring Mvc面试题(常见)
1 Spring MVC的执行流程 用户发起请求,请求先被Servlet拦截以后,转发给SpringMVC框架SpringMVC 里面的DispatcherServlet(核心控制器) 接收到请求,并转发给HandlerMappingHandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller类(当这里有配置拦截器,会…...
javaEE--计算机是如何工作的-1
目录 一.计算机的组成: 各组件的功能: 衡量cpu好坏的标准: 二.指令(instruction) 三.操作系统Operating System 四.进程/任务process/tesk 五.进程在系统中如何管理 1.进程在系统中的管理,从两个角度来分类: 2.进程控制块PCB(Process Control Block)) 3.P…...
【Mysql】函数有哪些
mysql函数有哪些? MySQL 提供了许多内置函数,用于执行各种操作,包括字符串处理、日期时间操作、数学计算、数据转换等。以下是一些常用的 MySQL 函数分类及其示例: 字符串函数 CONCAT(str1, str2, ...):将多个字符串…...
「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
本篇将带你实现一个评分统计工具,用户可以对多个选项进行评分。应用会实时更新每个选项的评分结果,并统计平均分。这一功能适合用于问卷调查或评分统计的场景。 关键词 UI互动应用评分统计状态管理数据处理多目标评分 一、功能说明 评分统计工具允许用…...
实验13 C语言连接和操作MySQL数据库
一、安装MySQL 1、使用包管理器安装MySQL sudo apt update sudo apt install mysql-server2、启动MySQL服务: sudo systemctl start mysql3、检查MySQL服务状态: sudo systemctl status mysql二、安装MySQL开发库 sudo apt-get install libmysqlcli…...
Azure虚拟机非托管磁盘大小调整
想要扩容一个Azure VM 的磁盘空间,门户里面竟然无法扩展,点点鼠标就完事的时代在离去,微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空,根本没有返回磁盘。 不过使…...
MySQL数据库下载及安装教程
链接:MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客 亲测安装成功了💕 把这个路径放到系统环境变量里头 MD!我这安到C盘去了,就很烦🤬😡 在CMD登录试一下 mysql -h localhos…...
使用 UniApp 在微信小程序中实现 SSE 流式响应
概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。 流式传输的特点是将数据逐步传输给客…...
基础数据结构---栈
顺序表实现 一、栈类的声明 栈是一种特殊的线性表,可以由顺序表来实现,也可以由链表来实现,这节课,我们采用顺序表来实现栈。 #include <iostream>#include <stdexcept>using namespace std;template<typename …...
Redis 最佳实践
这是以前写下来的文章,发出来备份一下 Redis 在企业中的最佳实践可以帮助提高性能、可用性和数据管理效率。以下是一些推荐的做法: 选择合适的数据结构: 根据需求选择适当的 Redis 数据结构(如 Strings、Lists、Sets、Hashes、So…...