The second part of my notes from GeeCON 2014 conference. Day two was the most interesting and richest day of the conference so are the notes.

Hazem Saleh – Jasmine Automated Tests for JavaScript

Sam Newman – Deploying And Testing Microservices

  • Technology Radar from ThoughtWorks
  • Book “Building Microservices” by Sam Newman, currently in early version
  • It’s worth to follow Sam Newman on Twitter
  • Mountebank – tool to provide test doubles using various protocols (http, https, etc)
  • “Get good at releasing services independently”
  • Last tests should be performed on production just after the release, but make sure that it do not affect your business
  • “Consumer Driven Contracts” article by Martin Fowler
  • Pact – tool enabling consumer driven contract testing
  • Packer – tool for creating identical images for multiple platforms
  • Ansible – tool to automate app deployment, configuration management, etc., further reading
  • One service per machine
    • pros: easy to reason about (who to blame when CPU is 100%)
    • cons: cost and management overhead
  • Docker – virtualized container allowing to automate deployment of any application
    • “not production ready”
  • “Deploy one thing at a time”
  • DbDeploy – Database Change Management tool
  • “You can’t expect to change your database as often as you change your software”
  • “It’s easier to manage one service with two versions of API”

Michał Ostruszka – SRP applied – building modern web applications

  • gulp, grunt (more popular one) – build systems for frontend/JS
  • yeoman, lineman – tools to generate bootstrap of frontend part of your application using e.g. AngularJS, Ember, Backbone, etc.

Peter Lawrey – Micro-second latency logging, persistence, IPC and more

  • OpenHFT (High Frequency Trading)
  • Java Chronicle project – persisted low latency messaging library
  • HugeCollections – Huge Collections for Java using efficient off heap storage
  • SharedHashMap, another link:
    • GC-free implementation of hash map
    • persistent, stored in the file
    • shared between processes
    • 1/5th of a size of corresponding HashMap in the memory

Kevlin Henney – Seven Ineffective Coding Habits of Many Java Programmers

  • Book “97 Things Every Programmer Should Know”
  • Comments in your code are sign of defeat, you failed in explaining your intentions using the code itself
  • Max. column width: 80 chars, we shouldn’t be forced to move head while reading
  • Keep method arguments in one line or each argument in a new line
  • Why do we add “Exception” to the exception classes? Do we add “Class” at the end of each class name?

Kevlin Henney – Worse Is Better, for Better or for Worse

That’s all I’ve noted from second dat at GeeCON 2014. Stay tuned for the 3rd part of my brain dump.