本帖最后由 莫扎特的玫瑰 于 2017-8-21 20:41 编辑
Bos项目的结束,我在黑马的日子也将临近尾声。回想整个项目阶段,虽然有过很艰难的时期,但是对于我来说却是收益良多。作为一个半路出家的程序员,bos2.0可是我进入it行业的第一个项目,所以对于我来说意义非凡。今天就跟大家分享一下,我在bos2.0整个项目阶段的一些心得体会和对项目的总结。 Bos2.0项目相对于1.0版本来说,时间更长,难度更大,技术点也更多,这正是考验我们前面的所学是否能够所用。此项目不是由小组完成,从项目环境搭建,到项目部署全部都是独立完成,项目完成度比较高,在必须实现的功能的基础上我又增加了一些功能。整个项目课程,总共分为10个章节,包含从环境搭建到项目部署。 第一章、 环境搭建。 Bos2.0采用的是spring整合struts2和spring data jpa 框架。同时采用maven作为项目管理工具。所以要对maven的使用,和spring整合struts2和springdata jpa所需要用到jar有所了解才行。除此之外,这次项目使用的版本控制工具是git而不是svn。所以对于git使用,一定要非常熟悉才行。这样,走上工作岗位才能说自己是一个有经验的开发人员。
第二章、 基础档案设置模块—收派件标准管理 没有接触过物流行业的人,可能对这个模块功能不太了解,它其中包括了收派件标准管理、快递员管理、区域管理、定区管理等等。还好我曾经在物流公司工作过一段时间,所以对于项目的业务逻辑还是比较清晰的。像是区域、定区和分区,很多人对于这三者之间的关系经常弄混。所以,要想做好一个项目一定要充分理解要实现功能的业务逻辑。如果不熟悉业务的,先别急着撸代码,好好看看需求文档,然后可以先写一些伪代码,看看能不能符合文档的要求。 在第二章节,接触到了以前没有学过的一个前端框架easyui。对于一个没有学过的技术,怎样能够很快的学会使用,这就要考验我们的独立学习的能力了。以后这种情况我们在工作中经常遇到,这边在赶工期,有同时遇到完全不会的东西。我的建议是会用即可。首先,好好研究技术文档,每个技术文档上都会有案例,重点是研究案例。然后,照着案例自己独立的编写一个demo。最后,运用到我们的项目中。当然,在过程中,可能会遇到很多问题,这就需要我们伟大的百度来帮忙了。比方说,在收派件标准管理模块仅仅用到easyui的window、form和datagrid这三个组件,那么完全可以将文档中案例copy过来,修修改改就行。总而言之,会用即可,不用研究太深,如果以后时间在慢慢的系统学习。 还有,就是我们在编程的过程中时刻谨记代码的简化重构。比较合理的代码重构可以给我们的开发带来非常大的便利。重构的思想在于我们是否能够将重复的代码进行抽取,封装成工具类,或者向上抽取成一个base类,让其他类去继承base。这是一个有经验的开发人员,应该具备的能力。
第三章、 基础档案设置—批量导入区域信息 这一章的知识非常的实用,批量导入功能在工作经常遇到。这里我们课程中使用的是poi技术。但是我觉的原始的poi技术使用起来非常麻烦,代码量有点大。所以,从洋哥那里听说easypoi后,果断去github上download下来。Easypoi在原始poi的基础上,又做了一层封装,简化了很多的代码。使用起来比较方便,而且还支持注解开发,对开发效率有提升。这里我把easypoi的坐标分享出来,有想要使用的,直接拿去,省的再去中央仓库找了。
<!-- easypoi--> <dependency> <groupId>org.jeecg</groupId> <artifactId>easypoi-base</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.jeecg</groupId> <artifactId>easypoi-annotation</artifactId> <version>2.4.0</version> </dependency>
Easypoi除了可以批量导入excel文件外,还可以导出excel报表,而且可以自己制定导出格式或者按照模板导出。在第十章的报表管理里我会提到。 除此之外,这里还用的文件上传的技术,后台使用的struts2的拦截器实现文件上传,前台使用一个ocupload插件完成文件上传。
第四章、 基础档案设置模块—定区管理 第三章是bos2.0项目中的一个重点,也是难点。因为它涉及多个maven项目之间的数据交换。实现bos后台系统和crm系统之间的数据交互。将crm系统的客户关联上bos后台系统中的定区,同时还要实现定区关联在快递员。这里bos2.0使用的webService技术。对于我来说,又是一个完全陌生的技术。没办法,研究文档吧!光学习webService,就花费了很长时间,可想而知webservice的重要和难度。还好,最后我都顺利完成了功能的实现。 这里我要着重说一点,虽然我们不是真真正正的项目实战,而是项目课程,但是自己也要把这作为项目实战进行。因为,我发现教程中的老师的代码有一些bug,所以不要迷信老师的代码。了解业务逻辑后,要按照自己的理解去实现需求,否则,可能老师说的都能听懂,却没有自己编程的能力。 比方说这里,$(“#associationSelect”).empty();教程中是放到$.each()循环里面的,这样页面上每添加一个option就会清空上一次的option。所以说,一定要自己独立的编程。
第五章、 前端系统(客户注册) 虽然后台基础档案设置模块教程里面不是所有的功能都实现了,因为其他功能所用的技术点,和上面讲的都重复了。但是,我还是全部完成了,班级里大多数的小伙伴也都全部完成了。因为可以说是对前面的技术点的又一次复习吧。基础档案设置模块技术后,我们有辗转到了前端系统,需要实现客户注册功能。虽然说是一个简单客户注册,但里面所包含的知识点和技术点可不少,够我们玩两天的了。普通的注册通能大家都能搞定,但是要想做的和网上的一些网站一样,在注册的时候可以发送短信验证码,可以发送激活邮件,那就需要下一番功夫了。 课程里我们使用的第三方短信平台是吉信通,但是班里好多人都没用,因为要收费!而且不送测试短信。所以班里绝大多数人,都是在网上找的一些送测试短信的第三方短信平台,使用它们的接口。发送激活邮件,我们使用的是Javamail技术,这在以前的黑马商城项目中使用过。所以没有什么难度。 如果在注册的时候要等到验证码校验成功和邮件发送成功后,才能将用户信息保存到数据库中,大大影响了性能和用户体验。所以在这里引入了消息队列技术(activeMQ),将发送短信和发送邮件抽离成两个项目,在注册的时候,使用消息队列分别发送两则消息给这两个项目,由他们完成短信验证码的发送和激活邮件的发送。这样增加系统的吞吐量和性能。 在这里,我遇到了一个bug,花费了我很长时间。Topic一直无法消费信息,查阅了很多资料,最后发现是activeMQ 的jar包的版本原因。升级到高版本后,轻松搞定。所以在这里给大家提供一个思路,如果遇到一个bug是你查看代码和配置为没有错的情况下,很有可能是jar包版本的原因。我现在使用的版本是: <!-- 消息队列 MQ --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>${activemq.version}</version> </dependency> <dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-spring</artifactId> <version>4.3</version> <exclusions> <exclusion> <artifactId>commons-logging</artifactId> <groupId>commons-logging</groupId> </exclusion> </exclusions> </dependency>
换成高版本后xbean这个jar包必须要添加,否则会报错。
第六章、 宣传活动 持续更新中………
|