《代码中的软件工程》学习总结及心得体会

课程涵盖了软件工程的重要知识,如需求分析、高效工具如vscode和git的使用、设计模式等。通过学习,作者认识到需求分析的重要性,理解了如何降低代码耦合度,以及设计模式在实际中的应用价值。此外,课程还介绍了多种软件开发模型,扩展了作者对软件工程的理解。
摘要由CSDN通过智能技术生成

这学期学习了《高级软件工程》这门课程,老师讲授的内容对于没有实际工程经验的同学来说非常友好,涵盖了著多软件工程领域的重要知识,并配备了menu等典型代码进行学习,使我受益匪浅。

譬如,老师讲授了什么是软件的需求,什么样的需求是高质量的,以及如何做需求分析。经过讲解,我才意识到了需求分析的重要性,明白了高质量需求的三个特性:解决冲突、可测试的、具有明显特征的。无论将来是否成为一名程序员,提出需求都是工作中必不可少的一环,这部分的知识确实可以令我受益终生。

此外,值得一提的是,这门课程中还专门有个专题叫《工欲善其事必先利其器》,讲述了著多编写代码的“杀器”的使用方法。例如vscode、git、vim、正则表达式等。作为一个集中了大量功能的编辑器,vscode的学习使我编写代码的效率大大提升;vim和正则表达式如果使用的好,也是提升效率的一大助力,奈何自己一直只是听名字便开始恐惧起来,也就没太多涉猎,这次的课程让我初步了解了许多;git也是合作编写代码时不可或缺的技能,以前的自己,平时写代码时比较偷懒,也就没太多学习,时常发愁将来去实习的时候不会git可怎么办呀,感谢这门课程,让我第一次开始真正的在命令行上输入git命令,发现一切也没有那么的可怕……

而且,这门课程还讲述了一些工程化编写代码的技巧,强调了接口的重要性以及怎么实现一个良好的接口。在这一部分中,给了一个menu的学习代码。menu令我印象最为深刻的有两点:一是回调函数,尽管自己以前知道函数指针可以作为参数传递,也运用过lambda表达式等编写比较函数来对数组进行排序,但却没有意识到这种行为可以总结出一种令代码耦合度降低,复用率提高的模式;二是指针类型的强转,每一个DataNode里都存放了一个LinkTableNode作为链表,当插入一个DataNode时,可以将它强转为LinkTableNode进行插入,这样就可以对LinkTableNode进行复用,避免对各个类型的Node都实现链表的操作了。

除了这些别出心裁的知识外,一些关于设计模式、设计原则、软件架构模型等软件工程领域的基础知识也讲的十分透彻。在众多设计模式中,老师重点讲述了观察者模式、职责链模式与模板方法等知识,并用高温预警系统和vue.js等举了详细的例子,使我明白了这些设计模式并非空中楼阁,而是具有相当大的实际价值的。同时,也幽默风趣地讲述了一些软件工程领域的轶事,如《人月神话》一书、“没有银弹”的论调等,并还讲述了若干软件过程开发模型。此前,我对开发的理解只限于最基础的瀑布模型,但学习了其它模型后,我意识到了同样层级的模块的开发与测试的关系是密不可分的,或许将它们一起纳入考虑而非在整个流程的起始和末尾考虑是更好的做法。

这学期的课程令我受益匪浅,但时光总是飞逝的,转眼间课程已经结束了。我即将结束校园生活,真正进入公司开始实习。尽管有些害怕,但我相信,课程的教学结束了,但真正的教学才刚刚开始,老师依旧会在此后的学习生活中继续成为我们的良师益友,一如他在课程群中利用课余时间积极组织同学讨论问题,为我们点播迷津那样。我们也终将不负老师的期待,将优秀的课程传播给更多同学,让课堂学到的知识成为一生受用的珍宝!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值