Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AngularJS Meetup 11/19/13 - AngularJS for MongoDB Continuous Integration

  • Login to see the comments

  • Be the first to like this

AngularJS Meetup 11/19/13 - AngularJS for MongoDB Continuous Integration

  1. 1. How AngularJS Made MCI Superheroic Valeri Karpov Kernel Tools Engineer, MongoDB www.thecodebarbarian.com github.com/vkarpov15 @code_barbarian
  2. 2. What is this talk about? •MongoDB Continuous Integration •How AngularJS saved us from BackboneJS hell •Special focus: Filters, the forgotten component *
  3. 3. MongoDB Continuous Integration Q: Who broke what? MongoDB has ~1400 E2E tests Multiply that by 20 different OS configurations And again by Enterprise / non-Enterprise And again by 10-30 commits / day *
  4. 4. MongoDB Continuous Integration 6-12 hours of test execution, too much of this: *
  5. 5. Why is AngularJS important for CI? •“Is something broken?” is easy •Somewhat harder: •“Who broke it?” •“Why is it broken?” •“What happened with previous runs?” •UI needs to make this easy, buildbot doesn’t *
  6. 6. Liberate Tuteme Ex BackboneJS •Waterfall - all results from last 5 builds •800 lines of Backbone, 1000 lines of server helpers •250 lines of AngularJS, 200 lines of server helpers *
  7. 7. What are filters and what do they do? •Rules for converting data to UI-specific format •One-way tie-in to two-way data-binding •Prevent you from drowning in easy tasks *
  8. 8. Ok, what’s a very basic filter? •Build state stored in lowercase •Build status badge should have first letter in caps •Don’t extend String.prototype, use a filter! *
  9. 9. Ok, what’s a very basic filter? •Build state stored in lowercase •Build status badge should have first letter in caps •Don’t extend String.prototype, use a filter! *
  10. 10. Fun with Filters - JIRA Linkify •Commits reference JIRA tickets •Filter to make links using ng-bind-html-unsafe *
  11. 11. Fun with Filters - JIRA Linkify •Filter to make links using ng-bind-html-unsafe *
  12. 12. Fun with Filters - Easy Dates & TZ •Server in Go - times and deltas in nanoseconds •… except when they’re not •Keep dates in UTC but standardize UI on EST *
  13. 13. Next Step: Rethink Log Files •Log files - first step of debugging •Developers still prefer using less or vim •With AngularJS, we can make it better *
  14. 14. Making Log Files Cool (And Useful!) •Multi-highlight (Filters!) •Bottom-up infinite scroll •Search with context a la SublimeText *
  15. 15. Thanks for Listening! •Suggestions for log file viewer most welcome •Filters tutorial coming soon to my blog at: • • * www.thecodebarbarian.com Twitter: @code_barbarian

×