锁定老帖子 主题:让人头疼的新手
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-13
引用 if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办? 如果a_binary.substring(index,index+1)为null怎么办? 代码里面类似的缺陷很多 |
|
返回顶楼 | |
发表时间:2008-05-13
谢谢LS各位的回复!我需要说明一下,我发贴的目的是想提醒一下临近毕业的朋友,不是公司不需要应届毕业生,应届毕业生有优点也有缺点。但是你进入公司以后,自己的发展和进步还是要靠自己的努力。工作了半年还能写出这样令人佩服的代码,那就只能是你自己的问题了,当然也有我自己的责任,毕竟是我带他们。
有则改之,无则加勉,别无他意,仅此而已! |
|
返回顶楼 | |
发表时间:2008-05-13
colin4k 写道 英文注释是为了确保不会因为encode等原因导致乱码
这种说法就好比是“为了防止脚气就把腿锯掉” |
|
返回顶楼 | |
发表时间:2008-05-13
假如在我们公司用英语注释,那是一种很不靠谱的行为。。。
首先,本身的英语水平就不高,起个变量名还得左思右想。用英语注释就更加辞不达意了,还得把大部分精力花在注释上。 其次,注释的人水平很高,但是读注释的人水平很次,那时候注释反而成为了一种障碍。 最后,你还嫌英语信息不够多是不? |
|
返回顶楼 | |
发表时间:2008-05-13
恩,这代码写的有点太....
|
|
返回顶楼 | |
发表时间:2008-05-13
我感觉有点像刻意写黑色笑话的...
逻辑非常混乱..不是一般人能这么琢磨出来的 |
|
返回顶楼 | |
发表时间:2008-05-13
colin4k 写道 引用 if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办? 如果a_binary.substring(index,index+1)为null怎么办? 代码里面类似的缺陷很多 谢谢你能仔细看我的代码及你的意见. 但是a_binary为null是不可能的. int i=a|256; String is=Integer.toString(i, 2); a是一个byte,a|256,所以is的长度肯定是9 又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null. 如果逻辑有错,希望各位纠正下.. 如果还是觉得可能为null,那就举出反例吧. |
|
返回顶楼 | |
发表时间:2008-05-13
mylifestyle1225 写道 colin4k 写道 引用 if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办? 如果a_binary.substring(index,index+1)为null怎么办? 代码里面类似的缺陷很多 谢谢你能仔细看我的代码及你的意见. 但是a_binary为null是不可能的. int i=a|256; String is=Integer.toString(i, 2); a是一个byte,a|256,所以is的长度肯定是9 又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null. 如果逻辑有错,希望各位纠正下.. 如果还是觉得可能为null,那就举出反例吧. 一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的, 如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性 这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。 |
|
返回顶楼 | |
发表时间:2008-05-13
我最近在读类似的代码,读完了要理解流程,然后参与到开发中。可怜的我。。
|
|
返回顶楼 | |
发表时间:2008-05-13
colin4k 写道 mylifestyle1225 写道 colin4k 写道 引用 if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办? 如果a_binary.substring(index,index+1)为null怎么办? 代码里面类似的缺陷很多 谢谢你能仔细看我的代码及你的意见. 但是a_binary为null是不可能的. int i=a|256; String is=Integer.toString(i, 2); a是一个byte,a|256,所以is的长度肯定是9 又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null. 如果逻辑有错,希望各位纠正下.. 如果还是觉得可能为null,那就举出反例吧. 一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的, 如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性 这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。 团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用?? 你在接口里有N个方法,接口的实现类里也只能是N个方法吗?难道不会抽象出来几个方法供该实现类自己使用? 注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里. 我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,于是我抽象出来了这个方法,这就是这个方法的由来. 参数int index代表byte a中第index个bit,自然取(x,x+7)了,一个byte还能有几个bit啊. 我考虑问题不会考虑得那么片.虽然只是个新人,但肯定会把所有的可能都考虑进去.这个是习惯. |
|
返回顶楼 | |