这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
这个作业的目标 | 学习使用git操作和markdown编辑,明确学习内容 |
学号 | 102301607 |
1. 成员资料截图
2. 团队主页的网址
https://github.com/YQL-light/Groups-warehouses
3. 自我评估
能力
-
基础编程与数据结构实现能力
学过 C/C++,理解指针、内存管理等基本概念,能够用它们来写代码实现课本上的数据结构和算法。同时也学过 Python,能用它来写脚本、做数学计算和简单的数据分析。理解数组、链表、栈、队列、哈希表、二叉树这些基本结构是干什么的,以及它们大致的优缺点,并能在代码中实现它们。 -
计算机系统基础概念理解
了解进程和线程是什么、内存管理大概是怎么回事、程序是怎么并发执行的。这些知识让我在写代码时,能大概想象出程序在计算机里是怎么跑起来的,但还远达不到能优化或解决复杂问题的程度。 -
简单的数据处理能力
会写基本的 SQL 语句,能进行多表查询和数据的增删改查,明白事务和索引这两个概念很重要,但实际用的不多。
我感兴趣的技术方向
对后端开发特别感兴趣。具体来说,我好奇的是:一个网站或者App,到底是怎么接收到我的请求并返回结果的。我的兴趣点在于想亲手搭建一个能通过网络访问的服务,并让它变得更好用。
我接下来迫切想学习的具体技能
-
技能一:搭建一个能访问的Web服务
目标:用 Python或者 Java,写一个最简单的程序,让我在浏览器里输入网址后,它能返回一句"Hello World"或者一段JSON数据。 -
技能二:让服务用上数据库
目标:在上一步的服务里,连接上MySQL数据库。实现一个简单的功能,比如:通过访问一个特定的网址,能把我写在代码里的一条用户信息存进数据库,或者从数据库里把用户信息查出来并显示在网页上。 -
技能三:代码版本管理和团队协作入门
目标:熟练使用 Git,能把我的项目代码上传到 GitHub。学会最基本的分支、提交、拉取操作,理解在团队中怎么用 Git 来共同维护一份代码。
4. 代码量
-
现有代码量:我目前的总代码量大约在3000-5000行之间。
- C/C++ 课程作业:累计编写过几十个独立的c或cpp文件,每个文件几十到几百行不等。内容主要是实现某种数据结构(如链表、二叉树)、排序算法或解决特定的算法题。
- Python 脚本与建模:为数学建模和数据分析写过一些脚本,代码量在几百行左右,结构较为简单。
-
目标代码量:我希望我的代码实现一次从量变到质变的飞跃。在课程结束时,累计完成10000 行高质量、有意义的代码。
5. 期待在课程中能够学习到的知识
-
工程化思维与团队协作流程
一套标准的、可执行的团队开发流程。比如如何从一个模糊的需求开始,进行任务拆分、制定开发计划、分配工作,直到最终集成和发布。 -
版本控制与团队协作的实战能力
超越git add/commit/push
的单个开发者模式,真正掌握在团队中使用 Git 的标准方法和最佳实践。 -
软件设计与可维护性
如何设计代码结构,希望了解有哪些通用的设计模式可以用来解决常见的软件设计问题。 -
质量保障与部署运维入门
工业界确保软件质量的基本方法和将软件交付给用户的技术路径。
6. 学习指南
软件工程学习指南
一、课程学习目标
在本学期的软件工程学习中,你的总体目标是:
- 从会写代码过渡到会开发软件 —— 不仅能完成功能,还要会考虑软件的结构、可维护性和团队协作。
- 形成工程化思维 —— 学习标准的开发流程,从需求分析到部署上线。
- 积累实战经验 —— 在团队项目中,独立完成核心模块,并通过代码量和质量实现能力的突破(10000–15000 行)。
二、阶段性学习路线
阶段一:夯实基础(第 1–3 周)
目标:补足短板,建立开发环境,掌握最小可行的实践技能。
- 开发环境与工具
- 学会使用 IDE(VSCode / IntelliJ / PyCharm)
- 配置 Python(Flask)或 Java(Spring Boot)开发环境
- 安装并使用 MySQL,理解基本的数据库连接
- Git 版本管理
- 学习 Git 的基本命令:clone、add、commit、push、pull、branch、merge
- 结合团队仓库 Groups-warehouses,练习多人协作:fork、PR、冲突解决
- 小练习
- 用 Flask/Spring Boot 实现"Hello World"服务
- 用 Git 管理代码,并 push 到 GitHub
阶段二:工程化开发入门(第 4–7 周)
目标:掌握从需求到实现的开发流程,初步体验团队协作。
- 需求分析与任务拆分
- 学习编写简短的需求文档(Use Case、用户故事)
- 将需求拆分为任务,写成 Issue/任务卡
- Web 服务 + 数据库集成
- Flask/Spring Boot 项目中接入 MySQL
- 实现用户信息的增删改查(CRUD)
- 练习 REST API 设计(如 /users/create、/users/list)
- 软件设计与可维护性
- 学习 MVC 模型(Model-View-Controller)
- 理解代码复用的重要性,尝试使用函数封装和模块化
阶段三:团队项目实战(第 8–12 周)
目标:参与团队协作开发一个中型项目。
- 团队协作流程
- 使用 Git 分支协作:每人负责一个功能模块
- 学习代码审查(Code Review),理解如何写清晰的 commit message
- 学习如何写 README 和接口文档
- 项目开发
- 团队确定一个小型但完整的项目(例如:简易图书管理系统、学生选课系统、留言板网站)
- 完成从需求分析 → 数据库设计 → 接口开发 → 前后端联调的完整流程
- 软件设计模式
- 学习并应用 2–3 个常见设计模式(单例、工厂、观察者等)
- 在项目中尝试优化代码结构
阶段四:质量与部署(第 13–16 周)
目标:学习软件质量保障方法,体验部署运维。
- 测试与调试
- 学习单元测试(Python unittest / JUnit)
- 练习测试驱动开发(TDD)的简单案例
- 掌握日志与调试技巧
- CI/CD 与部署
- 学习 GitHub Actions 或 Jenkins 的基本用法,体验持续集成
- 部署项目到云服务器(如阿里云、腾讯云)或 Heroku,真正让别人可以访问
- 课程总结与提升
- 回顾从需求 → 设计 → 编码 → 测试 → 部署的完整流程
- 整理开发日志与代码量统计,反思哪些地方实现了"质变"
三、重点技能清单
- 基础编程:巩固 Python/Java,熟练使用 Flask 或 Spring Boot
- 数据库:能设计并操作 MySQL,理解事务与索引的作用
- 工程化思维:熟悉团队协作流程、任务拆分、需求分析
- Git 协作:分支管理、PR、冲突解决、代码审查
- 软件设计:掌握 MVC 思维,了解常用设计模式
- 质量保障:学会写单元测试,理解 CI/CD
- 部署运维:能够将 Web 应用部署到线上环境
四、自我进阶与里程碑
- 第 4 周前:完成第一个 Web 服务 + GitHub 版本管理
- 第 8 周前:完成数据库 CRUD 应用,参与团队任务拆分
- 第 12 周前:完成团队项目的核心模块,实现模块联调
- 第 16 周前:完成项目部署,产出 10000–15000 行高质量代码
最终目标:你不仅会"写代码",还会"做软件"。这意味着你能从零构建一个能被别人访问、使用和维护的系统,并在团队中顺利协作。
分析:指南通过四个循序渐进的阶段,将工程化思维和团队协作能力培养贯穿始终,完美契合实战与突破的需求。
markdown编辑器截图