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
- Testing asynchronous code with Jasmine looks really ugly. Michał Ostruszka suggests using Mocha for such use cases.
- Istanbul – code coverage for Java Script
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
- Stop over-promising
- Concentrate on something you can complete
- “You learn by finishing things”
- Book “101 Things I Learned in Architecture School”, worth to read also from the perspective of developer/architect
- Book “The Laws of Simplicity: Design, Technology, Business, Life”
- Small off-topic: Kevlin gave one of the best closing keynotes I’ve ever seen titled “Cool Code”. You can watch video here. Really entertaining talk!
That’s all I’ve noted from second dat at GeeCON 2014. Stay tuned for the 3rd part of my brain dump.