软件构造课程总结

目录

前言:

知识内容方面

工具使用方面

代码实践(实验)方面


前言:

马上接近整个大二的尾声,软件构造这门课程也将过去,半个学期的学习,让我在起初面对新语言的束手无策成长到如今初步了解java的语法知识,三个实验层次递进,充分锻炼了代码能力。即将步入大三,关于这门课程,有点小小体会。

知识内容方面

过一个学期的学习,我对java有了更深刻的理解。从抽象类、接口到各式各样的设计模式,java这门语言的每一个符号都在体现着“面向对象编程”的含义。如果一些方法中的某一部分可以被反复的利用,就可以像乘法分配律提出公因子那样把它提到父类中去,但同时,各个子类都还具有自己特色化的方法。Java的这个父类功能十分的强大,我深刻的体会并认识到了这一点。还有抽象类的方法,abstract关键字的修饰十分神奇。但最让我觉得收获颇丰的还是Lab3,通过这个浩大的工程,我深刻理解了什么是接口和接口的用法,这个进步让我觉得之前被C语言等基础语言建立起来的世界观被颠覆了,也是从这个时候开始我才认识到java作为一个快捷方便的语言的优点——抽象。无论是面向对象编程还是抽象类、接口,java的思想中,我认为抽象是很关键的一个部分。只有找到事物之间最本质的联系,认真思考如何用最简洁的代码将这个联系表达出来,才能通过这样来发挥java编程的强大。但是这也极大的考验了程序员的抽象能力。

除了java之中最基础的代码层面的体会,对于软件构造这门课更高级的构造方法:各种设计模式也让我大开眼界。既可以采用工厂方法模式,使用一个父类方法,结合之前代码层面的抽象类等感悟,更好的设计整个实验的流程;也可以strategy策略模式,省去多余的代码,在客户端口进行很好的“封装”。说到封装,我认为这也是java语言的一大特色,也是它面向对象编程的一个特点,更是抽象的一种体现。把过程封装,留下精简又精简的步骤,使客户端可以看到简洁而十分有可操作性的步骤。我还记得以前的C语言代码中,main函数中都是一大段一大段的功能代码,而在我这几次的实验过程中,客户端口,包括application类里都是简洁的使用性代码。我又一次感受到了java的强大。

工具使用方面

这学期的几个实验所安装的插件,一开始我并没有认为这些插件会有很好用,但还是被Junit震惊了一下,我才知道并不是所有的测试都是直接跑程序,也知道了在实际编程的过程中都是先写测试用例——毕竟不是每一个程序都有那么多的试错机会。所以我学会了使用Junit,感觉打开了新世界的大门。也是软件构造这门课让我将代码与上学期的计算机系统联系了起来,觉得手中的电脑硬件软件是一个整体,代码也终于摆脱了成为所谓“命令行”的宿命,而是真正的有了生命周期。我在大一下学期选修了一门课叫做“软件有生命吗”,但是我并不是很理解老师所讲的软件的生命周期,而现在我彻底的明白了代码不仅是有生命的,还会由于各种优化而进一步提高它本身的性能,使程序运行起来变得不一样。同时不同的工具带来的开发体验感也截然不同,在做lab1的时候,我使用的是ecliepse,而在之后的两个实验lab2和lab3,我更换成了IDEA,更方便更快捷的体验也提高了我写实验的效率。

代码实践(实验)方面

整个课程下来让我最困难但也收获最大的就是实验这个环节了。三个层次递进的环节让我对java语言的了解逐步加深。

lab3巨大的代码量让我认识到了开发一个小小的软件要经历什么,要考虑什么。经过这门课自己的代码素养有了一个进步,以前的C语言编程都是只考虑如何将想得到的答案跑出来,而不会考虑特殊情况,不会考虑复用,不会考虑健壮性。而现在因为有很多测试用例,我会想我的代码健壮性是否周全,是否有复用价值,是否整洁美观,是否足够简洁而不冗杂……我认为现在的我更像一个程序员应该有的样子,而不是以前的学生模样,凡事都只是想要一个答案而不思考。这门课真的教会了我很多,不仅仅是知识上,也有心理上的教诲。无论任务多么繁重,也慢慢学会拆卸开一点点写完,我不知道未来是否还会遇到代码量这么大的实验课,但我很确定我收获颇丰。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值