前言
在当今快速发展的技术时代,编程作为连接现实世界与数字世界的桥梁,其重要性不言而喻。传统编程,以其严谨的架构设计、标准化的开发流程,以及对细节的精准把控,一直是软件开发领域的基石。然而,随着人工智能技术的兴起,特别是AIGC(AI生成内容)的应用日益广泛,传统编程正逐步与这一新兴技术融合,开启了一个全新的编程范式。本文将探讨经典传统编程与AIGC如何相辅相成,以及这一融合如何改变我们的编程方式和工作效率。
经典传统编程的魅力
经典传统编程强调的是逻辑清晰、结构严谨的开发模式(有架构和默认优质操作),注重于标准模式,按照流水线式操作代码,所以我们要及其注重编程素养。
它以明确的需求分析为起点,将项目分步细化(程序员思维)
// 伪代码:
// 根据URL 发送一个http请求 拿到HTML字符串
// 分析HTML 那都电影内容
//返回请求
写完伪代码后也就是我们的思路,接下来就是写代码了
async function main() {
const URL = 'https://movie.douban.com/chart';
const html = await request({
url:URL
})
let $ = cheerio.load(html);
const movieNodes = $('#content .article .item');
const movieList =[];
for(let i=0;i<movieNodes.length ;i++){
movieList.push(getMovieInfo(movieNodes[i]));
}
console.log(movieList);
main();
在写for循环的时候我们应该进行封装函数将一段电影的html的解析,剥离出去
- 首先这段功能相对独立
- 其次这函数可以复用的
- 还有就是main函数已经比较复杂了,超过10行左右的代码就一定可以分出函数
const getMovieInfo=function(node){
let movieInfo={};
let $$=cheerio.load(node);
let title = $$('.pl2 a').text()
let pic=$$('.nbg img').attr('src')
let info=$$('p.pl').text()
let rating_nums =$$('.ratting_nums').text()
movieInfo.title = title
movieInfo.pic = pic
movieInfo.info = info
movieInfo.rating_nums = rating_nums
return movieInfo;
}
在此过程中,很明显,爬取数据是一个后端的操作,需要通过后端技术如Node.js构建服务端逻辑。Node.js,作为JavaScript的后端运行环境,搭配npm(Node Package Manager)包管理器,极大地丰富了开发工具箱。在需要使用之前,我们需要在该项目下进行node的初始化,也就是在集成终端中使用npm init -y。
随后我们需要在此之后安装我们需要用到的包,例如request-promise和cheerio,一样的,在集成终端中输入npm i request-promise以及npm i cheerio即可。而request-promise这类HTTP请求库和cheerio这样的HTML解析工具,使得开发者能够高效地处理网络请求和数据解析任务。
在使用它们之前,毋庸置疑的要先引用它们,将它们放在所有代码的前面
const request = require('request-promise');
const cheerio = require('cheerio');
之后,在集成终端输入node main.js就可以得到我们需要爬取的数据了
AIGC:传统编程的新伙伴
但是面对日益复杂的项目需求和海量数据处理的挑战,AIGC技术逐渐崭露头角,成为减轻程序员负担、提高工作效率的利器。在传统编程框架内,尤其是处理重复性高、规则明确的任务时,AIGC能够接手至少1/3的流程性代码编写工作,比如自动解析HTML文档、自动生成模板代码等。这意味着,原本需要手动编写的繁琐代码,现在可以通过智能算法自动生成。
那就让我们来看看如何来运用AI吧。首先我们先安装一下node里的openai包,在集成终端中输入npm i openai
然后调用它
const OpenAI = require('openai');
接下来的代码以及操作,我在 来搞点Open一点东西吧!!juejin.cn/post/737023… 的这篇文章中有详细介绍。 代码如下:
const request = require('request-promise');
const cheerio = require('cheerio');
const OpenAI = require('openai');
const client = new OpenAI({
apiKey: "*******",
baseURL: "https://api.chatanywhere.tech/v1",
});
async function main() {
const URL = 'https://movie.douban.com/chart';
const html = await request({
url:URL
})
let $ = cheerio.load(html);
const movieNodes = $('#content .article .item');
let movie_html = ''
for ( let i =0; i < 2; i++) {
movie_html += cheerio.load(movieNodes[i]).html()
}
let prompt=
`
${movie_html}
这是一段电影的HTML,请获取电影名(name),封面链接(picture),简介(info),评分(score),评论人数(commentsNumber).请使用括号的单词作为属性名,用JSON的格式返回.
`
const chatCompletion = await client.chat.completions.create({
model: "gpt-3.5-turbo",
messages: [
{
role: "user",
content: prompt,
},
],
});
console.log(chatCompletion.choices);
main();
ps:这里面的 apiKey: 可以自己在openai中申请,免费的昂!!!
融合的未来:效率与创造力的双赢
将AIGC融入经典传统编程,并不是要取代人类程序员,而是要形成一种互补关系。AIGC负责处理标准化、流程化的工作,释放程序员的时间和精力,使他们能够投入到更高级别的抽象思维、问题解决和创造性工作中去。这种融合不仅提升了开发效率,还促进了技术与创意的深度结合,推动了软件开发向更加智能化、人性化的方向发展。
结语
传统编程与AIGC的融合,不仅是技术迭代的必然趋势,也是提升软件开发效率、激发创新潜能的关键路径。在这个过程中,开发者应积极拥抱变化,学习如何有效利用AIGC工具,同时保持对编程艺术的热爱与追求,共同塑造更加高效、智能的编程未来。随着技术的不断演进,我们有理由相信,未来的编程世界将更加丰富多彩,充满无限可能。