项目个人遇到的问题与想法

项目个人遇到的问题与想法

入职之后项目第二个迭代周期进入尾声,基本开发的工作已经在收尾了,还是要把自己的所得转换为实体,正所谓心得。

​ 首先是代码方面,不一定是技术,但要记得自己的改变。

​ 虽然很多东西以前都看过,了解过,以为自己绝对能做到,实际执行起来还是有各种各样的问题,项目里也不一定有充足的时间可以给你优化,重构你的代码。

一、拆分方法

java是面向对象的语言,这句话任何javacoder都不可能没听过,单做起来真的很难。真正在写代码的时候有没有做好层级关系,方法拆分做好了吗,阿里的代码手册里说一个方法最多不能超过80行,实际执行起来真的很难,在代码里充斥着复制粘贴的代码,真的写起方法来,顺着一个思路写下去,三百行,四百行,谁还会想起来一条准则。

那如何真的做到提取方法,拆分臃肿的方法呢,就我来说,让我一次性来说,还是做不到的,思路没那么快,还记得项目开始时看到的思维导图吗,结构化思维需要一步步养成,这思维导图映射到代码通常是以业务逻辑的形式,但我觉得也应该作为拆分方法的依据,所以先从注释开始起,通常一个功能至少会有一行代码,在需要拆分的地方写上注释,及时现在没办法拆分方法,在有时间的时候,也可以根据注释写出的功能块进行拆分。

二、代码逻辑

java重业务,主要就是写业务逻辑,那业务逻辑转换为代码逻辑会怎么样,我觉得这和个人的能力有很大关系,以前看段子说写java只需要for循环,ifelse就满足了基本的业务需求,集合基本ArrayList和hashmap打遍天下,当初当段子听,现在,对,是我。而且我还很难走出这个困局,因为我好像写业务逻辑的时候只能写这些,用什么stream、lambda表达式,高端大气上档次,但本质没有变化,for循环还是for循环。

那如何优化自己的代码逻辑呢,有一次项目经理看代码,看到一个同事一个方法里嵌套了10来层,当场就把几个初级开发叫过去,算是一次小型的codereview,那结论是什么呢,该return就return,判空之后,能直接返回的就返回,这样确实减少了几层嵌套,最近这个开发周期算是告一段落,我也开始写总结了。时不时翻一翻自己的代码,一看,呵,一个方法里做了15个判空,我还没办法分开哪些是需要,那些不需要,我觉得写的太长了, 去问了一下边上一个中级开发,写的是一段出库的代码,因为出库影响物料,库存,需要修改四张表,他建议我从业务上把逻辑分开,主体是出库,把物料和库存拆分出来,单独写一个方法,优化自己的代码逻辑,这个其实和上面还是一个问题,都是代码的可读性,那性能呢?

三、拆分前后端代码的职责

如果循环里看到写读写数据库的操作,那你可能会被项目经理打死,如果你前端需要返回一条数据,这条数据,需要关联三张表,你left join 表1,还好没啥说的,然后left join 表2,总之能跑把,然后left join表3,你自己明显感觉到了这条sql十分缓慢,但这都是需要的数据,该如何优化自己的sql呢,作为一个菜鸟,看过一些乱七八糟的博客,教程,现在网上搜连接和子查询,都是一溜的说连接比子查询效率高,实际上是的,但不是一味地连接就可以拯救世界。

那该如何拆分呢,回到标题,拆分前后端代码的职责,如果一张表只是一张单纯的字典表,那你完全可以把它维护到前端,让前端渲染的时候去处理。如果一张表 数据表不是很大,那你完全可以在分开查询两张表,然后查询出所有需要的数据,然后在业务层处理数据的时候筛选数据。从而避免连接太多,但这只是数据比较少的情况,那数据大的情况呢,还是需要优化SQL,归根到底,好好看书,好好学习,SQL真的很重要。

四、提高自己的开发效率

在开发周期中,第一要素也是底线也就是必须在工期内完成,客户那边肯定是不会等人的,所以必须准时完成项目经理安排的任务,不管多还是少,复杂还是简单。实际开发过程中,可能会有各种各样的因素,有外因,有内因,这次只说自己该怎么做。开发周期中自己会遇到哪些问题呢,使用自己不熟悉的技术,完成自己不熟悉的项目,过程中需求的更改,本就超出的工作量,需要返工,这次只说内因。你已经可以看到QQ群里各类开发大神时时摸鱼,甚至你身边就有摸鱼同事,但你的开发任务不会因为这些人而改变,做些什么,该怎么做。

技术这玩意只能自己去学,无论你是看文档,还是看视频,还是靠别人教,公司不会管,但这只能自己努力。不熟悉项目,需要维护前任留下来的屎山代码,说实话我觉得测试和修改bug的过程就是最好的熟悉项目的过程。通常大部分人选择的提高效率的方法,就是CtrlCV,但是用别人的代码就会被动接受别人留下来的坑,如果copy的代码就是有坑的,那你可能会因为这坑反而花费更多时间。为了追求开发速度,而不求甚解,这不是真的需要的效率。你自己写代码还需要判空,校验,那不妨给你copy的代码做个校验,另外千万不要copy自己都看不懂的代码,就算跑起来了,那真是有天坑从天上做也是不亏的。copy前先读懂他。另外多说一句,前段时间看个视频,up主在视频里说很多java程序员不重视基础java能力,严重依赖框架开发,时间长了,不是中级程序员也不是高级程序员,成了框架程序员,spring程序员。框架可以简化开发过程,提高开发效率,但不能忘了java的基本功,这些个框架也都是java来实现的,了解他,实现它,不然跑着自己都看不懂的代码,那有一天框架过时了,该何去何从,虽然我还是个菜鸟,我也深以为然,虽然我现在的开发框架也严重依赖spring,但借此警醒自己,需要掌握工具。

五、产品和项目的思维

前两天转正了, 自己觉得自己这段时间表现得还可以,提前转正也在预期之中,转正后项目经理找我谈话了,跟我提了一嘴,项目和产品,作为开发者来言,项目,我只需要满足甲方提出的需求,满足需求,被动的完成,解决bug,没问题,甲方也不会找你,如果有新需求,反正加钱。产品不止要解决需求,还要去优化产品,满足的时用户的需求,最终目的是为了满足用户。这些都是扯淡,产品会迭代,项目没有,产品你只要不跑路,你以后还要干,所以为了自己考虑,也要整得像样一点。

自己总结一下

自己做开发,完成公司的任务之后,也要想想这些对自己的益处,我个人不算健谈,但偶尔打车的时候会和司机闲聊,不少年纪大的司机会语重心的跟我说一定要自始至终坚持做一件事,我不清楚他们到底抱着什么样的心情跟我说这话,但我也深以为然,这前面应该需要加一句走在正确的道路上,我已经走在了开发这条路上, 接下来要做的就是坚持。说实话前几天看一个名词叫躺平男,我看了下,这不就我吗,我已经躺平了,对这社会也没什么信心,但工作,还请让我收获一些成就感。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值