这是最后我们对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. 【Leetcode】 - Divide Two Integers 位运算实现整数除法

    实现两个整数的除法,不许用乘法.除法和求模.题目被贴上了BinarySearch,但我没理解为什么会和BinarySearch有关系.我想的方法也和BS一点关系都没有. 很早以前我就猜想,整数的乘法是 ...

  2. 2140: 稳定婚姻 - BZOJ

    Description 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的姗姗和男友谈恋爱半年就 ...

  3. div+css的前端工程师的价值体现在哪些方面?

    个人认为前端工程师正慢慢演变为产品工程师.wap app, 响应性UI等以html5技术为基础的开发将成为前端工程师的主要工作内容,解决产品跨平台跨设备的实现问题.Javascript, HTML, ...

  4. 使用Div+CSS布局设计网站的优点

    网页设计业界越来越关注DIV+CSS的标准化设计,大到各大门户网站,小到不计其数的个人网站,在Div+CSS标准化的影响下,网页设计人员已经把这一要求作为行业标准.那么什么是Div+CSS标准?Div ...

  5. 【POJ】【1741】/【BZOJ】【1468】Tree

    点分治 怎么又一道叫Tree的题目……真是醉了. 本题为漆子超论文<分治算法在树的路径问题中的应用>例一 题解 : http://blog.csdn.net/sdj222555/artic ...

  6. 指针强转和void*

    C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的 ...

  7. [设计模式] 7 适配器模式 adapter

    在 Adapter 模式的结构图中可以看到,类模式的 Adapter 采用继承的方式复用 Adaptee的接口,而在对象模式的 Adapter 中我们则采用组合的方式实现 Adaptee 的复用 类模 ...

  8. [STL]单词转换

    如果单词转换文件的内容是: 'em         themcuz         becausegratz      grateful i             Inah        nopos ...

  9. SQL 中的游标实例

    --声明变量 declare @IMType varchar(10),@IMResourceID varchar(10) --定义游标 declare information_cursor curso ...

  10. gulp下livereload和webserver实现本地服务器下文件自动刷新

    一.前言 node从v0.10.26升级(为了匹配autoprefixer)到v5.3.0后出现了gulp插件兼容问题,在nodejs下各种新的插件出现问题,需要重新配置.livereload实现ch ...