主要内容
• 工欲善其事必先利其器
• 代码中的软件工程
• 从分析到设计的基本方法
• 软件科学基础概论
• 软件危机的前生后世
从一开始上课,就听出来孟老师上课风格是跟大多数老师是不一样的。第一节课并没有直接带大家进入正题,给大家几个场景,让大家觉得在这些场景中,做出哪些选择更好。让大家知道对于现在的我们来说,直接说软件工程那些东西似乎还有些不太理解,在一些想象的场景中,也许更能增加对这些概念的理解。于是后面都是给我们例举了很多场景,让我们代入进去,更好理解这些知识点。在大学中我也学过软件工程这门课,确实不太理解。现在上完后,确实理解比之前深一些了。而且这门课不止软件工程的知识,还有作为程序员,怎么让自己的开发更有效率和让自己的代码更加高质量。后面是我对这门课的总结。
工欲善其事必先利其器
这个部分主要介绍了Typing、VSCode、Git、Vim、Regular Expression(RegEx)。
作为码农,打字速度也是跟上思考的速度,推荐了评测打字速度的网站。
接着向我们推荐了编程神器:VS code。介绍了安装、快捷键、简单使用、配置,以及还说明了为什么vs code这么牛。
然后是五大场景玩转git,通过五个场景,教会我们git的基本使用。
接着是vim的使用,在这之前我只会基本的三种模式的切换,在十二关的不同场景中学习vim,学完确实让我对vim更加了解。
最后是正则表达式,之前我是了解过这个的,但是都是学了一点就不想接着看下去了,对这个都是似懂非懂,在十关不同的场景中,介绍了正则的使用,并且在最后还有练习的题目。最后我又上网搜了下关于正则的使用,发现还有一些没介绍的知识点。
从这个部分开始,老师向我们展示一个项目的代码怎么成长起来的,利用软件工程中的知识,让项目的代码更加成熟。一个menu的项目从lab1-lab7的变化。
代码中的软件工程
为了下面写代码,首先介绍了编译调试环境,介绍了将要完成项目的目标:一个命令行的菜单小程序。写了一个版本后,介绍了简约的代码规范和代码风格,让代码更加可读,易理解。介绍了高质量代码的基本方法。
接着讲了模块化,微服务,接口,回调函数,可重入函数,线程安全。
这一部分主要是告诉我们尽量编写出高质量的代码。
从分析到设计的基本方法
这一部分是以面向对象的分析和设计为思想方法的主线,提供了一种从需求分析到软件设计的基本建模方法。
从需求到用例建模,uml图,数据库,从统一过程到敏捷统一过程。
软件科学基础概论
这部分主要说了软件的基本构成元素、软件的基本结构、软件中一些特殊机制及软件的内在特性。
最主要的就是介绍了设计模式。设计模式的分类、组成,设计模式的设计原则。
软件危机的前生后世
这部分主要介绍了软件危机的背景,软件危机,软件过程模型,PSP和TSP,CMM/CMMI,敏捷方法,DevOps。
讲了瀑布模型,瀑布模型的缺点,到发展到V模型,再到螺旋模型。
讲了敏捷方法产生的背景,敏捷宣言所遵循的原则及Scrum敏捷开发方法。
以上的每个部分其实是由很多知识点的,我只是把大概讲了下,如果要把每个知识点都把详细讲出来,就会占太多篇幅,最后会有项目和ppt链接,可以参考。