原本打算写glide的一些图片使用方法,但在工作上却遇到了大坑。
我本以为我看别人的代码,总能学习到一些新的东西,但这次遇到的代码却只有无尽的坑。。
第一坑:变量名不一
在XML文件中的名字各式各样,使用一般的默认id如textview1 2 3,imageview1 2 3就算了,还有像上图的xxx01的id。
更奇葩的是在代码中却取了xxx00的名字,这是啥逻辑?
第二坑:BaseActivity类混乱
在项目中,我们通常会重写一个BaseActivity类,用于管理大部分的Activity,这样方便写一些常用的方法,或者控制页面进出的动画。
一般会用到Activity、FragmentActivity、Fragment这三个常用的基类,而我的项目中使用了仿苹果的从左往右侧滑关闭页面Swipe,导致这位同事把NoSwipe全部重写了一遍,还多了Base2Activity和BaseNormlActivity,让我在修改进出动画和一些finish事件时异常艰难。
更惨的是他还使用了SystemStatusManager去管理沉浸式状态栏,导致在各个安卓版的页面样式都不一样,如果要修改的一百多个页面都可能受影响,我想了想,还是算了吧
第三坑:工具类名混乱
各种类都是以123结尾,并且里面也没有备注用于什么地方。
我仔细看了一下MyDialog、MyDialog2、MyDialog3中有啥区别,发现根本没区别!那你写这个的意义是什么!
第四坑:乱定义静态变量
看到这个我人是崩溃的。
这都写的啥啊,为何要定义一个静态的成员变量List,然后去重写getset方法?为何set后面跟了两个大写的DD?为何都是静态的了还要再写get方法?
仔细阅读后发现不止写了这一个,一共写了4个这样的List,其目的为了在一个图片选择器PickImageAdapter中去先去get他们判断是否为空,然后去修改List里的图片,在设置到各自的页面里。
而这个PickImageAdapter本身就是一个封装好的,通用的图片选择器,类里本身就有自己的List去控制图片的展示,无奈之下我只好重写了4个页面。。
第五坑:代码排版乱缩进
从图上就能看到,各种奇怪的缩进,这还只是一部分,有接近100多个页面和xml文件,几乎全是这样的乱七八糟缩进。
大哥你这样看不别扭吗?不难受吗?不奇怪吗?按一下自动整理代码的缩进快捷键不会吗?快捷键不知道不会百度吗?不会百度你还写啥代码啊
第六坑:方法名混乱
依然是在上传图片的ImageLoader方法中,胡乱添加了一堆123、134、14的方法。怎么有的23都没了,这命名方法我也真醉了
一怒之下我也是全删了,只剩2个,一个显示默认头像,一个显示默认图片。
第七坑:无脑复制代码
在管理接口的Api类中,每个接口我都能看到这2行。这明显是复制上一方法留下无用代码,却也毫无保留的每个接口都留下来了,写代码敢不敢带点脑子啊??我就不说在其他页面动不动就一两百行的注释掉的无用代码了,真是让人崩溃。
第八坑:严重的多层嵌套代码
看到没,在diglog的点击事件,已经整整嵌套了9层,9层啊!
难道把这个调用接口的Api方法写出来很难吗?
第十坑:命名混乱
tv_pinpai 恩恩 是“品牌”;tv_xinghao 恩恩 是“型号”;tv_choosetype 恩?恩?恩? 是“选择类型”?;tv_remind 恩?是 “提示”?
不会英语不要紧,用有道翻译啊,嫌麻烦那就都用拼音来命名啊,不要动不动来2个英语2个拼音,甚至来个中英混搭的getshangpinList,半洋半土还不带驼峰的命名,这压根就是随意而来的吧?
以上这些坑,大大小小全都分布在我同事给我的代码之中,并且基本没有注解,一些接口的字段参数,我都要去问一遍后台或者ios的人才能知道是干什么的。
每天看着这*一样的代码,人都要变得暴躁起来,因此让我在自己的项目中加入了大量的注解,好让后面接手的人不那么痛苦,即使不会排版,也要经常按按自动缩进的快捷键。
然而这个项目的bug还没改完,我还要继续看下去,希望下一个接手别人项目不要再有这么多坑了,阿门