Apple have released Swift, their new programming language – designed to be familiar to Objective-C programmers and work well with the existing Cocoa frameworks. It’s far too soon to make substantial judgements about the language – th…
LMAX Exchange Staff Blogs
Did you know that it’s perfectly fine to enjoy programming in both static and dynamic languages?— Honza Pokorny (@_honza) May 26, 2014I do a lot of coding in Java and JavaScript and it’s never bothered me that one has static types and on…
Writing automated tests to prove software works correctly is now well established and relying solely or even primarily on manual testing is considered a “very bad sign”. A comprehensive automated test suite gives us a great deal of confiden…
Kevlin Henney’s talk from YOW is a great deconstruction of the SOLID principles, delving into what they really say as opposed to what people think they say, and what we can learn from them in a nuanced, balanced way.Far too often we take these ru…
In 2011 I put out an example php class that could be used to talk to the LMAX API protocol. It was incomplete and for illustrative purposes only. It remains that way. Over the years however there have been some improvements and it can now be used for p…
I wanted to create a CSV file showing the number of JUnit tests in our codebase vs the number of Spock tests over time. I can count the number of tests, along with the revision pretty easily with:git svn find-rev HEADfind src/test -name ‘*Test.java’ | …
Marco Cecconi -Â I don’t love the single responsibility principle:The principle is arbitrary in itself. What makes one and only Reason To Changeâ„¢ always, unequivocally better than two Reasons To Changeâ„¢? The number one sounds great, but IR…
This time we’re going to explore how functional programs express
variance. We’ll consider the same case as we did for TDA – getting a
stored value from a Map, and storing a new value in a Map.
Retrieval
lookup :: Ord k =>…
Previously in the Testing@LMAX series I’ve mentioned the way we’ve provided isolation between tests, allowing us to run them in parallel. That isolation extends all the way up to supporting a multi-tenancy module called venues which allows …
One of the most common reasons people avoid writing end-to-end acceptance tests is how difficult it is to make them run fast. Primary amongst this is the time required to start up the entire service and shut it down again. At LMAX with the full exchang…