第一次个人作业

软件工程第一次作业

作业基本信息

项目 内容
这个作业属于哪个课程 软件工程
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/DoubleDegreeClassof2022/homework/13334
这个作业的目标 为后续课程学习做好准备,规划未来职业发展,熟悉markdown语法
其他参考文献 百度

目录

  1. 准备工作
  2. 评估当前的自己
  3. 展望未来
  4. 思维导图和学习路线

1. 准备工作

1.1 Git代码仓库

2. 评估当前的自己

2.1 简历

项目 内容
姓名 杜树扬
头像
兴趣爱好 健身、舞狮、阅读
专业能力 熟悉C、mysql语言基本操作
项目经历 图书管理信息系统

3. 展望未来

3.1 《构建之法》问题思考
1.如何平衡软件项目的需求变更与进度控制?
思考:
需求变更不可避免,建议采用敏捷开发模式(如 Scrum),通过定期迭代(Sprint)拆分任务,确保每个周期内只处理优先级最高的需求。
建立需求评审机制:产品经理需与开发团队共同评估变更成本,避免因频繁变更导致进度失控。
使用项目管理工具(如 Jira)跟踪需求状态,明确变更对工期和资源的影响。
2.团队开发中如何有效进行代码审查?
思考:
制定统一的代码规范(如命名规则、注释标准),借助工具(如 SonarQube)进行自动化检查,减少低级错误。
采用 “结对编程” 或 “分支评审” 模式,由资深成员带领新人交叉检查,重点关注架构合理性、性能瓶颈和安全性。
代码审查应注重建设性反馈,避免批评个人,可通过 Git 流程(如 Pull Request)强制要求评审通过后再合并代码。
3.如何评估程序员的工作效率与贡献?
思考:
避免单纯以代码行数(LOC)衡量效率,可结合功能完成度、任务复杂度(如 Story Points)、Bug 修复率等多维指标。
引入 OKR(目标与关键成果法),关注项目整体目标的达成,而非个人产出的绝对值。
通过团队成员互评、用户反馈等方式综合评估贡献,例如在开源项目中可统计代码合并次数、Issue 解决率等。
4.软件测试如何避免 “为了测试而测试”?
思考:
测试需紧密围绕用户需求,优先覆盖核心功能和高频使用场景,例如通过用户故事(User Story)设计测试用例。
推行 “测试左移”(Shift Left Testing),在需求分析阶段就介入测试设计,提前发现逻辑漏洞,减少后期返工成本。
采用自动化测试(如单元测试、UI 自动化)提升效率,同时保留必要的手动探索性测试,确保用户体验符合预期。
5.技术债是否应该优先偿还?如何规划?
思考:
技术债需按风险等级分类处理:高风险债(如安全漏洞、性能瓶颈)应立即修复,低风险债(如代码可读性差)可纳入迭代计划逐步重构。
在每个迭代周期(如 Sprint)中预留 10%-20% 的时间用于债务偿还,避免债务累积影响开发效率。
通过技术评审和代码重构实践(如 Refactoring)培养团队的 “还债” 意识,例如在设计新功能时优先考虑可维护性。
3.2 职业规划
目标方向:成为 Unity 游戏开发工程师,专注于 3D 游戏开发与跨平台优化。
阶段计划:

短期(6 个月):
掌握 Unity 引擎核心模块(如物理系统、渲染管线),完成 2-3 个独立游戏 Demo。
深入学习 C# 编程,熟练使用设计模式优化代码结构。
中期(1-2 年):
参与商业游戏项目开发,积累多人协作经验,学习版本控制(如 Perforce)和资源管理流程。
研究 Shader 开发与图形学优化,提升游戏画面表现和性能。
长期(3-5 年):
成为技术骨干,主导中小型游戏项目的架构设计,负责跨平台部署(如 PC / 主机 / 移动端)。
探索前沿技术(如 VR/AR、元宇宙),尝试将 AI 技术(如行为树、生成式内容)融入游戏开发。
3.3 对软件工程实践课程的期望
想学技术:Unity 引擎开发(重点学习 URP 渲染管线与 Addressables 资源管理)。
能力提升:
团队协作:通过结对编程和团队项目,掌握 Git 协同开发流程,提升沟通效率和任务拆解能力。
项目全流程管理:学习从需求分析、设计到测试、部署的完整开发周期,理解敏捷开发模式的实际应用。
对老师助教的期待:
提供工业级项目案例参考(如中小型游戏开发文档、资源管理规范),帮助学生贴近实际开发场景。
定期开展技术分享会(如 Unity 性能优化、Shader 入门),并针对个人项目提供代码评审和优化建议。
强调代码质量与可维护性,引导学生养成编写注释、单元测试的良好习惯。

  • 思考:采用增量修改策略,只更新受影响的测试用例。为保证代码质量,适当的测试维护成本是必要的投入。

3.2 未来职业规划

计划跨专业考研,在硕士阶段:

  1. 拓宽知识面,建立跨学科视野
  2. 选择特定技术方向进行深入研究
  3. 以扎实的技术储备进入互联网企业

3.3 对软件工程实践课程的理解和期望

期望学习内容

  • 商业级软件开发流程与方法论
  • 实际项目开发经验
  • 团队协作与项目管理技能

具体目标

  1. 掌握主流开发框架的应用
  2. 理解从需求分析到部署的全流程
  3. 提升解决实际工程问题的能力

4. 思维导图和学习路线

C++/Unity开发学习路线图

6个月学习计划

  1. 第1-2月:巩固C++核心知识

    • 深入理解STL容器与算法
    • 完成3个中等规模控制台项目
  2. 第3-4月:Unity进阶

    • 掌握UGUI系统
    • 开发2D平台游戏demo
  3. 第5-6月:项目实战

    • 参与开源游戏项目
    • 学习性能优化技巧
posted @ 2025-06-03 21:21  杜树扬  阅读(17)  评论(0)    收藏  举报