118
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
在第一次博客作业的时候,我还在吐槽前两年学校给我们安排的实践课太少,理论课太多,结果这学期的软件工程实践就狠狠地闪了我一巴掌。我的主要体会有两点:1.这门课程比我当时想象的累的多,时间紧,任务重,而且还都是一些之前完全没有接触过的东西——微信小程序的开发,Python编写爬虫,Autojs写Android脚本等等又新又难的知识令我一个头两个大。2.这学期的软件工程实践结课作业是一个团队项目,这真的和之前的过去两年的个人编程有非常大的不同,一整个项目由好几个模块整合而成,你不但要实现自己板块的功能,还要考虑模块连接的实现;并且团队的话你不能像个人编程一样慢工出细活,有的时候别人的功能实现需要你这个板块,一个人的摆烂可能就会影响到整组的效率。
时间 | 作业 | 花费时间/min |
---|---|---|
09.01~09.03 | 首次博客作业 | 100 |
09.04~09.14 | 个人编程作业 | 900 |
09.15~10.12 | 结对编程作业 | 6740 |
10.06~10.22 | 团队介绍、选题报告、需求分析报告 | 160 |
11.04~11.11 | 团队项目之现场编程 | 220 |
11.06~11.19 | 团队项目Alpha冲刺阶段与中期总结 | 4000 |
11.21~1.04 | 团队项目Beta冲刺阶段与终期总结 | 4000 |
1.07~01.12 | 个人学期总结博客作业 | 120 |
第一次博客图片↓
累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
271h | 15h | 10+h |
令我印象最深的一次作业是:中期答辩
学期初,我们一直拿不出什么比较创新的团队项目想法,最后定下了水果新鲜度检测这么一个选题,当时想的是网上总会有大犇之前做过相似的项目,我们参考一下应该可以完成这么一个任务。结果选题结束之后,一是由于其他学科也有较多课程作业,时间方面比较告急,二是我们组都挺摆烂的,空闲时也基本在玩耍,对团队项目不怎么上心。随着中期答辩时间渐进,我们组开始紧迫起来,匆匆忙忙赶着中期答辩DDL东拼西凑搞了一点东西,最终组内几个人在电脑前陷入了“沉默的三分钟”——我们妄想用yolov8来解决水果新鲜度检测问题,然而yolov8只是一个目标识别算法(组内算法三人组甚至没意识到这一点);用Python和txt来实现的数据库(蚌;同学指出的服务器训练的问题;简陋的前端以及用来凑数的爬虫展示。以上种种让这次中期答辩成为了这学期软工实践的至暗时刻,我现在有时候躺在床上还会浮现当时站在桌前八个人低着头一言不发的画面。
- 个人编程
个人编程阶段,爬取B站视频弹幕,是我之前一直很想学习的爬虫应用,由于之前从来没有接触过Python,我只好“Hello World”开始学习Python,初步学习Python之后,我的第一想法就是Python真是太方便了——变量不用定义;有一堆库可以用,种类繁多,功能全面;交互性强,和之前学的C/C++完全不一样,学习完Python语法基础后我就开始了爬虫相关知识的学习,了解request库,re(正则表达式)库,BeautifulSoup(爬虫解析)库的基本运用,在B站、csdn和知乎找了无数个教程,见识了许多代码风格。最终也是糅合所学完成了这么有趣的任务。值得一提的是,在完成个人编程之后,我还尝试去一些网站试着爬取我想看的漫画下来,但是他们都有反爬机制,我也学了一些新的知识,但最终还是无功而返。
- 结对编程
结对编程阶段,我和队友前两周只字未动,看着DDL从三周变到一周,我们才开始行动。他负责原型设计以及后端算法的编写,我负责前端界面的实现。看着B站前端28小时的教程,我只能三倍速观看速成,花了一天时间来学习微信小程序的开发,我的队友同时也完成了原型的设计,于是我赶紧着手前端界面和功能交互的实现。最终在熬夜一整周之后,还算是比较完美的完成了作业。而且在小程序开发过程中,我和队友真的是充分开发了想象力,小程序存在很多我们两个名字的彩蛋(淞和桔),算是一次劳累但是非常有趣的经历。在这里我也要好好感谢一下我的队友,我本人的代码能力非常差,所以我的很多奇思妙想都是通过队友的代码能力来兜底的。
- 现场编程
现场编程应该是我认为实践中最有意思的部分了,作为程序员,我们一直都在与电脑打交道,但是现场编程就给我一个学习手机上面写脚本的机会,我的内心非常激动,在现场编程过程中,我学习到了Google的OCR文字识别框架,还学习到了各种对手机的自动化操作,我甚至现在看抖音的时候,还会拿出我自己写的脚本给我喜欢的直播刷点赞。并且这应该算是我第一次经历线下八人一起写项目,大家打打闹闹,说说笑笑,真是一段非常有趣的经历。
- 团队项目实践
在团队项目的实践中,我感受到了和之前个人编程完全不同的体验。团队项目由许多模块组合而成的,所以你在完成自己模块的功能实现之后,还得考虑和其他模块的连接问题,在此次团队项目的过程中,我们就出现过前后端算法各跑各的,但是就是一直连接不上,最后发现好像是json的编码问题(雾),最后也是云里雾里查着资料把问题给解决了。另外就是团队项目属于自己的部分千万不能赶DDL,别人的功能实现可能需要你的模块的部分功能,你必须今早交付自己的任务,不然会影响一整组的人。
- Python
Python作为脚本语言,能实现很多C/C++做不到的事,在个人编程阶段我学习了爬虫的基础知识,并且在数据库学科,我还应用Python的Django框架完成了作业。
- 微信开发者工具
之前我一直觉得微信小程序开发是那种非常高大上的东西,但是在学习之后发现其实没有之前想的那么复杂,想做一点简单的小程序只需要初步学习wxml,wxss相关知识就能完成。
- php语言
在团队项目中,由于我负责服务器项目的部署以及前后端的连接,所以我也初步学习了php语言来编写接口来调用服务器的数据库。
- Flask框架
通过在服务器上部署Flask框架,使得微信小程序前端上传图片之后能够传到服务器后端进行处理,这一点使得小程序的使用变得更加便捷,不需要手机部署相关条件就能使用。
剪映
团队项目的中期答辩以及初期介绍都是我充当组内的视频手,我请教了其他有经验的人,初步学习了剪视频的小技巧(并且使用技巧完成了自己百年视频的剪辑^-^)Autojs
第一次实现手机脚本的编写,现在我还是在进行这方面的学习,我还自己写了一个自动刷抖音的小脚本,可以实现吃饭的时候抖音自由。
- 沟通能力
在结对编程阶段,我和舍友经常讨论着讨论着发现,我们两个说的完全是一个东西,只不过是以两个方面来描述而已,所以在接下来的合作以及团队项目中,我都会先询问理解别人想法透露出来的想法,然后和我的比较之后再发言。同时我也会尽量将我的观点提炼简化之后再和别人描述,以免出现理解方面的问题。
- 改善了我的拖延
在这学期的软件工程实践初期,我基本都是赶着DDL来完成作业的,包括个人编程的爬虫编写,包括结对编程的孤注一掷,但是在之后的团队项目时(After中期答辩),我的积极性大大提高,甚至有的时候还是我来push平时性子急的组长分配任务。
- ChatGPT的使用
最近两年兴起的ChatGPT,我也是这个学期才开始高频次使用,不光是软件工程方面课程,数据库、操作系统和图形学等学科都磨练了我使用ChatGPT的技术。
- 博客能力
这学期要求我们用markdown语言来写博库,满打满算写了快20次博客了,我写博客的能力可以说是大大提高。
如题,这是一次匆忙的旅程,匆代表时间过的快,十几周的时间转瞬即逝(虽然我很多时候都是DDL战神);忙代表事务来的多,这学期的每一个软工任务都不轻松,但是都让我学习到了新的知识。
下面就让我放一点图片吧
首先,是感谢柯老师,虽说老板的每个任务都不简单,但是也确实给了我们一个很大自由发挥舞台(虽然我没把握住),每一次任务都让我们学到了新鲜有趣的东西,我还记得在现场编程的时候,有其他班的同学溜到我们教室,然后感慨我们班的软工实践是真的有意思。
其次,感谢和我组过队的队友,这是我大学以来第一次和别人一起完成项目,我们一起努力,相互打气。我们一起吐槽过,一起熬夜过,一起看过凌晨四点的福大,在项目合作时玩笑,同时在时间紧迫的时候也能认真不含糊。我们为了相同的目标一起努力,那我觉得这件事情真是,泰裤辣!
—END—