|
|
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
Page 5 of 6
I believe that behavior-driven development gives the software developer the security that comes with unit tests. When combined with a tool like Cucumber it also enables the readability of requirements. Instead of only writing tests at the method and/or class level, you write tests at a functional and/or integration level.
I think this is important because if you are only writing unit tests, then it becomes entirely possible to introduce defects when two classes have to collaborate. For example, let's say you have Class A and Class B. You have spent time developing unit tests for A and B. As far as you can tell, the two classes work absolutely great. However, a bug can still exist because even though you have tested A and B independently, it is not until you allow the two objects to collaborate that the bug is made present. No. Unit testing is not enough. Instead of testing only at a micro level, it becomes very clear that you also need to test a macro level.
"I believe that behavior-driven development gives the software developer the security that comes with unit tests. When combined with a tool like Cucumber it also enables the readability of requirements. Instead of only writing tests at the method and/or class level, you write tests at a functional and/or integration level."
Combining BDD with requirements that can be read and understood by your customer (via Cucumber or Gherkin) gives you a powerful platform for building reliable applications.
Matt Heusser: How about your favorite IDE? Do you use any tools to automate refactoring? Are you a keystroke-automation wizard or a vim or emacs person?
Carlus Henry: Everyone who knows me, knows that my favorite IDE is Eclipse. I am a huge fan of Eclipse. Not only do I like it from a tooling perspective, but any group that can announce when they are going to release their code and simultaneously coordinate over 60 projects to release on that given date annually for the past five years, is amazing. Eclipse supports refactoring and a wide range of other features.
While I spend most of my time in Eclipse, I have found an occasional Vim macro to be extremely useful as well. If you have never considered using macros before, they are a thing of beauty.
Matt Heusser: Alright, we're about to wrap it up. Is there anything that you've been working on that you'd like to tell us about before you go?
Carlus Henry: I've been really impressed with a new approach to design called the CQRS approach -- Command Query Responsibility Segregation. The first one that comes to mind is called the AXON framework. It's a high-performance way to develop distributed software -- and it's the antithesis of the classic, three-tier model for software development. (No business logic, data, GUI layer here.) Instead, it is a domain-driven design (DDD) approach to building software. This separates "read" and "write" into two different systems, basing system interactions on events. I recently used it to build a community-sharing website.