同步发表于:http://avenwu.net/2015/12/21/keep_optimize_your_code/android
话说“夜路走多了,总会碰到鬼”
有一段时间没作笔记了,本文聊一聊工程开发中的后续工做;api
笔者从事移动开发工做第四个年头,前先后后也接触了很多项目,在项目开发迭代的大背景下,“代码腐化“问题随着时间推移会最终显现出来;
这里不说谈为何会出现”腐化“问题,由于缘由真的不少,并且每每不可预知;架构
面对上述问题,持续优化是一种吃力可是有效的解决方案,惋惜没有多少团队真正实施下来; 从项目自己而言,其目标是用户体验,工程的优化是技术内在,每每不具有立竿见影的体验; 开发的工程师若是没有绝对的动力,谁愿意贸然改动本就”正常“运行的代码,改坏了怎么整?
因此所说没点闲工夫和勇气,动刀子的事是不容易的;app
可是不少时候其实你是最后一道防线,若是你不作,就没有人作;
笔者3月份入职极客学院,打一波广告,不喜勿喷:框架
极客学院IT在线教育平台-中国最大的IT职业在线教育平台
公司Leader也开明,所以Android端已经被我"折腾"好一阵, 这也是我继续在公司效力的动力之一”有舞台施展“;
经历了多轮调整和优化,目前项目的架构和开发整体朝着更完善的方向前进;post
极客学院的android客户端近期即将上线的4.0版本,由笔者主导开发的版本数也++;单元测试
笔者优化代码通常在是版本迭代之间进行,一来不收时间约束,效果好就集成至仓库,很差的话就直接废弃;而来优化这种活可能会影响业务,因此在闲时作的优化能够在下一版测试当中被充分考验;测试
在新版上线的空隙间正好又是一次练兵优化的时机,这次目标是优化接口请求的业务成调用;优化
声名在外的”Retrofit“之因此广受好评,其简洁的调用,使得快速开发成为可能功不可没;极客学院内部的就业版客户端用的正是这套api框架;.net
主站极客学院app使用的时Apache的http,功能知足需求,所以一直用到如今,这次的优化主要是为了封装调用层,让业务逻辑也想Retrofit同样能够经过很是简单的注解就实现接口定义;
先来看看根据需求定制的几个注解类,包含了get,post和cache等:
接口定义的时候,也很简单:
接口调用,包括单元测试和业务调用:
基本上写一个api请求就是这样简单几步就搞定,和retrofit用起来差很少;
本身写的代码,含着泪也要优化下去😄