黄懋贤 - 博客园

个人作业——软工实践课程总结

这个作业属于哪个课程 2020春|W班
这个作业要求在哪里 个人作业——软件工程实践总结
这个作业的目标 对软件工程实践课程的总结
作业正文 ...
其他参考文献 《构建之法》

一、回望

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

  • 开篇博客中我期待是在实践中学习和掌握一些后端框架和技术,但是阴差阳错的在团队作业中担任前端开发,虽然与一开始的想法不同,但深入了解学习并在团队中做出像样的前端页面,我觉得也是另一种锻炼。
  • 期望和目标
    • 学会使用Vue Element + Node.js开发
    • 熟练掌握github基本操作
    • 学会与他人协作开发
  • 不足
    • 开发效率低,常常面对搜索引擎编程
  • 原因
    • 对于前端相关技术之前尚未了解,前期学习和编码常常需要对照相关文档

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

  • 先说结论:对比当前所学,我并没有达到当时预期值,但是学到一些以前不了解的前端技术。
  • 在软件工程的多次个人作业,结对作业以及最后团队作业中,我培养了一些编码以外的设计能力和协作能力——结对作业学会了设计原型以及初步的两人合作开发。但与当初指定的学习路线不太一样,最开始团队选择开发Android应用,在一周过后因难度过大而转向web开发,由于组内后端人员经验较为丰富,我就自告奋勇投入前端工作,基本没有经验的我通过视频和文档学习,在同学和学长的帮助最后基本完成我的工作。虽然与我的预期不相符,但是学会了vue前端技术对于今后从事后端开发我觉得也是有所帮助。

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

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

累计代码7000行左右

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

作业 时间
博客搭建 12h
个人作业————疫情统计 48h
结对作业————原型设计 30h
结对作业————编程 30h
团队作业————选题 10h
团队作业————GitHub 实训 8h
团队作业————需求分析 24h
团队作业————系统设计与数据库设计 10h
个人作业————IM SDK 评测 20h
团队作业————Alpha 冲刺 80h
团队作业————Beta 冲刺 30h
个人作业————课程总结 10h
  • 哪一次作业让你印象最深刻?为什么?

团队作业————Alpha 冲刺,第一次多人协作开发,而且自己也是从零开始学习前端技术,常熬夜。

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

因为自己水平不足,面对一些代码开发任务,前期进展总是缓慢,大约有300小时,平均每周要花近15小时

  • 学习和使用的新软件

github

  • 学习和使用的新工具

    • 原型设计工具,以前还不知道原来有这个
    • markdown,对于只会用word打字的,第一次见到这么强大的工具
  • 学习和掌握的新语言、新平台

前端框架:vue.js

  • 学习和掌握的新方法

    • 利用单元测试来测试代码
    • 性能分析工具,用来分析程序性能
    • 撰写需求文档和开发文档
  • 工程能力的提升

    • 代码阅读能力:在前期学习的时候常常通过阅读大佬代码来加深对知识点的理解
    • 系统和数据库设计:结对作业中熟练运用了本地数据库
  • 团队合作上的提升

很幸运地遇到好的团队成员,大家积极完成分配任务,在协作中可以相互帮助

  • 其他方面提升

抗压能力得到很大提升,在遇到程序或页面崩溃后能冷静分析原因

二、团队总结

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

我们组(D6PLUS)组长分工合理,虽然缺少前端大佬,但是组长扛起主要的前端开发,在我实际开发中给予我跟多帮助和指导。
组长的选举,能毛遂自荐是最好的,倘若摇骰子出来的对组员和组长可能都不是很好。

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

    • 没有经历过。
    • 换组的目的是提前适应项目组人员呢流动,可以理解,但是组员内主力如果被换走,这对于组内项目的推进是个大问题,换组成员最好是实力较近的两个成员。
    • 感受就是新成员融入很快,点个赞。
  • 分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)

我认为我们的团队还在磨合阶段,虽然每个成员都学习了相关技术,已经可以着手开发完整项目,但是项目完成度一般,与初始目标有些差距。可能是团队成员6人较少,在分配任务时前端只有两人且从未系统学习过,前端任务较重导致最后做出来的成品没有想象中的完美,相信经历这一学期实践,自己今后进行团队协作可以更高效。

三、人月神话

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

我们团队成员认真学习了软件工程,在初期用原型软件开发出预想的软件,第一次冲刺完成了大部分功能,并于第二次冲刺完善程序的不足。每一次冲刺的每一天都有详细的工作安排,团队成员每天定时会议沟通。

  • 我的人月神话

在疫情统计作业中,第一次了解hashmap。HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。从构成角度看,HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度为O(n),首先遍历链表,存在即覆盖,否则新增;对于查找操作来讲,仍需遍历链表,然后通过key对象的equals方法逐一比对查找。
附上学习中保存的关于hashmap的put方法↓↓

四、建议

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

    • 对于下一届的同学:
      • 尽量提前做好自己的知识储备,在实际开发中才会更得心应手
      • 编码能力很重要,但是选题时的前期准备工作更为重要
  • 对于软工实践课程,你有哪些建议?

    • 可以多展示一下往届优秀和一般作品
  • 对于助教工作,你有哪些建议?

    • 助教可以发一些视频讲解开发历程或者实践经验
  • 对于自己今后,你有哪些建议?

    • 只有下坡路才会轻松,一定要上进要努力

五、个人技术博客

利用NPM安装vue.js

posted @ 2020-06-14 23:05  hmx1  阅读(203)  评论(1编辑  收藏  举报