What are software design antiparks?

Asked

Viewed 421 times

10

Is there a catalog of them for consultation, just as there is for design standards? Antipadrons are the same as bad practices?

1 answer

12


It is a way to solve a problem that has been considered inefficient, ineffective, ineffective or unproductive. It exists in several fields.

Interestingly some known design patterns in computing are considered antipadron by some.

He has the same problem of standards, people go after them as if it were a recipe to adopt in all cases causing more problem than solution. So we can begin by quoting antipattern which is to follow standards and standards blindly, as well as good practice or bad practice.

The question is how and where it is used. The context actually defines whether it is good or bad. There is even controversy as to what a antipattern established or not, In general this occurs because there is no context.

And indeed the antipatterns normally defined exist very informally and does not pass through the same sieve as the Patterns best known.

In the case of antiplates they look very bad practices, since they do not usually define ready formulas to solve the problem, but only recommendations. In case of code they are code Smells.

Just as it is silly to follow patterns known as if they were magic formulas, putting together a lot of anti-patterns alone is not worth much. In fact, it could be worse, because one might think that if you’re not there, it’s okay to do something. People are too creative to do wrong things.

And you have to understand that both the Pattern, as to the antipattern It’s just a rule on how to do something that people considered good or bad. It is a good tip, but you need to deepen and understand your motivation to use correctly.

I often say that Pattern is all that runs always the same way to solve the same problems. Contrary to what people think is not just a set with some cake recipes that people have heard around.

One example I quote a lot is variable, which is a Pattern so used that it is ready for use without you realizing that it is a design standard.

And because there are patterns, languages or other technologies end up creating antitheses to design patterns. Or they decide not to adopt something because they consider it a antipattern. For example, Java did not want to create a delegate mechanism, they were reluctant for years saying it was a antipattern, until they realized it was just one Pattern, and the most important, and put in the language. He realizes that often the antipattern is loaded with misinformation and prejudice? And I’m not talking about silly people, I was talking about a group of the smartest people in the world. Prejudice exists in everyone, including people who are against prejudices.

And there is the recursiveness that is a antipattern in various contexts, but many people use it because they think it’s funny.

Another example: people say they use goto is an anti-standard, but the atrocities that end up doing in some cases where it is useful only to say that they did not use a antipattern, is clearly a antipattern.

Making worse codes to meet a rule established by someone who didn’t even understand what she was talking about or that what she said turned into "cordless phone" is the biggest anti-ban there is.

There is a website that has a list of some.

To Wikipedia brings a list that seems more interesting to me.

Has a response in the OS with a useful specific list.

Were published some books on the subject.

There may be others more specific, including for languages and paradigms, perhaps showing what is not idiomatic, like the Pitfalls of Object Oriented Programming.

  • Antipadrões Javeiros: http://antipadroesjava.blogspot.com/

Browser other questions tagged

You are not signed in. Login or sign up in order to post.