(--?)

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  SA20225520 徐露洁

  在高级软件工程这门课中共做了5个实验:安装并熟悉vscode、Git应用、用VS Code + draw.io画UML用例图、正则表达式、实验验证软件中的一些特殊机制。

安装并熟悉vscode

  vscode是一款使用JS语言编写的软件是一个轻量且强大的代码编辑器,支持Windows,OS X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等其他语言。5大主菜单分别是文件夹,搜索,git、调试和插件,每个主菜单都会显示对应的二级菜单,编辑区,我们最常用的编码区,信息显示区当前git信息,格式,字符编码等。

  它的优点是:

  1. 简洁而聚焦的产品定位,贯穿始终
  2. 进程隔离的插件模型
  3. UI 渲染与业务逻辑隔离,一致的用户体验
  4. 代码理解和调试——LSP和DAP两大协议
  5. 集大成的 Remote Development

  VS Code专注于开发者“最常用”的功能:编辑器+代码理解+版本控制+远程开发+调试。这是一个非常节制而平衡的选择,专注于开发者“最常用”的功能,同时在产品的形式上力求简洁高效。VS Code 统管所有用户界面交互,制定用户界面交互的标准,所有用户的操作被转化为各种请求发送给插件进程,UI界面渲染与业务逻辑隔离,从而做到一致的用户体验。

  其中通过了解VS Code,理解了一款优秀的软件是专注用户所用核心功能的软件,最大程度减少臃肿和干扰用户体验的部件的软件。

Git应用

  Git是分布式版本控制系统,是目前世界上最先进的分布式版本控制系统。
  在实验中主要运用到的git命令有:

  • git clone命令官方的解释是“Clone a repository into a new directory”,即克隆一个存储库到一个新的目录下。
  • git fetch命令官方的解释是“Download objects and refs from another repository”,即下载一个远程存储库数据对象等信息到本地存储库。
  • git push命令官方的解释是“Update remote refs along with associated objects”,即将本地存储库的相关数据对象更新到远程存储库。
  • git merge命令官方的解释是“Join two or more development histories together”,即合并两个或多个开发历史记录。
  • git pull命令官方的解释是“Fetch from and integrate with another repository or a local branch”,即从其他存储库或分支抓取并合并到当前存储库的当前分支。

  通过新建一个库,从远程库克隆到本地,再进行操作并推送到远程库中,切实了解并操作了分布式版本控制系统的基本命令,对Git和版本库有了更为深刻的了解,在日后的学习和工作中能灵活使用Git。

用VS Code + draw.io画UML用例图

  采用下载量最多的插件,新建文件的扩展名为.drawio.svg、.drawio或.dio,然后打开就是所见即所得的画图工具了,就像VS Code里面嵌入了一个Visio或Rational Rose一样,码代码和画图在一个编辑器里完成,通过编辑XML文件修改图形,一切皆代码,这样画的图也可以通过Git进行版本控制了。这样就可以在远端的库中通过代码操作README.md中的UML用例图。

正则表达式

  正则表达式是对字符串操作的一种逻辑公式。

  匹配字符串"aaah"中出现 3 到 5 次的 a,你的正则表达式将是 a{3,5}h。
  匹配字符串"haaah"与至少出现 3 次的字母 a,正则表达式将是 ha{3,}h。
  匹配字符串"hah"中出现 3 次的字母 a,正则表达式将是 ha{3}h。

  正则表达式t[a-z]*i应用于字符串"titanic",使用?字符将其更改为 lazy 懒惰匹配。"titanic"匹配调整后的t[a-z]*?i正则表达式会返回["ti"]。

 

实验验证软件中的一些特殊机制

回调函数

  回调函数是一个面向过程的概念,是代码执行过程的一种特殊流程。回调函数就是一个通过函数指针调用的函数。把函数的指针(地址)作为参数传递给另一个函数,当这个指针调用其所指向的函数时,就称这是回调函数。回调函数不是该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

多态

  在面向对象语言中,接口的多种不同的实现方式即为多态。多态是实例化变量可以指向不同的实例对象,这样同一个实例化变量在不同的实例对象上下文环境中执行不同的代码表现出不同的行为状态,而通过实例化变量调用实例对象的方法的那一块代码却是完全相同的,这就顾名思义,同一段代码执行时却表现出不同的行为状态,因而叫多态。

闭包

  闭包是变量作用域的一种特殊情形,一般用在将函数作为返回值时,该函数执行所需的上下文环境也作为返回的函数对象的一部分,这样该函数对象就是一个闭包。

异步调用

  Promise对象可以将异步调用以同步调用的流程表达出来,避免了通过嵌套回调函数实现异步调用。

匿名函数

  lamda函数是函数式编程中的高阶函数,在我们常见的命令式编程语言中常常以匿名函数的形式出现,比如无参数的代码块{ code },或者箭头函数 { x => code }

  软件的基本特点是前所未有的复杂度和易变性,为了降低复杂度我们应该在不同层面大量采用抽象方法建立软件概念模型;为了应对易变性我们应该努力保持软件设计和实现上的完整性和一致性。

 

posted on 2021-07-17 16:00  (--?)  阅读(41)  评论(0编辑  收藏  举报