一般国庆到了的时候基本都是一部分开发到了收尾的时候,这个时候我觉的可以把自己在工作中犯过的错误总结一下,这样有助于回顾和总结自己的问题出在哪里,可以让自己比较直观的看到自己的错误。
一般新人的错误比较多,也比较杂。关键是会犯没什么营养价值的错误,但是我觉得正是因为会犯各种没什么价值但往往出了错就各种500错误的BUG或者一不注意就给项目运行带来很大影响的BUG。所以把这些问题记录下来,一方面可以看看自己犯了那些错误,对其有一个问题的分析。另一方面,提醒自己尽量不要再此出现同类问题,有一些BUG是时候可以成为过去时了。
1、非空校验
一般在传递值的过程当中,这种问题还是经常出现的,比如值本身可能存在null或者“”的情况下,我们需要给它添加默认值或者这个参数可能会调用方法时,我们需要进行非空判断。一般前者不会忘掉,因为这种情况出现的比较单一并且十分容易被检测出来,属于需求型的问题。后一种比较不容易判断,原因时因为在大多数情况下都是在有数据的请款下测试,不太容易暴露这种问题。但这种问题往往都是服务器直接500报错。特别时调用实体种引用的另一个实体时,一定要考虑另一个实体不存在而无法调用其下所有字段的问题。接着就是表单提交的非空校验。这其实就是把调用数据时可能出现的问题杜绝的最好方式,将可能出现问题或者需求必要的字段在一开始就进行校验,也是一种比较常见的手段。
2、sql语句
在java中,除了一般要和java语法打交道外,最多的就是和sql语句打交道。sql语句对程序员来说还是十分重要的,一般语句质量的好坏还是会十分直观的体现在数据读取的速度上。对于直观的把速度等于产品好坏的客户来说,500BUG意味着程序是坏的不能用的话,那么数据读取速度的快慢就意味着你是否在挑战他的耐心。我们需要将语句写的简洁有效,这一般是sql语句的基本要求。其次是用select查询数据还是用count查询条数这点请务必判断正确,请不要出现用select取出数据再用size()或者length()方法获得数据的愚蠢的做法。因为一旦正常上后你就会发现这种获得条数的方法真的很蠢。
3、方法的抽象
java是个面向对象的语言(比如not found object什么的真的是够了)。日常代码无非是在完成基本功能的情况下用封装、继承、以及多态等方式增加代码的可读性,运行速度以及代码扩展性。这玩意对新人程序原来说基本是做不到的,可能概念你很清楚,但一旦开发起来你可能就忘到九霄云外去了。就像打dota一样,个人能力体现在操作和意识上。放在java里就是你可能“操作”还可以,算是及格了,但“意识”是零分。一般对于这三点,最基础的认知就是能少写很多代码。确实,将一些代码的公共部分抽取复用,每复用一次就少些一次公共代码。而且可读性也很高,很容易就能看懂。其次如出现改动,修改起来也十分方便。无论是扩充还是修改,修改一下公共代码或者特定情况下复用公共代码就能解决很多问题。但毕竟是这种问题只能自己通过代码量来成长,所以在多写代码的同时,请务必动脑子写代码。
4、发布、需求等问题
这里这两个放在一起,一般这是会关联起来的问题,也是综合性比较高的问题。首先,代码是要根据需求写的(没事改需求什么的当我没说,产品经理什么的是用来裱的存在),认真读懂需求并加以分析,很大程度上能解决30%以上可能出现的BUG。但愿需求人员和你的语文老师都还健在,毕竟中华文化还是很深奥的。其次就是要注意线上下的问题,有任何对数据库的改动请务必当时就记下来。本人就一直在增加此类工作的数量,每每都是等到线上500才发现线上数据库字段没有调。刚开始是菜鸟的时候还是可以原谅的,毕竟考虑不周是菜鸟们的本职工作。但当你开始成为工作了1~2个月的菜鸟的时候就该记得这些问题了,特别是当这些BUG都交给你来修改的时候,基本你可以体会到坐电梯被熊孩子按了所有楼层的感觉,嗯,蛮操蛋的。线上环境是和线下有一定区别的,所以功能提交之后请务必想想提交之外的事有没有完成,提交不代表功能发布。
to be continued
开发记录————国庆问题集
最新推荐文章于 2024-03-27 19:32:35 发布