代码规范的提醒,备受煎熬的教训啊!

今年刚毕业,进了一家还算可以的公司,目前在轮岗阶段,可能很多公司都有类似的制度吧,开发人员进测试部门轮岗,产品相关进运营部门轮岗,为期三个月。这三个月主要进行一些技能的规范,过渡期嘛,说白了就是让大家都知道,干活都不容易,对自己的工作负责能给后续人员节省很多不必要的麻烦,要互相理解。 于是,我们的故事开始了…….. (干货在最后)


我是一个开发,说来巧,就算在测试部门轮岗,刚好我的任务是一个Android测试工具的开发,不依赖PC,独立的一个测试app,于是要进入吐槽主题了!!!

这个项目前面已经有一个人在做了,是比我早入职一个月,也就是早轮岗一个月的一个人,我现在接收这个工作,她的,好吧,是个女生。。。她最先开始的这个工作,主要负责了整体的框架和其中一个模块的开发,我嘞个去,我就气不打一出来!

做过Android的同学都知道,一般都是用Java写的,面向对象自然不用说,作为一个开发人员,想必应该知道一个最简单的原则,就是 松耦合 这个概念。什么意思呢,就是你负责的模块应该对系统整体的影响性做到最低,再简单点,删去你的模块,不影响系统其它模块的运行!

要怎么才能做到松耦合呢,说句实话,我也是刚毕业,对这方面的理论知道的不多,但是随便怎么,自己想想也能知道,尽量使用局部变量,减少与外界的数据交互,必要的数据交互应该根据面向对象的思想去进行操作,谁的事交给谁去干。也许我说的不是很正确,但是这样做至少能避免很多问题。

你猜猜这个姐们怎么滴了!!还记得当初我们写C程序吗?需要用一个变量的时候,我们把滚动条拉到最上面main函数开始的地方进行定义,名字可能起成i,j,k等等,谁让是新手呢!嘿,就是好用,我在哪都能对这些变量进行操作。估计当出遇到Android时这姐们是傻眼了,Java都能忍,人家有main函数啊,我还可以像C一样写,这Android都是什么activity呀什么的,这边我想用那边的一个变量怎么办!?

问题是有的,但是你挡不住人家解决问题的心啊!!!!!于是她想到一个牛逼的方法!!! S!T!A!T!I!C! 尼玛啊!!!static啊!!!!,咦,不是static哪都能用么,我这边怎么访问不到?哦~~~**P!U!B!L!I!C!** 此时此刻,我的内心其实已经是崩溃边缘了,可能你会问,不就是用了些公有静态量么。。。至于么。。。? 我要大声的喊出来:很至于!!! 要知道,哪里都能操作公有静态量,所以,什么时候对它在什么地方赋值是很难寻找的,尤其是在一个比较大的工程里,大海捞针啊!拿起来就能用,这里操作完那里继续用,感觉已经把代码玩弄于股长之中。

什么?我刚说了什么?什么时候在什么地方用。。。。这个什么时候真是玩死我了,这个姐们用了多线程操作。。。。恩!最简单的那种extends Thread,但是你在多线程里操作公有静态量是什么鬼!!!于是你真的不知道这个公有静态量会是什么值,这时我已对她肃然起敬了。。。。。

你以为故事完了? 并没有!!!

Android还有一个比较特殊的地方,大家肯定也知道,主线程不做耗时操作,子线程不更新UI,晤~ 这可让我们这个出神入化的姐们如何是好!

前方核能!!!

这是我之前从来没有试过的高科技,大篇幅得用Android广播机制更新UI。。。请收下我的膝盖和这口老血!!只要想更新UI,我不用handler,我也不用asy异步任务,runonUIthread是什么,我只认broadcast!,这个就牛逼了,简直千里传音啊!!注册一个广播,在子线程里发送广播,此时的逻辑….不必多言

今天还出了一档子事。。。。对于一个简单的ListView跳转,我死活没找到跳转逻辑在哪,读者可能说了,你傻啊,setonitemClick什么的啊,恩~没有这个注册,大不了在adapter里啊,恩~没在adapter里。。。。请收下我的项上人头!!我最后找到了,在诸多代码中找到了!这个姐姐写了一个自定义View,作为ListView单个Item的布局,在这个自定义View中,恩~并不是setonclick中写的!!!在touchevent中。。。。一个看似不起眼的onKeyUp!!!!里面写了一个像重要activity的跳转!!!就三行!!!!恩???什么?重要activity才三行,难道不需要给传递一些必要的数据吗???本来是需要的,但是!!!但是!!!但是!!!!我有静态全局变量啊,我只传递了一个下标,其他的,让那个activity用下标自己在公有静态量里去找吧!

这时,我的内心,好一群羊驼啊。

哦~多么痛的领悟~


我还是讲几句干活吧,总不能总吐槽。
静态量这个东西,不是系统架构级的编码,一定慎重使用啊!!就我知道的,就算是系统级的api,也不会把静态量设为public,一把情况我们编码static前都要跟一个final,静态常量。

尤其在Android中!这种错误的使用很容易导致静态量对无用对象的长期持有,导致内存泄露,或者,静态量被回收,恩?静态量怎么会被回收?确实会,一旦被回收,在你潇洒的使用时一不小心就Nullpionter了。

对于更新UI, 同学们呐!千万不要千里传音!我不知道是谁传的音,老老实实使用handler吧,异步任务也是很ok的,虽然道理都是handler。。。。

不说了,今天才周一,明天还要去给这姐们的代码烧香呢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值