当你想让ai生成的代码直接编译 - 你先要问自己一个直击灵魂的主题:我的修养配得上我的能力吗?
已发现存在需手动修复的问题 -
1/(马大哈)对于sdk理解的不 细致 ,会用基类函数来代替派生类函数;
比如,应该使用mp3_decoder_init的地方,使用audio_element_init,导致core_dump;
2/(自行其是)使用过期sdk的include
比如,以下自发生成的头文件均不存在或不推荐使用-
#include "esp_system.h"
#include "esp_event_loop.h"
#include "esp_wifi.h"
#include "esp_bt.h"
#include "common.h"
3/(柿子捡软的捏)如果有多套框架,无法区别
比如,无法分清idf和adf框架的区别,倾向使用idf的事件库和处理机制;
4/(望文生义)生造一些不存在的函数,实际上在真实sdk中另外有对应的函数
比如,并没有以下函数 -
audio_pipeline_remove_all(pipeline);
audio_pipeline_destroy(pipeline);
5/(金玉其外)其代码更应称呼为伪代码,虽然有些地方可用
比如,以下处理只是说,该有输入了,至于输入是啥从哪里来,你要自己替换
// 设置播放文件路径
// const char *file_path = "xxx.mp3";
// ERROR_CHECK_WITHOUT_ABORT(esp_adf_media_reader_open_file(decoder, file_path);
6/(嘿哥们,我真的没看见坑......)并没有分析过函数的参数的可用性,缺少参数还算好的,如果是参数填反了或者似是而非,后面要花更多的时间来debug
比如,以下参数是反的 -
audio_pipeline_set_listener(evt,pipeline);
所以,仅以个人浅见,ai辅助学习,快速定位文档中的核心问题是很有帮助的。
直接生成代码,需要程序员对于从事的项目有一定的经验。当然,如果用自动生成,然后debug的办法来学习新框架还是挺新颖的一种体验。
类比于半自动的治具,需要和人配合,更形象一些。