AI开发导论
本文主要是介绍下在开发中使用AI的优点以及怎么高效使用AI提高开发效率,并同时会结合一些案例辅助说明。(我怎么敢取导论这个标题的)
关于AI
内容概要:
- AI的定义与基本概念
- AI的主要技术分支
- AI在开发中的用处
AI的定义与基本概念
人工智能(Artificial Intelligence,简称AI)是指由人制造出来的系统所表现出来的智能行为。它通常指的是使计算机系统能够模拟人类智能行为的技术和学科领域,包括学习、理解、推理、规划、感知、解决问题和语言理解等。
AI的主要技术分支
- 官方语言:机器学习、深度学习、自然语言处理、计算机视觉、专家系统、知识表示推理、机器人学
- 通俗语言:AI写文、AI画图、AI搜索、AI写代码
AI在开发中的用途
搜索资料
现代联网AI可以根据你的问题在网上搜索知识并总结归纳后以合适的方法展示,可以省去在浩如烟海中筛查有效数据的时间,大多数时候可以作为搜索引擎(百度、谷歌等)的上位替代。
优点:快速、高效
缺点:受限于知识库,有时候可能回答有缺陷或不完善,且不是所有AI都支持实时联网
编写代码
AI可以直接编写代码,只需要提供需求描述,参数列表,数据格式,就可以快速生成需要的代码,这也是最常用的功能,例如以下是我与AI的对话
用户_祎果
帮我写一个把大写驼峰式字符串转换成小写下划线形式的ts方法
ChatGLM
当然可以,以下是一个TypeScript方法,它可以将大写驼峰式字符串(CamelCaseString)转换成小写下划线形式(camel_case_string):
function toLowerCaseUnderscore(str: string): string {return str.replace(/([A-Z])/g, match => `_${match.toLowerCase()}`) // 将大写字母替换为_加小写字母.replace(/^_/, '') // 如果字符串开头是下划线,则移除.toLowerCase() // 将整个字符串转换为小写}// 示例使用const camelCaseString = 'ThisIsCamelCase'const underscoreString = toLowerCaseUnderscore(camelCaseString)console.log(underscoreString) // 输出:this_is_camel_case这个方法使用了正则表达式来查找所有的大写字母,并将它们替换为相应的下划线和小写字母。最后,它确保整个字符串都是小写的,并且如果字符串的开头是一个下划线(由于原始字符串的第一个字母是大写的),则将其移除。
除了编写单独方法之外,AI也可以用于代码结构设计,例如:
用户_祎果
我需要建立一个个人博客网站,请帮我设计一套基于Astro和华为云服务的架构设计,包括静态资源的存储和访问优化等。
ChatGLM
基于Astro和华为云服务的个人博客网站架构设计可以如下:
1. 前端(使用 Astro)
技术栈:
- Astro:用于构建静态网站的现代前端框架
- HTML/CSS/JavaScript
- 版本控制系统(例如:Git) 架构设计:
- 使用Astro创建静态页面,它支持Markdown和组件化开发,适合博客网站。
- 利用Astro的集成功能,如支持Tailwind CSS进行样式设计。
- 通过Astro的构建系统优化图片和其他静态资源。
2. 静态资源存储和访问优化(使用华为云对象存储服务 OBS)
技术栈:
- 华为云对象存储服务(OBS)
- 华为云CDN服务 架构设计:
- 将构建后的静态资源(如图片、CSS、JavaScript文件)上传到华为云OBS。
- 配置OBS的静态网站托管功能,使网站可以直接通过OBS访问。
- 使用华为云CDN服务加速静态资源的全球访问速度。
- 设置合理的缓存策略,减少重复资源的加载时间。
3. 后端服务(可选,如果需要动态功能)
技术栈:
- 华为云函数计算(FunctionStage)
- 华为云API网关 架构设计:
- 如果博客需要动态功能(如评论系统、动态内容管理等),可以使用华为云函数计算来运行后端逻辑。
- 通过华为云API网关管理对函数计算的访问,实现安全的API调用。
- 函数计算可以与OBS等华为云服务无缝集成,处理数据存储和检索。
4. 域名和DNS
技术栈:
- 华为云域名服务
- DNS解析服务 架构设计:
- 在华为云购买个人博客的域名。
- 配置DNS解析,将域名指向华为云OBS托管的静态网站或华为云CDN。
5. 安全性和合规性
技术栈:
- 华为云SSL证书管理服务
- 安全组、访问控制策略 架构设计:
- 为博客网站配置SSL证书,确保数据传输的安全性。
- 设置安全组规则,限制不必要的入站和出站流量。
完整架构流程:
- 本地开发:
- 使用Astro搭建博客网站,并进行本地开发和测试。
- 通过Git进行版本控制和代码托管。
- 构建和部署:
- 使用CI/CD工具(如GitHub Actions或华为云的CI/CD服务)自动化构建和部署流程。
- 构建后的静态资源上传到华为云OBS。
- 资源优化:
- 配置华为云CDN加速静态资源分发。
- 设置OBS和CDN的缓存策略。
- 后端服务(如果需要):
- 开发和部署后端函数到华为云函数计算。
- 通过API网关暴露后端服务。
- 监控和维护:
- 使用华为云的监控服务监控网站性能和资源使用情况。
- 定期检查和更新SSL证书。 通过以上架构设计,你可以建立一个高效、安全且易于维护的个人博客网站。
代码注释
写代码最烦两种情况,看不写注释的代码和写注释,CodeMate很好的解决了这个问题,选中代码右键添加注释即可。
本文在家写的没安装上CodeMate,所以假装有图吧
代码解释
跟代码注释差不多,遇到看不懂的情况可以使用AI快速阅读,CodeMate目前已跟各大IDE集成,可快捷选中使用。
同样假装有图
AI续写
这一项功能需要集成于IDE内的AI工具才能顺畅使用,例如CodeMate,在IDE中开启续写后,敲下代码短暂停顿,CodeMate就会根据上下文自动推理代码,可以有效地提高编码效率和在无思路时作为提示使用。
同样因为没安装问题没图,现场演示
其它功能
除了这些开发常用功能之外,还有不少方便的小功能,例如:翻译文本、名词解释、代码规范检查、降低代码圈复杂度等
关于AI开发
内容概要:
- AI开发的基本流程
- AI提问技巧
AI开发的标准流程优化建议
- 精心挑选AI工具:根据具体需求选择适宜的AI助手。例如,对于资料检索和内容解释,可选用支持实时网络查询的智谱清言;若在IDE环境中寻求编码优化,则集成式工具CodeMate将是理想之选。
- 清晰定义需求:准确且简洁地描述您的需求。由于AI在理解自然语言方面尚存局限,如之前遇到的AI在小数比较和翻译理解上的困难(相关问题已记录),开发者需明确需求,并以AI能够理解的语言进行表述。
- 验证AI的输出:在AI提供回答后,不要急于采纳,而应先进行仔细检查和验证。因为AI的结论基于大数据学习,可能不完全符合项目要求或含有不符合规范的内容,因此人工审核环节不可或缺。
- 完成后的分析与评估:在开发需求实现后,进行代码架构的合理性评估(这一点对于所有开发流程都至关重要)。审视代码结构,对于发现的不合理之处,及时进行调整(此过程亦可借助AI辅助完成)。
案例
备注:笔者在未学习过Astro和tailwindcss的情况下,通过AI建立该站点,其实就已经是一个很好的例子。
其它功能
- 活动策划:生日活动策划,视频拍摄策划
- 咨询:情感问题,生活问题,健康咨询
- 问答陪伴机器人:AI机器人,智能体,虚拟人物
- 文件数据:文档解读,数据分析等,推荐智谱清言,可以长文档上传
- AI画图:AI画图也是较常用功能,华为盘古模型最近也退出了AI画图
- 其它你能想到的功能
总结
- 合理使用AI可以极大提高工作效率
- AI功能涉及方方面面,各行各业都可以利用
- CodeMate针对编码有额外优化,例如IDE集成,针对代码推出的续写功能等
PS: 本文由智谱清言辅助完成
部分内容可能已过时
March7th