一、一些感想
从xx鸟培训出来后,2017年7月3号正式进入xx公司,正式开始我的码农的生涯。
公司使用的框架是老总自己写的敏捷性框架,数据库是mongo,配合redis食用,开发工具idea,这些都是在培训的时候没有接触的,幸好公司都是刚创建不久,项目就只有一个,所以也没有那么着急需要人手,才有时间去适应公司的开发环境。虽然前期还是需要遇到了不少的问题,但也慢慢熬过来了。
转眼半年已过,现在细细想来,这段日子还真令人印象深刻,发生了太多太多说不清也理不清的事,很多相处得很好的同事也走了,一开始的那群伙伴留下来也几个,还真想念他们。无关的话也不多说的,进入正题吧。
二、项目
半年来,总共做了三个项目,其中第一个项目是没能按时完成所以失败告终的,后两个项目已经开始上线使用了一段时间了。
第一个项目是天x管理系统,后台管理系统,开发时间:2017.7-2017.10月,主要有产品管理、代理商管理、订单管理、进销存管理、财务管理、系统管理等六大模块。
我主要负责的系统管理的角色和菜单,也就是系统的权限设计,数据字典的设计开发,产品管理和购物车的第二期重新设计开发,订单模块的部分功能的实现(主要有订单分布图,订单发货路线图,团队订单统计,最后还有返利的设计(目前是移植到第二个项目去)。
这是我接触的第一个公司正式的项目,但是现在回头看,无论从设计思路还是代码质量很非常非常差,基本都是垃圾代码,另外还有两个java开发的伙伴最长工作时间也是一年,之前也是没接触过电商项目的,所以,这个项目失败从一开始就是注定的。不过当时失败最主要的原因的还是需求的不断变更,我们当时是参照旧系统来开发新系统的,根本就没有进行过需求分析,加上老总对需求也不是很明确,每做一段时间就开会讨论下系统,发现不理想就重新改需求,或者上级领导又提出了新的需求,不断的修改导致了很多bug的产生,最后就没能按时完成了。
第二个项目是幸福xx,运动类+电商项目,开发时间:2017.10-2018.1月,包括后台管理系统和app,这是我们第一个做成功的项目。最主要是需求不再不断修改,因为我们有了UI,每次UI都会先将app的界面画出来,这样需求基本也定下来,大家都按照图进行开发,这样才顺顺利利完成。
幸福xx后台管理系统主要有用户管理、积分管理、配餐管理、学堂管理、文章素材、朋友圈管理、社区管理、产品管理、代理商管理、订单管理、返利管理、系统管理等十二大模块。
幸福app主要有首页(功能入口、公告显示)、体脂称测量、商城、社区,个人中心(设备管理、我的目标、我的积分、排行榜,个人信息修改)
我主要负责用户管理中的用户、设备管理,配餐管理中的食材管理,还有学堂管理、文章素材、朋友圈管理、社区管理(社区文章,动态)、产品管理(品牌、类型、产品)、返利管理(返利规则和记录)、系统管理(数据字典,app轮播图管理、app菜单管理、敏感词管理),购物车等8大模块。
这个项目难点在于wifi称竟然只能用2.5G频道的,我公司的wifi是5g,包括很多用户也是5g的,结果很多用户都连接不上,后来改成了蓝牙称,业务上的难点就是称发来的阻抗每天都40%都是0,就是没测量到阻抗。
我负责的模块中难度较高的就是返利的计算,因为返利规则的复杂,导致了接口调用时间很长,后来通过转换思路解决这个问题。
第三个项目是乐xx,电商项目,还未完结,开发时间:2018.1-2018.3,这是第一版的开发时间,目前已经完成并上线,这个项目是做得比较成功的,基于前两个项目的经验和java人员补充(从2个到3个人),并且和ios和安卓的同事配合也越来越好,大家都对一些功能如何去做都比较熟悉,所以很顺利就在年前把项目的第一版赶出来了。
乐xx也是包括后台管理系统和app,后台管理系统主要有用户管理、产品管理、订单管理、返利管理、报表管理、社区管理、系统管理七大模块,后面把幸福xx学堂管理、文章素材、朋友圈管理也移植到了乐XX。
app主要有商城、社区和个人中心三个模块。
我主要负责的产品管理、购物车、返利管理和后面学堂管理、文章素材、朋友圈管理的移植。
相比上两个项目,这个项目的相对简单点,例如产品结构销售种类单一,只卖化妆品,所以产品模块的数据库模块设计相对简单,相对较麻烦的返利计算逻辑是不断在变更的,目前已经经历了四次变更了,而且都是在上线后更改的。
总的来说,经历这三个项目,还是学习到很多东西的,具体来说:
1.代码从少到多,再到少;一开始业务层的一个方法基本就写几行代码,刚进行,什么都不懂,技能差,业务不熟悉,考虑也不周到,那时候,看到同事写一个方法都是一百行以上的,感觉好厉害,所以就学着同事的思路去写代码,然后代码就越写越多,就拿业务层的产品添加的方法,加上空行,都150行了。后面才知道代码就越简洁越好,开始学会把一些可以共用的代码抽离出去作为公共方法,把一些代码写在工具类里作为工具使用,再去掉一些不必要的判断,现在产品添加的方法加上空行也就剩下50行。
2.写接口的时候考虑越来越周全;刚开始基都是实现最基本功能,不会去想如何更完美的做好这个功能,并为以后的功能做好准备。而现在写接口的时候,考虑也多了。例如做一个二维码提现的接口,现在会想下如何限制二维码使用次数,或者让二维码过了指定时间就失效了,二维码的信息是存储在数据库的,那么当用户数量越来越多时,数据库越来越多失效的二维码记录,这些记录是没用的,是不是可以做个定时任务每天还是每个月清理一次,清理后会不会对判断二维码失效产生影响。
3.对电商业务流程也越来越熟悉。购物车如何去设计;产品模块又如何去设计,实现卖什么产品都可以共用一个系统;返利怎么算还又快又好。
总的来说,越努力,越幸运吧!