软件工程第一次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546/ |
这个作业的目标 | 通过团队协作完成GitHub团队主页搭建、AIGC生成团队Logo、建立个人技术博客和简介,进行自我能力评估与学习规划,以Markdown格式提交包含完整内容的博客园随笔 |
学号 | 102301223 |
团队主页
团队主页Github链接 | https://github.com/xuezong691/fzuteam_lakers |
---|---|
团队名称 | fzuteam_lakers |
成员资料Github截图
自我介绍
关于我
-
姓名:汤健
-
班级:计算机2班
-
学号:102301223
-
兴趣:单机游戏、咖啡
个人能力(及未来)
-
已学习的内容:C/C++、C#(不熟练)、Java(不熟练)、html/css/js、ajax
-
正在学习的内容:node.js、vite、vue2+3
-
计划学习的内容:spring、sql、java高级
-
略有兴趣,有时间会考虑去学习的内容:unity、spigot、paper
-
目前代码量:2348lines(来自Vs Code Counter)
-
目标代码量:5k+
个人感想
我对自己计划的未来发展方向是全栈工程师。打算先把前后端学完了再根据个人体会判断是否选择一方面进行精进,因此暂时未有技术偏好。
目前前端学习过半,打算等前端学的差不多了转入后端学习。代码量尚有不足,并且暂时未有项目经验,打算在未来参与一些项目。若是项目经验积累足够了,会考虑出去积累实习经验。
除此之外,我未来考虑考研以争取更多的时间能在大学深造,参加比赛或是做项目等
学习指南(来自Github Copilot)
点击查看代码
# 软件工程课学习指南(为 KrisReynard 定制)
说明:这份指南以你现有技能与学习计划为基础(已学:C/C++、HTML/CSS/JS、正在学:node.js、vite、vue2/3,计划学:spring、sql),目标是帮助你在软件工程课上既完成课程要求又积累项目经验,逐步朝全栈工程师转型。
---
## 一、总体目标(学期目标)
- 掌握软件工程的基本概念、流程与实践(需求、设计、实现、测试、部署、维护)。
- 用现代前端(Vue + Vite)和 Node.js 实现至少 2 个完整小项目(含版本控制、测试、部署)。
- 学会在 GitHub 上规范化协作(issues、PR、代码审查、CI)。
- 能写一份清晰的项目文档(README、设计文档、测试记录)并在课程结课时做演示与答辩。
---
## 二、学习策略与方法
1. 理论结合实践:每学一项理论(需求、架构、测试等)就立刻在小项目中实践。
2. 逐步递进的项目法:从小而完整(单页应用 + 后端 CRUD),到中等复杂(认证、文件/图片、部署、CI),最后做一个集成展示(小型团队或个人完成)。
3. 每周产出:至少一次小提交(GitHub commit)+ 每两周一次小演示/README 更新。
4. 代码质量:学会写单元测试、lint、使用 Prettier/ESLint、基础的类型检查(TypeScript 可选,但后期强烈推荐)。
---
## 三、学期(12–14 周)详细周计划(可按学期长度调整)
第 1–2 周:课程准备与工具链
- 目标:
- 搭建开发环境(VS Code、Node.js、Git)。
- 学习 Git 基本命令与 GitHub 工作流(branch、PR)。
- 产出:
- 在 GitHub 建一个名为 `se-course` 的仓库,创建 `README.md` 写出计划。
- 资源:
- Git 官方文档、GitHub Learning Lab
第 3–4 周:需求、版本控制与基础前端练习
- 内容:
- 软件工程基础(SDLC、敏捷、Scrum 基本概念)。
- 小项目 1:To-do 列表(Vue + Vite,前端单页应用)。
- 要点:
- 编写简单的需求说明(用户故事)。
- 用 issues 跟踪任务。
- 产出:
- 完整的 README、基本单元测试(Jest/Vitest)。
第 5–7 周:后端入门与前后端联调
- 内容:
- Node.js + Express(或 Koa)实现 RESTful API。
- 将 To-do 改成前后端分离(前端调用后端 API,持久化使用文件或 SQLite)。
- 要点:
- 学习 HTTP、状态码、CORS、POST/PUT/DELETE。
- 产出:
- 部署到免费平台(Heroku、Railway、Vercel serverless functions 或 GitHub Pages + 后端部署)。
- 写 API 文档(简洁的 OpenAPI/Swagger 或 README 的 API 部分)。
第 8–9 周:认证、数据库与更复杂功能
- 内容:
- 引入用户认证(JWT 或 session)。
- 迁移数据库:SQLite → MySQL/Postgres(本地或云)。
- 要点:
- 安全基础(密码哈希、环境变量管理)。
- 产出:
- 项目 2:带用户登录的博客或记事本(CRUD + auth)。
第 10 周:测试、CI/CD 与代码质量
- 内容:
- 单元测试、集成测试(前端组件测试、后端路由测试)。
- 配置 GitHub Actions 做自动测试与 lint。
- 产出:
- 在 main 分支上通过 CI 检查。
第 11 周:部署与运维基础
- 内容:
- 学习 Docker(基础)、部署流程、环境配置。
- 日志、简单监控(可选)。
- 产出:
- 将项目部署到云(包含域名或使 demo 可以访问)。
第 12–13 周:整合、文档、演示准备
- 内容:
- 编写设计文档:架构图、数据模型、API 说明、测试报告。
- 准备演示 PPT 与 demo 流程。
- 产出:
- 最终提交:项目源码、README、设计文档、演示视频或在线 demo。
可选第 14 周:扩展与代码复盘
- 内容:
- 重构、性能优化、添加功能(如 WebSocket、文件上传)。
- 进行 code review 并写学习反思。
---
## 四、项目路线(进阶式)
- 项目 A(入门,1–2 周)
- To-do 列表(前端 Vue 2/3 + Vite)
- 功能:增删改查、状态管理(简单),本地存储或 mock 后端
- 产出:基本 README、issues 跟踪
- 项目 B(进阶,3–4 周)
- 博客/记事本(前后端分离)
- 技术栈:Vue + Vite 前端,Node.js + Express 后端,SQLite/Postgres
- 功能:用户注册/登录、文章 CRUD、分页、基础测试
- 部署:部署后端 API,前端部署到静态站点
- 项目 C(进阶 + 集成,4–6 周)
- 小型电商或聊天室(视团队/个人时间)
- 新增:支付模拟、购物车、文件/图片处理、WebSocket(聊天室)
- 引入 CI、Docker、性能优化、可选单元/端到端测试(Cypress)
每个项目都应包含:
- Issue 列表(任务划分)
- README(安装、运行、API、部署、测试)
- CHANGELOG 或提交记录说明主要修改
---
## 五、评估标准(自我测量)
给自己每两周做一次小评估:
- 功能完成度(是否满足最小可交付产品 MVP)
- 代码质量(是否通过 lint,是否有测试)
- 文档质量(README、API 文档、部署说明)
- 协作流程(是否使用 issues,是否有 PR 流程)
评分建议用 1–5 打分并写短评。
---
## 六、学习资源(中文/英文混合)
- 前端
- Vue 官方文档(中文/英文) - https://vuejs.org / https://cn.vuejs.org
- Vite 文档 - https://vitejs.dev
- MDN Web Docs(HTML/CSS/JS) - https://developer.mozilla.org
- 后端 / Node
- Node.js 官方 - https://nodejs.org
- Express 中文文档 - https://expressjs.com/zh-cn/
- 廖雪峰的 Node 教程 - https://www.liaoxuefeng.com/wiki/1022910821149312
- 数据库
- SQL 入门(廖雪峰/菜鸟教程)
- SQLite / Postgres 官方文档
- 测试 & CI
- Jest / Vitest 文档
- GitHub Actions 入门文档
- 软件工程理论
- 《人月神话》节选(概念参考)
- 《重构:改善既有代码的设计》(入门)
- 在线课程:Coursera、edX、慕课网、B 站技术课程
- Git/GitHub
- Pro Git(书)与 GitHub Learning Lab
- 中文社区与教程
- 极客时间、掘金、CSDN、B 站(很多实战视频)
---
## 七、工具 & 模板(建议)
- 编辑器:VS Code(插件:ESLint, Prettier, Volar/ Vetur(对应 Vue 2), GitLens)
- 包管理:pnpm 或 npm/yarn
- Lint/格式:ESLint + Prettier
- 测试:Vitest / Jest(前端)、supertest(后端)
- CI:GitHub Actions(自动 lint、test)
- 部署:Vercel(前端)、Railway/Render/Heroku(后端)、或 Docker + 云主机
- 项目模板(建议):
- README 模板(项目介绍、运行、构建、部署、API、测试)
- ISSUE 模板(bug/feature/task)
- PR 模板(目的、变更点、如何测试)
---
## 八、课程作业(模板和交付清单)
每次提交(小周作业)建议包含:
- GitHub 仓库链接(公开或私有课堂协作)
- 开发分支名与 PR(合并到 main 时关联 issue)
- README:如何运行(举例命令)
- 简短设计说明(架构图或流程)
- 测试报告/覆盖率(可选)
- 演示视频(3–5 分钟,展示核心流程)
---
## 九、项目示例任务拆分(以博客项目为例)
- Issue #1:初始化仓库与项目脚手架(前端/后端) - 2 天
- Issue #2:用户模型与注册登录 API - 3 天
- Issue #3:文章模型与 CRUD - 4 天
- Issue #4:前端文章列表与编辑页面 - 4 天
- Issue #5:部署后端到云 - 2 天
- Issue #6:部署前端并配置域名 - 1–2 天
- Issue #7:集成测试与 CI - 2 天
---
## 十、从课程到简历/面试的过渡建议
- 项目要可复现:别人能按 README 在 10 分钟内跑起来。
- 在 GitHub 上做好 commit 历史与 PR 记录,展示协作能力。
- 项目 README 必须包含“技术要点/难点/解决方案/学到的东西”段落(面试问点)。
- 做一个项目集(2–3 个),每个项目写 1 分钟 elevator pitch(演示稿)。
- 准备常见面试题:数据结构与算法基础(简单题),HTTP、REST、认证、安全基础。
---
## 十一、额外建议(针对你的情况)
- 继续巩固前端(Vue2/3)后尽快把 Node.js 的基础学完,这样能较快完成前后端联调项目。
- 逐步引入 Java/Spring 与 SQL 时,可选择做一个后端改写(将 Node.js 后端迁移到 Spring Boot),这是很好的对比学习。
- 若对 Unity/Spigot 感兴趣,可在学期后期做为小插件或小游戏项目,但优先完成后端学习与数据库。
- 每做完一个项目写一篇 300–500 字的学习总结(记录难点、解决方案、未来改进项)。
---
## 十二、优先级清单(短期行动项)
1. 在本周内创建 `se-course` GitHub 仓库并写好计划 README(包含学期计划、里程碑)。
2. 完成 To-do SPA(Vue + Vite),把它放上 GitHub 并写 README。
3. 学会用 Issues 管理任务、用 PR 做合并流程。
4. 学习 Node.js 基础并把 To-do 改为前后端分离(后端用 Express,持久化 SQLite)。
5. 学会写简单的单元测试并配置 GitHub Actions。
---
如果你愿意,我可以:
- 帮你把上述学习计划转换成 GitHub 仓库的 README 文件(我可以直接生成文件内容供你粘贴,或生成一个仓库提交 PR 的草稿)。
- 根据你课程的具体要求(作业、时间节点)把周计划精细化为日历任务。
- 给你生成一份 README 模板、Issue 模板和 PR 模板。
你希望我先做哪一项?(例如:生成 README 文件模板,或帮你把第一个 To-do 项目拆成 issues 列表并创建到 GitHub 仓库草稿)
这份指南是我根据个人能力和个人感想令Copilot生成的。
个人感想
简而言之,这份学习指南十分详细,但我认为时间的安排不太合理。
首先课程准备和基础前端练习是完全不需要的,或者说就算需要也不需要四周的时间去完成。以我目前掌握的能力,就算需要训练前端基础也是应该找一些小项目去做。
5-7周的后端入门可以将时间缩短,但是之后学习数据库等更复杂的东西应该将时间延长。
学习资源给的尚可,这些确实是我会参考的文档
剩下的,有的要么过于繁琐,要么现阶段我都不理解是什么内容,暂时保留评价。
总之,这份学习指南是基本适配我的现状的,能起到一定帮助