高级软件工程实验作业总结_SA20225365裴日裕
一、开发工具VS Code
二、五大场景玩转git
第一个场景学会了git本地版本库的用户,第二个场景学会了git远程版本库的基本用法,第三个场景学会了团队项目中的分叉合并,第四个场景学会了git rebase的使用,简单概括就是可以对某一段线性提交历史进行编辑、删除、复制、粘贴,使我们的提交历史干净、简洁。
在我看来,git有几大特点:直接记录快照,而非差异比较。git 关心的只是文件数据的整体是否发生变化,而大多数其他系统(比如svn)则只关心文件内容的具体差异,每次记录都有哪些文件做了更新,以及都更新了哪些行的什么内容。近乎所有操作都是本地执行。在git中的绝大多数操作都只需要访问本地文件和资源,不用联网,因为它有本地数据库的镜像。但如果用集中式版本控制系统的话,差不多所有操作都需要联网,因为git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。时刻保持数据完整性。在保存到git 之前,所有数据都要进行内容的校验和计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,git 一无所知。这项特性作为git 的设计哲学,建在整体架构的最底层。所以如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,git都能立即察觉。
三、用VSCode+draw.io画UML用例图
由于Git是对文本数据进行版本管理的工具,其差异算法以行数据作为比较单元,难以对图片等内容进行版本管理。而开发中,经常使用UML图对软件进行说明,说明文档同样需要版本控制,因此使用SVG图片进行绘制,能够有效利用Git管理工具,起到版本控制的作用。
UML图能够帮助开发者更好的理解软件的功能、交互等。相比于文字,具有更加直观、易于理解的特点。在软件开发中,UML图是不可或缺的一部分。
Draw.io是用于绘制UML图的在线工具,同时vscode中也有Draw.io的插件,允许通过vscode编辑器直接对本地的svg图片进行文本或图形化编辑。
四、实验验证软件中的一些特殊机制
在这次的实验过程中,我们主要对回调、多态、闭包、异步调用、匿名函数进行了验证
-
回调:将函数
b
作为参数传入到一个函数a
中,并在a
中对这个函数进行调用,此为回调 -
多态:在对象模型中,一定少不了多态,其可以理解为在基类中定义的某个虚函数,在不同的子类中有不同的实现,因此在不同实例化对象上下文环境中执行该函数会得到不同的结果,此为多态
-
闭包:python就实现了闭包,其函数可与周围状态捆绑在一起
-
异步调用:python中的async框架
-
匿名函数:python中的lambda表达式
五、正则表达式
通过在vim编辑器中将字符串规则转换成正则表达式的练习,掌握了正则表达式的字符串匹配模式。