21年春季高级软件工程课程总结

21年春季高级软件工程课程总结

周文斌 SA20225640

十分感谢孟老师这个学期的教导,我从中不仅学会了软件工程相关知识而且获得了很多思想和哲学上的收获。

至此致谢

Q1:做了哪些实验,针对每个实验的体会和收获?

1. 编程神器Visual Studio Code

VSCode是孟老师十分推崇的一款软件,他轻量而强大。了解了Visual Studio Code内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等其他语言。并最终掌握了Visual Studio Code的基本配置、简单使用和无鼠标操作。

2.Git基本使用

Git是一种分布式版本控制工具,主要用于对文本数据进行版本管理。结合远程Git仓库,能够实现多人合作开发的目的,在团队合作方面起到很大的帮助。实验除了常用的 git add/commit/push/pull/log 等命令之外,特别使用了 git rebase 命令。该命令能够对线性提交历史进行编辑。在将本地提交推送到远程仓库之前,可以先通过 git rebase -i [startpoint] [endpoint] 对提条历史进行编辑,合并无用的提交,使得最终出现在远程仓库中的提交历史更加的“干净”。

3.menu菜单的实现

本实验中,通过将一个简单的“hello,world”菜单程序逐步复杂化、模块化、工程化,让我对软件工程与软件设计有了一点朦胧的认识——为了提升软件的性能,应该将更多的时间放在前期设计和规划中,采用何种数据结构,使用哪种架构,都会对项目产生举足轻重的作用。三思而后行,切忌直接上手编码。

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

由于Git是对文本数据进行版本管理的工具,其差异算法以行数据作为比较单元,难以对图片等内容进行版本管理。而开发中,经常使用UML图对软件进行说明,说明文档同样需要版本控制,因此使用SVG图片进行绘制,能够有效利用Git管理工具,起到版本控制的作用。

UML图能够帮助开发者更好的理解软件的功能、交互等。相比于文字,具有更加直观、易于理解的特点。在软件开发中,UML图是不可或缺的一部分。

Draw.io是用于绘制UML图的在线工具,同时vscode中也有Draw.io的插件,允许通过vscode编辑器直接对本地的svg图片进行文本或图形化编辑。

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

回调:将函数作为参数,可以达到在回调的目的;
多态:一个函数根据传入的参数个数、类型的不同就形成了函数的多态,类也是如此;
闭包:在函数里返回一个函数,就创建了当前函数的闭包,返回的函数可以在任意时刻获取到父函数的作用域;
异步调用:网络IO,这是一个异步操作,异步操作返回时,触发回调函数的执行,典型的实现有primise,async/await;
匿名函数:()=>{},在 JavaScript 中,可以绑定运行时 this,缩短函数代码逻辑;

 

Q2:对本课程的内容与实验安排的思考和与建议

孟老师的课程内容覆盖全面,涉及软件工程的各个方面,不过如设计模式等内容,受限于课时只讲解了一些特性和基本概念,希望可以再深入点。

而且这门课程本质上是动手性很强并且非常实用的课程,可以多些实际工程模拟,这样让我们对软件工程的基础知识和技能了解更有帮助。

感谢孟老师的授课!

posted @ 2021-07-15 13:30  周周粥粥周粥周  阅读(53)  评论(0编辑  收藏  举报