2019独角兽企业重金招聘Python工程师标准>>>

android studio + nexus(中央仓库 远程仓库) + Jenkins(持续集成)。

总结了一些以前经验和大家分享,有不足之处还往多多指教。

也许这些敏捷部署的东西都是基于android来弄的,但是思想差不多的。

1. nexus 中央仓库(远程仓库)

如果一个团队,团队小组成员没有 库 的思维,这个必须搭建起来,哪怕浪费一点时间,需要长久灌输此方针。

为何费力搭建 Nexus ?

  • 解决了 应用 多模块构建,编译等问题。
  • 有效的对库进行版本管理以及控制。
  • 为 敏捷开发,快速开发打下扎实基础。

我 将 我们小组 部分公用的模块抽取出来 形成 基础库控件库组件库,然后 android 项目只需要在 android studio 的 build.gradle 引用 远程仓库的库.

库的建立,依赖方便了,也提高了复用率,出问题,只需要修改一处地方。

当然 库的事情是持续不断维护的。

引用方式:(compile 'com.公司名称.commom:commom:1.0.3')

在 build.gradle 加入


repositories {... ...maven {url `http://ip地址:8081/nexus/content/repositories/仓库名称'}
}dependencies {... ...compile 'com.公司名称.api:api:1.0.2'compile 'com.公司名称.settings:systempresenter:1.0.7'
}

这些库是如何通过 android studio 上传到中央仓库的?

apply plugin: 'maven'//上传基础库的 aar到中央仓库.
def MAVEN_LOCAL_PATH = 'http://IP地址:8081/nexus/content/repositories/XgimiApi'
def ARTIFACT_ID = 'commom' // 一般为别名
def VERSION_NAME = '1.0.3' // 版本号
def GROUP_ID = 'com.公司名称.commom' // 统一使用包名
def ACCOUNT = 'admin'
def PASSWORD = 'admin****'
//脚本: 将Lib打成aar包上传至maven私有库
uploadArchives {repositories {mavenDeployer {repository(url: MAVEN_LOCAL_PATH) {authentication(userName: ACCOUNT, password: PASSWORD)} pom.project {groupId GROUP_IDartifactId ARTIFACT_IDversion VERSION_NAMEpackaging 'aar'}}}
}

2. Jenkins

由于开发人员水平,经验不同,编写的代码习惯不一致,也是导致代码质量较差,难于维护的原因之一。接手小组第一步,我就统一了 android的代码规范(当然IOS也不能放过),包括android开发环境统一,并且制定与整理了开发小组的 入职,项目分工,等等文档。

代码评审 暂时使用了 人肉 code review,长期应该考虑其它方式,比如 Gerrit... ...

jenkins 是持续集成工具,用于干苦活累活,重复性的工作:

  • 钩子调用执行工作,比如git上传了新代码 等等.
  • 持续的软件版本发布/测试项目.

为何做持续集成?

  • 对代码库随时进行集成,代码集成越早,缺陷被发现越早,修复缺陷的成本越低,大大降低时和成本(开发成本,测试成本等等)。(无论是多人协作还是个人,好处不用多说)
  • 将开发过程重复工作自动化,自动进行单元测试和新版本发布等等。

单元测试的好处在于,你的代码 整体的分层架构 需要做好。(后续会用一个篇章讲讲android的单元测试)

持续集成的自动化不能完成保证质量,还得靠开发人员的代码质量,自测,压力测试等等。

题外话:敏捷开发之原则 五大原则 SRP OCP LSP DIP ISP

3. 文档

敏捷不需要文档,有文档就不叫敏捷,滚一别去。后续来的人如何接手?介于移动开发的开发人员的时间,文档一般会化简,比如只需要列出整体的界面模块,概要,接口等等就好,一般只需要1~2天就能写完。

4. git搭建

可以使用开源中国的,也可以自己使用gitlab搭建,网上也有其它的,文章多的很。

【参考资料】:

敏捷开发中的持续集成(CI+TDD)

Android敏捷开发指南

下一篇:移动端敏捷开发之实践

转载于:https://my.oschina.net/hailongqiu/blog/1583745

移动端敏捷开发之环境部署相关推荐

  1. 一、【用django2.0来开发】 环境部署和初始化项目

    发现网上没有什么比较好的django系列的教程, 所以打算写一整套教程来教会大家如何使用django2.0 整个教程都会围绕一个开发一个项目来完成, 这一篇主要就是讲清楚整个环境以及初始化下项目, 以 ...

  2. Python测试开发django2.环境部署项目创建

    Django是由Python编写的Web框架,依赖Python环境,所以需要提前安装好Python环境.建议安装最新版本的Python3,Python 下载地址:https://www.python. ...

  3. 传感网应用开发(环境部署)

    文章目录 前言 一.传感网开发需要什么开发工具? 二.软件安装步骤 1.串口助手 2.开发软件 总结 前言 传感网的定义为随机分布的集成有传感器.数据处理单元和通信单元的微小节点,通过自组织的方式构成 ...

  4. 昇腾Atlas200DK学习笔记(一)——环境部署

    1 昇腾AI解决方案介绍 视频:课程地址 1.1 华为全栈全场景 1.2 Ascend系列处理器 310处理器用在 推理场景,910处理器用在 训练场景 1.3 Atlas系列产品 2 环境部署(At ...

  5. Atlas 200 DK开发者套件环境部署(1.0.9.alpha)极简版

    Atlas 200 DK开发者套件环境部署(1.0.9.alpha)极简版 前言 Atlas 200 DK开发者套件介绍 环境部署介绍 资源要求 开发环境部署 安装Docker 获取镜像(两种方法任选 ...

  6. 敏捷开发Scrum及其适用场景

    敏捷和线性的本质区别 如上文所说,个人认为冲探索轻预测是敏捷和线性开发方式的本质区别.如下所示: 敏捷开发:关照不确定性→探索式,注重应变→价值中心 线性开发:关照确定性→遵守规程,注重良好设计→过程 ...

  7. 敏捷开发,持续集成/交付/部署, DevOps总结

    文章目录 敏捷开发入门教程 一.迭代开发 二.增量开发 三.敏捷开发的好处 3.1 早期交付 3.2 降低风险 四.如何进行每一次迭代 五.敏捷开发的价值观 六.十二条原则 七.参考链接 持续集成/交 ...

  8. 使用 Nocalhost 与 KubeVela 端云联调,一键完成多集群混合云环境部署

    作者:雾雾.玉易才(KubeVela.Nocalhost 团队) 在云原生快速发展的当下,如何让云的技术赋能业务开发?在上线应用时,如何让云的开发者在现代化的多集群.混合云环境中便捷地进行应用的开发和 ...

  9. 20分钟完成Mac上的 LNMP 环境部署,优雅·高效开发(Docker方式)

    一.前言 对于很多开发者来说,突然转到在 mac 系统开发,可能会非常难受,主要有以下几个原因 1.mac 上安装软件程序坑多,比如安装 PHP.Nginx,会存在很多使用 linux 或 windo ...

最新文章

  1. 让Squid 显示本地时间
  2. Jtest 使用教程之代码标准违例修正与标准规则说明书访问
  3. Python学习日志(5)- Numpy
  4. MapTask的工作机制
  5. NIO网络编程实战之简单多人聊天室
  6. leetcode 406. Queue Reconstruction by Height | 406. 根据身高重建队列(Java)
  7. JavaScript入门(part6)--运算符
  8. documentbodyscrollTop的值总为零的解决办法
  9. 如何正确的检测对象类型?
  10. 把一个数组的值赋给另一个数组(VB.NET)
  11. 从空城计到阿尔法狗,博弈论如何渗透我们的生活?
  12. QT TextEdit控件
  13. 全国计算机考试挂科要不要补考,为什么说大学不要挂科,大学期间挂科了怎么办?...
  14. dijkstra标号法表格_dijkstra算法模板及其用法
  15. Java代码通过Kerberos连接HDFS
  16. 简单的数据库关系表建立
  17. linux 下好用的音乐播放器介绍
  18. pboc规范详细解释
  19. 两个简单h5小页面布局-练习弹性盒模型
  20. 用python合并两个csv文件的实现方法,以及对表头和空行的处理

热门文章

  1. opencv边缘检测算子
  2. Gate Level Simulation (前仿及后仿总结)
  3. python关键词排名_Python百度seo排名查询,关键词排名查询优化版
  4. java script this_Javavscript基础——this指向
  5. AOC V24t最薄24英寸
  6. BigInteger类用于表示比long更大的整数类型
  7. 正阅读微信小说分销系统-视频教程-3.通知 图文教程
  8. 14考研西安交大915编程题
  9. 物资信息管理系统(springboot+bootstrap+jquery+ajax适合才学完springboot的童鞋,基本的增删改查)
  10. 计算机毕业设计javaweb的新闻信息网站(源码+系统+mysql数据库+Lw文档)