本文分享了个人使用AI编程的真实体验,涵盖编写工具类、写单元测试等实用场景。结合“氛围编程”在仿真平台上的实践,提炼出核心流程。同时,针对AI编码中存在的幻觉问题、边界条件处理不足等挑战进行分析,并提出AI时代开发者应如何与AI协同工作,提升效率与代码质量。适合希望学习大模型编程的初学者和程序员参考。
1、 什么是大模型
人工智能大模型(简称“大模型”)是指由人工神经网络构建的一类具有大量参数的人工智能模型。
2、大模型编程场景
- 编写工具类。
用java实现一个处理日期格式的工具类,要求将date日期格式化为yyyy-MM-dd格式的字符串
下面是一个简单的日期格式化工具类,提供将 Date 格式化为 yyyy-MM-dd 字符串的方法。
package com.neolix.common.utils; import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatUtil { private static final String DEFAULT_PATTERN = "yyyy-MM-dd"; public static String formatDate(Date date) { if (date == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN); return sdf.format(date); } } 用法示例: Date now = new Date(); String formatted = DateFormatUtil.formatDate(now); System.out.println(formatted); // 输出如:2024-06-07写单测
为上面的方法生成单元测试
下面是为 SignUtil 类主要方法生成的 JUnit 5 单元测试示例,放在 com.neolix.common.utils.SignUtilTest 中。
测试覆盖了加解密、签名、排序等核心功能。
package com.neolix.common.utils; import org.junit.jupiter.api.Test; import java.util.*; import static org.junit.jupiter.api.Assertions.*; class SignUtilTest { @Test void testEncryptAndDecryptAES() { String content = "testContent"; String key = "1234567812345678"; String encrypted = SignUtil.encryptAES(content, key); assertNotNull(encrypted); String decrypted = SignUtil.decryptAES(encrypted, key); assertEquals(content, decrypted); } @Test void testEncryptAndDecryptCBC() { String content = "testCBC"; String key = "0807060504030201"; String encrypted = SignUtil.Encrypt(content, key); assertNotNull(encrypted); String decrypted = SignUtil.Decrypt(encrypted, key); assertEquals(content, decrypted); } @Test void testEncryptSHA() { String data = "abc123"; String sha1 = SignUtil.encrypt(data, "SHA-1"); assertNotNull(sha1); String sha256 = SignUtil.encrypt(data, "SHA-256"); assertNotNull(sha256); } @Test void testByteToString() { byte[] bytes = {0x0f, 0x1a, 0x2b}; String hex = SignUtil.byteToString(bytes); assertEquals("0f1a2b", hex); } @Test void testGetASCIISort() { Map<String, Object> params = new HashMap<>(); params.put("b", "2"); params.put("a", "1"); String result = SignUtil.getASCIISort(params, "KEY"); assertTrue(result.startsWith("a=1&b=2") && result.endsWith("KEY")); } @Test void testGetASCIISortNoStr() { Map<String, Object> params = new HashMap<>(); params.put("b", "2"); params.put("a", "1"); String result = SignUtil.getASCIISortNoStr(params, "KEY"); assertTrue(result.contains("a=1") && result.contains("b=2") && result.endsWith("KEY")); } @Test void testEncryptSHA256() { String text = "test"; String result = SignUtil.encrypt(text); assertNotNull(result); } @Test void testVerificationSign() { Map<String, Object> params = new HashMap<>(); params.put("foo", "bar"); String asciiSort = SignUtil.getASCIISort(params, SignUtil.KEY); String sign = SignUtil.encrypt(asciiSort); assertTrue(SignUtil.verificationSign(params, sign)); assertFalse(SignUtil.verificationSign(params, "invalidsign")); } @Test void testMakeOpenSign() { Map<Object, Object> map = new HashMap<>(); map.put("foo", "bar"); String token = "token123"; String sign = SignUtil.makeOpenSign(map, token); assertNotNull(sign); } @Test void testHmacSHA1() throws Exception { String key = "testkey"; String data = "testdata"; String result = SignUtil.hmacSHA1(key, data); assertNotNull(result); } @Test void testGetBasicAuthHeader() throws Exception { Map<String, String> header = SignUtil.getBasicAuthHeader("GET", "http://example.com/api"); assertTrue(header.containsKey("Date")); assertTrue(header.containsKey("Authorization")); } }编写轻业务代码。
URI newUri = UriComponentsBuilder.fromUri(uri) .replaceQuery(query.toString()) .build(true) .toUri();这段代码处理query中包含中文情况,让它不报错。如果包含中文则处理,不包含则不处理
查看技术问题。
纠错
3、氛围编程(vibe coding)实践
氛围编程 (vibe coding) 是一种新兴的软件开发实践,它使用人工智能 (AI) 根据自然语言提示生成功能代码,从而加快开发速度,并让应用构建变得更加容易,对于那些编程经验有限的用户尤其如此。
该术语由 AI 研究人员 Andrej Karpathy 于 2025 年初创造,用于描述一种工作流,其中开发者的主要角色从逐行编写代码转变为通过对话风格更浓的过程指导 AI 助理生成、完善和调试应用。这样,您就可以腾出时间和精力思考大方向或应用的主要目标,而 AI 则负责编写实际代码。
个人实践中的核心流程
仿真平台的应用
提问记录(基于Grok)
4. 一些思考
AI编码存在问题
幻觉问题。基于统计的神经网络天然会存在幻觉问题,大模型能保证语法正确,但它本身并不理解内容,生成的代码都是基于训练集经过概率计算得到的结果,正确性不能够100%保证。
边界条件和极端情况处理不足。
代码效率与可扩展性较差。
可能存在重大bug和安全漏洞。
生成代码依赖过时的SDK和API。
与现有项目架构和编码风格不符。
用AI而不依赖AI
AI时代的开发者,用AI而不依赖AI。开发者应该具备优秀的目标拆解和技术抽象能力,应该成为架构师、产品经理、需求分析师、工程师、代码评审人员和测试人员,AI是体力劳动者。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包:
- ✅ 从零到一的 AI 学习路径图
- ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
- ✅ 百度/阿里专家闭门录播课
- ✅ 大模型当下最新行业报告
- ✅ 真实大厂面试真题
- ✅ 2026 最新岗位需求图谱
所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》,下方扫码获取~
① 全套AI大模型应用开发视频教程
(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
② 大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
③ 大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
④ AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
⑤ 大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
⑥ 大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
以上资料如何领取?
为什么大家都在学大模型?
最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!
不出1年,“有AI项目经验”将成为投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。