软件工程课程第一次个人作业
软件工程第一次个人作业
| 这个作业属于哪个课程 | H202601软件工程与软件工程实践 |
|---|---|
| 这个作业要求在哪里 | 2026秋软件工程个人作业(第一次) |
| 这个作业的目标 | 完成GitHub与博客园主页搭建,掌握Hugging Face API调用与前后端交互,梳理个人技能体系与学习规划 |
| 学号 | 102401126 |
一、作业准备
- 完成 GitHub、博客园账号注册与信息完善。
- 完成班级博客加入与实名制认证。
二、Hugging Face API 调用实践
2.1 方案概述
基于 Flask 后端 + 原生 HTML/JS 前端,实现可交互的 Flux 写实图像生成工具。后端调用 Hugging Face API 生成图像,前端提供输入与结果展示,完成完整文生图流程。
2.2 提示词设计
本次图像生成围绕「杭州清晨巷弄早餐摊」的纪实场景展开,共经历三轮提示词迭代优化,逐步校准画面主体、场景氛围与视觉质感。
初始版本
Chinese breakfast stall, old man, fried dough sticks, Hangzhou alley, morning
初始版本要素过于简略,生成画面存在明显问题:人物形象模糊、动作不明确,场景杂乱缺少层次,整体偏插画风格,缺乏纪实摄影的真实感。
第一轮修改:细化核心主体与动作
针对主体不清晰的问题,补充摊主的人物特征与动作细节,明确画面核心叙事点。
- 补充人物设定:52岁中国摊主、微胖、蓝色带油污围裙
- 明确动作道具:长竹筷、翻动金黄色油条、热锅灶台
- 修改后画面主体辨识度提升,动作逻辑更清晰,但场景氛围仍显单薄。
第二轮修改:丰富场景层次与生活气息
针对画面空洞、缺少氛围感的问题,补充环境细节与配角人物,构建完整的市井生活场景。
- 补充环境特征:清晨6点、杭州狭窄小巷、晨光、锅边升腾的热气
- 增加配角人物:吃早餐的保安、等待的女学生、蹲坐的流浪狗
- 修改后画面故事感增强,烟火气更足,但整体风格仍偏向插画质感。
第三轮修改:锁定纪实写实质感
针对风格不统一的问题,加入摄影类关键词,统一画面质感,贴近真实相机拍摄效果。
- 增加风格限定:纪实摄影风格、照片级写实、8K分辨率
- 补充光影参数:自然光、广角镜头
- 修改后画面光影更自然,颗粒感与空间感更接近真实纪实照片。
最终提示词
A 52-year-old Chinese breakfast stall vendor named Wang, slightly overweight, wearing a blue apron stained with oil, standing behind a hot oil wok, using long bamboo chopsticks to flip a golden deep-fried dough stick in a narrow Hangzhou alley at 6 AM, morning light, steam rising, a security guard in grey uniform sitting at a folding table, eating a dough stick dipped in soy milk, a middle school girl in white uniform waiting nearby, a yellow stray dog squatting beside the tricycle looking up at Wang, realistic documentary photography style, photorealistic, 8k, natural lighting, wide shot

图一 : Flux 生成的早餐摊写实效果图
2.3 核心代码
后端
import os, io, base64
from flask import Flask, request, jsonify
from huggingface_hub import InferenceClient
app = Flask(__name__)
client = InferenceClient(api_key=os.getenv("HF_TOKEN"))
@app.route('/generate', methods=['POST'])
def generate_image():
prompt = request.get_json().get('prompt', '').strip()
if not prompt:
return jsonify({'error': '请输入提示词'}), 400
image = client.text_to_image(prompt=prompt, model="black-forest-labs/FLUX.1-schnell")
buffered = io.BytesIO()
image.save(buffered, format="PNG")
img_base64 = base64.b64encode(buffered.getvalue()).decode('utf-8')
return jsonify({'success': True, 'image': img_base64})
前端交互逻辑
function generate() {
fetch('/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt: promptInput.value })
})
.then(res => res.json())
.then(data => {
if (data.success) {
resultImg.src = `data:image/png;base64,${data.image}`;
resultImg.classList.add('show');
}
});
}

图二 : 终端运行与API调用成功日志截图

图三 : 运行效果
2.4 实践心得
- API 方式大幅降低大模型使用门槛,开发者可专注于业务逻辑与交互设计。
- 提示词精度直接决定生成质量,场景细节与风格限定是提升效果的关键。
- 密钥硬编码存在安全风险,应通过环境变量管理密钥。
三、GitHub 个人主页搭建
3.1 方案选择
采用 Profile README 方案:创建与用户名同名的公开仓库 diahull/diahull.github.io,通过根目录 README.md 展示个人信息,GitHub 会自动渲染到个人主页。
3.2 主页内容
主页包含自我介绍、技能栈、待提升方向、项目展示、兴趣方向、课程学习目标、三年发展规划与联系方式七个模块。

图四 :GitHub 个人主页截图(1)

图五 :GitHub 个人主页截图(2)
四、个人技能梳理与发展规划
4.1 现有能力
- 编程语言:Python、C 基础,可编写简单程序与脚本;掌握 HTML/CSS/JS 基础。
- 工具技能:Flask 简单应用开发、Hugging Face API 调用、Git 基础操作、VS Code 开发。
- 学习能力:能主动检索资料解决问题,对新技术有较强学习意愿。
4.2 待提升方向
大型项目架构设计、单元测试与 CI/CD、数据库设计、团队协作与分支管理、工程文档编写。
4.3 三年发展规划
- 大三:深耕专业课程,积累项目实践,强化 Python 与 Web 开发能力。
- 大四:准备校招,完成毕业设计,争取实习机会。
- 毕业后:从事后端开发或 AI 应用开发相关工作,在岗位中持续成长。
4.4 代码量目标
- 当前累计:约 800 行,以基础练习与小型 Demo 为主。
- 学期目标:累计突破 5000 行,完成 2 个以上完整项目,兼顾数量与代码质量。
五、课程学习期待
- 掌握软件项目完整生命周期,建立工程化思维。
- 学习团队协作开发流程,掌握 Git 分支管理与代码评审。
- 提升代码规范与文档编写能力,养成良好开发习惯。
六、AI 生成学习指南分析
本次借助 DeepSeek 生成软件工程系统化学习指南,旨在快速搭建完整的知识体系框架,弥补自学过程中知识点碎片化、学习路径不清晰的问题。指南核心划分为基础筑基、理论核心、实践落地、长期提升四个递进阶段,整体遵循从入门到进阶、从理论到实践的成长逻辑,贴合行业通用的工程师能力成长模型。
6.1 各阶段核心内容
-
基础筑基阶段
以编程语言、数据结构与算法、计算机基础原理为核心,重点夯实编码底层能力。对应到自身学习中,就是巩固 Python、C 语言的语法功底,强化常用数据结构与算法练习,为后续工程化开发打下扎实的代码基础。 -
理论核心阶段
覆盖软件工程核心原理、设计模式、需求分析、软件架构设计等内容,帮助建立完整的工程化思维。这部分能够让我跳出“只关注代码实现”的局限,理解软件项目从0到1的设计逻辑与方法论。 -
实践落地阶段
聚焦项目开发全流程、Git 团队协作、单元测试与部署、开发工具链使用等实操技能,强调动手能力与工程规范。这与本次课程的实践目标高度契合,也是我当前需要重点加强的部分。 -
长期提升阶段
延伸至技术选型、架构设计、行业趋势洞察等高阶能力,面向职业发展做长期规划,帮助建立可持续成长的学习路径。
6.2 总结与后续规划
整体来看,AI 生成的学习指南框架完整、逻辑清晰,能够帮我快速理清软件工程的学习脉络,避免入门阶段的盲目性。但通用指南的针对性不足,后续我会结合自身AI 应用开发的兴趣方向,对内容做个性化调整:在实践阶段重点融入 AI API 调用、大模型应用开发相关的项目练习,在架构阶段关注 AI 应用的工程化设计,让学习路径更贴合自身的职业发展目标。
七、作业总结
本次作业完成了 GitHub 与博客园主页搭建、Flux 模型 API 调用与前后端交互工具开发,系统梳理了个人技能体系与发展规划。通过实践体验了生成式 AI 的落地潜力,也明确了自身的短板与后续学习方向。

图六 : 博客园后台 Markdown 编辑器编辑页面截图

浙公网安备 33010602011771号