Arquivo

Arquivo de 9, agosto, 2009

Programe para uma interface, não para uma implementação

9, agosto, 2009 Douglas Cunha 3 comentários

engrenagens

Um conceito simples, mas nem sempre bem entendido e aplicado. ‘Programar para uma interface e não para uma implementação’, você sabe o que isto significa?

Apesar deste conceito ser aplicável a projetos de software, é mais antigo que ele, e é utilizado bem antes do primeiro compilador ser desenvolvido. Um exemplo bem obvio do que é isto, pode ser encontrado na casa de qualquer pessoa: um interruptor de luz. ‘Como assim José?’.

Um interruptor de luz é um exemplo muito bom. Consiste em um botão, que liga e desliga a luz. Uma interface simples, que esconde os detalhes de implementação de quem vai utilizá-la. Para ligar a luz, basta apertar o botão, e para desligá-la, adivinhem? Aperte novamente. A implementação está bem encapsulada – o usuário não precisa entender nada de pólo positivo, neutro, 127v, amperagem ou resistência. Qual foi o pensamento do designer ao projetar um interruptor de luz? Com certeza foi algo parecido com: ‘qual o mínimo possível de informação o usuário do meu produto precisa para usá-lo?’.

Leia mais…

Por que AgileZ?

dilbert-agile-programming

O AgileZ surgiu de uma idéia, ou, pra ser mais preciso, de uma necessidade pessoal de dar vazão a grande quantidade de informação que recebo diariamente em decorrência de meu trabalho como analista e programador.

Entre os assuntos que você verá por aqui, encontrará artigos sobre metodologias ágeis (XP, Scrum, TDD) e conceitos de padrões de projeto (Design Patterns, Grasp) – tudo baseado em minhas experiências – e, ocasionalmente, de colegas colaboradores -  sempre procurando enfatizar o lado conceitual, de forma que a informação possa ser facilmente aplicada a qualquer linguagem ou equipe.

Categories: Geral Tags:
Theme Tweaker by Unreal