trackr: An AngularJS app with a Java 8 backend – Part III
这是最后我们对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包装我们没有重新安装它。
对于前端来讲,Grunt, Karma 和 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的更多相关文章
- trackr: An AngularJS app with a Java 8 backend – Part II
		
该系列文章来自techdev The Frontend 在本系列的第一部分我们已经描述RESTful端建立在Java 8和Spring.这一部分将介绍我们的第一个用 AngularJS建造的客户端应用 ...
 - trackr: An AngularJS app with a Java 8 backend – Part I
		
该系列文章来自techdev 我想分享在techdev公司开发的项目-trackr-的一些最新的见解.trackr是一个用来跟踪我们的工作时间,创建报告和管理请假的web应用程序.做这个程序的目的有两 ...
 - trackr: An AngularJS app with a Java 8 backend – Part IV 实践篇
		
REST API对于前后端或后端与后端之间通讯是一个好的接口,而单页应用Single Page Applications (SPA)非常流行. 我们依然以trackr为案例,这是一个跟踪工作时间 请假 ...
 - 2.1:你的第一个AngularJS App
		
本章,带你体验一个简单的开发流程,将一个静态的使用模拟数据的应用,变成具有AngularJS特性的动态web应用.在6-8章,作者将展示如何创建一个更复杂,更真实的AngularJS应用. 1.准备项 ...
 - 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. ...
 - 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 ...
 - IOS IAP APP内支付 Java服务端代码
		
IOS IAP APP内支付 Java服务端代码 场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purcha ...
 - APP接口自动化测试JAVA+TestNG(一)之框架环境搭建
		
前言 好久不曾写点啥,去年换到新公司组测试团队与培养建设花费大量时间与精力,终于架构成型与稳定有时间可以打打酱油了.很久没有总结点啥,提笔想写的内容太多,先放APP接口自动化的内容吧,这个估计大家比较 ...
 - 微信APP支付(Java后台生成签名具体步骤)
		
public class PayCommonUtil { //定义签名,微信根据参数字段的ASCII码值进行排序 加密签名,故使用SortMap进行参数排序 public static String ...
 
随机推荐
- 使用OPTIMIZE TABLE命令来整理表碎片实践
			
操作环境:ubuntu 14.10 mysql 5.6.25 对含有BLOB或TEXT字段的表,若经常做修改或删除类的操作,需要定期执行OPTIMIZE TABLE命令来整理碎片. 1.creat ...
 - Eclipse启动的时候窗口一闪就关的解决办法(转)
			
有时候会碰到如题这种问题,从网上查知解决办法,非常管用 为eclipse.exe创建一个快捷方式,然后快捷方式上右键-属性,在目标栏填入 E:\eclipse\eclipse.exe -vm &quo ...
 - 《C++Primer》复习——with C++11 [2]
			
1.数组引用形参,C++允许将变量定义成数组的引用,给予同样的道理,形参也可以是数组的引用,此时引用形参绑定到对应的实参上,也就是绑定到数组上 ]) { for (auto elem : arr) c ...
 - java笔记之类和对象
			
现在编程的思想分成了两大阵营,面向过程和面向对象.现在谈谈啥是面向对象. 作为一只单身狗,谈“对象”还是很伤心很伤心的(:′⌒`)...... 先看看百度怎么说? 好吧,百度说的太抽象,我换个简单的说 ...
 - asp.net  asp:TextBox控件绑定值后,获取不到新值问题解决方法
			
把Page_Load里绑定的代码放在 if(!IsPostBack){}里面后,即可获取到更新的值. 意思为第一次加载执行.
 - JS利用正则配合replace替换指定字符
			
替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...
 - 使用静态变量的方法求n!
			
下面的程序可以输出1-5的阶乘值,如果需要把5改为n,则可求出1-n的阶乘值. void main() { setvbuf(stdout,NULL,_IONBF,); int fac(int n); ...
 - httpClient无证书访问
			
1.当不需要使用任何证书访问https网页时,只需配置信任任何证书 HttpClient http = new HttpClient(); String url = "https://pay ...
 - maven3常用命令、java项目搭建、web项目搭建详细图解
			
http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常用命令-- ...
 - POJ 2771 Guardian of Decency(求最大点独立集)
			
该题反过来想:将所有可能发生恋爱关系的男女配对,那么可以带出去的人数应该等于这个二分图的最大独立集 先要做一下预处理,把不符合要求的双方先求出来, company[i][j]表示i.j四个标准都不符合 ...