SlideShare uma empresa Scribd logo
1 de 24
Linguagens Específicas de Domínio Alexandre Nunes Fabio Felgueiras Saldanha Hallison Marques Luiz Eduardo Araujo Marcelo Lecar Vinicius Gonçalves
Introdução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Domínio ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O que é?  ,[object Object],[object Object]
O que é? ,[object Object],[object Object]
Aplicação de um padrão de DSL ,[object Object],[object Object],[object Object]
Aplicação de um padrão de DSL
Meios de Integração ,[object Object],[object Object],[object Object]
Tipos de DSL ,[object Object],[object Object],[object Object],[object Object]
DSL Externa ,[object Object],[object Object],[object Object],[object Object],[object Object]
DSL Interna ,[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplos – DSL Externa ,[object Object],[object Object],[object Object]
Exemplos – DSL Interna
Exemplo – Operação ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo - Video ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo - Locação ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo - DataUtil ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vantagens ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vantagens ,[object Object],[object Object],[object Object],[object Object]
Vantagens ,[object Object],[object Object],[object Object],[object Object]
Vantagens ,[object Object],[object Object],[object Object]
Desvantagens ,[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusão ,[object Object],[object Object],[object Object],[object Object],[object Object]
Referências ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

самоучитель по Scratch
самоучитель по Scratchсамоучитель по Scratch
самоучитель по ScratchVladimir Smirnov
 
หมากรุกไทย
หมากรุกไทยหมากรุกไทย
หมากรุกไทยThanaporn Sunpang
 
人工言語ロジバン超入門編
人工言語ロジバン超入門編人工言語ロジバン超入門編
人工言語ロジバン超入門編baban ba-n
 
「文化祭で絶対にウケる」Unityゲーム制作
「文化祭で絶対にウケる」Unityゲーム制作「文化祭で絶対にウケる」Unityゲーム制作
「文化祭で絶対にウケる」Unityゲーム制作Toyota Masaya
 
第3回 配信講義 計算科学技術特論A (2021)
第3回 配信講義 計算科学技術特論A (2021) 第3回 配信講義 計算科学技術特論A (2021)
第3回 配信講義 計算科学技術特論A (2021) RCCSRENKEI
 
Initiation dégustation 2011 pdf
Initiation dégustation 2011 pdfInitiation dégustation 2011 pdf
Initiation dégustation 2011 pdfDegustation_Directe
 

Mais procurados (8)

самоучитель по Scratch
самоучитель по Scratchсамоучитель по Scratch
самоучитель по Scratch
 
หมากรุกไทย
หมากรุกไทยหมากรุกไทย
หมากรุกไทย
 
人工言語ロジバン超入門編
人工言語ロジバン超入門編人工言語ロジバン超入門編
人工言語ロジバン超入門編
 
Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編
 
「文化祭で絶対にウケる」Unityゲーム制作
「文化祭で絶対にウケる」Unityゲーム制作「文化祭で絶対にウケる」Unityゲーム制作
「文化祭で絶対にウケる」Unityゲーム制作
 
第3回 配信講義 計算科学技術特論A (2021)
第3回 配信講義 計算科学技術特論A (2021) 第3回 配信講義 計算科学技術特論A (2021)
第3回 配信講義 計算科学技術特論A (2021)
 
Jsp Paginacion
Jsp PaginacionJsp Paginacion
Jsp Paginacion
 
Initiation dégustation 2011 pdf
Initiation dégustation 2011 pdfInitiation dégustation 2011 pdf
Initiation dégustation 2011 pdf
 

Destaque

Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoJosé Meirelles
 
Gêneros textuais e oralidade no enem
Gêneros textuais e oralidade no enemGêneros textuais e oralidade no enem
Gêneros textuais e oralidade no enemma.no.el.ne.ves
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Marcos Cordiolli Ética e cidadania na sala de aula Versão 2013
Marcos Cordiolli   Ética e cidadania na sala de aula Versão  2013Marcos Cordiolli   Ética e cidadania na sala de aula Versão  2013
Marcos Cordiolli Ética e cidadania na sala de aula Versão 2013Marcos Cordiolli
 
Desenvolvimento da oralidade
Desenvolvimento da oralidadeDesenvolvimento da oralidade
Desenvolvimento da oralidadeDenise Oliveira
 
Oralidade e gêneros orais: um olhar sobre as práticas orais em sala de aula
Oralidade e gêneros orais: um olhar sobre as práticas orais em sala de aulaOralidade e gêneros orais: um olhar sobre as práticas orais em sala de aula
Oralidade e gêneros orais: um olhar sobre as práticas orais em sala de aulaDenise Oliveira
 

Destaque (9)

Domínio da linguagem
Domínio da linguagemDomínio da linguagem
Domínio da linguagem
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliação
 
Interface Fluente
Interface FluenteInterface Fluente
Interface Fluente
 
Gêneros textuais e oralidade no enem
Gêneros textuais e oralidade no enemGêneros textuais e oralidade no enem
Gêneros textuais e oralidade no enem
 
Crase oralidade e escrita
Crase oralidade e escritaCrase oralidade e escrita
Crase oralidade e escrita
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Marcos Cordiolli Ética e cidadania na sala de aula Versão 2013
Marcos Cordiolli   Ética e cidadania na sala de aula Versão  2013Marcos Cordiolli   Ética e cidadania na sala de aula Versão  2013
Marcos Cordiolli Ética e cidadania na sala de aula Versão 2013
 
Desenvolvimento da oralidade
Desenvolvimento da oralidadeDesenvolvimento da oralidade
Desenvolvimento da oralidade
 
Oralidade e gêneros orais: um olhar sobre as práticas orais em sala de aula
Oralidade e gêneros orais: um olhar sobre as práticas orais em sala de aulaOralidade e gêneros orais: um olhar sobre as práticas orais em sala de aula
Oralidade e gêneros orais: um olhar sobre as práticas orais em sala de aula
 

Semelhante a Linguagens Especificas de Dominio

DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012Luís Cobucci
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 RefactoringWildtech
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve reviewLaís Berlatto
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Enterprise Architect - Sparx Systems
Enterprise Architect - Sparx Systems Enterprise Architect - Sparx Systems
Enterprise Architect - Sparx Systems Saldit Software
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Rubycodeland
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven DesignAndré Borgonovo
 
Word camp sp 2017 willian marques
Word camp sp 2017   willian marquesWord camp sp 2017   willian marques
Word camp sp 2017 willian marquesWillian Marques
 
Algoritomos aula 3 rafael
Algoritomos aula 3 rafaelAlgoritomos aula 3 rafael
Algoritomos aula 3 rafaelhugodrocha
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreamsJacqueline Abreu
 

Semelhante a Linguagens Especificas de Dominio (20)

DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 Refactoring
 
Bdd&tdd
Bdd&tddBdd&tdd
Bdd&tdd
 
Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...
 
PHP para iniciantes - Boas Práticas
PHP para iniciantes - Boas PráticasPHP para iniciantes - Boas Práticas
PHP para iniciantes - Boas Práticas
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Enterprise Architect - Sparx Systems
Enterprise Architect - Sparx Systems Enterprise Architect - Sparx Systems
Enterprise Architect - Sparx Systems
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Ruby
 
DDD
DDDDDD
DDD
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
Word camp sp 2017 willian marques
Word camp sp 2017   willian marquesWord camp sp 2017   willian marques
Word camp sp 2017 willian marques
 
Algoritomos aula 3 rafael
Algoritomos aula 3 rafaelAlgoritomos aula 3 rafael
Algoritomos aula 3 rafael
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 

Linguagens Especificas de Dominio

Notas do Editor

  1. É uma maneira particular de escrever sobre uma linguagem. São chamadas de DSL embutidas ou interfaces fluentes.
  2. AQUI temos toda a magia da DSL. Inicialmente criamos um cliente com sua matricula e seu nome definidos; Logo em seguida definimos uma locação e definimos “para” quem é a locação; Logo após, definimos qual vídeo será locado. Para efeito ilustrativo, adicionamos a definição dos atributos neste slide. Atentem para o nome das operações que definem os atributos. E por fim, implementamos a locação. Adicionando o título (nome do objeto), quando será devolvido e se já foi pago ou não. Chamo a atenção mais uma vez para o nome das operações. Elas são claras e qualquer pessoa com o conhecimento do domínio conseguiria identificar o que este trecho de código está fazendo.
  3. Aqui vemos a implementação da classe Video. Não temos nenhum mistério, apenas a definição de alguns atributos a partir de algumas operações.
  4. Aqui vemos a implementação da classe Locação. Não temos nenhum mistério, apenas a definição de alguns atributos a partir de algumas operações. No entanto, já temos algumas definições mais elaboradas, mas nada de diferente.
  5. Na classe DataUtil não temos nenhum mistério. Temos alguns atributos estáticos definidos, notem que o nome de cada atributo é bem claro quanto ao seu significado. Percebam também que temos implementado o operador daquiA que retorna a data atual acrescida de dataMs que é um valor inteiro (atentem ao fato dos atributos também serem inteiros, isso fará todo sentido mais a frente)