浅谈软件工程学习心得
【张城硕(sa15226451) + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006 】
学习软件工程两个月来,我在孟宁老师的教导下确实获益匪浅。我从一开始对不知如何使用vim和git的无知,逐渐演变到软件设计模块化的熟练。下面, 我将谈谈这两个月学习软件工程线上课程的具体体会。
关于软件工程
首先,我先谈谈我对软件工程的理解。软件工程在我的脑海里就是如何利用工程化管理的技术来做软件。为什么会诞生软件工程呢?孟老师不止一次的提到,随着代码量的增大,人对代码的掌控能力越来越弱,代码的逻辑、进度和成本越来越不好控制,产生了软件危机!为了解决软件危机,软件工程应运而生。我比较喜欢线上编程,基本上每次线上课程我都投入了大量的时间和精力。
关于代码
在代码上,我在软件工程中学习到的是。
在细节上:
* 第一、需要遵守代码规范,好处是便于修改和维护。让别人看的清楚你的代码;
* 第二、数据和业务逻辑的分离。我们需要将代码进行模块化,从而更好地维护和复用代码;
* 第三、懂得合理地设计接口,既不能面面俱到,也不能太过笼统,够用就好。比如说:链表的接口设计和菜单的接口设计就有所不同。链表需要增删查改的接口,而菜单的接口就无需如此太过细节化;
* 第三、掌握代码的运用技巧,比如说回调函数的使用;
* 第四、非功能性需求,比如说安全性。这里尤其需要谈到的是线程安全,如何利用加锁的机制构建出写出安全的代码;
* 第五、设计思想,这里需要应用一些前人总结的设计模式,比如说工场模式、观察者模式、适配器模式等。应用这些模式能大大增加代码的延展性,更好地包容变化,更好地复用代码。当然,为了拓展视野,孟老师也提到函数式、形式化方法的编程;
关于我
总之,学习软件工程我最大的收获,就是理解了软件工程,初步设计软件,明白软件开发的流程。特别是,由于孟老师有着丰富的软件开发经验,所以比只讲软件工程理论要来的有趣、更好理解得多!最大的遗憾是,我希望线上课程能让我和同学共同协作,通过规定接口来完成一个软件项目,因为我感觉软件工程离不开沟通协作。
最后,深深感谢孟宁老师给我带来了如此生动、有趣而又丰富的软件工程课程。
实验报告
下面附上我的实验报告链接(全5分,也是对我尽力编程的认可吧):
实验一:写一个hello world小程序
https://www.shiyanlou.com/courses/reports/645718
实验二:命令行菜单小程序V1.0
https://www.shiyanlou.com/courses/reports/659872
实验三:内部模块化的命令行菜单小程序V2.0
https://www.shiyanlou.com/courses/reports/683728
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
https://www.shiyanlou.com/courses/reports/701555
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
https://www.shiyanlou.com/courses/reports/715800
实验六:可重入函数的相关测试,一次小测验。
实验七:将menu设计为可重用的子系统
https://www.shiyanlou.com/courses/reports/750491
浅谈软件工程学习心得相关推荐
- 浅谈如何学习深度学习(经验之谈,仅供参考)
浅谈如何学习深度学习 方向 书籍 视频 方向 首先,要选择一个感兴趣的方向,或者说是将深度学习与自己的专业.学校的优势学科相结合. 计算机视觉(数字图像处理.图像分类.目标检测.图像语义分割.目标跟踪 ...
- 浅谈深度学习:LSTM对股票的收益进行预测(Sequential 序贯模型,Keras实现)
浅谈深度学习:LSTM对股票的收益进行预测(Sequential 序贯模型,Keras实现) 总包含文章: 一个完整的机器学习模型的流程 浅谈深度学习:了解RNN和构建并预测 浅谈深度学习:基于对LS ...
- 浅谈深度学习:了解RNN和构建并预测
浅谈深度学习:了解RNN和构建并预测 总包含文章: 一个完整的机器学习模型的流程 浅谈深度学习:了解RNN和构建并预测 浅谈深度学习:基于对LSTM项目LSTM Neural Network for ...
- 浅谈深度学习:基于对LSTM项目`LSTM Neural Network for Time Series Prediction`的理解与回顾
浅谈深度学习:基于对LSTM项目LSTM Neural Network for Time Series Prediction的理解与回顾#### 总包含文章: 一个完整的机器学习模型的流程 浅谈深度学 ...
- 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广
没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...
- 浅谈工作/学习中找bug的思路_0_调试、try-catch以及打印报错信息和百度的方法、No default constructor for entity: com.gyf.bos.mod
浅谈工作/学习中找bug的思路_0 文章目录 浅谈工作/学习中找bug的思路_0 调试.try-catch-以及打印报错信息和百度的方法 前言 描述 解决思路1 -- 检查移植的代码,细枝末节也不要忽 ...
- 浅谈深度学习的基础——神经网络算法(科普)
浅谈深度学习的基础--神经网络算法(科普) 神经网络算法是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助 ...
- 浅谈深度学习:如何计算模型以及中间变量的显存占用大小
原文链接:https://oldpan.me/archives/how-to-calculate-gpu-memory 前言 亲,显存炸了,你的显卡快冒烟了! torch.FatalError: cu ...
- 网易云课堂--软件工程学习心得
网易云课堂–软件工程学习心得 一.软件工程实验 通过十周的学习,老师要求的网易云课堂–软件工程的学习,终于结束了. 从开始的对linux平台的不熟悉,到能够熟练运用linux书写代码,我相信大家和我一 ...
- 中科大高级软件工程学习心得体会
中科大高级软件工程学习心得体会 在本门课程中,首先我对一些基本开发工具,如VSCode.Git.Vim.正则表达式等,重新审视了自己的认知,顺便学了一手shell编程,并在课程的基础上又自定义了很多配 ...
最新文章
- 人工智能、区块链、混合现实:2019年新闻、媒体与技术趋势
- Java ResultSet如何检查是否有任何结果
- 如何写出安全的、基本功能完善的Bash脚本
- java 动态切换_java-动态切换日志级别的3种方案
- 孔板流量计计算公式_带你全面了解各种流量计
- 删除已有的 HTML 元素
- android webview js 交互框架,自定义android混合框架开发实践1:实现基础andorid和webview交互...
- mysql 错误编码_【分享】MySQl操作系统提示错误编码
- 基于Callable和Future的匹配文件数量计算实例
- C#弹出窗体、C#导出Excel、C#数据展示框、C#弹出框
- 为什么仿宋字体打印出楷体_请问仿宋体和楷体有什么区别?
- 大型连锁百货运维审计用什么软件好?有哪些功能?
- Emacs,最强编辑器,没有之一
- pika异步consumer简单使用
- wps加入全国计算机二级,WPS进入全国计算机二级考试,明年3月开考
- C语言-make概述
- 计算机快速启动BIOS,掌握50个电脑BIOS启动快捷键,再也不为装系统发愁了!
- 【Proteus仿真】按键设置+数码管显示
- OA是什么意思?什么是OA? OA系统是什么?
- 程序员去外包公司有前途吗?