姓名:蔡天昊 学号:SA20225097
在MAC上完成了对VSCode的安装和配置,可以编译运行C/C++的软件,同时掌握了一些基本的快捷键用法。VSCode是一款非常好用的代码编辑器,并且在代码编辑的基础上添加了很多组件,可以对各种不同类型的编程语言进行编译和运行,简单安装插件后即可完成实现,非常智能快捷。
学习了分布式版本控制系统git的基本用法,包括使用git add和git commit在本地仓库存储数据,使用git push将本地仓库数据上传到远程仓库,使用git merge合并多个分叉并解决可能产生的冲突等操作。最后着重实现了git rebase的操作,可以将多个提交中的版本合并为一个commit标号,在之后的合并中可以减少解决冲突的次数。
本实验在vim中使用正则表达式进行查找相关数据,可以高效快速的进行匹配。正则表达式的却是一种高效的字符串匹配的手段,但是同时也有比较繁琐不容易看懂的一些学习障碍。
本实验完成了一个通用的双端链表类LinkTable接口,并且使用此通用接口设计一个menu程序。menu程序可以根据输入选择的功能来回调对应的功能函数,而每一个输入的命令均使用LinkTable接口进行存储,并使用泛化的查找删除算法对其进行维护。在本实验中详细的学习到了接口和回调的实现和应用。
本实验在VScode中安装绘制用例图的插件,并用此插件绘制工程实践中项目对应的用例图。我的工程实践项目是一个游戏,因此画了游戏中主要模块和用例的实现,并且上传到了gitee上。VScode内画图十分方便快捷,可以在同一文件夹和一个编辑器中进行代码和UML用例图类图的绘制,并一起上传到git上。
本实验对软件设计中一些特殊机制进行实现,包括回调函数、多态、闭包、匿名函数和异步调用。其中C++中有多态、回调和匿名函数lamda的实现,我自身比较熟悉。而闭包和异步调用主要是js中常用的手段,在网页设计上完成环境返回和异步的机制,因此简单进行了尝试,并试图查看C++中有没有对应的实现。
内容建议:
本课程是高级软件工程,介绍了很多软件开发相关的内容,从常用工具开始,到一个具体软件实现,到宏观上如何进行大型软件系统设计和评价。整体上事无巨细,作为一门介绍和通识课程比较受用。但是有些内容加上例子会更容易学习,例如对用例图、类图、时序图的绘制,可以举例更详细;对于mongoDB的介绍可以单独开一章介绍;对设计模式和软件架构的介绍,也应该更详细多举例,像前面一章用menu程序举例介绍就会更好。
实验建议:
实验可以添加多一些编码的训练,包括后期的设计模式和软件架构,都可以用编码来体现;另外实验可以统一安排时间检查。