这是最后我们对trackr系列的一部分。在过去的两的博文中,我们已经向您展示我们使用的工具和框架构建后端和前端。如果你错过了前面的帖子现在你可能会想读他们赶上来.

在本帖里,我们将强调整个开发过程并给出一些见解对我们使用的工具。

Development Process

我们使用Confluence来outline我们的需求,这是一个超屌的工具,广泛的规范,它还增加了协作功能。所以每个人都可以看到和评论的需求,直到一切都被定义。这也是一个好地方用来放线框图。

基于规范我们创建了多个更小的用户描述可以实现。在开发过程中我们当然想遵循敏捷方法。因为我们无法坚持一个固定的时间,我们决定使用看板而不是Scrum。在JIRA我们已经建立了一个敏捷看板来跟踪进展。在这里你可以看到我们的快照trackr看板在开发过程中。

未来我们使用Git作为SCM。我们唯一的中央仓库在GitHub。因为我们的团队仍然相当小的我们还没有想到一个非常复杂的工作流。我们遵循的原则有一个主分支,总是指向最新的生产版本,一个发展分支的特性和分支机构(可能是本地的)功能。

我们没有提交任何前端或后端依赖Git。虽然the trouble we had with Bower之后也许会是一个好主意来提交这些依赖关系。

除此之外,我不认为有太多要说的关于trackr和Git-一旦你精通它,它不会妨碍你的。

Continuous Integration

我们想要一个trackr持续集成方法。在一个功能是构建服务器合并到开发分支应该看看变化,运行所有测试,构建构件并将其部署到我们的测试系统。我们想尝试一些除了Jenkins,决定使用Jetbrains的 TeamCity。   

给TeamCity源代码后发现build.gradle文件并立即提出了一个Gradle 构建。我们只有设置目标和TeamCity很好去。因为我们使用了Gradle包装我们没有重新安装它。

对于前端来讲,GruntKarma 和 Bower是必要的但只是在构建配置的路径里。   

所有其他分支机构只是测试,不用build。

That is our build overview.

使用这个插件plugin for Karma 甚至可以把 Javascript tests报告给TeamCity.

部署是通过Gradle无缝地工作。

TeamCity也将很好地集成到IntelliJ IDEA。你可以订阅构建和得到通知。如果如构建失败,它甚至会发送异常堆栈轨迹IDE。理论上远程调试应该工作,但是我们不能让它跑了。此外,TeamCity和JIRA GitHub库连接。因此我们可以把问题提交的消息数量工具会处理他们和显示额外的信息。总之我们没有推动TeamCity其局限性,但它很好地为我们服务。

对于Javascript我们已经用JSHint涵盖一些代码质量检查,而对于java,我们决定 SonarQube。Java 8支持24.3.2014只是包含在这个星期,所以我们必须等到。只有一个插件,一般Java插件支持Java 8,PMD仍然不工作。可能最有趣的Java检查在这个插件,所以最终我们从Sonar没有得到太多。

由于我们的持续集成测试系统总是反映了最近的应用程序的状态。每个人都可以登录和经验为自己最近的特性。但是为了生成容易分享短电影,莫里茨开始创建小动画GIF文件使用QuickTimePlayer OSX记录屏幕的一部分,然后ffmpeg电影文件转换为GIF和ImageMagick转换为优化它的大小。webm(希望)使用以下命令在角落。我们分享视频imgur或嵌入到自己的网站使用HTML5视频标签。

ffmpeg + convert
ffmpeg -i movie.mov -r 15 movie.gif
convert movie.gif -layers Optimize movie_optimized.gif
# or webm, assuming the libvpx-720p preset is present
ffmpeg -i movie.mov -vpre libvpx-720p -b 2500k -an -f webm -y movie.webm

  

Database Migrations

我们使用Flyway来管理我们的数据库变更。通过使用flyway,我们可以提供所有相关的SQL脚本模式变化和应用这些Flyway照顾。这有助于保持不同的环境同步。Flyway脚本顺序枚举所以Flyway可以找出必须应用这些脚本的顺序。它还不断的引用最近应用脚本应用所以只有更新的脚本.

我们仍然做实际的手动部署。虽然对我们来说,这是容易出错的工作(比如有人忘记调用Flyway之前的部署)。因此我们正在一个工具来自动化部署到我们的环境。第一个版本已经存在,我们就将开放源码工具已经达到一个稳定状态。所以请继续关注!

想加入团队吗?我们正在招聘!

我们在不断地寻找新的小伙伴来加入我们的团队。如果到目前为止你喜欢你所读的,那么快到碗里来- job board or drop us a line!

该系列源码:

https://github.com/techdev-solutions/trackr-frontend

https://github.com/techdev-solutions/trackr-backend

trackr: An AngularJS app with a Java 8 backend – Part III的更多相关文章

  1. trackr: An AngularJS app with a Java 8 backend – Part II

    该系列文章来自techdev The Frontend 在本系列的第一部分我们已经描述RESTful端建立在Java 8和Spring.这一部分将介绍我们的第一个用 AngularJS建造的客户端应用 ...

  2. trackr: An AngularJS app with a Java 8 backend – Part I

    该系列文章来自techdev 我想分享在techdev公司开发的项目-trackr-的一些最新的见解.trackr是一个用来跟踪我们的工作时间,创建报告和管理请假的web应用程序.做这个程序的目的有两 ...

  3. trackr: An AngularJS app with a Java 8 backend – Part IV 实践篇

    REST API对于前后端或后端与后端之间通讯是一个好的接口,而单页应用Single Page Applications (SPA)非常流行. 我们依然以trackr为案例,这是一个跟踪工作时间 请假 ...

  4. 2.1:你的第一个AngularJS App

    本章,带你体验一个简单的开发流程,将一个静态的使用模拟数据的应用,变成具有AngularJS特性的动态web应用.在6-8章,作者将展示如何创建一个更复杂,更真实的AngularJS应用. 1.准备项 ...

  5. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

  6. ASP.NET Web API 2 external logins with Facebook and Google in AngularJS app

    转载:http://bitoftech.net/2014/08/11/asp-net-web-api-2-external-logins-social-logins-facebook-google-a ...

  7. IOS IAP APP内支付 Java服务端代码

    IOS IAP APP内支付 Java服务端代码   场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purcha ...

  8. APP接口自动化测试JAVA+TestNG(一)之框架环境搭建

    前言 好久不曾写点啥,去年换到新公司组测试团队与培养建设花费大量时间与精力,终于架构成型与稳定有时间可以打打酱油了.很久没有总结点啥,提笔想写的内容太多,先放APP接口自动化的内容吧,这个估计大家比较 ...

  9. 微信APP支付(Java后台生成签名具体步骤)

    public class PayCommonUtil { //定义签名,微信根据参数字段的ASCII码值进行排序 加密签名,故使用SortMap进行参数排序 public static String ...

随机推荐

  1. c++类中的静态成员

    静态成员和非静态成员的区别: 类静态成员用static修饰,类的静态成员属于类本身,而不属于类的某个具体对象,静态成员被类的所有对象共享,因此某个对象对静态成员(数据成员)的修改对其对象是可见的.而类 ...

  2. NodeJS下访问SQL Server

    1.下载node-sqlserver (1)msnodesql (msnodesql-0.2.1-v0.8-x64.msi)下载地址:下载  自行选择与自己系统相符的版本,点击安装. (2)msnod ...

  3. "Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b7

    1.错误背景 系统安装了.net framework4.0.4.5,项目先使用VS2013(4.5)开发,后来又重新用VS2010开发(4.0),运行时出现这个错误 2.错误原因 In .Net 4. ...

  4. input点击删除默认value,以及只能输入数字,删除,tab

    /*inputhastip类绑定事件*/ $('.inputhastip').css("color", "#999"); $('.inputhastip').b ...

  5. The 2014 ACM-ICPC Asia Mudanjiang Regional First Round

    The Himalayas http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5341 签到 #include<cstdio& ...

  6. [设计模式] 16 迭代器模式 Iterator Pattern

    在GOF的<设计模式:可复用面向对象软件的基础>一书中对迭代器模式是这样说的:提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示. 类图和实例: 迭代器模式由以下角 ...

  7. java socket编程基础(转)

    一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  8. java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@450b2f48 异常处理

    晕死的错误,改了半天也没想到是这样的原因,基础正要呀... 先看一下警告信息: 07-07 08:32:19.540: WARN/WindowManager(74): Failed looking u ...

  9. Unity3D 相关项目代码

    一.Application.PresistentDataPath 注意最后面是没有/的 public static string PresistentDataPathForEditor = " ...

  10. lintcode : 二叉树的序列化和反序列化

    题目 二叉树的序列化和反序列化 设计一个算法,并编写代码来序列化和反序列化二叉树.将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”. 如何反序列化或序列化二叉树是没有限制 ...