关闭

【Android】识时务者为俊杰,轮子造还是不造

标签: Android开发经验
496人阅读 评论(0) 收藏 举报
分类:



在面向对象语言编程中我们都知道不要重复造轮子(也就是不要重复的去写一段代码),但我们知道么,在有些时候轮子造多了会有反效果,那么我们就来说说这些反效果吧。

1.最近刚到一家产品公司,我的工作就是维护优化修复现有app,并定时发布新的版本,最近头疼的问题是因为我刚来,对上一个人的代码不是很熟悉,经过几天的熟悉了解之后,发现上一个人写的代码很牛逼,让人一看就知道是大神写的代码,各种封装,各种重复利用,几个车轮子来回跑,好不容易理解的他的代码意图,然后我对他的认可就随之发生了改变,为什么呢?原因出现在一个功能上,在现有app中有发帖功能,同时在其他模块有发表公告的功能,从美工给的切图看来大体好像差不多,但是发帖需要选择分类,发表公告不许要选择分类,同时发帖有200字数限制,发表公告有2000字数限制,按钮的风格也不一样,但是我原本以为是两个界面,结果大吃一惊,竟然是一个类,这个类的代码已经写到了1156行,很膨胀的一个类


为什么会有这么多代码?

我们来分析一下,因为是两个功能模块公用的同一个类,导致每次都需要不断去判断类型从而进行不同的操作,代码臃肿,凌乱不堪,经过漫长的整理之后,我将这两个功能模块分开,这次会发现:


发表帖子界面有383行代码,发表公告界面有316行代码,发现没?383+316<1156

看似分开会多写很多代码,可是实际上节省的大量的if-else的类型判断从而会节约大量的时间,及工作量。

在android开发中什么样的东西可以通过只用一个轮子来解决呢?

1.功能相同,务必100%,统一封装,统一调用

2.如果你发现你每次都要写两行以上的代码,并且在同一个类中重复次数>2,那么封装一个方法即可

什么时候不能只用一个轮子来解决问题呢?

3.涉及到UI界面的一定要保证一个界面一个activity,保不准那天功能需求变动就悲催了


强烈建议开发者使用mvp或mvvm框架,这样代码耦合度低,且方便阅读


0
0
查看评论

一个对JAVA不熟悉导致实现造轮子的悲惨故事

近期有个项目是要实现一个简单的垂直搜索引擎,在做爬虫这一块时,要分析页面上所有的URL。但有些URL采用的是相对链接地址形式。 如:http://blog.csdn.net/lizhihaoweiwei/article/details/17839481这个页面上有个链接叫做 34342,则这个链接的...
  • lizhihaoweiwei
  • lizhihaoweiwei
  • 2014-03-05 17:17
  • 810

论要不要重复造轮子--新手当然要去造轮子

 在程序界有一句话很流行,不要重复造轮子。然而,这句话被滥用了。已经渐渐沦为程序员懒惰的借口。甚至因此而盲目指责那些勤奋的人。     大多数情况下初学者很难分清楚自己是不是在重复造轮子。当我头一次听到这句忠告的时候,我变得异常敏感,在做什么之前都要判断一下是否在造轮子。...
  • u012028953
  • u012028953
  • 2014-12-18 20:04
  • 501

基于C++ 造车的必备轮子 值得推荐的C/C++框架和库

值得推荐的C/C++框架和库
  • sinat_26143945
  • sinat_26143945
  • 2017-01-04 12:46
  • 605

值得推荐的C/C++框架和库—造轮子前先看看现有的轮子

http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.aspx 值得学习的C语言开源项目 - 1. Webbench  Webbench 是一个在linux下使用的非常简单的网站压测工具...
  • ztguang
  • ztguang
  • 2016-02-01 00:00
  • 1597

浅谈源码--“造轮子”与“拆轮子”之间的关系

写在前面本文只是个人在工作生活中的一些小感悟,诸位大神看过,如有同感,且会心一笑即可,很高兴您能有相同的感受。如有其它意见,您尽可将其附于评论。很高想能与您一起探讨。此致一些体会个人感觉,在实际的生产过程中,我们总是会遇到一些有时候需要用用到一个“轮子”的时候,有时候,我们只需要把别人造好的轮子拿过...
  • u014440417
  • u014440417
  • 2016-08-11 23:05
  • 715

性能测试——造数

在性能测试脚本准备阶段,脚本中的参数一般需要造数才能更好的模拟真实的环境。有些参数比如身份证号是固定长度的,如果造1万个身份证号,借助一些工具和技巧能更快的帮助我们,我常用的是Excel和UltraEdit工具。 例子:造2000个身份证号,360312199401010001—3603121994...
  • yiqin3399
  • yiqin3399
  • 2016-06-20 20:33
  • 1207

Oracle批量制造数据

利用PL/SQL developer declare   i integer; --定义变量   begin   i := 1;   loop   /* 插入数据 */   insert into HEALTH_FIL...
  • Venndian
  • Venndian
  • 2016-12-29 09:29
  • 657

轮子怎么造----KyLog

引用别人的话“我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!” KyLog应该是最简单的,最适合像我这种刚刚看别人源码的同学。项目github地址:https://github.com/kyosky110/Kylog (1)怎么打印出className,行数这些信息的? 上...
  • qq_30716173
  • qq_30716173
  • 2016-10-09 12:09
  • 218

Linux--shell脚本造大数据

#!/bin/bash msgid=4981 while read var1 do echo $msgid","$var1",tsst,content made by qhd for performance testing zzzzzzzzzzzzzzzzzz,...
  • lzqinfen
  • lzqinfen
  • 2014-07-31 18:39
  • 657

写一个存储过程,造一点测试数据

分分钟,将当前表数据成指数型增长。
  • u013572697
  • u013572697
  • 2016-07-28 17:14
  • 964
    个人资料
    • 访问:163237次
    • 积分:2002
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:0篇
    • 译文:0篇
    • 评论:22条
    其他
    最新评论