软工实践个人总结

一、基本情况

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

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

  • 我在第一次博客中说的比较简略:希望这门课能够加强我打代码的水平,以及应用代码的能力,加强团队协作,完成一个有意思的项目。这学期是我大学三年以来打过代码最多的一个学期,也是自学IT知识最多的一个学期,其实已经完成了自己期待的大部分目标,但还是存在着一些遗憾。
  • 有意思的东西————在大一大二所学的程序语言和编程课程,感觉都只是为了学习语法、算法等等,为了理论考试或是单纯为了解题,这一直都不是自己很喜欢的,感觉自己比较倾向于搞出一个有意思的东西出来,软工实践让我接触到了许多新颖的东西,满足了自己最初的一些想法,在搞出敏感词检测、猪尾巴、脚本操作等等东西的时候还是蛮有新鲜感和自豪感的。
  • 个人编程能力————不比以往的各种编程作业,大多数都能在网上找到答案,其实我自己是一个非常怠惰的人,每次一有这种作业就喜欢去网上搜,不过咱们的软工实践出题还真是良苦用心,每次真是花了大把的时间去认真的写代码,扪心自问,感觉自己的编程水平是真的有较大的提升,python语言的水平从暑假的但当涉猎到了登堂入室的地步哈哈,还记得刚开始编程微信小程序的时候,一个下午才搞出了一个啥也没用、不能交互的页面,当时感觉非常的烦躁,而到后面效率真的是不能比,才慢慢对其产生了兴趣,觉得还挺好玩的。其实不知不觉中,自己的编程能力也提高了很多。
  • 团队协作的魅力————软工实践真的让我感受到了团队的魅力,不论是现场编程的通力协作还是β冲刺时在活动室一起努力,团队中的每一个人都是不可或缺的一部分,最大的感触就是再大的事情在一个团队的面前也是小事了吧。
  • 遗憾————其实最大的遗憾还是在团队作业了吧,感觉自己当初还是太天真了,在讨论选题的时候一起选择了一个难度大的题目,使得后期项目在推进的时候进度十分的缓慢,以至于大家都没有当初一样的热情,而没有学习过后端的我也觉得十分的困难,慢慢的就也失去了对这个项目的期望,真的十分后悔当初为了偷懒选择了这个项目,如果再来一次机会的话,应该有机会做出一个有新鲜感的东西出来吧。由此可以看出在决定之前,自己还是不够深思熟虑,想法还是比较天真。
  • 不足————自己还是不够严谨,在每次作业的时候总是会出现一些很k驴的错误,明明随随便便就能得到的分数就白白丢掉了,然后其实每一次作业都没有完成的很完美,总是出现一些瑕疵,可能与自己是个deadline选手有关吧,每次都是到了不得不做的时候才开始写作业,不仅把自己搞的很累,而且还非常赶,就基本没有时间再去优化了,这是一个非常值得反思的问题,并且自己在编程的时候也缺少规划,直接就埋头苦干了,后来自己也明白这是非常不可取的,效率也是一个非常大的问题。给自己定一个小目标,希望自己以后可以不做deadline选手,能提高一点自己的做事效率吧!

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

非测试组

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

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

    # 作业 花费时间(分钟)
    1-2 个人编程作业 2156
    3 结对编程作业 3240
    4 团队介绍与选题报告 374
    5 团队需求分析报告 451
    6 团队项目之现场编程 502
    7-13 Alpha冲刺(含总结) 1684
    14-19 Beta冲刺(含总结) 2012

  • 讲述令你印象最深刻一次作业?为什么这次作业令你影响深刻?

    • 我最印象深刻的一次作业是现场编程。首先因为现场编程的那种团队协作的气氛是我比较喜欢的,其次是Auto.js是大家都没有学习过的一个东西,新鲜感十足,大家一起努力研究这个东西,一起完成作业的样子真的很棒。之前我还以为现场编程是什么十分困难的事情,早上八点多布置任务,十一点半就得完成,但是就像我上面说的一样,在团队的努力下,这都是小事情嘛,比较遗憾的是,其实大家各写一部分的代码全部都完成了,结果我们太追求完美了,还想着实现理想的功能,因此没有拼凑成功,但最后公布成绩的时候没想到十点多的时候打出的代码已经是符合要求的了~~,最后提交了一个残次品上去,不过这都没什么关系,至少我们是做出来了嘛!
  • 在软件工程课程上花费的时间(预计花费时间参考:同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答)

    • 开篇博客回答:
      • 针对上述问题(1)、(2)、(3),你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上,以达成你的期待以及你在(1)或(2)或(3)上的目标?
        • 希望这门课能够加强我打代码的水平,以及应用代码的能力,加强团队协作,完成一个有意思的项目。我打算平均每周拿出10小时用在这门课上。
    • 累计时间 实际周均时间 预计周均时间
      173(h) 14.4(h) 10(h)

  • 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的作用?

    • Python

      刚开始接触Python是在上一个寒假,当时报名了西二在线的Python培训好像,但是没坚持几天就放弃了哈哈,后来是在上一个暑假,在学习计算机视觉的时候用到了Python,当时又花了两天速成了一下语法,感觉写起来比C语言随性很多,后来就是在咱们的软工实践中使用了,除了小程序和现场编程以外,几乎所有的代码都是用Python来写的,因为Python的库实在是太强大啦,拥有好多功能,用过的都说好!

    • Pycharm

      Pycharm也是我在接触Python之后才开始用的,不得不说跟IDEA差不多,嘎嘎好用,之前都没有接触过单元测试、性能分析之类各种测试方法,用Pycharm来做真的很容易上手,但最开始我用的是社区版,压根没有性能分析功能,后来又下载了专业版,但是有试用期,于是去网上找了破解的办法哈哈。

    • Auto.js

      在现场编程之前,我就去翻了往届的现场编程报告,发现他们做的内容是Auto.js,现场编程写脚本?我之前只在刷慕课之类的时候去网上下载了脚本,可以自动刷题、自动搜题等等,我一直以为写脚本非常的难,后来去网上学习了相关知识后,觉得这个东西真的有意思,而且编写代码的难度也不高,在现场编程的时候,我们用它完成了自动发布朋友圈,自动查看微信消息,自动给朋友圈状态点赞等等,觉得真的是非常神奇哈,希望以后多学习学习,在淘宝抢东西的时候就可以为非作歹了嘿嘿。

    • 微信小程序

      这是我第一次写微信小程序,刚开始在B站看了挺久的视频,后来感觉来不及了就不看了,直接上手,总结出了一个道理:实践出真知!看理论看个半天不如自己百度,自己查小程序文档来的实在,感受就是微信小程序对新手还是非常友好的,刚开始在前端的布局上遇到了困难,以至于我对于每个组件都自己手动的调整位置,后来学习了一下flex布局,觉得自己刚开始是真的傻,由于当时时间紧迫,于是自己把前端界面加上游戏的逻辑一起写了,最后捣鼓出了一个能玩的卡牌游戏,成就感还是满满的,虽然队友没有打什么代码,但是队友画的原型是真的好看(天赋异禀),如果以后有机会做一个小项目的话,微信小程序绝对是一个不二之选!

    • Flask框架

      任何新的开始都是十分困难的,之前从来没写过后端的我刚开始也是叫苦不迭,幸好同学告诉我Flask框架是后端里面比较好写的框架了,而且还是Python语言,在将其与Yolo算法相结合写出接口的时候还是花费了挺多时间的,但对于后端的理解也更深了。

    • Github的使用

      自己之前不怎么打代码,因此都没有把代码保存在Github上的习惯,本学期的软工实践要求每次作业都上传到Github上,逐渐自己使用Github也更加熟练,之前有尝试用Pycharm直接连接Github来提交代码,但是老是会连接超时,因此其实大部分还是手动复制黏贴上去的,真的太费时间了,有时间一定要想想解决办法。

    • Typora的使用

      现在正在使用Typora来写博客的我觉得这软件是真心好用,简约的界面,方便的语法操作,真的还在博客园里面码字的同学可以去下载一个使用了,以后在编写Markdown文本的时候应该是离不开它了。

  • 其他方面的提升

    • Markdown

      好像我们班是软工里面写博客最多的一个班了哈哈,天天写博客,自己之前还去研究了一下排版如何能够更加简洁,美观,其实太花里胡哨也不太好,主要字要明了,层次要清晰,对于Markdown的各种语法也算是掌握了。

    • 剪映

      相对于专业的剪辑软件,剪映应该是最好上手的了,从之前的马原课开始第一次接触了视频剪辑,当时剪得还是比较烂的,后来再剪辑了多次团队视频后,对剪映的功能也了解了差不多,虽然可能不是非常专业,但对于非业内人士,还是够够的了。

二、总结与收获

(2.1)非测试组:个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

个人编程

  • 经验总结
    • 做好功能规划可以事半功倍
  • 实例/例证结合的分析
    • 我们的个人编程作业是完成一个敏感词检测的算法,算法要求的功能包括以下内容:
      • 中文
        • 中文敏感词可能进行一些伪装,在敏感词中插入除字母、数字、换行的若干字符仍属于敏感词。如:当山寨为敏感词词汇时,山_寨,山@寨,山 寨,均可视为敏感词。
        • 中文文本中存在部分谐音替换、拼音替代、拼音首字母替代的敏感词(拼音不区分大小写),如 shan寨,栅寨,山Z等均可视为敏感词。
        • 中文文本中还存在少部分较难检测变形如繁体、拆分偏旁部首(只考虑左右结构)等。
        • 不存在变形后再拆开偏旁部首的情况。
      • 英文
        • 英文文本不区分大小写,在敏感词中插入若干空格数字其他符号(换行、字母除外),也属于敏感词,如hello为敏感词时,he_llo,h%ell@o,he llo均为敏感词 。
      • 多个敏感词之间不考虑嵌套出现的情况,但可能存在变形后插入字符的情况。
      • 敏感词中间一次插入的字符不超过20个
      • 对输出进行一些可视化表示,如自动生成统计图、词云图等等(不要在测试的main文件中体现)。

​ 因此在进行编程之前,应该先对每一个功能进行独立的分析,需要哪些算法或者库,哪些功能可以合并实现,哪些功能要独立出来实现。之前我在个人编程的时候就是走一步看一步,导致debug花了非常多的时间,主要都是在逻辑的思考上,因此提前对逻辑结构进行规划是非常重要的。

结对编程

  • 经验总结
    • 有耐心就能成功
  • 实例/例证结合的分析
    • 说实话,微信小程序在刚上手时可能确实会有点不知所措,但慢慢熟悉之后其实真不难,在结对编程中,我想最大的推动力就是耐心了,要有耐心去学习相关的知识与技巧,耐心的去搜索,耐心的编写,一个小程序的码量肯定是非常大的,但是微信开发者工具使我们能够看见自己对于小程序一点一点的改变,都是在及时反馈画面给我们的,因此编写微信小程序对我们最大的考验其实就是耐心与时间,由于原型设计是完全由队友完成的,可以看得出来林雨欣同学很用心,也花了很多时间,因此原型设计也绝对不是一件轻易的事情,两个人的耐心付出,才能设计实现出一个优秀的小程序。

团队编程

  • 经验总结
    • 前中后期都需发力,开好头和收好尾是最重要的
  • 实例/例证结合的分析
    • 前期就是指选题和需求分析,选一个好题是非常重要的!!!但我们小组在前期上可能就没做的很好,没有考虑到组内成员的实际状况,就去选择智能交通这一方向,因为其他学业和考试的繁重,大家不可能花费太多的时间去学习相关的知识,导致我们后期推进的进度非常慢,因此开一个好头是非常非常非常重要的。
    • 中期就是指α冲刺,α冲刺可以说是全过程的核心了,完成基本功能实现,在这一点上我们也做的不够,仅仅只是实现了功能,并没有对功能进行较深的优化。
    • 后期就是指β冲刺了,我们在这一个阶段就是想对算法进行整合,写出前端和后端,最后实现一个网页版的智能交通监测系统,但我们在原型设计、编写前端、编写后端接口与搭建服务器全是在自学的情况下,即使已经花费了大把的时间,还是没有完成预期的任务,只能说是尽力了,这也说明了前期选题真滴很重要,任务太重,承受不住哇。

三、致谢

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

  • 这学期下来,我最感谢的人是林雨欣同学。不得不说林雨欣同学的原型设计真的非常好看,因为学习过PS的原因,对于原型设计中各种细节的要求都能完美的实现,结对编程中,原型设计的图片还被柯老板压轴展示了一波,虽然她不说,但是我看得出来她很开心哈哈,毕竟辛苦付出的成果能被老师和同学肯定是一件十分令人开心的事情。虽然林雨欣同学不喜欢打代码,在每次需要打代码的时候都愁眉苦脸的,已经跟我抱怨了三百次她不喜欢打代码,但其实她的头脑还是挺聪明的,只不过是国家一级退堂鼓选手,一遇到代码就退缩了,明明拥有自学的能力,却老是不愿意去学习和实践,希望她在将来能够克服自己的畏难情绪。在结对编程中,林雨欣同学给了我极大的精神支持与鼓舞,我对她提出的任何原型上的要求和相关材料的需求,她总是能够马上做出回应,而且做的很好,令人十分感动哈,希望再接再厉!
posted @ 2021-12-21 20:59  雀食蟀  阅读(101)  评论(0编辑  收藏  举报