首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >提升基础代码质量,文心一言使用体验

提升基础代码质量,文心一言使用体验

作者头像
呱牛笔记
发布2023-10-16 19:11:39
发布2023-10-16 19:11:39
1.1K0
举报
文章被收录于专栏:呱牛笔记呱牛笔记

前两天定位一个嵌入式应用的死机问题,过程极为复杂,首先用jlink抓core文件,然后用trace32恢复现场,最后发现是idle线程的任务栈被踩了,但是没法确定是谁踩了这个内存,理论上,靠死机dump也是能恢复出来哪一个操作产生的这个现象,但极为复杂,需要通过SP去恢复其他线程的任务栈,也就是踩内存产生的死机,通常恢复出来都是被踩的任务栈,最后还是得依靠打印日志,走查代码查出是谁干了坏事;

最终,发现异常的代码,是多个相似的结构体,做移位操作的时候,把结构体类型写错了,下面的代码:

代码语言:javascript
复制
    if (g_tag_sms_manager.cacheSize != 0 && g_tag_sms_manager.cacheStartIndex > 0) {
        for(int i= 0; i < g_tag_sms_manager.cacheSize; i++) {
            memcpy((void *)&g_tag_sms_manager.brodcastDigest[i], (void *)&g_tag_sms_manager.brodcastDigest[g_tag_sms_manager.cacheStartIndex+i],
            sizeof(uwb_sms_digest));
        }
    }

关键在sizeof(uwb_sms_digest),这个地方给的大小决定了拷贝的源和目标的大小,由于这是一段复制粘贴的代码,同事忘了修改这个结构体变量的类型,直接用成了另一个结构体的sizeof(tag_uwb_sms_t),导致读写都越界,后果自然是不可预期了!

作为一个十多年的码农,出现这个低级错误,是不是挺无奈的!而我们的同事说,为了实现这个需求,算法逻辑调试了两周,中间解决了好多的类似的内存问题!

其实,上面的代码和算法也不复杂,就是一个短消息的缓存处理,入队,排序,出队,想到百度最近发布的生成式AI,文心一言,不试不知道,试了发现确实很强大,使用它,不仅能提升生产力,产品的稳定性也有了更大的提升。

文心一言生成的代码:

 代码很完整,对问题的理解也很到位,代码也不会有低级问题!

那么,程序员的价值体现在哪里呢?

1、需求理解,拆解问题,提出问题的能力;

也就是给文心一言提出具体的问题,然文心一言给出相应符合要求的代码;

2、系统整合的能力;

毕竟我们开发的不只是一段代码,而是一个复杂的系统,而程序员,就是将这个这些片段的代码,通过合适的接口,封装,组合成一个复杂的系统; 

3、如上,如果没有这些能力了,是不是就只能失业了。

悲观者如是说。

本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023/09/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档