高级软件工程(C编码实践篇)总结

来源:互联网 发布:python 决策树 编辑:程序博客网 时间:2024/06/03 23:40

【网易云课堂一叶飘洋过海 + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006 】SA17225452杨晓青

在入学之前就听学长学姐讲软院有三高,高级网络工程,高级数据库以及孟宁老师的高级软件工程,也很幸运选上了孟宁老师的课程。高软课程的教学方式很独特,分为线上加线下模式。

一、线上模式强调软件工程,通过7次亲自实验编码,加深了对软件工程概念的认识,具体心得如下:

1.学会了linux操作系统下的命令行操作,以及源代码编写;

比如解包命令,打包命令,vim的三种模式操作,如何编译源代码,如何运行源代码等;

2.学会了github仓库管理整个程序项目的版本库工具;

比如注册github仓库账号,创建一个自己的仓库,可以设置为私人和公开,然后在linux终端下载github的包,通过命令行进行操作,比如克隆仓库,命令为:git clone http://github.com/用户名/仓库名.git;比如在仓库建立文件夹命令,首先cd到仓库名本地文件夹,然后mkdir 新建文件夹名;比如使用vim创建可编辑文件(c源码文件等),命令为:vi 文件名.文件类型,进入文件后有三种模式进行切换,从而实现编码;比如git的上传和提交操作,命令为git add --all, git commit -m '', git push等。

3.学会了在编码过程中应注意代码风格的规范,即代码风格的三个原则:简明、易读、无二义性。只有学会良好的的代码风格,才是一个合格的程序员。

4.学会了编写代码时要注意代码的业务逻辑和数据存储之间的分离,即将系统抽象为两个层级:菜单业务逻辑和菜单数据存储。模程块化的作用是包容变化。

5.学会了使用callback函数,以此使得给用户提供的接口更加通用,使代码的可用性更高,同时隐藏接口的信息,加强了代码的安全性。

6.程序编码就是体现一个编程人素质的时候了,从代码的规范都编程的风格,一段好的代码不是谁都看不懂才体现出你很牛,恰恰是你的代码编程的人都可以看得懂,可以拿来用,可以继续你的工作,并且有很好的规范,才真是技术的娴熟。软件测试,如果前面的准备工作做得好,在测试阶段测试出来的错误页就会很少,相应维护所需要的代价就会很低,由于在设计阶段出现的失误就导致在维护阶段要付出十倍以上的代价,可见孰轻孰重。软件维护,占整个系统生存周期的70%,软件维护困难的因素是由设计者和用户共同决定的。最后是文档的规范,一个规范的文档直接决定下一步人员对软件的理解和对软件完成的好坏。所以要培养自己写规范文档的能力。



实验一:写一个hello world小程序

在linux环境下编写c简单程序,即“hello,world”输出,并且使用git版本库进行控制,在这个过程中使用了包括ls,cd,vi,gcc和tar的五个命令行。在linux环境下编写c简单程序,即“hello,world”输出,并且使用git版本库进行控制,在这个过程中使用了包括ls,cd,vi,gcc和tar的五个命令行。

实验二:命令行菜单小程序V1.0

代码风格的原则:简明、易读、无二义性;缩进、命名、注释等代码编排的风格规范;

实验三:内部模块化的命令行菜单小程序V2.0

注意代码的业务逻辑和数据存储之间的分离,即将系统抽象为两个层级:菜单业务逻辑和菜单数据存储

实验四:用可重用的链表模块来实现命令行菜单小程序V2.5

用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作;

链表模块的接口设计要足够通用,命令行菜单小程序的功能保持不变;

可以将通用的Linktable模块集成到我们的menu程序中;

实验五:用callback增强链表模块来实现命令行菜单小程序V2.8

利用callback函数参数使Linktable的查询接口更加通用

注意接口的信息隐藏

实验七:将menu设计为可重用的子系统

1.为menu子系统设计接口,并写用户范例代码来实现原来的功能;

2.使用make和make clean来编译程序和清理自动生成的文件;

3.使menu子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令;

4.可以使用getopt函数获取命令行参数。

二、线下课程老师让我们接触了目前最流行的vue.js框架,通过学习10个范例,还有一个全班的课程项目,来理解vue的具体思想。因为我是非计算机专业的,学习这个是很吃力的,基本上学不懂,讲范例也不会讲,我就看会的人讲,就这样看了一个学期,对vue有了一个了解,虽然每次实验都没有勇气去讲,但是每次我都认真听了,知道的自己的不足。


三、对于课程的其他收获

这门课程还有其他一点收获可以分享,其实我觉得孟宁老师教授的管理和财务方面的知识对我有很大的启示。我觉得一个成功的人士,不仅体现自身过硬的技术能力,而且体现在一个人的团队管理和财务管理方面的能力。公司是一个看能力的地方,你越是全面,获得的机会就越多,因为别人会的技术你会,别人不会的你也会,这就是优势。


四、最大的收获

上了这门课程,我最大的收获就是学会了如何看待评价一个人,以及如何做人。

1.研究生应该有研究生的个人素养,尊师重道是学生的一个最基本的职业道德;

2.评价别人的时候不要轻易的听信流言蜚语,需要自己去接触,然后才能自己主观判断对自己是不是有用处;

3.要跟比自己牛掰的人说话,但是不要跟自大浮躁的人说话;

4.要有自己的一个正确的学习方向和态度;

5.每个人都有自己的价值观,对于自己的价值观,不断朝着正确的方向修正;对于别人的价值观,我们可以学习好的,但是不要抨击别人。


五、最大的遗憾

由于其他课程作业量太大,这门课最大的遗憾就是没有真真切切的去学会vue.js。


五、后记

对于我自己未来还有很长的路要走,在技术上,希望自己不要浮躁,慢慢沉淀自己;在生活上,希望自己积极向上,不要随波逐流。

对于孟宁老师,希望老师的课程越来越好。


原创粉丝点击