加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

腾讯事变近十年大佬:不是我冲击你!你也许真的不会写Java

发布时间:2019-07-02 01:44:01 所属栏目:建站 来源:程序员小姐
导读:文章焦点 着实,本不想把问题写的那么可怕,只是发明许多人干了几年 Java 往后,都自以为是一个不错的 Java 措施员了,可以拿着上万的人为都处鼓吹本身了,写这篇文章的目标并不是冷笑和我一样做 Java 的偕行们,只是但愿读者看到此篇文章后,可以和我一样

我信托你看了以上代码,你会和我一样认为恶心反胃,其后我用 lombok 提供的署理注解优化了我的代码(@Delegate):

  1. @AllArgsConstructor 
  2. public abstract class FilterRestTemplate implements RestOperations { 
  3.  @Delegate 
  4.  protected volatile RestTemplate restTemplate; 

这几行代码完全更换上述那些冗长的代码。

是不是很简捷,做一个拥抱 lombok 的措施员吧。

重构

需求案例

项目需求

项目开拓阶段,有一个关于下单发货的需求:假如本日下战书 3 点前举办下单,那么发货时刻是来日诰日,假如本日下战书 3 点后举办下单,那么发货时刻是后天,假如被确定的时刻是周日,那么在此时刻上再加 1 天为发货时刻。

思索与重构

我信托这个需求看似很简朴,无论怎么写都可以完成。

许多人也许看到这个需求,就下手开始写 Calendar 或 Date 举办计较,从而完成需求。

而我给的提议是,细心思量怎样写代码,然后再去写,不是说全部的时刻操纵都用 Calendar 或 Date 去办理,必然要看场景。

对付时刻的计较我们要思量 joda-time 这种相同的成熟时刻计较框架来写代码,它会让代码越发简捷和易读。

请读者先思量这个需求怎样用 Java 代码完成,或先写一个你认为完成这个代码的思绪,再来看我下边的代码,这样,你的收成会更多一些:

  1. final DateTime DISTRIBUTION_TIME_SPLIT_TIME = new DateTime().withTime(15,0,0,0); 
  2. private Date calculateDistributionTimeByOrderCreateTime(Date orderCreateTime){ 
  3.  DateTime orderCreateDateTime = new DateTime(orderCreateTime); 
  4.  Date tomorrow = orderCreateDateTime.plusDays(1).toDate(); 
  5.  Date theDayAfterTomorrow = orderCreateDateTime.plusDays(2).toDate(); 
  6.  return orderCreateDateTime.isAfter(DISTRIBUTION_TIME_SPLIT_TIME) ? wrapDistributionTime(theDayAfterTomorrow) : wrapDistributionTime(tomorrow); 
  7. private Date wrapDistributionTime(Date distributionTime){ 
  8.  DateTime currentDistributionDateTime = new DateTime(distributionTime); 
  9.  DateTime plusOneDay = currentDistributionDateTime.plusDays(1); 
  10.  boolean isSunday = (DateTimeConstants.SUNDAY == currentDistributionDateTime.getDayOfWeek()); 
  11.  return isSunday ? plusOneDay.toDate() : currentDistributionDateTime.toDate() ; 

读这段代码的时辰,你会发明,我将判定和有也许呈现的差异功效都当做一个变量,最终做一个三目运算符的方法举办返回,这样的优雅和可读性显而易见,虽然这样的代码不是一挥而就的,我优化了 3 遍发生的以上代码。读者可按照本身的代码和我写的代码举办比拟。

进步要领

假如你做了 3 年+的措施员,我信托像如上这样的需求,你很轻松就能完成,可是假如你想做一个会写 Java 的措施员,就好好的思索和重构代码吧。

写代码就犹如写字一样,同样的字,各人城市写,可是写出来是否悦目就不必然了。假如想把措施写好,就要不绝的思索和重构,敢于实行,敢于创新,不要因循保守,必然要做一个优越的 Java 措施员。

进步代码程度最好的要领就是有层次的重构!(留意:是有层次的重构)

计划模式

计划模式就是器材,而不是提现你是否是高程度措施员的一个指标。

我常常会看到某一个措施员欢快的大叫,哪个措施哪个点我用到了计划模式,写的何等何等优越,何等何等好。我细心去翻阅的时辰,却发明有许多是太过计划的。

营业驱动技能 or 技能驱动营业

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读