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

这个作业属于哪个课程 2020春w班
这个作业要求在哪里 作业要求
这个作业的目标 回顾,总结
作业正文 作业正文
其他参考文献 《构建之法》

一、回望

1、达到的期待与不足

回顾整个实践过程,感觉自己已经从懵懵懂懂的萌新进化成了有一定开发经验的新手程序员,这门课给我带来的收获不可谓不多。比如代码量积累方面,这门课给我带来了十分丰富的代码量,也让我遇到了形形色色的bug,从对bug的畏惧到现在的巴不得多来些bug(当然是简单的那种)让我收获更多debug经验。在开发经验上我算是成功达到了预期。当然我也有未达到预期的方面,比如说团队合作。说实话,直到现在我对我们团队合作带来的好处只感受到开发效率方面相对于一两个人有所提升,但远未达到预期。我们小组有八个人,但总感觉我们只做了三四个人的工作,也不是说有人划水,恰恰是每个人都认真工作了。但是总感觉我们组就像八核处理器,但是永远无法八核并发运行,只能同时调度起三四个核心。这对我来说无法看到真正的完整的团队合作带来的优势算是一个遗憾吧。

2、是否达到预期

回顾这一个学期,梳理我已经学习到的知识,我不仅完成了课程初期的期待,还额外的多学了很多内容,比如Hibernate(JPA),Struts等,算是成功的达到了当初的预期。

3、总结和提升

  • 完成的代码量

大概1万五千行左右吧

  • 各次作业花的时间

作业 时间(h)
准备篇 3
热身篇——疫情统计 12
结对第一次—某次疫情统计可视化(原型设计) 15
团队作业第一次——种子队伍选拔和团队展示 4
结对第二次作业——某次疫情统计可视化的实现 18
团队作业第二次—团队Github实战训练 10
团队作业第三次—项目需求分析 10
团队作业第四次—项目系统设计与数据库设计 12
个人作业——软件评测 8
团队作业第五次——站立式会议+alpha冲刺 65
团队作业第六次——beta冲刺+事后诸葛亮 46
个人作业——软件工程实践总结&个人技术博客 8
  • 印象最深刻的作业

团队第二次——github实训是我印象最深刻的作业,因为那天是我第一次全天不停的工作直到deadline前一分钟

  • 在软件工程实践上花的时间

作业阶段总共花了大概213个小时,其他时间段(两次冲刺之间)花了大概40个小时,按16周来算,平均每周花了约15.8个小时

  • 学习和使用的新软件

Axure RP,墨刀,postman

  • 学习和使用的新工具

junit,jProfiler,jmeter

  • 学习和掌握的新语言、新平台

markdown,github

  • 学习和掌握的新方法

前后端分离,以及各种测试

  • 工程能力的提升

系统设计与数据库设计能力,debug能力都有提升

  • 团队合作上的提升

学会了使用标准文档的方式与其他成员进行合作

  • 其他方面的提升

文档编写能力有所提升

二、团队总结

  • 担任的角色

我在小组内负责前端和接口设计的工作。对接口设计来说我还是比较适合这个角色的,因为我是项目的提出者,对前后端的需求更为了解,设计接口更快捷。但是对前端来说我认为我还是不太适合。主要原因是我缺乏审美,做出的界面都很难看。但由于小组内其他成员都没有学习过太多前端技术,只有我接触过vue这类前端框架技术,我不得不提刀上阵了。

  • 对组长的看法

在小组内我是组员,组长的分工比较合理,基本做到了人尽其用(虽然把我分配到前端有点难受就是了,但对于组长来说这是最好的解决办法)。我认为组长的选举还是要以技术为基准,好几次我们遇到了难以解决的bug和不知道怎么实现的功能都是组长力挽狂澜,我想一个小组有一个能解决很多问题的组长对整个团队来说至关重要。

  • 关于换组

这学期我并没有经历过换组。我对换组的看法是算是一种对符合工作人事变迁的模拟。我认为对还未投入工作的我们算是一种非常难得的体验。对换组的感受就是没什么感受,最多就是新组员是一位女生,而我们组原本都是大老爷们,可能讨论起来没有以前那么放得开。就开发来说因为组员交换在后端,对我前端没什么影响,所以感受不大。

  • 关于团队

我认为我们团队最终还未达到“创造”阶段,经过两次冲刺,我觉得我们团队还是缺少合作的默契,就比如在git的使用上,组员间没有详细的说明要修改的文件或者忘了说,导致经常有多个组员修改同一个文件而产生冲突,消除冲突又浪费了不少时间。造成这种问题还有一个原因是分工粒度不够且程序间耦合度太大,希望下次还有机会合作的话能完善这一方面。

三、人月神话

1、团队达到的要求

  • 通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
    我们团队使用看板(leangoo)进行任务分配,定制文档标准方便进行合作。经过这一个学期下来,虽然团队还存在许多不足,但我们团队有能力在规定时间内发布“足够好”的软件,比如β版本答辩的时候老师和助教都给出了软件完成度很高的评价。

  • 并且通过数据展现软件是可以维护和继续发展的。
    我们使用github平台进行源代码托管,有大量的commit记录可供后续的代码回溯

    我们拥有大量文档可供阅读,能支持后续的维护与继续发展

2、我的人月神话

经过这一学期的软件工程实践课程,我终于感受到了“设计”带来的好处。曾经的我写代码时从未考虑过设计,或者最多考虑一下代码中需要哪些方法,虽说最后总是能完成编码,但你问我代码能够扩展吗?能方便进行维护吗?我只能说扩展性与可维护性几乎为0,换个人来接收我曾经写的代码估计只能用惨绝人寰来形容了。现在我终于知道为什么编码前需要花大量时间去设计,系统机构设计、数据库设计、接口设计......良好设计不仅能保证编码阶段能快速通畅进行,因为设计阶段留下的文档只要一看就明白接下来要干什么了,而不会需要写着写着就停下来考虑下一步要做什么,也不会写到后面发现前面忘了拿个功能又得回头去修改。良好的设计还能为软件提供好的扩展性,你永远不会知道产品经历会给你提出什么新的需求,有了这些良好的设计软件扩展才不用伤筋动骨,才能降低软件升级成本。良好的设计同样是团队合作的基石,每个人各有各的想法与理解,没有事先定好的设计去统一开发人员的想法与理解,合作编码阶段将很难做到效率的提升,也会造成更多系统级别的bug,最终造成大量资源的浪费。所以说良好的设计是一个优秀软件的基础。

四、建议

  • 对课程的建议

课程各方面都做得很好,本人才疏学浅,并没有什么好的建议

  • 对助教的建议

助教们很热心很负责,知识水平都很高,希望下一届的助教们都能如此,目前没有什么好的建议

  • 对曾经的自己的建议

认真学数学!认真学数学!认真学数学!

  • 对未来的建言

学习如逆水行舟,不进则退,就算是找到的非常好的工作也不能停止学习。

五、个人技术总结

docker的简单使用总结
概述:
搭建服务器运行环境,选docker,错不了

posted @ 2020-06-15 14:52  HeroKilito  阅读(200)  评论(2编辑  收藏  举报