个人作业——软件工程实践总结&个人技术博客

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020SpringW
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020SpringW/homework/10836
这个作业的目标 给这段时间的学习和实践所得做一个总结
作业正文 https://www.cnblogs.com/sillyby/p/13132072.html
其他参考文献

一、回望

对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

达成的目标:

  • 提高团队协作的能力
  • 入门spring boot开发,能够有所产出,可以独立负责一个模块的开发工作
  • 提高软件设计能力
  • 提升文档的撰写和表达能力
  • 掌握一些软件测试方法

不足之处:

  • 没有领略Spring Boot的全部魅力,一些已学知识没有投入到实际开发运用中,实际团队开发中止步于CRUD和一些集成工具、注解的使用
  • 到开发中后期没有很好把控个人情绪和合理安排时间,偶尔会影响开发工作。
  • 除结对作业外,没有在团队中发挥特别核心的作用,虽然我的代码产出量可观,但是工作的可替代性高。

你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能;和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?

以下是根据第一次作业定的学习路线更新的学习进度,打勾的是已经学习并掌握的知识点,扇形表示大致的学习程度,未被标记的是尚未接触过的知识点

个人作业——软件工程实践总结&个人技术博客_第1张图片

可见我并没有达到学习预期,还有很多知识只是浅尝辄止甚至没有接触,主要是我低估了学习spring boot的深度和广度,越学越发现其中大有门道,想要深究还需要付出许多额外的精力。

请总结这门课程的实践总结和给你带来的提升,包括以下内容:

  • 统计一下,你在这门软件工程实践中,一共完成了多少行的代码

    9000行左右

  • 软工实践的各次作业分别花了多少时间?(做一个列表)

    作业 大约花费时间(小时)
    准备篇 3
    热身篇——疫情统计 40
    结对第一次—某次疫情统计可视化(原型设计) 11
    团队作业第一次——种子队伍选拔和团队展示 10
    结对第二次作业——某次疫情统计可视化的实现 45
    团队作业第二次—团队Github实战训练 12
    团队作业第三次—项目需求分析 16
    团队作业第四次—项目系统设计与数据库设计 20
    个人作业——软件评测 10
    团队作业第五次——站立式会议+alpha冲刺 60
    团队作业第六次——beta冲刺+事后诸葛亮 55
    个人作业——软件工程实践总结&个人技术博客 6
  • 哪一次作业让你印象最深刻?为什么?

    团队Github实战训练,这是我遇到的ddl最吃紧的编程作业了,我们团队几乎在任务发布后的同时就开始了紧张的需求分析设计,并在午饭前进入了编码阶段,并利用下午时间完成了开发,傍晚完成测试工作,在晚上完成博客并提交作业,全程大家都保持在线状态,随时可以交流,一整天都在和时间赛跑,现在回想起来还是后劲十足。

  • 累计花了多少个小时在软工实践上?平均每周花多少个小时?

    • 写博客写文档+敲代码+沟通交流+思考和神游 ≈ 260小时

    • 平均每周 260 /(本学期16周+寒假4周)=13小时

  • 学习和使用的新软件、新工具

    • Jprofiler
    • Android Studio(换组后所学,搭建环境和调试)
    • Postman(学习了进阶功能的使用,如全局变量和使用JavaScript测试响应报文)
    • leangoo
    • mybatis generator(这应该算是工具吧?)
    • wakatime(代码时长统计插件,支持各种主流编辑器)
  • 学习和掌握的新语言、新平台

    • 换组后粗浅了解了一下Android的开发平台和大致结构
  • 学习和掌握的新方法

    • 运用Jprofiler进行性能测试
    • 学习了一些设计模式的思想,并在开发过程中部分应用(如策略模式、责任链模式、MVC 模式、工厂模式)
    • 使用leangoo进行项目进度跟踪和管理
  • 工程能力的提升

    • 能够运用一些设计模式的思想,提升了代码质量
    • 对一些工具的使用熟练度提升,提高了编码效率
    • 通过代码规范优化了自己的代码风格
  • 团队合作上的提升;

    • 阅读他人代码的能力,能够从中发掘出值得学习之处并在自己的开发过程中运用
    • 队友沟通协调的能力
    • 新开发环境的适应能力
  • 其他方面的提升;

    • 抗压能力算是提升了一些吧

二、团队总结

你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?

在旧团队中我负责一个完整后端模块的代码编写,由于使用的是我较为熟悉的技术,自认为任务完成的还不错,过程也挺充实的。

如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?

  • 大致按照大家的技术特长进行分工,挺合理的,大家都能各司其职并有条不紊的完成工作。

  • 我觉得组长在确定项目选题之后再由提出选题的同学担当比较合适,因为他会是最了解整个项目的人,责任感也是最强的。

你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。

  • 我被换到了一个水平相对较低的小组,感觉还是蛮有心理落差的,而且不得不面对一个从零开始的适应过程,不过换组也是一种考验和机会,能让我接触到不同的开发模式,积累更多的经验。

分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)

旧团队给我的感觉很有干劲,大家很快度过了磨合期就进入状态了,我想在alpha冲刺前就已经达到了“创造”阶段。换组后来到的新团队,虽然经过了alpha冲刺,但感觉大家刚刚开始进入规范阶段,在我试图融入这个团队的时候,他们一些成文或不成文的规则逐步建立起来,个人感觉到了beta冲刺的后期,大家才进入了“创造”阶段。

三、人月神话

怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。

  • 在旧团队(截止alpha冲刺)

    作业提出的几点条件基本上都达到了

    通过leangoo看板管理项目进度:https://www.leangoo.com/kanban/board/go/3400636

    项目仓库:https://github.com/YBN-JUAN/ANOP

    项目commit记录:https://github.com/YBN-JUAN/ANOP/commits/

    项目管理记录:https://www.cnblogs.com/kuailejiudui/p/12768887.html

    在我离开后团队将后端迁移到了微服务上,项目得到了一次进化

  • 在新团队(beta冲刺)

    通过leangoo看板管理项目进度:https://www.leangoo.com/kanban/board/go/3519260

    项目仓库:https://github.com/pb-xxxx/XXY

    项目commit记录:https://github.com/pb-xxxx/XXY/commits/master

    项目管理记录:https://www.cnblogs.com/RGSJ/p/12981855.html

写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,文字部分字数要求在100字以上

  • 在开始实现任何业务前必须规定好大的开发方向(要达到什么样的效果),参与者应该解决所有关于项目方向上的疑惑,在这方面存在理解上的分歧有时候是很致命的,尤其是在合作开发过程中。
  • 在设计构思阶段不应该陷入技术实现的细节中,在确保可行性(能够实现或者经过学习可以实现)的前提下,尽量由想法去引导技术,而不是由技术去引导想法,这有利于开发者的成长。
  • 规范很重要,合作开发一定要有成文的规范可以遵循,无论是代码风格还是接口设计。没有良好规范的团队是在群魔乱舞,我在换组后进入了一个新的团队,他们的规范过于模糊,这对高效的开发很不利,经过我和组长的沟通后,组长进行了一些改进,比如规定每人每天去看板更新自己的进度,小问题私下解决,大问题再一起解决等。

四、建议

对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。

以下每一个建议都基于我付出的惨痛代价而提出:

  • 如果你刚刚接触这个专业,一定要在学好基础的情况下多多了解当下流行的技术和方向,这些在大学课堂是很难学到的,然后乘早从中确定你的学习目标并为之奋斗。
  • 不管是考研还是就业,越早决定越好。决定做迟了也不要焦虑,种一棵树最好的时机是十年前,其次是现在。
  • 心急吃不了热豆腐,每个行业的水都很深,想一探究竟还是得从学好基础开始,不然你会发现你能达到的深度十分有限。
  • 年轻人少熬夜多运动,劳逸结合,不要用无用的努力麻痹自己。

对于软工实践课程,你有哪些建议?

  • 希望老师和助教能够多多注意那些态度不端正的划水人员。

对于助教工作,你有哪些建议?

  • 助教很棒很负责,原谅我这方面本来就不如别人,没啥建设性意见~

对于自己今后,你有哪些建言?

  • 基础啊基础很重要啊别忽略了!以后的学习和工作中也要保持对基础的巩固啊!
  • 定下一个目标就往前冲吧,别再半途而废了。
  • 做到自己能做到的最好就没什么可遗憾的。
  • 别吝啬于表达自己的想法。

个人技术博客

Spring Boot整合邮件配置

这个技术能使spring boot项目具备发送邮件的功能,这个技术我是作为技术储备来学习的,没想到在学习后没多久就能够有用武之地。该项技术总体难度不大,硬要说难的地方就在于整合模板引擎发送模板邮件,因为还要同时了解一些模板引擎的知识,不过如果有JSP相关知识会容易应付得多。

你可能感兴趣的:(个人作业——软件工程实践总结&个人技术博客)