I am pleading with developers to stop building Plato's cathedral. Software development is not about populating an unseen world with perfect widgets. It is about building the appropriate structures such that both you and the computer can agree about what happens when you execute the program.
Why write unit tests? They validate current and future implementations. They measure code quality. They force you to write testable, loosely coupled code. They’re cheaper than manual regression testing. They build confidence in your code. Use this checklist to be sure your tests are really useful and to the point.
How to convert Spring 4 ListenableFuture to Java 8 CompletableFuture and back
Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (June 6 to June 12). This week's topics include 5 things about open source components, a story about TDD, why DevOps matter, the rise of the DevOps movement, and using private and final in open source software.
This is about a simple testing technique that is probably obvious, but I’ll share it anyway.
le_java is one of several libraries that allow you to send log data directly to your Logentries account from your application.
I did a very unscientific twtpoll recently regarding what brought each of us into open source. Plenty of people took the time to vote or retweet, so I thought I'd loop back around and let you know how it looked overall when the poll closed.
Validation is crucial part of development. From argument checks to validating workflows, pipelines, input/output boundaries we run checks to make sure that an application will behave correctly. I like to see the business processes before the implementation and try to express myself via code in that manner.
I’ve been thinking about what makes TDD fail, and there are obviously few reasons that were discussed to death (Get it? Dead? TDD? Ok, let’s move on). What this gets you is a big, convoluted class that has tests, and some small internal, simple data classes.
People often ask, why does DevOps matter? The honest answer to that question is because having the development and operations team work together is the only way IT is successful. In the end it comes down to the most important part, which is that devops creates more happiness.
GPM + GVP has worked well for me, and I find it much better than vendoring or living at the cutting edge of every dependency's repository. I've implemented it on projects large and small, and it feels clean. I've used it to manage builds and CI. Overall, I've found it to meet my needs better than any other solution.
I recently had an experience writing code that proved to me, once again, that using Test Driven Development really is faster than the way I have been working. I easily saved half a day on each project by using Test Driven Development.
The adoption of Continuous Delivery often leads to the discovery of suboptimal practices within an organisation, and the Release Testing antipattern is a common example. What is Release Testing, and why is it an example of Risk Management Theatre?
It's 2014, but there's still a widely held belief that integrated (or end-to-end) tests should be favored over unit tests. A belief that Test-Driven Development does not have a beneficial influence on the quality of your tests and code. So today I'm repeating a few things I have been writing about in the last years.
You can’t get away from it. Thousands of open source components are being used in every industry, every day, to quickly build and deploy applications. For those not in the security industry, it’s hard to keep track of what is being done in this field to manage and monitor open source usage.
When working with crontab service, one thing I often need is to capture the output of the job
In recent months I've seen an increase in the use of private and final keywords used in open source software projects.
Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (May 30 to June 5). This week's topics include test-driven development mistakes and advice, using Drone and Docker for continuous integration, building a balancer with Clojure, drawbacks and best practices of TDD.
This ultimately comes down to the idea that the involvement of developers doesn’t end at their last commit. Collaboration is key which allows every developer to play a key role in keeping the site up and running, for more happy users. After all software with no users has no value.
The main reason why I used Sublime Text was for speed and simplicity, Sublime Text at it's basic level is a text editor, which has been extended into an IDE. Everything about it was built for speed, which makes sublime one of the quickest and easiest text editors to use.
I run introductory training in test-driven development quite frequently these days. And each time I do, I find the same basic mistakes cropping up every time, even among teams who already claim to practice TDD. Here are the three mistakes I see most often.
Heartbleed is a bit over one month old now. Today, we’re going to look into how wrong we have been in assuming that Open Source software is more secure than commercial software, because of our thinking that source code is open and that many developers are looking into it.
I've tried CI systems ranging from Bamboo to Jenkins, and I always feel like I'm either pushing against the limits of the tech or tiptoeing through a mine field of possible misconfigurations. I don't feel that way with Drone. The "disposable" Docker environment is an absolutely perfect way to test code.
I was asked to talk about the problems of using TDD – being me I’ve decided to do the exact opposite, this session was names “what is wrong with TDD”. I felt that one of the major issues is that TDD looks weird, it’s counter-intuitive, and convincing developers to actually try it hard and requires a mental leap of faith.
One of my favourite features of Clojure is that it allows you to destructure a data structure into values that are a bit easier to work with.