总结第一次项目;
第一次独立接一个需求,完成一个项目,因盲目的开展,导致本该是一个月可以完成的,到现在3个月才完成。今天做下总结
首先,在项目中我的不足如下;
1.接到需求时,没有认真的阅读参考资料,一昧的按照自己的想法去做,将成熟的案例仍在一旁,理由看不懂,觉得简单不需要去看, 这是不对的,分析设计需求,一定要讲有关的资料看懂,不要不懂装懂,逃避问题,因为这个我吃了好多亏,写了一个月,代码检视后,啥都不是,不满足性能,瞎忙
2.遇到的问题,自己去研究 这个支持,但要考虑效率,一个问题,你可以自己琢磨半小时,甚至半天,但明明一个可以问同事,同事一点你就懂得问题,自己却要去琢磨半天甚至1天多,这时候你要考虑效率和收益的,虽然你觉得,我自己研究,不去麻烦别人,但要考虑效率和收益的,你的收益很低了,这也是我项目拖期的原因,要知道站在巨人的肩膀上是可以看得更远的,自己研究是对的,但一昧的取研究一个小问题,是不可取得
3.要及时进行代码检视,多个人总比一个人想得多,遇到的多,有的地方可以换个思路写,同事会给你很大的帮助,我因为怕打扰别人,毕竟都很忙,就自己瞎写,其实就是瞎写,啥都不是,所以要及时进行代码检视
4.最重要的是不懂就要问,不要说等别人不忙了去问,或者明天去问,我在项目中,遇到不懂的,就想着会不会麻烦别人,麻烦肯定的麻烦的,但你要考虑效率,一个5分钟解决,一个2小时,你选哪个
但问问题,要有思路,讲清楚问题,讲清楚你的疑惑点,
5,项目写好后,要展现出来,不是你说写好了就行的。要出报告,要给别人展示, 不要大量文字,没人看,用表格,图表,去展示,要让别人看到才可以。
感谢同事的不抛弃,一个月可以完成的项目,最后3个月才完成,哎
介绍下项目思路;
当接到一个需求时,因按照一定的流程来完成
1.分析设计需求,首先要明白 项目要做什么,可分为几步,每一步采取什么样的方法来实现,有无可借鉴的例子,如果有可借鉴的成熟的例子,需认真的阅读,不可因为读不懂而不去读,不会就要问,前期我并没有参考已经有的例子,按照自己不成熟的想法去实现,最后一个多月过去,写的一塌糊涂,所以,前期的分析设计需求,非常的重要,这相当于打地基,因为后期的编码其实有思路后很简单
2.需求设计分析后,可以开始编码,这里就不过多讲述了,按照你的分析设计来就好 ,也就是开发自测
3.编码完成后,要联调,联调不只是说和别人合作才叫联调,比如部署到linux上,不在本地上了,都可以算联调,测试环境可以后,就可以进行代码检视
4.代码检视,同事帮你分析你的不足,有什么可以改进的,然后自己进行更改,修复
5.st测试,将程序部署到st环境,进一步的测试,检查问题,修复
6.uat 测试
7.投产
8结项
我做的是单机的项目,简单的项目逻辑是这样的,接下来讲下 我项目中用到的技术点;
技术栈;java语言
springboot ,mybatis ,oracle ,
项目的大体情况;
读取xml文件,并入库,项目理解起来很简单,但如果没有按照一定的方法开展,就会很难,虽然做了很多,但效果一般,
介绍下我从开始到完成的经历,做个反面例子,
1.分析设计需求,同事给了我以前的代码,因为是c++写的,我没读下去,就没看,然后开始了作死的历程
2.编码 因为不知道怎么写,首选解析xml文件,选了dom4j,xml不标准,会有错误信息, 这就是没分析设计好,导致的后果,,于是开始了编码,
3.一个月后,会议分享,结果可想而知,一塌糊涂,啥都不是
4.然后自己又去瞎改,这时候仍然没去阅读以前程序,2周过后,你明白的,同事做代码检视,还是啥都不是
5.然后阅读以前代码,照猫画虎,完成了
6.开发环境测试,检查问题,对比数据 更改代码
7.st测试,后来因为数据库时自己写的,不符合要求,从db2迁移过来的,因为数据库更改,类型都不一样,因为我图省事,都是varchar2,实际上是number,就又更改代码
8.数据库更改后,继续测试数据,要验证数据是否正确
9.代码监视,太多的不符合阿里的规范,因为是单机,没用sonar扫描,更改代码程序,最后更改完毕
10.出报告,结果一定要展示出来,而不是,对别人说一句,我测试了啥,啥,别人不知道啊,
11.项目等待投产了,暂时告一段落了,看生产后的问题吧
------------
项目技术点;
1.读取xm文件,这里让我本来不熟悉的io流,愣是学习了好多
2.解析xml ,dom4j,我使用dom4j map结构,存储,转换为对象的
3.解析后,放入队列,这里用的阻塞队列解耦的
4.线程池去消费, 你懂得,核心数,最大,都要去考虑,分cpu和io型,去百度吧,好多很详细,有时间我会详细写
5.入库,mybtis,感觉学到的是 merge into ,存在则update 不存在则插入,很有用,然后,一个小技巧,数据库里啥类型,你就设置啥类型字段就好,类型转换,太麻烦了,
7.本地完成后。linux部署,学到了很多linux 知识, 创建文件,删除文件, 执行java命令,top命令, jvm分析,ps ,kill cd,mkdir,rm, nohup, 写简单脚本,说实话,从前一个小白,已经入门了,
记录完成,开始新的征程