软件工程第一次作业
| 课程 | 202601-软件工程第一次作业 |
|---|---|
| 作业要求 | 2026秋软件工程个人作业(第一次) |
| 作业目标 | 1.准备一个GitHub账号,请在GitHub官网上注册账号,完善各项个人信息,并准备一个博客园账号,建立个人技术博客,完善各项个人信息(昵称,头像等),设置好博客园的样式等。 2.在hugging face官网注册个人账号并获取API,调用Flux模型生成一张最贴近真实世界的图像,掌握开源社区资源使用与AI模型接口调用方法。 3.在GitHub上完成个人主页建设。 4.梳理当前的技能树和技术偏好,并进行自我评估。 5.学习Markdown语法与写作方式。 |
| 学号 | 102401218 |
准备工作
- GitHub账号:https://github.com/John-ship-it5552
- 博客园账号:已开通博客LYnan。
- 已加入博客园班级并关注老师和助教账号。
Huggingface-API的调用
注册账号并获取Token
- 注册账号后进入设置界面获取Token。
![image]()
项目实现
1.项目结构,使用Gradio简化代码,无需分别编写前端和后端接口。
Flux-webapp
└──app.py
2.项目代码
import gradio as gr
from huggingface_hub import InferenceClient
HF_TOKEN = "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"
client = InferenceClient(provider="fal-ai", api_key=HF_TOKEN)
# 定义核心生成函数
def generate_image(prompt):
if not prompt:
return None, "请输入提示词"
try:
# 调用 Flux-RealismLora 模型
image = client.text_to_image(
prompt,
model="XLabs-AI/flux-RealismLora",
)
return image, "生成成功!"
except Exception as e:
return None, f"出错了:{str(e)}"
# 创建网页界面
with gr.Blocks(title="Flux 真实感图像生成器") as demo:
gr.Markdown("Flux 真实感图像生成器")
gr.Markdown("基于 XLabs-AI/flux-RealismLora模型,输入英文描述生成逼真图像。")
with gr.Row():
with gr.Column(scale=1):
prompt_input = gr.Textbox(
label="输入提示词 (Prompt)",
placeholder="例如:A photorealistic portrait of a young woman, soft lighting...",
lines=4
)
# 添加示例提示词按钮
gr.Examples(
examples=[
["A cinematic photo of a futuristic city at sunset, neon lights, 8k"],
["A macro shot of a dewdrop on a red rose, sharp focus, bokeh"],
["A photorealistic portrait of an elderly man with a white beard, dramatic light"]
],
inputs=prompt_input,
label="点击试试这些示例"
)
submit_btn = gr.Button("生成图像", variant="primary")
with gr.Column(scale=1):
output_image = gr.Image(label="生成的图像", type="pil")
output_status = gr.Textbox(label="状态信息")
# 绑定按钮点击事件
submit_btn.click(
fn=generate_image,
inputs=prompt_input,
outputs=[output_image, output_status]
)
# 启动服务
if __name__ == "__main__":
demo.launch(theme=gr.themes.Soft())
项目成功运行,打开浏览器并访问 http://127.0.0.1:7860 ,输入提示词后点击生成图片。

生成效果展示

提示词设计思路与修改
- 设计思路:
1.主体+环境(亚洲城市,霓虹灯,湿沥青)
2.氛围锚定:雨后,浓雾(决定光线散射方式)
3.模仿专业相机摄影 - 修改方案:
放弃长曝光,改为高速快门凝固瞬间,同时统一焦距为20mm广角,增强建筑纹理细节。
![image]()

光影效果与建筑纹理较第一版更为真实。
心得体会
- 掌握了构建项目与调用API的基本能力。
- 理解了提示词设计方法与设计思路。
-理解了前后端数据交互的过程。
Github个人主页搭建
参考资料:github个人主页搭建
完整github个人主页:https://john-ship-it5552.github.io/
效果图:

个人随笔
个人技能评估:
1.计算机科学基础:具备一定的计算机基础知识,掌握数据结构与算法、操作系统、计算机网络、计算机组成原理等核心课程内容。
2.C/C++基础:熟悉C/C++编程语言,掌握指针、内存管理、面向对象编程(继承、多态、虚函数等)及STL标准库使用。
3.熟练掌握Java语言特性,包括集合框架、多线程并发、I/O流、反射、注解等。
4.熟悉Web开发基础技术,包括HTML/CSS/JavaScript,了解HTTP/HTTPS协议、Cookie与Session、前后端交互原理。
代码量现状与目标
代码量5000行左右,希望在本学期结束能达到10000行,并积累大型项目开发经验。
期望学习的知识和收获
- 规划软件结构:学会在设计阶段想清楚各个部分如何分工、如何衔接,避免边写边改、越改越乱。
- 编写可靠代码:掌握写代码的基本规则和习惯,让程序能正常运行,并且尽量少出问题。
- 检查并修复错误:学会自己测试程序,找到隐藏的问题,并一步步修正,保证交付时质量过关。
- 管理代码版本:学会用工具保存每次修改记录,方便回溯历史,也方便多人同时工作而不互相覆盖。
- 团队协作开发:学会和队友分工配合,定期交流进度,互相检查代码,共同完成一个完整项目。
AI生成的软件工程学习指南及分析
- 先搭建整体认知框架
了解一个软件从无到有要经历哪些阶段,各自解决什么问题。 - 学会用工具管好代码
掌握代码存档、多版本切换、多人合并的方法,并养成每次存代码时简单说明改了什么。 - 边学边做,从小项目练手
每学一个新知识,立刻在一个迷你项目里用上,完整走完需求定义、编码、自测、整理文档的过程。 - 写得清楚比写得快更重要
注意变量命名、代码排版,随手加上简短注释,并写一份简单的使用说明。 - 主动参与小组任务
在小组里认领职责,定期同步进度,互相检查代码,共同决策。 - 每完成一个阶段就回头反思
记录下遇到的困难和自己的处理方式,思考有没有更好的办法。
分析:
这份学习指南亮点突出,围绕软件全流程搭建学习体系,聚焦实战练手、代码规范、团队协作与复盘反思,贴合入门和职场开发需求,能有效规避盲目刷题、忽视规范协作等低效学习问题,树立科学的编程学习理念。但指南实操性不足,仅给出核心学习方向,缺少各学习环节的落地细则、操作标准、梯度规划与验收要求,无具体工具用法、编码规范、协作流程及复盘模板,内容偏理论,需根据自身实际情况,结合课程执行。
博客编辑截图




浙公网安备 33010602011771号