个人随笔
自我评估
- 已具备的专业知识与能力
- 掌握计算机专业基础课程:数据结构、算法、操作系统、计算机网络。
- 具备基础编码能力,会使用C/C++进行简单程序编写。
- 感兴趣的技术方向
AI Agent,AI工具 - 现在的代码量以及目标代码量
目前我的代码总量在2-3千行,主要来自课后作业。
我的目标代码量在7-8千行。 - 在本课程中希望学习到的东西
我希望学习到团队协作,共同设计一个高质量的软件。 - ai生成的学习指南
以下内容由deepseek生成:
软件工程课程学习指南
一份浓缩的软件工程知识框架,旨在帮助你在短时间内建立从“写代码”到“做产品”的工程化思维。
🎯 课程核心目标
- 不是教你写更多代码,而是教你组织代码和组织团队。
- 掌握将用户需求转化为高可用、易维护软件系统的全过程。
- 熟悉现代软件开发的主流流程与工具链。
📚 核心知识体系
1. 需求工程 (Requirement Engineering)
关键在于搞清楚“做什么”,而不仅仅是“怎么做”。
- 核心任务:需求获取、分析与建模。
- 主要产出:
- 需求规格说明书 (SRS):正式文档,侧重边界与约束。
- 用户故事 (User Story):敏捷开发常用,格式为“作为 [角色],我想要 [功能],以便 [价值]”。
- 重点概念:功能性需求 vs 非功能性需求(性能、安全、可用性)。
2. 软件设计与架构 (Design & Architecture)
从“能跑就行”过渡到“好改、好扩展”。
- 设计原则:熟记 SOLID 原则(单一职责、开闭原则等),这是面试和重构的高频考点。
- 常见架构模式:
- 分层架构 (Layered):经典三层(表现层、业务层、数据层)。
- 微服务 (Microservices):独立部署,适合大型团队。
- MVC:模型-视图-控制器,Web 开发必备。
- UML 图:重点掌握 类图 和 时序图,用于团队沟通。
3. 软件质量与测试 (Quality & Testing)
测试不是为了找 bug,而是为了建立信心。
- 测试金字塔(由下往上,投入递减):
- 单元测试 (Unit):针对最小函数模块(工具:JUnit, pytest)。
- 集成测试 (Integration):验证模块间接口。
- 端到端测试 (E2E):模拟用户真实操作(工具:Selenium, Cypress)。
- TDD (测试驱动开发):先写失败的测试,再写实现代码,最后重构。
4. 项目管理与过程模型 (Process)
软件不是一次写完,而是“螺旋式”演进。
- 瀑布模型 (Waterfall):严格顺序,适合需求明确的小项目。
- 敏捷开发 (Agile) - Scrum 框架(当前主流):
- 核心角色:产品负责人 (PO)、Scrum Master、开发团队。
- 核心节奏:Sprint 冲刺(通常 1-4 周)、每日站会 (Daily Stand-up)、Sprint 评审与回顾。
🛠️ 现代工程常用工具链
| 阶段 | 推荐工具 (主流) | 作用说明 |
|---|---|---|
| 项目管理 | Jira, Trello, TAPD | 跟踪需求和任务进度(Issue 与看板) |
| 版本控制 | Git (配合 GitHub / GitLab) | 源码托管与协作(必学分支策略:Git Flow) |
| 持续集成 | GitHub Actions, Jenkins | 自动化构建、测试和部署 |
| 代码审查 | Gerrit, GitHub PR 流程 | 保证代码质量与知识传递 |
| 文档协作 | Confluence, Notion | 维护设计文档和会议记录 |
🗺️ 高效学习路线建议
如果时间有限,建议按以下优先级攻克:
- 先跑通一个完整的敏捷周期:找一个简单需求(如“待办事项 App”),从写用户故事开始,到提交代码(PR)并合并,完整走一遍。
- 死磕 UML 类图:它串联了“需求”和“代码”,画好类图,代码结构自然清晰。
- 硬写单元测试:强迫自己为项目关键函数写至少 3 个单元测试用例,理解“可测性”对代码设计的反向约束。
- 不要死记硬背工具:重点理解工具解决了什么痛点(例如:Git 解决协作冲突,CI 解决人工部署失误)。
📖 推荐参考资源
- 经典书籍:《人月神话》(管理哲学)、《代码大全》(编码实战)、《设计模式》(Head First 版入门极佳)。
- 开源项目:在 GitHub 上找一个星标高的、使用主流框架(如 Spring Boot / React)的中型项目,阅读其
README和项目结构,比看论文学得更快。
最后的提醒:软件工程不是“银弹”,没有万能药。遇到问题多问自己:“如果需求明天改了,我的代码要改几行?” —— 这个问题的答案,就是你工程能力的衡量标尺。
我的分析:这个学习指南是合理的。他教我该从何开始,怎么做,为什么这样做等。
浙公网安备 33010602011771号