《代码中的软件工程》学习总结

一、工欲善其事必先利其器

1、vscode

讲述了vscode简洁而聚焦的产品定位、进程隔离的插件模型、UI 渲染与业务逻辑隔离、代码理解和调试、以及Remote Development。同时带领我们熟练使用了vscode的常用快捷键和各项功能。

2、Git

Git是世界上最流行的版本管理工具,老师给我们讲解了Git的基本操作逻辑,通过一些常见场景来让我们深刻理解Git的几个关键概念及其使用。比如是否快进式合并(–no-ff)、Git Rebase等。

在这里插入图片描述

3、Vim

Vim既是一个好的文本编辑器又是一个不错的程序开发工具,我们熟悉了三种模式的切换(命令模式、输入模式、底线命令模式),以及删除、复制粘贴、搜索、搜索替换等常用功能。

4、正则表达式

通过学习正则表达式,我们学会了用简单快速的方法达到对于字符串的控制。了解了各种匹配规则,了解了贪婪匹配和懒惰匹配等。

二、代码中的软件工程

本章节主要实现了一个可通用的命令行的菜单小程序——menu,在不断的进行重构和迭代的过程中,我们学习到了很多实用的知识:比如使用相同的链表头存储不同的数据,可以使用户更方便的存储自己想要的数据而不用去重新设计新的数据结构。同时我们还从堆栈以及函数的执行角度深入理解和运用了回调函数。同时也认识到高质量代码的重要性。

三、从需求分析到软件设计

讲述了需求的定义以及高质量需求的特点和重要性,讲了需求的4种类型(功能需求、质量需求、设计约束、过程约束)和2类基本方法(原型化方法能够很好的整理出UI和建模方法能够快速给出有关事件的发生顺序和活动同步约束问题)。讲述了用例建模的步骤和准确提取用例的基本方法、类或对象之间的关系及其UML图的表示、以及关系数据模型的MongoDB设计与实现。

四、软件科学基础概论

深入讲述了面向对象的三大特性:封装、继承、多态。讲述了常用的设计模式。同时讲述了它们的背后遵循的六种设计原则:开闭原则、Liskov替换原则、依赖倒置原则、单一职责原则、迪米特法则、合成复用原则。

此外还介绍了常见的软件架构(三层架构、MVC架构、MVVM架构)、软件架构风格(管道-过滤器、客户-服务、P2P、发布-订阅、CRUD、层次化)、软件架构的描述方法(分解视图、依赖视图、泛化视图、执行视图、实现视图、部署视图、工作任务分配视图)等。

五、软件危机和软件过程

关于软件危机,老师推荐我们阅读了《人月神话》和著名的论文“没有银弹(No Silver Bullet: Essence and Accidents of Software Engineering)“。随后讲述了软件生命周期以及几个重要的软件过程模型。讲述了PSP和TSP的基本原理、CMM/CMMI、敏捷开发方法、DevOps。CMM/CMMI适用于大型企业,敏捷方法适用于小型团队,而DevOps则适用于需要快速交付软件的团队。

六、总结

我认为软件工程是所有程序员的必修课,通过这门课的学习,我掌握了常用开发工具的使用,能够有意识地去追求代码的高质量。同时学习了需求分析、用例建模的过程,能够有效整理出高质量的需求。此外,设计模式以及MVC、MVVM的软件架构使我深刻地认识到软件科学的奥义。最后,由软件危机引出来讲述的软件过程模型和一些新型的软件开发模式以及团队合作模式更是给我们打开了开发团队合作、管理的大门。总之,这门课使我获益良多,为我们将来的职业发展提供了有力的理论和实践支撑。

参考资料《代码中的软件工程》https://gitee.com/mengning997/se

学号:134

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值