用工程思想、产品思维重构AI软件开发(前言)
当下AI行业热潮席卷各个领域,几乎所有行业都在探索如何借助AI推动业务增长。作为计算机专业的科班生,我自然不愿错过这一趋势,恰逢大四毕业,便决定用AI完成自己的毕业设计系统。
就在上周,我顺利用AI完成了毕业设计系统的开发,整体效果达到了预期,但其中的不足也十分明显:数据库设计不够规范,既未引入事务机制,也没有添加缓存来优化性能;前端界面缺乏亮点,业内人士几乎能一眼看出是AI生成的成果。

在开发过程中,我积累了大量关于AI辅助软件开发的经验与教训。后续通过阅读软件工程经典著作《人月神话》,结合各类网络教程补充学习,我感到醍醐灌顶,更加明确了一点:想要在AI时代站稳脚跟,必须学习软件工程知识,培养产品思维——这一点,在AI普及的当下尤为重要。

目前来看,AI更适合扮演“执行者”的角色,而核心的决策工作,仍需由人类主导。基于此,本专栏不仅会分享基础的编程知识,更会重点和大家探讨:如何合理调度AI、做好决策、完善设计、落地软件项目,希望能给想要学习AI软件开发的同学,带来一些实际的启发。
本专栏到底会有什么不同
不可否认,网络上已有许多前辈分享过AI辅助开发的成熟教程,无论是技术深度还是实操效果,都远胜于我。或许有同学会问,既然已有这么多优质内容,我为什么还要坚持撰写这个专栏?
现有教程大多技术含量扎实,从模型选择、CLI/IDE工具使用,到提示词编写、项目部署,讲解得通俗易懂,但核心逻辑都围绕“实用主义”展开——暂且抛开设计思想、架构搭建、市场需求不谈,只需掌握提示词技巧,一步步引导AI,就能最终做出产品。即便有部分具备软件工程基础的作者,会尝试做一些优化,也往往未能坚持到底,没能真正把一个软件做到完善、负责。

我始终认为,这样的学习模式存在欠缺。尽管我还只是一名学生,但我还是认为,如果不重视设计、不培养工程思维,反而将越来越多本该由人决定的核心工作交给AI,未来的软件行业只会充斥着“草台班子”式的项目。
因为如果不做设计、不设约束,当下的AI很容易陷入“瞎猜”“随意发挥”的误区,最终只会让“屎山代码”越堆越高。
当然,这并不意味着我们要回归到重复、繁琐的传统工作流中。我希望以这个专栏为起点,和大家一起学习软件工程思想、培养产品思维,甚至分享一些生活中的思考;而那些“定好规范后只需编码”的重复性工作,就放心交给AI。我们的目标,是成为软件开发中优秀的产品经理、项目经理,而不只是单纯写代码的。

或许有同学会问:有了软件工程思想,就能减少“屎山代码”吗?答案是肯定的。如果你有项目经验或工作经历就会发现,“编码”其实只占整个项目周期的一小部分,大部分时间都投入在需求分析、系统架构设计、系统测试等核心环节。做好前期规划和设计,不仅能节省时间,更能让软件产品的开发过程更顺畅、最终成果更靠谱。

现在很多教程,都以“做出可运行的产品”为终点。我最近在读《人月神话》时发现,即便是大厂,即便在设计阶段投入大量心血、开发阶段集结优质人才,也常常会压缩系统测试的时间——似乎只要软件能正常运行,就认为可以上线,先抢占市场、实现盈利再说。
大厂为了商业化目标,削减测试环节或许有其无奈之处,但网络上的教程若刻意忽视充足且多维度的测试,就显得极不负责。毕竟,我们都不希望本该在测试阶段发现的Bug,最终暴露在用户面前,影响产品体验。
总之,本专栏的核心的是:不仅教你用AI开发软件的基础知识,更会分享软件工程思想和产品思维,从更高维度定义我们要做的每一个软件。愿我们能一起进步、相互辅就。

需要说明的是,我还只是一名在AI开发领域摸索的学生,文中观点难免有不妥之处,恳请各位读者批评指正,不胜感激。
接下来,我将列出本专栏每一篇章的概述,后续会逐篇展开详细探讨。
零、准备工作
AI编程,不意味着你可以一点技术都不懂,事实上,一点软件开发经验都没有的产品经理,更加容易被底下的执行者架空。这一章,将告诉你一些必要的编程与开发基础知识。
一、写需求文档
明确项目核心需求、用户场景、功能边界,形成规范的需求文档,为后续开发、设计提供明确依据,避免开发过程中出现需求模糊、反复修改的问题。
二、画设计图纸
结合需求文档,完成系统架构设计、数据库设计、界面原型设计,梳理模块间的逻辑关系,提前规避架构不合理、数据冗余等问题。
三、搭建系统框架
确定技术栈,搭建项目基础框架,划分核心模块,为后续分模块开发做好铺垫,保证项目结构清晰、可扩展性强。
四、Claude Code必要配置
讲解Claude Code的基础配置、提示词优化技巧,帮助大家高效调度AI完成编码工作,提升开发效率,减少AI生成代码的冗余与错误。
五、分模块开发+单元测试
按前期设计的模块分工,借助AI完成分模块编码,同步开展单元测试,及时发现并修复单个模块的Bug,保证每个模块的稳定性。
六、系统集成+综合测试
将各个模块进行集成,开展综合测试、压力测试、兼容性测试等,排查模块间的接口问题、系统性能问题,确保整个系统能稳定运行。
七、版本迭代
结合测试反馈和实际使用场景,对系统进行优化迭代,修复遗留Bug、完善功能细节,逐步提升产品体验,培养“持续优化”的工程思维。
参考学习资源
-
《人月神话》 -
vibevibe:https://www.vibevibe.cn/zh/ -
万字长文:为什么你Vibe Coding出的是一堆屎山,以及如何不再写屎山
夜雨聆风