ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021春高级软件工程实验总结

2021-07-18 09:34:44  阅读:156  来源: 互联网

标签:总结 版本控制 正则表达式 python 软件工程 实验 2021 print Code


姓名:谭振宇  

学号:SA20225425  

 

实验总结与收获

本学期我一共完成了六个实验,现在对所学习到的内容进行总结: 

实验一:编译神器VS Code

  在此实验中,我学会了如何安装VS Code,此款编译器由Node.js实现,原生支持JS,随后安装了C/C++和python的插件,实现了对C/C++以及python的支持

自己也体会到vscode之所以能够获得这么大的成功,主要是因为以下的特殊设计:

  1. VS Code主程序和所有的插件隔离,令插件无法影响到VS Code的运行。
  2. UI渲染和业务隔离,VS Code管理用户的界面,只提供接口给插接,插件需要符合标准。
  3. LSP(Language Server Protocol)和DAP(Debug Adapter Protocol)的使用

  

实验二:五大场景玩转Git

  Git实际上就是一个简单说就是用于管理多人协同开发项目的多版本控制技术。在本次实验中,我学习了git的基本指令,并且完成了Git的本地版本库的管理、远程版本库的使用、团队项目中的分叉合并、Git rebase等操作,实现在本地存在的部分分支节点不出现在远程网络中。

Git的主要功能是版本控制,具体如下:

  • 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

  • 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。

自己对git的学习具体总结在此

 

实验三:正则表达式的使用

  正则表达式在实际的工程中用处广泛,如python爬虫或者本文搜索,替换。我在此次实验先通过在Vi中使用正则表达式进行字符串匹配和替换的练习,掌握了正则表达式的基本使用。

并且正则表达式的使用对我在python程序设计时爬取电影评论时,起到了很大的帮助,简化了很多操作。

# regex pattern is used to get Chinese comments
# pattern正则表达式用于获得评论
pattern = re.compile(r'[\u4e00-\u9fa5,。“”:?. a-zA-Z0-9-]+') # r'[\s]+'
# regex pattern1 is used to get time information
# pattern1正则表达式用于获得时间信息
pattern1 = re.compile('[\S]+')
# regex pattern2 is used to get number of likes
# pattern2正则表达式用于点赞数
pattern2 = re.compile('[\d]+')

 

个人经常使用的正则表达式工具书

 

实验四:以menu项目论软件工程

  在这次实验中,我的感受是代码的可重用性是很重要的,实现代码可重用的重要方法是进行抽象和使用callback,像这个实验,对需要完成的搜索功能的函数进行抽象,在使用的时候再具体实现搜索需要的条件,这样能够极大的实现可复用性。在代码的运行中最后执行回调,增加接口的通用性,保障被调用代码的安全性,确实是我之前不会考虑的方式,很令人惊叹。

 

实验五:VSCode + draw.io完成项目UML用例图

  VS Code的强大体现在其支持丰富的插件,集成多种功能,在这次试验,集成了draw.io,可以很方便的在工程中绘制用例图,如下是一个简单的用例图:

 

 

 

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

  这次实验,我使用python进行实现,领会到了回调函数能够时接口更加通用,通过异步IO能够加速一些IO密集型的操作等,这次我实现的具体代码如下:

import asyncio

#回调函数
def f2(c):
    print("this is f2")
    c("这是匿名函数!")

def f1():
    local_variable = "tzy"  # 闭包
    def condition():
        print("this is a condition function\t" + local_variable)

    f2(condition)
    print("this f2 in f1")

if __name__ == "__main__":
    # f1()
    # 匿名函数
    f2(lambda x: print(x))

#python无多态,并且已经在实验四实现过了

#异步IO
@asyncio.coroutine
def hello():
    print("Hello world!")
# 异步调用asyncio.sleep(1):
    r = yield from asyncio.sleep(1)
    print("Hello again!")

# 获取EventLoop:
loop = asyncio.get_event_loop()
# 执行coroutine
loop.run_until_complete(hello())
loop.close()

 

  这门课程的学习方式和本科的学习方式确实有很大的区别,本科的软工是对软件工程的总体概念进行的学习,以一个项目结束,但是项目对软件工程方法的使用还不是很明确,而本课程教授的更像是软件工程的思想,并且课程中各种工具的学习,也确实是实际工作中所需要的,更加培养了实践能力。最后希望自己能够学以致用,非常感谢老师,自己确实学到了很多。

标签:总结,版本控制,正则表达式,python,软件工程,实验,2021,print,Code
来源: https://www.cnblogs.com/tzy577/p/15025853.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有