实现Android应用快速高质量开发整体方案

一个项目的成败不仅仅是由产品、运营决定的,技术及项目管理方面也是极为 重要的一个指标。使用的技术是否恰当,项目的管理是否有助于提高整体开发效率以及质量……这些都是我们需要关注的。本系列文章将在多年的项目经验基础上,总结、展示一套完整的快速、高质量开发方案。

概述

让我们先来思考一个问题:一套完整的快速高质量开发方案究竟需要包含哪些特征?

  • 源码管理
  • 合理运用MVC/MVP/MVVM/MVPVM框架
  • 单元测试
  • 自动化

本文将简要说明这些特征在项目实施过程中的重要性,并在后续的文章中详细介绍如何设计并满足这些特征。

源码管理

在一个APP项目中,对于开发者而言,触及最多的毫无疑问是源码,每天我们都要敲出数百数千行代码,因此如何对这些代码进行可持续的管理是我们首先要面对的问题。

从整个开发行业来说,目前源码管理都是git或Subversion,通常企业会根据项目选用最适合的一套源码管理系统。在网上也有许多文章在比较不同的源码管理系统之间的差别及其适用情况,在此不再赘述。

对于APP应用,由于其代码规模以及快速迭代的特征,通常来说,使用Git是相对最为合适的。故而,我将详细介绍在git环境下的源码最佳实践——Git-Flow。

代码框架

当确定了源码管理流程之后,开发者将开始根据需求编写产品代码。此时,将首先面临一个至关重要的问题,代码框架该如何设计?一个设计合理、可用的框架在产品的迭代开发中将会使我们事半功倍,再复杂的业务在合理的切分之后都能快速实现。

在后续的文章中将基于Kotlin+Retrofit+RxJava+ARouter+Dagger构建一套MVPVM架构的框架,并展示它的组件化运用。

单元测试

当代码编写完毕之后,该开始我们的产品测试了。在团队开发APP时,我们大可以忽视代码层面的白盒测试,将测试的重任完全交给测试团队,让他们进行人工测试。然而,这真的合适吗?对于一套整体的快速开发方案来说,显然是否定的。

试想一种场景:在一个很简单的需求开发时,我们需要对一个已经被多处引用的方案进行扩展修改,最完美的情况将是它在不对其他需求造成影响的情况下实现这个简单的需求。对于“自信”的程序员来说,它是肯定能满足的。但是现实是残酷的,程序员的“自信”往往都不可信,有太多的经验、教训告诉我们,再优秀的程序员都无法百分之百保证这一点。

因此,我们需要使用技术手段来帮助我们尽可能保证做到不对其他页面产生影响。这时候,单元测试就该闪亮登场了。

虽然在实际工作中,可能80%(随便说的一个数)以上的项目、团队都完全没有使用单元测试,但是不可否认的是,它是我们保证质量的利器。

自动化

最后,在整个项目开发的过程中,我们会发现有太多的重复的工作需要我们手动去执行:

  • 代码写好了,提交到git上时,需要跑一遍单元测试来确定能够通过所有的测试用例
  • 定期不定期的需要执行一些质量保障脚本,来确保代码处于最佳状态
  • 一个迭代版本开发完毕,需要合并到master分支并出Release包
  • 出于市场推广、运用需要,需要对每个应用市场出带有特定渠道号的包
  • 出于裁减Apk包体积的考虑,可能还需要使用微信的AndResguard进行资源压缩
  • 出于代码安全考虑,或360应用市场强制性要求,还需要使用360提供的加固保进行应用加固,由于加固保的限制,加固完了还需要重新进行签名并打入渠道号

看到这么多需要手动执行的事务,我的心里是悲伤的。有些事务执行频率太高了,嫌麻烦;有些事务太繁琐,手动执行的时候,一个不小心就出错,导致从头开始;还有些……

因此,善用自动化工具及脚本将会是我们的救星,在工具及脚本的帮助下,这些头大的事务都将变成一句命令的事情;也许只是1个按钮点击的事情。这将彻底解放我们,让我们可以把时间与经历放在编码这一核心工作上。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容