David H. Hansson (@DHH) sparked the “TDD being dead” latest twitter storm. DHH is no stranger to controversy, and he certainly picked the right title for it. Of course, the responses followed immediately. and most of them fell directly into his...
I guess many people know about the Visitor design pattern, described in the Gang of Four’s Design Patterns: Elements of Reusable Object-Oriented Software book.
I’ve used several version control systems for my source code and research projects. Recently, I’ve consolidated them to TFS and Git. I have started using Visual Studio Online for my research work, CodePlex for my Open Source Frameworks and Tools and GitHub for my blog code.
Behavior Driven Development (BDD) is an approach that uses conversions around concrete examples to discover, describe and formalize the behavior of a system. BDD tools such as JBehave and Cucumber are often used for writing web-based automated acceptance testing but are also a great fit for other domains such as testing Web Services.
I'm a vim user and I somehow completely missed this excellent feature until much more recently than I care to admit! Usually vim has its own clipboard, but it doesn't share with the operating system. You will need a vim-gtk install, this isn't available in really basic vim.
Have you ever come across a situation where testing should be done and you need to rename the class objects? Reveal the secrets of dynamic class generation with the help of Javassist library.
Java has been around for what seems like a very long time, which means that there are a number of ways of scheduling a task
Our topic was originally on scaling self-service of configuration management good practices, but quickly morphed into a discussion of what organizations need to pay attention and foster to support their tools teams in their often-cited mission of creating a self-service culture and self-service infrastructure.
Continuous Delivery often challenges conventional wisdom within the IT industry, and by advocating the rapid release of value-add to reduce risk it contradicts the traditional belief that a low release cadence is an effective risk reduction strategy.
As a developer, testing is very important. Some developers have the mindset of “Meh, I write code, testing is a QAs job”, which is pretty poor.
Testing is crucial. While many different kinds and levels of testing exist, there’s good library support only for unit tests (the Python unittest package and its moral equivalents in other languages).
Companies need to view the epidemic of data breaches with a similar approach to controlling one’s weight.
When you model a domain, you model its entities and behaviors.
While OpsWorks gives you a lot of power and flexibility for configuring your infrastructure, it’s most powerful feature is its ability to get you through your Netflix queue: OpsWorks takes a really long time to do anything, so you’re left twiddling your thumbs a lot.
For years we have been developing Java web applications with the lightweight versions of Eclipse and IntelliJ. This week we found some time to share how we are doing it.
Qualifiers are the mainstay of type safety and loose coupling in Contexts and Dependency Injection (CDI).
Git is magic, but sometimes it drives my crazy with all that power causing strange situations and clean-up work. The magic of git is that it is (nearly?) always possible to clean up the mess and get back to a good state.
Sometimes, you just want to run patch against database or change the infrastructure of product.
We frequently compare Quartz and Obsidian in our blog, and today we’re going to see the difference in how you would schedule a job for recurring execution in both pieces of software.
I love sitting down to review a new codebase. Depending on the age of the codebase, it can be a little like archaeology. There are often distinct sections that have not been touched in many, many years. Sometimes you can almost see rings around the codebase similar to the rings on a tree. One section might be written in one framework, but another section is implemented in a different, newer framework. The following describes how I spend the first hour with some new code.
Vendor lock-in can be a pain. Imagine you've written an application to work against one cloud provider and now you'd like to migrate to another one.
Creating that initial environment for your application to run in is a solved problem. Or is it? On the market today, there are a seemingly ever-increasing number of tools to facilitate that process: CFEngine, Puppet, Chef, Vagrant, Packer, Ansible, Salt Stack, Rundeck… the list goes on.
Last week, I took some days off to attend Devoxx France 2014 3rd edition. As for oysters, the largest talks do not necessarily contain the prettiest pearls.
Like any new development methodology, implementing Continuous Delivery has a number of pitfalls that can trip up even the most mature organizations. In this article, you'll find four of the most common pitfalls to avoid when implementing Continuous Delivery.
Once you've downloaded DZone's 2014 Guide to Continuous Delivery, you may be looking for some additional resources to help with your implementation of CD. We dug into the DZone archives and pulled out a handful of DZone's most popular Continuous Delivery resources over the last couple of years.