软工实践个人总结

一、基本情况

(1.1)请回望第一次作业,你对于软件工程课程的想象

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

  • 回顾开篇博客对课程目标和期待:
    第一,提升自己的编程能力;
    第二,提升自己的设计能力;
    第三,提升自己的团队协作能力;
    第四,积累一定的实战做软件项目的经验;
    第五,对于时间能有更好的规划能力。

  • 对比目前的所学所练所得,达到期待和目标的方面:
    首先,本学期软工实践课程中包括个人编程、结对编程和团队编程在内的三次编程作业,总计编写了6600行左右的代码,特别是结对作业中,最后码量是很大的,对于码力有了不小的提升,基本掌握了微信小程序的开发语言(js,wxml,wxss)并且对于python掌握了一定的基本语法和使用方法,编程能力得到了很大的提升;其次,在结对编程过程中,参与了一部分前端界面的设计,稍微提升了一些设计能力;再者,经过团队编程之后,也提升了一定的团队协作能力;最后,结对编程和团队编程之后,积累了一定的实战做软件项目的经验,并且对于做软件项目的整个流程了有了较为清晰的认识。

  • 存在不足的方面:
    一整个学期下来,其实对于时间的规划能力并没有得到很好的提升。回顾本学期的若干次作业,其实每次都是Deadline才交,有时候甚至踩着Deadline提交的博客,Deadline驱动型就导致了每次作业其实都有一些小细节来不及修改,很多东西就只能凑合先交,Deadline驱动型这个习惯感觉不是一个好的习惯,会尽量想点办法改变;另外,虽然学了很多新的知识和技能,但大多数都只掌握浅层且基础的程度,没有对于某个技能进行比较深入且精的学习,希望后面空闲下来的时候能对新的技能进行精进。

(1.2)总结这门课程的实践总结和给你带来的提升:

  • 在软工实践课程当中我编写了6600行代码。

  • 软工实践的各次作业分别花费的时间:

    # 作业 花费时间(分钟)
    1-2 个人编程作业 3205
    3 结对编程作业 3480
    4 团队介绍与选题报告 680
    5 团队需求分析报告 720
    6 团队项目之现场编程 700
    7-13 Alpha冲刺(含总结) 1980
    14-19 Beta冲刺(含总结) 1620
  • 讲述令你印象最深刻一次作业?为什么这次作业令你影响深刻?

    令我印象最深刻的一次作业是结对编程作业
    这次作业是接在个人编程之后,个人编程作业因为没有去速成python而是选择用C++语言来写敏感词检测器,所有过的挺痛苦的。结束个人编程之后看到结对编程有一个月的期限,一开始并不怎么急着做,一直拖着拖着,拖到最后只剩几天才开始做。把一个月完成的作业放到最后几天来做,那么很自然会出现的情况就是,那几天每天除了有课的时间都在忙这个作业,每天坐在电脑面前,除了吃饭之外都在做这个作业。那段时间印象最深刻的是在Deadline前的那天晚上,和队友两个人在宿舍做到1点多,大半夜又找了个不会吵到舍友的活动室debug到了凌晨4点,也算是对应上了学期初博客里提到的“和队友一起见识到了凌晨四点的福州大学”(还记得那天从活动室回宿舍的路上还拍了一张凌晨四点的福州大学)。结对编程作业也是我个人各方面能力提升最大的一次编程作业,而且学习到了非常多的新知识。比如用了两天时间速成了微信小程序开发语言(js,wxml,wxss)并且最后用这个写出了作业要求的小游戏。整个作业从头到尾每一个地方都参与到了,完成作业的时候那种满足感是我非常享受的。

  • 在软件工程课程上花费的时间(预计花费时间参考:同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答)

    • 开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答

    对于达成我的期待以及上述目标,我会在每周拿出8~10个小时放在这么课上,如果有空闲时间,还会多放一些时间在这门课。

    累计时间 实际周均时间 预计周均时间
    206.4(h) 14.7(h) 10(h)
  • 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的作用?

    • Visual Studio 2019
      以前编写C++程序一般用的都是Dev-C++这个编程软件,但个人编程作业拿到题目的时候,考虑到可能需要做出来的成品的是一个可运行程序(可能会由很多文件最终形成),而非之前写的那些编程题目。Visual Studio 2019几乎集成了所有的开发环境,拥有良好的界面,以及完善的debugger。形成一个可运行程序也比较好操作,有较好的性能分析功能。

    • 微信开发者
      这个是用于编写微信小程序的软件,整个界面还是非常友好的,小程序结构可以看的比较清楚;提供了真机调试等功能,可以直接在手机上测试;代码自动补全功能也很强,检测语法错误也很及时和准确,在编写小程序的过程中节省了很多时间;有很多机型的模拟,对于写出一个各机型都适用的小程序发挥了很大的作用。

    • ProcessOn
      这是一个在线的设计工具,不需要下载APP,可以直接在网站上操作且是免费的,可以在线画流程图、思维导图、UI原型图、UML图等等,高效易用,使用起来较为方便,支持多人实时协作,实时显示更改状态及内容的编辑,成品可以较为清晰地导出且没有水印。整个工具使用下来基础功能较为齐全,操作也比较人性化。

    • Github
      这个工具可以用于存储项目相关的各种文件,减少电脑内存空间的使用,可以较为流畅的上传和下载各种文件。在这个平台,你可以借鉴到很多的优秀代码和项目,也可以共享自己的代码以及项目,便于你和团队有效地交流沟通协作完成项目。

    • pycharm
      是目前Python语言最好用的集成开发工具。团队编程时,编写接口的时候使用的python语言,使用了这个工具,界面友好,操作便捷。

    • postman
      这是一个接口测试工具,编写接口的过程中借助该工具测试接口是否能正常使用,对于成功编写接口有很大的作用。

    • auto.js
      这个工具可以用来编写手机插件,还可以跟电脑上的VSCode连接进行调试。用到该工具主要是在现场编程的阶段,利用这个工具写出来消除微信红点插件、微信朋友圈自动发布插件、点赞微信好友指定状态插件等,空闲时间还尝试写了今年天猫领喵币的插件(体验感是真的不错,解放双手)。

  • 其他方面的提升。

    • 自学能力
      用了两天时间速成了微信小程序开发相关的语言,后面还有通过B站小视频、CSDN和博客园自学接口编写;比起之前的各种自学速度快了非常多,自学能力得到了很大的提升,这对于以后的学习必然有很大的好处。

    • markdown的使用
      对于markdown的功能有了更多地了解,掌握了更多markdown功能的使用方法,比如字体、字号、文字颜色的设置,再比如往博客中添加图片如何设置格式和大小等,美化了博客的页面以及排版,对部分重要的文本部分学会了用高亮等功能,突出这些部分使得阅读者可以更好地抓住重点。

    • 抗压能力
      软工实践几乎是不间断的作业,中间比较关键的冲刺阶段甚至和多门考试大作业并行的情况下,每一个任务还是能较为好的完成,没有说扛不住多重压力选择去摆烂某一块任务,抗压能力得到了很大的提升。

    • 善用各类优质平台以及搜索引擎
      整个学期下来,深深地感受到了搜索引擎有多大的作用,很多困惑和困难只要用好搜索引擎就可以得到很好的改善。网络发达的今天,有各种各样的优质平台,比如说博客园、CSDN等这种博客平态,聚集了大量IT行业以及计算机相关的学生,阅读其中的优质博客可以对自己有极大的提升,帮自己解决一些暂时无法解决的bug。

二、总结与收获

个人或结对或团队项目实践中的经验总结+实例/例证结合的分析。

  • 个人编程作业

    • 经验总结:多利用空闲时间学点新东西并且精进自己学习过的技能

    • 实例:个人编程作业要完成一个敏感词检测器,但由于我只会一门编程语言C++,也没有选择花时间去速成python来完成这个作业,但是对于C++的掌握又不是特别好,导致整个作业编写起来出现了各种各样的困难,并且最后因为对于C++开发工具的不熟练运用没有完成单元测试模块,整个作业也是在Deadline前才大致完成。后面听用Python的同学说单元测速用pycharm挺好弄的,对于没有速成python挺后悔的,如果速成了python可能这个作业会完成得更好吧。

  • 结对编程作业

    • 经验总结:一是不要老是拖到最后才开始做,尽量不做Deadline驱动型选手;二是代码最好构思清楚再下手写。

    • 实例:因为Deadline驱动型的原因,一直拖拖拖到最后几天才开始做,整个作业都是在一种很赶要来不及的氛围中做完的,而且Deadline前一天熬到了凌晨四点(熬夜到这么迟对身体不好),如果早点开始做这个项目,可能最后几天就不会苦苦熬着。另外就是写页面逻辑的时候我没有想的很清楚,导致很多地方代码都是重复,很多地方可以优化成一个类,然后统一调用某些函数就可以实现;没有想清楚的后果就是总码量看着很可怕,同时导致debug增加了难度,大部分匹配机制相同,但重复了很多次,很多地方都有类似的代码,修改的时候容易遗漏,造成了debug的工作量暴增(直接导致了熬夜Debug的结局)。

  • 团队项目

    • 经验总结:一是选题的时候一定要慎重,并且结合实际情况认真考虑可行完成度;二是团队要有及时且有效的沟通

    • 实例:其实团队选题有一些太高端了(我个人感觉),实现起来有很大的难度,当初开题的时候也没有考虑到团队内人员的情况,冲刺阶段很多人都是大作业考试和冲刺并行,导致了冲刺的效果不好,最后能实现的功能十分有限,成品与开题时的设想有不小的出入。冲刺阶段前端做前端的,后端做后端的,沟通不够及时,导致了前后端连接起来的时候耗费了大量的时间和精力,如果有较多的有效及时沟通,可以较好的避免这种情况的发生。

三、致谢

这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

这学期软件实践课程下来,我最感谢的人是方静怡。结对编程作业最后能做出一个较为满意的游戏,离不开这个好队友的付出以及对我的帮助。我本身就是一个Deadline驱动型选手,没有到最后时刻经常不会开始着手,她的催促和提醒让我们在还不算太迟的时候开始做项目(再迟可能就会做不完了)。结对编程过程中,我的微信小程序开发语言是速成而且网课没有完全看完,导致很多组件用的不是很好,她可以帮我解答困惑并且推荐我一些很好的学习网站,在我编程过程中帮了我非常多。我们的游戏之所以有比较精美的页面主要还是靠她的精益求精以及巧妙的小设计。还有就是结对编程最后两三天各种bug真的搞得人头很大,她陪我一起对每一个bug进行测试和修改,最终才有了这个比较满意的成品。另外后面的AI对打也是她在弄,她为了结对编程作业付出了非常多,贡献超级大。
我想对她说:你是一个超级好的队友!!!很高兴能跟你一起完成结对编程作业!!!

上一篇:Java知识——使用预定义类


下一篇:CAS:1028486-01-2 Alisertib MLN-8237抑制剂