| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/homework/15628 |
| 这个作业的目标 | 介绍自己 |
| 学号 | 3124004632 |
| 团队主页的网址 | https://github.com/origisxu/CE |
1.技能树暂无,技术偏好ai方面和c++
2.之前代码量较少,希望上完这门课可以达到比较多的代码量
3.最期待在课程中学习到ai与编程的结合方面的知识
4.一、 核心思想:软件工程 ≠ 写代码
软件工程是关于如何系统地、协作地、可持续地开发和维护软件。
个人能力:写能跑的代码。
工程能力:写别人能看懂、能维护、能协作、不容易崩的代码。
二、 学习路线图(四大阶段)
第一阶段:基石与规范
在写第一行代码前,需要先建立工程的思维框架。
软件开发流程:了解瀑布模型、敏捷开发(Scrum)、DevOps 的基本概念。知道软件开发不只是编码,还有需求、设计、测试、运维。
代码规范与风格:学习命名规范(变量/函数/类)、注释规范、代码格式化。这是团队协作的基础。
版本控制 (Git):这是必须掌握的生存技能。
核心命令:clone, commit, push, pull, branch, merge。
理解:分支管理策略(如 Git Flow 或 GitHub Flow)。
第二阶段:核心工程实践
这是软件工程区别于普通编程的核心部分。
面向对象设计 (OOD) 与设计模式:
原则:SOLID 原则(单一职责、开闭原则等)。
模式:学习几种常用模式,如单例、工厂、观察者、策略模式。
单元测试与自动化测试:
学习编写单元测试(如 JUnit, pytest)。
理解测试金字塔:单元测试 > 集成测试 > UI测试。
了解测试驱动开发(TDD)的理念:先写测试,再写实现。
重构:学习“坏味道”代码的识别以及如何在不改变外部行为的情况下改进内部结构。
第三阶段:协作与项目管理
将个人能力放大为团队能力。
UML(统一建模语言):学习画几种关键图来沟通设计。
必会:用例图、类图、时序图。
构建与持续集成:
了解项目构建工具(Maven, Gradle, Webpack)。
理解 CI/CD 概念:每次代码提交都能自动构建、测试和部署。
文档编写:学习写需求文档、设计文档、README 和接口文档(Swagger)。
第四阶段:进阶与扩展
软件架构:了解常见的架构风格,如分层架构、MVC、微服务。
质量保障:代码审查 (Code Review) 的流程与技巧。
三、 实战建议:如何真正学会?
纸上得来终觉浅,绝知此事要躬行。
模仿优秀开源项目
去 GitHub 找一个 star 多的项目。
别只看代码:重点看它的 README(如何用)、CONTRIBUTING(如何贡献)、Issue(如何管理Bug)、Pull Request(如何审查代码)。
以“团队”形式做项目(哪怕只有你一个人)
发起一个 mini 项目(比如一个记账本)。
强制自己遵守流程:
第1步:写一个简单的需求文档。
第2步:画几张 UML 类图(哪怕后面改了)。
第3步:用 Git 创建仓库,建立 main 和 dev 分支。
第4步:写代码时,顺手把单元测试写了。
第5步:完成功能后,打上 Tag 发布一个版本。
善用工具
项目管理:Jira, Trello, 或者 GitHub Projects。
沟通:Slack, 钉钉。
四、 推荐学习资源
经典书籍:
《代码大全》(非常厚,但涵盖一切)
《人月神话》(讲述工程的复杂性)
《重构:改善既有代码的设计》
《设计模式:可复用面向对象软件的基础》
在线课程:
搜索“软件工程”或“敏捷开发”的入门课程,了解基本概念即可。
实践平台:
GitHub/GitLab
合理且有用