Categoria: Tecnica de Programação

Abstraindo Constantes e Tipos

Abstraindo Constantes e Tipos

No universo de Orientação a Objetos, costuma-se abtrair objetos do mundo real em classes (como exemplos: Pessoa, Jogador, Cliente, Fornecedor, Pedido de Compra, Casa, Tabuleiro, Peça, etc) . Estas são representadas em O.O. pelas características (atributos) de sua abstração interessantes para a aplicação e pelas ações (métodos) passíveis de serem realizadas na mesma (exemplos referentes as classes citadas: Andar, Pular, PagarConta, EntregarProduto, FinalizarPedido, AlterarTelhado, VirarTabuleiro, IrParaCasa ). Quão bem cada classe irá representar objetos do mundo real depende da granularidade desejada no processo de modelagem. Quanto maior a granularidade, mais detalhes a sua classe irá exprimir sobre o objeto real. Esta decisão impacta...

Conceitos de Orientação a Objetos – Parte 6 de 6

Conceitos de Orientação a Objetos – Parte 6 de 6

Interfaces O princípio de herança nem sempre se aplica a todas as classes que possuem características comuns. Uma pessoa é capaz de Andar, assim como um carro é capaz de andar. Nem por isso eles fazem parte de algum material comum. No seu sistema você pode ter que se deparar com situações parecidas. Você pode, por exemplo, criar um agendador de tarefas programadas que servirá para mandar uma mensagem por e-mail diariamente para todos os clientes da loja. De forma semelhante, diariamente ele também pode iniciar uma tarefa que verifica se todos os servidores estão online. Perceba que você pode...

Conceitos de Orientação a Objetos – Parte 5 de 6

Conceitos de Orientação a Objetos – Parte 5 de 6

Polimorfismo Polimorfismo é uma palavra complicada para um conceito simples. Não se trata de um recurso a ser implementado. Se trata de uma propriedade da linguagem de programação. O conceito é simples. Imagine: Uma classe base Cliente é extendida pela classe herdeira ClienteVirtual. O cliente base possui todas as informações concernentes a ele: endereço, telefone, pontos obtidos pelas compras feitas, etc. Já a classe herdeira, ClienteVirtual, possui os dados específicos para os cliente que farão compras pelo website: nome do usuário, senha, e-mail, etc. Você tem clientes que fazem as compras pessoalmente no balcão, e clientes que fazem as compras...

Conceitos de Orientação a Objetos – Parte 4 de 6

Conceitos de Orientação a Objetos – Parte 4 de 6

Mais uma parte da série Conceitos de Orientação a Objetos, com Daniel Moreira Yokoyama: Herança (ou derivação) Você criou um sistema de loja virtual que vende cd’s. A orientação a objetos te permitiu criar uma classe CD, onde vocÊ agrupou todos os dados que dizem respeito aos CD’s: Título, Artista, Lista de músicas, Ano de lançamento, Gravadora, etc. Após alguns meses no ar, seu cliente lhe diz que pretende expandir seu negócio para vender DVD’s. Isso vai exigir um esforço imenso de criar novas rotinas e novos tratamentos para cuidar de um ítem completamente novo ao sistema. Para que se...

Você ainda não sabe programar ABAP OO?

Você ainda não sabe programar ABAP OO?

Se você não é um completo alienado no mundo ABAP, já deve ter ouvido falar sobre o tal do ABAP OO, ou seja, ABAP Orientado a Objetos. Esse assunto é estratégico para a SAP e é forma de programação que ele recomenda, tanto que é uma das partes mais pesadas na certificação ABAP. Nesse post aqui vou mostrar as vantagens desse paradigma de programação e como ele pode te ajudar a criar programas mais robustos e de fácil manutenção.

Conceitos de Orientação a Objetos – Parte 3 de 6

Conceitos de Orientação a Objetos – Parte 3 de 6

Agora a parte 3 da série Conceitos de Orientação a Objetos, com Daniel Moreira Yokohama: Encapsulamento Alguns métodos não conseguem por si só resolverem sua responsabilidade sem que algumas informações sejam previamente informadas. Uma pesquisa no Google não pode retornar valores se não receber algo por que buscar. Um pedido não é capaz de incluir produtos em si sem saber quais produtos o cliente quer adquirir. Estas informações podem ser encontradas espalhadas pelo sistema de acordo com o estado dos objetos na memória no momento em que o método é acionado. Porém, quando um método depende desse tipo de informação...

O que é ser DRY?

O que é ser DRY?

Escrevi há algúns posts atrás sobre o que podemos aprender com a comunidade Ruby e Rails. Aqui vai outro conceito muito conhecido pela turma do Ruby e Rails, o DRY, ou Don’t Repeat Yourself (simplesmente, Não se Repita). Isso não é somente um conceito de programação, mas sim uma filosofia que envolve não repetição, seja de código ou seja de idéias.

Conceitos de Orientação a Objetos – Parte 2 de 6

Conceitos de Orientação a Objetos – Parte 2 de 6

Segue a parte 2, da série Conceitos de Orientação a Objetos, de Daniel Moreira Yokoyama: Classes Procure olhar novamente para uma foto qualquer. Como pode ser que você seja capaz de reconhecer cada objeto que você  vê nela? Pegue uma cadeira e observe. Tente comparar com uma outra cadeira qualquer que você tenha, por exemplo, na sua casa. Ou no restaurante onde você almoça. Ou na casa de um amigo seu. Note que cadeiras possuem diversas variações de forma que é quase impossível encontrar duas cadeiras de dois ambientes distintos que sejam parecidas.

Conceitos de Orientação a Objetos – Parte 1 de 6

Conceitos de Orientação a Objetos – Parte 1 de 6

Há muito tempo venho ensaiando escrever uma série de textos sobre Orientação a Objetos. Mas, um dos meus alunos de ABAP, com ampla experiência em .Net e OO, autorizou a publicar uma ótima referência conceitual sobre o tema. Começo uma série de posts, em 6 partes, sobre conceitos de orientação a objeto. Não é nada voltado a nenhuma linguagem, mas conceitos puros. O autor desse texto muito bom, foi um dos meus alunos da Academia ABAP, na 15a Turma na KA Solution, Daniel Moreira Yokoyama. Se você quizer entrar em contato com ele, mande um e-mail para blog arroba abap101...

Cinco dicas para se tornar um melhor programador

Cinco dicas para se tornar um melhor programador

De uns tempos para cá tenho reparado um movimento de alguns programadores para tentar divulgar uma cultura de bons programadores. É uma luta contra os programadores ralés, medianos e bunda-moles! Uma luta para que programadores façam códigos bons e não somente códigos que funcionem… Assim, encontrei outra pérola, agora de Josh Tynjala. Leiam! Uma das passagens que mais me chamou a atenção foi essa abaixo: If you stop working on fun side projects, learning new techniques, blogging, and participating in communities, you’re going to eventually fall behind. One day, you’ll discover that all the cool kids are “suddenly” doing things...