2026秋软件工程个人作业(第一次)
2026 秋软件工程第一次个人作业
| 这个作业属于哪个课程 | 202601 软件工程 |
|---|---|
| 这个作业要求在哪里 | 作业要求 |
| 这个作业的目标 | 完成 GitHub 与博客园账号注册及个人主页搭建;学习调用 HuggingFace API 并结合前端实现交互式图像生成;梳理个人技能树与发展规划;体验 AI 工具在学习中的应用 |
| 学号 | 102401414 |
一、准备工作
-
我的 GitHub 主页:https://github.com/shukai123123
-
已关注任课老师博客:吴越钟和助教博客:张明圣、王奇蕊
-
已加入班级博客:202601 软件工程
二、HuggingFace API 调用与交互式图像生成
- 相关代码截图




API 调用成功记录
调用记录 1 — 赛博朋克城市夜景

-
提示词:
A futuristic cyberpunk city street at night, neon signs in pink and blue, rain-slicked asphalt with reflections, holographic advertisements, a person with umbrella walking in foreground, cinematic composition, ultra detailed, photorealistic, 8k, dramatic lighting, depth of field -
参数:1024×1024,4 步
-
结果:生成成功,耗时 74 秒,文件大小 62.7 KB
-
模型:FLUX (flux-RealismLora style)
前端生成结果截图:页面左侧显示提示词和参数,右侧显示生成的赛博朋克城市夜景图像,下方信息栏显示模型、尺寸、耗时等数据。
调用记录 2 — 简单提示词对比
- 提示词:
a girl

-
参数:1024×1024,4 步
-
结果:生成成功,耗时 44 秒,文件大小 76.4 KB
-
对比:简单提示词生成的图像偏插画,油画风格,真实感较弱;详细提示词生成的图像更接近真实照片效果
2.8 提示词设计思路与修改过程
设计思路
高质量的提示词(Prompt)是生成真实感图像的关键。我采用了结构化提示词设计法,按照以下维度组织提示词:
| 维度 | 说明 | 示例 |
|---|---|---|
| 主体描述 | 明确图像的核心对象 | a young Asian woman, a cyberpunk city street |
| 细节特征 | 主体的具体细节 | natural makeup, soft freckles, neon signs in pink and blue |
| 环境场景 | 背景和环境 | sunlit forest, rain-slicked asphalt |
| 光线氛围 | 光照和情绪 | golden hour lighting, dramatic lighting |
| 构图视角 | 拍摄角度和构图 | close-up portrait, cinematic composition |
| 画质风格 | 输出质量和风格 | photorealistic, 8k, ultra detailed, shallow depth of field |
| 技术参数 | 模拟摄影参数 | shot on 85mm f/1.4 lens, Sony A7IV |
修改过程
第一版(简单提示词):a girl
-
问题:过于笼统,模型无法确定年龄、种族、风格、场景等
-
结果:生成了一个偏油画风格的女孩肖像,真实感不足
第二版(增加主体和细节):A portrait of a young woman, freckles, natural lighting

-
改进:明确了主体(年轻女性)、特征(雀斑)、光线(自然光)
-
问题:仍缺少场景、构图、画质等关键信息
第三版(完整结构化提示词):
A close-up portrait of a young Asian woman with natural makeup,
soft freckles across her nose, dark brown eyes with catchlights,
wearing a simple white cotton shirt, standing in a sunlit forest,
golden hour lighting filtering through leaves, dappled light on face,
shot on Sony A7IV with 85mm f/1.4 lens, shallow depth of field,
photorealistic, hyperdetailed skin texture, professional portrait photography, 8k

-
改进:涵盖了主体、细节、环境、光线、构图、画质、技术参数全部 7 个维度
-
结果:生成了高真实感人像,皮肤纹理细腻,光线自然,景深效果明显
关键技巧总结
-
越具体越好:明确年龄、种族、服装、表情等细节,避免模糊描述
-
使用摄影术语:
85mm lens、f/1.4、golden hour、bokeh等术语能引导模型生成更专业的效果 -
画质词必不可少:
photorealistic、8k、ultra detailed、hyperdetailed等词显著提升真实感 -
负面提示词:部分模型支持负面提示词,如
cartoon, anime, painting, blurry, low quality,可排除不需要的风格 -
迭代优化:先生成看效果,再针对性地添加或修改提示词,逐步逼近理想效果
2.9 API 调用体验与心得
通过本次 HuggingFace API 调用实践,我有以下几点体会:
1. API 调用的便捷性
HuggingFace 提供了统一的 Inference API,只需一个 HTTP POST 请求即可调用数千个模型,无需本地部署复杂的深度学习环境,大大降低了 AI 模型的使用门槛。Flask 后端只需几十行代码就能完成 API 封装。
2. 网络环境的挑战
在实际操作中遇到了本地网络无法直接访问 api-inference.huggingface.co 的问题。这让我意识到在国内做 AI 开发需要考虑网络环境,备选方案(如镜像站、第三方 API 服务)是必不可少的。
3. 提示词工程的重要性
同样的模型,简单提示词和详细提示词生成的结果差距巨大。提示词不是简单的描述,而是一门需要学习的 "工程"。结构化的提示词设计(主体 - 细节 - 环境 - 光线 - 构图 - 画质 - 参数)能显著提升生成质量。
4. 前后端交互的实践
将 AI 模型能力封装成 Web 服务,通过前端界面实现交互式生成,这是一次完整的全栈开发实践。从 API 调用、后端封装、前端设计到用户体验优化,每个环节都有收获。
5. 对 AI 能力的新认知
FLUX 模型仅需 4 步推理、不到 4 秒就能生成 1024×1024 的高真实感图像,这在几年前是难以想象的。AI 图像生成已经从 "实验室技术" 变成了 "人人可用的工具",作为软件工程专业的学生,掌握 AI API 的调用和集成能力将成为必备技能。
三、GitHub 个人主页搭建
我的 GitHub 个人主页包含以下内容:
我的 GitHub 主页地址:https://github.com/shukai123123
四、个人技能梳理与发展规划
4.1 技能树与技术偏好
已具备的专业知识与能力
| 能力领域 | 具体内容 | 掌握程度 |
|---|---|---|
| 编程语言 | C/C++(熟练)、汇编(掌握)、Python(掌握)、JavaScript(了解) | ⭐⭐⭐⭐ |
| 数据结构与算法 | 线性表、栈、队列、树、图等核心数据结构;排序、搜索、贪心、分治、动态规划入门 | ⭐⭐⭐⭐ |
| 计算机系统基础 | 数字逻辑电路设计(74 系列芯片应用)、计算机组成原理(运算器、控制器、存储器、I/O 系统) | ⭐⭐⭐ |
| 操作系统 | 进程管理、内存管理、文件系统、I/O 管理等核心概念;Linux 基本操作 | ⭐⭐⭐ |
| 数学基础 | 高等数学、线性代数、概率论与数理统计、离散数学、数值分析 | ⭐⭐⭐⭐ |
| 工程素养 | Git 版本控制、代码规范意识、技术文档撰写、Markdown 写作 | ⭐⭐⭐ |
感兴趣的技术方向
-
人工智能与大模型应用:对 LLM、AI 生成内容(AIGC)、AI 辅助开发充满兴趣,希望深入学习机器学习和自然语言处理
-
系统级编程:想深入了解操作系统内核、编译原理、计算机体系结构和高性能计算
-
后端开发:希望掌握 Java 后端技术栈(Spring Boot)、分布式系统和数据库设计
-
游戏开发:对游戏引擎、物理模拟、游戏数值设计和游戏 AI 有好奇心
还欠缺的能力
-
大型项目经验:尚未参与过企业级项目开发,缺乏架构设计和工程化经验
-
网络与数据库实践:计算机网络和数据库的理论知识有一定基础,但实际编程和调优经验较少
-
团队协作:对 Git 工作流(分支管理、Code Review)、敏捷开发流程不够熟悉
-
英语能力:阅读英文技术文档的速度和准确度有待提升,专业词汇量不足
-
前沿技术:对云原生、微服务、大模型微调等前沿技术的了解还停留在概念层面
4.2 代码量统计与目标
-
截至目前代码量:约 8,000 行(主要来自 C/C++ 课程作业、数据结构实验、数字电路课程设计等)
-
本学期目标代码量:20,000 行
-
软件工程课程项目:约 5,000 行
-
数据结构与算法练习(LeetCode / 洛谷):约 3,000 行
-
Web 开发项目(前端 + 后端):约 5,000 行
-
AI 应用开发(API 调用、小工具):约 2,000 行
-
其他课程作业与实验:约 5,000 行
-
-
提升途径:坚持每日编码、参与开源项目、完成个人项目、参加编程竞赛
4.3 本课程最期待学习的知识与收获
最期待学习的知识:
-
软件需求分析与建模:学习如何从用户需求中提取功能需求和非功能需求,使用 UML 等工具建立需求模型
-
软件设计原则与模式:深入学习 SOLID 原则、设计模式(创建型、结构型、行为型),掌握高质量软件的设计方法
-
软件测试与质量保证:学习单元测试、集成测试、系统测试的方法和工具,了解代码审查和持续集成流程
-
项目管理与团队协作:学习敏捷开发(Scrum)、项目进度管理、团队沟通协作,体验真实的软件开发流程
-
AI 在软件工程中的应用:了解 AI 辅助编程、自动化测试、代码生成等前沿技术在软件工程中的应用
希望获得的收获:
-
完成一个从需求分析到部署上线的完整软件项目,积累工程实践经验
-
掌握专业的软件开发流程和规范,从 "写代码" 提升到 "做工程"
-
提升团队协作能力,学会在团队中有效沟通、分工合作
-
建立软件质量意识,学会编写可维护、可扩展、可测试的代码
-
培养工程思维,能够从系统层面分析和解决复杂问题
五、AI 工具生成的软件工程课程学习指南及分析
5.1 AI 生成的学习指南
我使用 AI 工具(豆包)生成了一份软件工程课程学习指南,以下是生成的原文:
《软件工程课程学习指南》
一、课程概述
软件工程是一门研究用工程化方法构建和维护有效、实用和高质量软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
二、学习目标
掌握软件开发的完整生命周期:需求分析、设计、编码、测试、部署、维护
理解并应用常见的软件设计原则(SOLID)和设计模式
学会使用项目管理工具和版本控制系统进行团队协作
培养软件质量意识和工程思维
三、学习路径
基础阶段(第 1-4 周)
掌握软件工程的基本概念、软件开发模型(瀑布模型、敏捷开发)
学习需求工程:需求获取、需求分析、需求规格说明、需求验证
练习使用 UML 用例图、活动图描述系统需求
推荐资源:《软件工程:实践者的研究方法》第 1-4 章
进阶阶段(第 5-10 周)
学习软件设计原则:单一职责、开闭原则、里氏替换、接口隔离、依赖倒置
掌握常用设计模式:单例、工厂、观察者、策略、装饰器等
学习软件架构:分层架构、MVC/MVVM、微服务架构
练习使用 UML 类图、序列图描述系统设计
推荐资源:《Head First 设计模式》、《架构整洁之道》
实战阶段(第 11-16 周)
学习软件测试:单元测试(JUnit)、集成测试、测试驱动开发(TDD)
掌握 Git 分支管理、代码审查(Code Review)、持续集成 / 持续部署(CI/CD)
参与团队项目,体验敏捷开发流程(Sprint、每日站会、回顾会议)
完成课程项目的需求分析、设计、编码、测试全流程
推荐资源:《代码整洁之道》、《重构:改善既有代码的设计》
四、学习建议
理论与实践结合:每学一个知识点,立即在项目中实践
多读优秀代码:阅读开源项目的代码,学习别人的设计思路
主动参与团队:在团队项目中积极沟通,承担有挑战性的任务
善用工具:熟练使用 IDE、Git、调试工具、测试框架等提升效率
持续反思:每个项目结束后进行复盘,总结经验教训
五、推荐资源
书籍:《软件工程:实践者的研究方法》、《代码整洁之道》、《设计模式》、《重构》
网站:Stack Overflow、GitHub、LeetCode、InfoQ
工具:Git、Docker、Jenkins、JUnit、Postman
课程:Coursera《Software Engineering》、中国大学 MOOC《软件工程》
5.2 对 AI 生成指南的分析与评价
合理之处
-
结构清晰,循序渐进:指南按照 "基础→进阶→实战" 的阶段划分,符合认知规律,从概念到设计再到实践,逐步深入。
-
覆盖核心知识点:需求分析、设计原则、设计模式、软件测试、项目管理、团队协作等软件工程核心内容都有涉及,覆盖面较全。
-
推荐资源实用:推荐的书籍(《代码整洁之道》《重构》等)都是软件工程领域的经典著作,工具推荐(Git、JUnit、Docker)也都是业界主流工具。
-
学习建议有价值:"理论与实践结合"" 多读优秀代码 ""持续反思" 等建议确实是学好软件工程的有效方法。
不足之处
-
缺乏针对性:指南是通用版本,没有结合福州大学软件工程课程的具体教学安排和项目要求,对本课程的针对性不足。
-
深度不够:对设计模式、软件架构等核心知识只做了罗列,没有给出具体的学习方法和实践路径,初学者可能不知道从何入手。
-
缺少评估标准:没有说明如何判断自己是否掌握了某个知识点,缺少学习效果的评估方法。
-
对 AI 时代的新趋势关注不足:指南主要关注传统软件工程方法,对 AI 辅助编程(Copilot)、AI 驱动的测试和代码审查、大模型在需求分析中的应用等新趋势涉及较少。
-
时间规划偏理想化:按周划分的学习计划没有考虑到其他课程的压力和实际项目的不确定性,执行起来可能有难度。
对我的帮助
-
建立了整体框架:这份指南让我对软件工程课程的知识体系有了整体认识,知道了 "学什么" 和 "按什么顺序学"。
-
提供了资源清单:推荐的经典书籍和工具为我指明了深入学习的方向,我计划在本学期重点阅读《代码整洁之道》和《Head First 设计模式》。
-
启发了学习方法:"理论与实践结合"" 多读优秀代码 " 等建议我会在学习中践行,特别是通过课程项目将所学知识落地。
-
需要补充和定制:我会在这份指南的基础上,结合课程的实际进度和个人情况进行定制,增加对 AI 辅助开发工具的学习,并制定更具体的周计划。
总结
AI 生成的学习指南作为入门框架和资源清单是合格的,能够帮助初学者快速建立知识体系。但它不能替代教师的指导和个人的实践,需要结合具体课程进行定制,并在实际项目中不断调整和深化。AI 工具更适合作为 "学习助手" 而非 "学习规划师",最终的学习效果还是取决于个人的实践和反思。
六、总结
通过本次软件工程第一次个人作业,我完成了以下工作:
-
账号与环境准备:注册并完善了 GitHub 和博客园账号,开通了博客园博客,加入了班级博客,完成了实名制设置
-
HuggingFace API 调用:学习了 HuggingFace 平台的使用,获取了 API Token,编写了 Flask 后端和前端交互页面,成功调用 FLUX 模型生成了多张真实感图像,掌握了提示词设计的方法
-
GitHub 个人主页:创建了与用户名同名的仓库,用 README 编写了内容充实的个人主页,包括自我介绍、技术栈、自我评估和未来规划
-
个人梳理与规划:系统梳理了个人技能树,明确了已掌握的能力和欠缺的能力,制定了代码量目标和本学期学习计划
-
AI 工具体验:使用 AI 工具生成了软件工程学习指南,并进行了深入分析,认识到了 AI 工具的优势和局限
本次作业让我初步体验了 "以博客园为实践平台、以 AI 工具为辅助" 的学习模式,也让我对软件工程这门课程有了更清晰的认识。在接下来的学习中,我将继续保持博客写作的习惯,积极参与课程项目,不断提升自己的工程实践能力。
*博文编辑页面的截图


浙公网安备 33010602011771号