interface fluente
Post on 22-Jul-2015
99 Views
Preview:
TRANSCRIPT
ÍNDICE
O Introdução.
O Interface Fluente.
O O que é isso?
O Pra que serve?
O Como eu uso isso?
O Programar Para um Ser Humano Entender.
O Por que fazer isso?
O Vantagens da Interface Fluente.
O Desvantagens da Interface Fluente.
INTRODUÇÃO
O Os primeiro programas de computador eram
instruções sequenciais difíceis de serem
compreendidas e que executavam tarefas
relativamente muito pequenas.
O Com a evolução do hardware o software
também teve que evoluir e crescer.
INTRODUÇÃO
O Os programas então cresceram em numero
de instruções, complexidade, e melhorou
ligeiramente a facilidade de compreensão
dos códigos escritos em uma linguagem
mais próxima a natural.
O Mas não parou por ai, novos paradigmas de
programação foram surgindo, e quando uma
“nova solução” aparece ela não esta só, ela
tem um irmão siamês; “o problema novo”.
INTRODUÇÃO
O E dos novos problemas que foram surgindo,
é claro, novas ideias foram aparecendo.
Então começam a surgir tipos de problemas
muito recorrentes.
O Para problemas recorrentes temos soluções
recorrentes. Os padrões de projeto. Aqui
iremos abordar uma dessas soluções para
problemas frequentes no desenvolvimento
de software, a Interface Fluente.
INTERFACE FLUENTE
O O que é?
O Interface Fluente é um padrão de desenvolvimento de software orientado a objetos, que faz parte da categoria de DSL’s internas.
O Uma DSL, em resumo, é uma linguagem de domínio especifico, criada para um proposito particular. Exemplos de DSL; HTML, expressões regulares, macros de planilhas eletrônicas, etc.
INTERFACE FLUENTE
O Pra que serve?
O Melhora a legibilidade dos códigos, tornando
o fluxo de execução mais simples e intuitivo.
O Torna o código menos extenso.
O Fornece maior flexibilidade ao código.
INTERFACE FLUENTE
O Como eu uso isso?
O Esse modelo de desenvolvimento baseia-se
no encadeamento dos métodos (Method
Chaining).
O Esse encadeamento é possível através da
transferência de contexto da instrução.
O Fazemos essa transferência de contexto
retornando uma referencia ao objeto que
realizou a primeira instrução.
INTERFACE FLUENTE
O Como eu uso isso?
O Pra isso eu crio uma interface onde nessa
interface todos os métodos retornam seu
próprio tipo.
INTERFACE FLUENTE
O Como eu uso isso?
O Para utilizar você fará chamadas como as
mostrada na imagem abaixo. Obs:
Desconsiderar números e strings mágicas.
PROGRAMAR PARA UM SER HUMANO ENTENDER
O Por que fazer isso?
O Primeiro porque pode melhorar a legibilidade
de seu código de uma forma simplesmente
assustadora.
O Não acredita veja os próximos exemplos;
PROGRAMAR PARA UM SER HUMANO ENTENDER
O Vantagens da Interface Fluente.
O Reveja os dois slides anteriores. O primeiro
código é mais feio que parto de ouriço.
O Já o segundo código...
O Com interfaces Fluentes seu programa se
torna mais legível.
O O fluxo de chamadas de métodos parece
mais natural.
PROGRAMAR PARA UM SER HUMANO ENTENDER
O Vantagens da Interface Fluente.
O Sua lógica de negócios agora esta mais
visível no código para análise.
O TDD agora passa a ser algo mais intuitivo.
O Seu código se tornará mais flexível, aberto
para evolução e fechado para mudança.
PROGRAMAR PARA UM SER HUMANO ENTENDER
O Desvantagens da Interface Fluente.
O Realizar debug pode ser uma tarefa
complicada. O encadeamento de métodos
em uma única instrução dispara uma serie
de operações. Dificultando a inserção de
breakpoints em uma chamada especifica.
PROGRAMAR PARA UM SER HUMANO ENTENDER
O Desvantagens da Interface Fluente.
O O tratamento de exceções também pode ser
difícil caso o tipo não esteja bem
estruturado.
O Abusar do encadeamento pode deixar o
código estranho e acabará por complicar a
leitura ao invés de ajudar. Use com
parcimônia.
PROGRAMAR PARA UM SER HUMANO ENTENDER
O Desvantagens da Interface Fluente.
O Criar as interfaces de forma consistente é
difícil, não é um trabalho rápido.
O Os métodos soltos nas classes as vezes não
são tão intuitivos, pode ser difícil para
entender a responsabilidade de cada método
de forma isolada apenas pelo seu nome.
REFERENCIAS
O http://martinfowler.com/books/dsl.html
O http://martinfowler.com/bliki/FluentInterfac
e.html
O https://www.ibm.com/developerworks/br/ja
va/library/j-eaed14/
O http://blog.lambda3.com.br/2009/04/o-
que-sao-interfaces-fluentes/
REFERENCIAS
O http://www.devmedia.com.br/interfaces-
fluentes-revista-net-magazine-95/24065
O http://tiagodev.wordpress.com/2010/12/2
0/sua-api-fala-interfaces-fluentes/
O http://www.jetbrains.com/mps/
O http://www.infoq.com/presentations/domai
n-specific-languages
REFERENCIAS
O http://gc.blog.br/2007/09/25/refatorando-
para-fluent-interface/
O http://codeflavor.wordpress.com/2010/09/
23/interface-fluente/
O http://archsofty.blogspot.com.br/2007/11/f
luent-interface.html
O http://en.wikipedia.org/wiki/Domain-
specific_language
top related