看优秀学生的程序,总是让人心情激动。
我班上的叶佳诚同学,在AI的辅助下,半个月撸了约1万4千行Java代码,参考Wireshark,写了一个网络流量监控App(名为NetPulseFX),集底层报文捕获、进程级流量追踪与生成式 AI 智能诊断于一体。
这个程序,功能实用,界面美观,交互方便,性能卓越。
以下摘自他写的文档:
===============================
6 本项目中AI技术及工具应用情况的介绍
AI不仅是本项目开发过程中提升开发效率、攻克技术难点的关键驱动力,更是软件核心功能的一部分。
(1) 开发过程中的 AI 辅助(生产力层面)
在代码编写与系统调试阶段,我深度应用了 Prompt Engineering(提示词工程),合理使用Gemini3+Cursor的组合,有效解决了多个复杂工程问题:
攻克“依赖地狱”:在处理 Apache POI 与 Pcap4j 的运行时冲突时,我向 Gemini3 提供了详细的 mvn dependency:tree 输出,其迅速定位了核心问题,并协助我制定了基于 Maven Shade Relocation 的“虚包”解决方案,并给出了专业的prompt供cursor执行,成功规避了类路径冲突。
复杂算法实现与优化:在实现“抓包即关联进程”的高性能映射算法时,Gemini3提供了基于 ConcurrentHashMap 的线程安全缓存方案,并协助我完成了对 netstat 指令跨平台输出的正则表达式解析逻辑。
自动化文档与注释:cursor 对 26 个 Java 类进行了自动化的 Javadoc 提取,协助我撰写了项目根目录下的多份 .md 格式技术文档,并通过Gemini3的润色,显著提升了项目的可读性和维护性。
(2) 软件功能中的 AI 集成(产品层面)
本程序将大语言模型(LLM)深度集成到网络数据分析中,实现了从“原始数据”到“自然语言情报”的跨越:
多模型策略架构:系统通过 AIService 实现了对 DeepSeek V3、Gemini 2.5 Pro 以及本地 Ollama (Llama 3) 的统一适配。用户可以根据使用环境和需求(如内网环境使用本地模型,云端分析使用高性能模型)灵活切换。
智能流量诊断算法:AI 组件接收由 TrafficMonitorTask 提取的流量特征。并通过预设的系统提示词(System Prompt)向用户指定的模型提问,判定是否存在 DDoS 攻击、端口扫描或隐蔽通道通信等风险。
Markdown 自动化报告渲染:AI 生成的诊断结论以标准的 Markdown 格式输出,系统利用内置的 Flexmark 引擎进行实时文本渲染,并支持一键导出为 PDF 。
(3) 对 AI 辅助编程的感悟与程序员未来思考
经历本项目的开发,我深刻领悟到了AI技术对于编程领域的强大变革,对 AI 与程序员的关系有了全新的认识:
AI 的辅助极大地缩短了程序员查阅文档和编写样板代码的时间。这是编程生产力的极大飞跃,推动着程序员的编程重心从“如何写代码”向“如何设计架构”和“如何精准描述问题(Prompting)”转变。例如,在解决版本依赖冲突问题时,Gemini3可以迅速定位问题核心并提出可行的解决方案,其效率是传统的搜索引擎查找解决方案的模式无法企及的,这极大的提升了小白解决复杂问题的能力。
目前大模型的训练模式仍存在一定的系统性问题,这使得AI 回答提供的内容并非完全准确(如本项目推荐的某些过时 API和AI版本,回答有时候无法切中问题的核心要害)。这要求程序员必须具备深厚的计算机基础知识(如 TCP/IP 协议栈、OS 线程模型),才能有效甄别AI的“幻觉”,在AI提供的多种方案中筛选出最稳定、最高效的路径。
一方面来说,AI 不会替代有创意的程序员。无论AI的回答多么精妙,它也始终无法超越工具的范畴,只是一种“高效率的工具”,是用来帮助程序员提高编程效率的;反之,当程序员失去了自身的创意,无论什么都离不开AI时,那就沦落为了AI的“奴隶”,被取代就是必然的。
另一方面来说,善用 AI 的程序员将替代不使用 AI 的程序员。AI之于程序员正如机器之于工人,AI对于编程效率有着几何级数般的提升,合理利用AI编写代码对于开发周期缩短比例不是5%,10%,而是200%,500%。
正如本项目的万行代码,若是在十年前,编写+排错对于开发小白来说可能要半年甚至更多,但在当下的AI时代仅需半个月。
============================
【教师】以下是他对整个项目完成之后的“复盘”
============================
8 个人小结及建议
经过前11周对 Java 编程理论的系统学习,以及后5周高强度的课程设计实践。我在一个学期的Java课程学习与实践中收获颇丰,这不仅是对我编程动手能力的全方位提升,还是对于心态的锤炼,也是我一次对于对AI时代编程新方式的探索。
在课堂上,多线程、JNI 调用和数据库是独立的知识点。但在项目实践中,我必须将 Java 21 的异步任务流(Task)、Pcap4j 的底层驱动调用以及 H2 数据库 的主从表关联有机结合。这不仅要求我对于各个知识点都有深刻的理解,还要求我有一定的调试能力,以及面对一行行报错时的“抗压能力”。
第7部分提到过本项目是第二选择,开发时间仅有半个月,这使得我的开发过程对于效率的极高要求使得我必须合理运用 AI 进行辅助开发。
看着AI“一秒十行”的输出能力和格式规范标准的代码,我感悟到,在 LLM 时代,程序员的核心竞争力已不再是枯燥的语法记忆,而是更高层次的思想创造力。
打个比方,在军事中,“将才”需要有优秀的战术和战役能力,但“帅才”则需要统筹全局的战略眼光,相交于前者,战略眼光更像是站在一个很高的地方俯瞰全局。而对于编程领域来说,AI可以是一个全能的“兵王”,是最优秀的将才,但只要程序员能够培养自己的战略眼光,成为一名“帅才”,那么无论如何也不会被AI替代,这里的战略眼光就是对于程序总体框架和功能的创造力与思维能力。
从结果来说,我在本次开发过程中犯过最大的错误就是草率地确定开发主题,这浪费了我半个月的宝贵时间,其中暴露出来的核心问题就是“战略眼光不足”,思考不够全面。此外,在后半个月里我几乎榨干了当下最新大模型的性能,这极大地丰富了我设计prompt的经验,也加强了我对于AI使用方式的正确认识。这一切使得我有信心能够去面对未来AI编程时代的一切挑战。
最后,感谢金老师开设的这门Java课程,不仅可以学到许多有用的编程知识,也可以好好地锻炼编程能力;感谢王邦源同学对于我选题和文档编写的帮助,使得我不再是“摸着石头过河”;当然,我也要感谢我自己,在遇到一次又一次报错时没有心灰意冷,而是一步一个脚印脚踏实地的实现了预想中的功能。
关于课程建议,AI对于编程的帮助是巨大的,我认为现在的大一学生已经有了学习本门课程的能力,那么是否可以考虑将课程推进到面向大一学生?这是我一点小小的思考。
=======================
教师点评:
没啥好说的。青出于蓝而胜于蓝。现在的年轻人,比我等老家伙强多了。
