码代码中小技巧...

合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。-----------送给在码农之路上搬砖的自己

总结自己遇见的各种错误,使用的开发中小坑及小技术。

1. equal()方法使用: 使用equal()方法。A.equal(B)时,最好保证A不为空,不然容易造成NPE,其中B可以为空。 
2. Long对象不能直接使用==进行比较。需要将其转换成long基本数据类型才能使用==比较。其他的几个原始封装类型也是一样。不转换成基本数据类型只能使用equal()方法进行比较。 
3. excel导入批量操作不会很难,导入进行数据的判断通过使用基本的工具类就能解决,比较困难的地方是在将数据插入到数据库中,需要进行各种判断的时候比较麻烦。 
4. 每次使用json的时候注意序列化与反序列化的方式是否对的上。 
5. 不懂的bug自己超过10min还没有解决就需要问别人了,自己满满琢磨肯定能够解决,但是时间就发的比较多了,可能别人只需要提示一下,你就懂了。 
6. 需求分析不懂的地方超过30min还是没有方案的话,就需要跟组长讨论下了 
7. Map>中,经过json转换之后,Long类型的key可能会变成String类型。 
8. mybatis中需要查询最大的一行或者最小的一行的记录,只需要按照大小顺序查询然后limit 0,1就好。没有那么复杂的查询。 
9. 尽量将sql语句写成通用模式,不需要来一个需求写一条sql语句

10. @RequestParam(required = false) Long pitemId,required=false.表示 pitemid不存在实默认为null。pitemid可以不传也可以传,不传的时候不会饱参数不存在的错误,没有传参时默认为null。 
11. Object.getObject.getList()这样的写法容易造成NPE问题 
12. debug断点不可用的问题,造成断点调试不走断点的原因:1. 代码不是最新的 2. 更新了代码之后没有进行重新编译,itellij认为它不是改动的部分,没有重新编译。 解决方案: 1. 更新下最新代码,然后重新编译项目。 
13. Constants常量类中如果只是自己使用的话尽量在类里面当作一个常量,不会暴露给别人使用的枚举常量不要放在domain/common包下。domain/common包下的类是可以暴露出去被其他系统使用。 
14. Constants常量使用简单明了且常量必须是大写+下划线的格式 
15. javaDoc使用需要严格按照规则使用,不然就别用 
16. 代码流程中自己的主服务流程尽量在调用dubbo等服务之前。尤其是在事物中使用。 

17. dubbo服务咋使用map等集合框架时,尽量不要在数组中带有null的元素,在dubbo反序列化的时候容易抛出空指针异常,很难检测到。 

18. 以后每次涉及到接口的时候,更新接口需要考虑到接口导致状态改变 对C端B端的影响,以及用户(运营/客户)的体验。 
19. merge之后。commit之前的回退?使用 git merge --abort 

20. commit之后的回退? 缺点没有问题的时候使用 git reset --hard HEAD^ 

2018-3-5 
21. @RequestParam(default = false) Boolean isNew,default=false.表示 isNew没有时默认为false。isNew可以不传也可以传,不传的时候不会报参数不存在的错误,默认为default的值。 
22. List teamSpuIds = new ArrayList<>(); 
wxhcPitemDTOS.forEach(e -> teamSpuIds.add(e.getTeamSpuId())); 
java 1.8新引入 
23. instanceof 用法 用于 A instanceof B 用于检测A是否属于B类,或者A是否是B的派生类(子类) 。与getClass()有很大的不同 
24. @Deprecated 
private Long horizonDistributorId; 
@Deprecated的使用 
25. 写代码不能太心急了 
26. 高内聚低耦合的理解 
27. 乐观锁/被关锁 
28. 以后通过异步实现的功能,都需要进行数据可靠性校验。 
29. alibaba java coding guideline 
30. 每次详细设计之后 写代码的时候还是出现写的不流畅的情况,都是详细设计没有做好。这才做详细设计还是没有很好的把接口的具体流程写清楚,导致具体写接口的时候还是挡住一会儿。 
31. 同步方式/异步方式取舍。如果是用户体验感有需要的话,尽量使用异步方式,异步方式看对数据可靠性的要求进行数据校验;而在关联表中,用户体验没有要求但是对数据可靠性有要求的话,尽量使用同步方式。 
32. 将阿里的插件(alibaba java coding guideline)与自己的代码规范结合使用 简直完美。 
33. java开发的详细设计中的接口用例是啥?用户操作涉及到与后端数据交互的点击操作就是一个接口用例。 

34. 数据库表的数据海量的时候,考虑数据库的拆分,横向拆分/纵向拆分 

35. mybatis.xml文件中 一般表中的 创建时间 更新时间这两个字段 可以直接使用 now()方法生成 
gmt_modified=now() 
‘’‘ 

is_delete, 

        gmt_modified,

        gmt_create,

    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">

        <if test="name != null">
            #{name,jdbcType=VARCHAR},
        </if>
        <if test="platform != null">
            #{platform},
        </if>
        <if test="isDelete != null">
            #{isDelete,jdbcType=BIT},
        </if>

        now(),

        now(),

36. 方法拆分的缘由 
1. 是不是可以被多次服用 

2. 对于代码逻辑理解

37.本地dubbo服务启动慢的原因之一  获取本机的IP地址慢了导致初始化时间延长

com.alibaba.dubbo.config.ServiceConfig类获取host的代码卡住了5秒
if (NetUtils.isInvalidLocalHost(host)) {
anyhost = true;
try {
  host = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
logger.warn(e.getMessage(), e);
}
。。。

请检查vi /etc/hosts 文件127.0.0.0 对应的host名称是否正确。我本机是错误的(因为操作系统升级会改变host名称)
127.0.0.1 your_host_name。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 小白app.asar是一款提供在线编程教学的应用程序,它提供了丰富的编程学习资源,包括代码示例、API文档、视频教程等。用户可以通过小白app.asar来学习各种编程语言,如JavaScript、Python、Java等。 使用小白app.asar,用户首先需要注册一个账号,并选择自己要学习的编程语言。然后,用户可以通过阅读相关的文章和文档了解编程语言的基础知识,掌握语法和特性。此外,小白app.asar还提供了丰富的代码库和练手项目,用户可以通过练习来巩固所学知识。 小白app.asar还有一个重要的功能就是在线编程环境。用户可以在小白app.asar的编程环境中直接编写代码,进行调试和运行。在编写代码的过程中,如果遇到问题,用户可以随时通过应用程序提供的社区功能向其他用户或专家寻求帮助。此外,小白app.asar还可以生成可执行文件,让用户可以在本地电脑上使用编写的代码。 总之,小白app.asar是一款非常实用的编程学习工具,可以帮助用户快速掌握编程语言的核心技能,并提供了一个良好的学习和交流平台。 ### 回答2: 小白app.asar是一款非常流行的在线教育应用程序,它提供了许多学习资源和工具,帮助学生和教师在不同领域获取知识和技能。在使用小白app.asar之前,您需要了解一些基本的使用方法和技巧。 首先,您需要在手机或电脑上下载、安装小白app.asar应用程序。安装完成后,您可以打开应用程序并注册一个帐户。注册后,您可以选择您感兴趣的领域。小白app.asar包含很多不同的学习资源,如英语、历史、计算机技术等。 一旦您选择了您感兴趣的领域,您就可以开始学习了。小白app.asar提供了一系列的学习课程和教学视频。您可以根据自己的兴趣和需求来选择学习内容。 在学习过程中,您可以与其他学生和教师进行交流和互动。您可以在论坛上发表评论,与其他学生和教师讨论您学习的主题。您也可以在教学视频下留言,提出问题,寻求帮助和建议。 总之,小白app.asar是一款非常实用的在线教育应用程序,可以帮助您获取知识和技能。通过正确使用它,您将能够提高自己的学术成就和职业发展。 ### 回答3: 小白app.asar是一个开源的教育类应用程序,它可以让用户通过电脑、平板电脑或手机等设备学习编程技巧以提高自己的 IT 知识水平。在开始使用小白app.asar之前,用户需要下载并安装这个应用程序,然后打开应用程序输入自己的用户名和密码登录进入主界面。 在主界面上,用户可以选择自己想要学习的编程语言,例如 Python、C++、Java 等。然后,用户可以在小白app.asar的教学模块中选择自己想要学习的课程,例如基础语法、数据结构、算法等。该应用程序会提供代码示例、练习题目和视频教程等多种学习资源,让用户可以更加轻松地掌握编程技能。 小白app.asar具有基于云端的学习记录和学习数据分析功能,这样用户可以追踪自己的学习进度和成果。用户可以获得学习证书,学习成绩等数据,以便更好地展示自己的 IT 技能和应用能力。 总之,小白app.asar是一款非常有用的应用程序,它可以帮助用户提高 IT 知识水平,学习编程技能,掌握高技能。建议每个想要提高 IT 知识的人都能够下载并使用这个应用程序,让自己在 IT 领域更加优秀,并搭建起自己的职业发展平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值