通过这次实训,学到了许多东西,虽然以前也经常自己写项目,但从来没有这一次的收获多,首先特别感谢华老师写的这份课件,我是完完全全按照这份课件来学习的 。
这个项目光编码我整整花了4天,整个项目大概有6000多行代码,目前是我独自写过最大的项目了,一开始是跟着老师的代码照着敲,后来发现,照着敲和复制粘贴又有什么不一样呢,然后我就花了一天的时间来逐行逐行看老师的代码,,在实训项目12之前,我看着是非常轻松的,后面的gui窗口花的时间多一点,因为有一部分控件前面没有学过,嗯,查了不不少笔记,总算搞懂了,
第一个收获是使用接口:在我之前写的一些项目,是没有用过接口的,呃,上次和同学一起写项目,为了配合方便,使用过接口,然而通过这次实训,终于懂了接口的正真奥义——接口在开发中的作用:接口在开发中的作用和多态一样。多态是面向抽象编程,不要面向具体编程,提供程序的扩展力,降低程序的耦合度
因为接口是完全抽象的,所以,面向抽象编程也可以称为:面向接口编程。有了接口就有了"可插拔",提供程序的扩展力,降低程序的耦合度。任何一个接口都有"调用者"和"实现者"接口可以将"调用者"和"实现者"解耦合"调用者"面向接口调用"实现者"面向接口编写实现**接口在团队中的作用,可以更好的使分工明确,一边是调用者,一边是实现者,,对调用的而言,我不用管你怎么实现的,我只需要知道你需要我传给你什么参数,你能返回给我什么参数就行,而对于实现者而言,我不用管你想干嘛,我只需要知道你想让我干嘛就行,这样在团队开发过程中,先商议好各种借口,然后自己做自己的工作,刚才说到接口可以降低程序的耦合度,什么是耦合度呢,耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度。
为什么要降低耦合度呢?,我以前也有这样一个疑惑,耦合度很高的情况下,修改代码时修改一个地方会牵连到很多地方,如果修改时没有理清这些耦合关系,那么带来的后果是无法预料的,用我们的家庭用电来说,接口就像是配电箱一样,将我们的厨房用电,客厅用电,插板用电各自分开,哪里有问题,修哪里就好了,需要扩展线路的时候,直接再配电箱加一条线路就好了。并不会影响其他线路的使用
第二个收获是设计模式,嗯,这个设计模式我以前没学过,正打算学,不过在这次项目中,我能感受到设计模式带来的好处,将数据底层,数据服务层,视图层分开,各自实现各自的功能,,不光为开发者创造出轻松愉快的编码环境,也为我这样的阅读者提供了非常清晰的阅读路线。
第三个收获就是先设计,再编码,在我以前敲代码的习惯就是,想到什么就做什么,常常在开发过程中想到其他功能,不得不修改甚至删除刚刚写好的代码,严重影响开发效率,这就是事先没有设计功能就编码而导致的,当然这个问题在上上次的项目中已经总结过了。
第四个收获就是注重细节:我常常因为一些细节浪费许多的时间,在我学习编程过程中,大多数的bug都是字符错误导致的,这次又出现了,,在项目中有一个类名叫:“CollegeServiceImpl”,在前面编码的时候我不小心把’l’打成了’i’导致后面排了20多分钟的错,幸亏用的是是idea,要是记事本的话,,估计没个三五天是排不完的了。
第五个收获是数据库连接:因为是先读老师的代码,再写自己的代码,所以就没用老师的方法,后来迫于bug的无赖,最终还是改了回来,经过当时由于赶时间就直接改的老师的方式并没有排查错误,后来通过请教老师,还是轻松解决了。bug是这样的:在实现登录过程中,需要通过提供的用户名
获取数据库中密码字段的数据,
在用户名是中文字符串的时候,获取到的数据是空,但是如果用户名是数字字符串的时候,又能查到数据了,最终问题的解决方案是,在可能有中文的情况下,需要给条件变量加一个引号,现在想想,高中数据库老师在做vba窗口时,还单独给我重点讲过,,,感觉挺对不起高中老师的·····
第六个收获就是学会了使用Maven这个工具,这个工具是学长推荐我用的,在做项目开发时挺方便的,不用到处找jar包。当然目前学的这种小东西,还体现不出这个工具的威力,
第七个收获是要注重基础,这次项目中发现,这个将近7000行代码的项目,80%都是用到一些重复的基础知识,,接口、容器、封装、什么的,然而我在阅读老师代码的过程中,翻了很多次以前的笔记,,这一点恰恰反映出我基础知识出现了很多的漏洞,这次结束就要回去补了。
第八个就是学会了封装,以前我一直觉得封装有点鸡肋,就get和set方法,我以前除了题目特别要求,我很少写成封装的格式,这次项目中发现封装的优点了,将不需要公开的属性设置成私有,这样可以降低整体项目的耦合度,好吧
,我已经把耦合度这个名词刻在脑子里了。
第九个收获是:课本上的知识是有限的,当然课件也是,在学习过程中,要依靠课件上有限的知识,去适当的扩展知识宽度,适当的扩展,也不要剑走偏锋,,在这次项目中,后面的gui开发就让我傻了眼,,读代码都很困难,何况是自己写,最后不得不停下来学习其他的控件使用。
最后一点呢,就是要有一个无畏之心,不要惧怕,在我刚刚阅读完这些代码我是有点畏惧的,毕竟是第一次一个人写这么大的东西,代码量还是蛮多的,,最后合理的安排时间,虽然途中有点坎坷,现在也还存在一些bug,(不影响正常使用,明天再改一天吧),最后还是写完了,我以前挺害怕多线程的,,现在我觉得,只要合理安排时间,一点一点的学习,,学完多线程也只是时间问题。