软件工程(C编码实践篇)学习心得

       许久没有更博了,说起来这个博客也并没有用过几次,上一次密集更新还是在学习王爽老师的《汇编语言》的时候。这次重新更博,一是为了完成 易云课堂的软件工程(C       本科期间,学校并没有开设专门教授软件工程的课程,只是在软件导论和UML       那之后我觉得或许一个人写代码并不需要太多的思考,但是团队写代码,开发软件一定要先设计好整个工程架构,设计好开发方法,尽量做到让所有开发人员(因为都是本专业的,所以其实都是开发人员)明白所有已经确定的添加到工程中的代码的意图。不时对代码进行重新审查,并且适当的重构,不然后期真的是举步维艰

       然而后来上来这门课以后,我的观念又发生了一些变化。这门课告诉我或许并非只有团队的大项目才需要考虑软件工程,一个人的小项目也应该去思考,拍脑袋的想法或许只适合hello world       而后这门课从实现一个menu       实验1 简单的hello world程序(linux,vim简介)
       实验2 简单的menu程序:只有一个menu实现文件(command.c),没有业务逻辑层,数据存储层的分离,所有功能在一个文件实现。具体实现使用C的字符串匹配函数读取用户输入并进行匹配,根据不同命令输出调用不同函数输出结果。
       实验3 提供接口的menu程序:将用户与实现分开,创建linklist.h,linklist.c文件进行程序数据结构部分的定义和实现,在menu中进行调用。
       实验4 进一步抽象接口的menu程序:使用linktable替换linklist,其不再是简单的抽象数据结构定义,有了一定功能的模块,变得更加通用,不仅限于本程序。
       实验5 callback实现,信息隐藏:callback机制使得用户能够更好的调用接口,信息隐藏确保了用户不能更改实现。(由于课程安排,没有实验六)                实验7 实现带参命令,进一步隐藏实现,将menu设计为可重用子系统:使用C语言string库中的strtok和getopt等实现带参数的命令,将暴露的接口进一步隐藏,仅提供两个接口。使用makefile文件编译工程代替手工输入命令。

       收获谈完了,但是课程依然有许多令人觉得不够好的地方。比如:

       1、最后一部分理论知识突然砸了下来,却没有相关的实验,显得脱离了原本与实践结合的初衷。

       2、线程安全的部分很重要,但是却没有相关编程(虽然老师说过这一部分跟操作系统有关,于是就不实现了,但我个人觉得老师依旧可以给出一些代码至少让大家跑跑看)。

       3、vim       5、或许是因为自己之前有学习过软件工程的理论,觉得这些理论依旧还是不够,尤其是应对多人的软件开发的情况。

       以上或许有些苛责了,总而言之,这门课对于未曾思考过软件工程的C语言或其他语言编程人员来说,能够帮助你进一步去思考如何更好的完成自己的软件设计,进一步将设计变得更加清晰,理清编程思路。是一门值得大家学习的好课程,也希望孟老师今后能将这门课越讲越好。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113952 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年10月17日
下一篇 2016年10月17日

相关推荐