A few years ago, with the wave of new (and old) languages growing its acceptance rate in the market, some people appeared defending code with the intention of being “concise”. Being concise means express a lot, with a few words; being clare and sucint; brief, but with all the required information; having characteristics of brevity [...]
One object, more than 300 public methods, 560 instance and 300 class or static methods. It is easy to see that those objects tipically present low cohesion, more than one responsibility, tight coupling and a huge interface. A pattern known as “God Class”. You can create them in Java using class inheritance, or in Ruby [...]
In a recent post, Michael Feathers talked about the skill level in the software development industry. Knowledge requires practice and takes time to settle, so it is natural to see that, in a currently fast paced changing industry like ours, some individuals are amazingly away out of the mean quality. Feather suggests a graph showing [...]
Posted on 16. Feb, 2011 by Guilherme Silveira.
Since VRaptor 3 inception, the team has focused on good practices related to design issues such as “avoiding inheritance”, “ThreadLocal” and “public static mutable singletons”. Both releases keep their focus on design, less code, more results. In one of its latest releases, VRaptor had a performance enhancement of 60% according to Lucas benchmarks. In an [...]
Posted on 31. Jan, 2011 by Guilherme Silveira.
Systems integration over the web has been successfully growing in a pace incomparable to any internal company attempt to centralize its services. Those REST systems are available and consumed everywhere over the web. Yet there is one thing one can add to some of those systems that might make clients and services less bound to [...]
Posted on 21. Jan, 2011 by Guilherme Silveira.
In this second screencast from the Driving Design series, the amazingly simple form gem is shown along with a simple DSL implementation. Its current API uses a fluent interface through Ruby hashes that allows easy output customization. This is the current version of simple_form that allows one to configure the building process of a form: [...]
Recently Bob Martin has posted a series of transformations that aid developers whilst implementing an algorithm. Following steps and in order to improve our code and achieve something is key to refactoring, TDD and other tools are out there that gives up that kind of feedback. Bob posts a few questions that are important for [...]
The process of delivering a new feature is consisted in implementing or fixing something that the current state is not capable of. Given the set of all problems that your software solves at this moment, there are many different ways to solve them. All of those possible solutions are valid and would end up in [...]
Together with coworkers, we have been talking about the influence of Test First in our design: it is not only about testing, or testing all the time. The discussion is on how developers should learn from understanding feedback from every type of tests (unit, integration and so on) and act accordingly. We have begun a [...]
Rhaiger and Ricardo Nakamura have contributed with support to formurlencoded (issue 152), now simple form posts are also supported. In parallel, through Respondie one is capable of extending and composing behavior on resource rendering. The following example shows a simple trait that renders an etag whenever the resource responds to etag: Respondie is a Rails [...]