When inheritance and mixins become a design issue

Posted on 09. Mar, 2011 by Guilherme Silveira.

0

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 [...]

Continue Reading

Effectiveness, knowledge and the progress curve

Posted on 02. Mar, 2011 by Guilherme Silveira and mauricioaniche.

0

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 [...]

Continue Reading

REST and Web development: new VRaptor and Restfulie releases

Posted on 16. Feb, 2011 by Guilherme Silveira.

1

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 [...]

Continue Reading

Hypermedia and the future of the integration over the web

Posted on 31. Jan, 2011 by Guilherme Silveira.

1

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 [...]

Continue Reading

Driving design: adding a touch of our domain to our APIs

Posted on 21. Jan, 2011 by Guilherme Silveira.

1

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: [...]

Continue Reading

Evolving software and improving algorithms

Posted on 13. Jan, 2011 by Guilherme Silveira.

3

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 [...]

Continue Reading

Simple changes might not lead to simple solutions

Posted on 10. Jan, 2011 by mauricioaniche.

1

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 [...]

Continue Reading

Designing code: fluent interfaces and your domain

Posted on 03. Jan, 2011 by Guilherme Silveira.

1

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 [...]

Continue Reading

Restfulie is almost there: first beta out

Posted on 04. Nov, 2010 by Guilherme Silveira.

0

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 [...]

Continue Reading