Exemplos em Go e Python ALÉM DOS PARADIGMAS. Entenda as características da linguagem e saiba escolher e adaptar padrões de projeto
|
|
- Vítor Aquino Caminha
- 6 Há anos
- Visualizações:
Transcrição
1 Exemplos em Go e Python ALÉM DOS PARADIGMAS Entenda as características da linguagem e saiba escolher e adaptar padrões de projeto Luciano
2 Sometimes you need a blank template. 2
3 FLUENT PYTHON, MEU 1º LIVRO 4.7 stars at Amazon.com Fluent Python (O Reilly, 2015) Python Fluente (Novatec, 2015) Python к вершинам мастерства (DMK, 2015) 流暢的 Python (Gotop, 2016) also in Polish, Korean, etc 3
4 PARADIGMAS Categorias de linguagens de programação 4
5 O PRIMEIRO PARADIGMA" QUE APRENDI: IMPERATIVO HP-25 TI 58C 5
6 PROGRAMA PARA CALCULADORA HP-25 6
7 PANORAMA SOBRE LINGUAGENS DE PROGRAMAÇÃO Programming Language Pragmatics, 4th edition (2015) Michael L. Scott 7
8 MDC: ASM X86 Máximo divisor comum em Assembly x86 (Scott, 2015) 8
9 MDC EM C, OCAML, PROLOG 9
10 MDC EM PYTHON Estilo imperativo Estilo funcional 10
11 MDC EM PYTHON Inadequado para Python que não faz otimização de chamada de cauda (TCO) Estilo imperativo Estilo funcional 11
12 UMA CLASSIFICAÇÃO Programming Language Pragmatics, 4th edition (2015) Michael L. Scott 12
13 UMA CLASSIFICAÇÃO (ZOOM) 13
14 UMA CLASSIFICAÇÃO (ZOOM)??? 14
15 OUTRO LIVRO, OUTRA CLASSIFICAÇÃO Princípios de Linguagens de Programação (2003) Ana Cristina Vieira de Melo Flávio Soares Corrêa da Silva 15
16 16
17 Lógicas 17
18 SITE: THE LANGUAGE LIST 18
19 SITE QUEBRADO, LINGUAGENS FALTANDO 19
20 CATEGORIAS DE LINGUAGENS 20
21 CATEGORIAS DE LINGUAGENS (2) 21
22 CATEGORIAS DE LINGUAGENS (3) 22
23 CATEGORIAS DE LINGUAGENS (4) 23
24 CATEGORIAS Ontologia é tão anos 90 24
25 EM UMA ENCICLOPÉDIA BORGIANA 25
26 UMA CLASSIFICAÇÃO BASEADA EM FATOS CIENTÍFICOS 26
27 UMA CLASSIFICAÇÃO BASEADA EM FATOS CIENTÍFICOS? "Gases" nobres"!? 27
28 Ontology is overrated. Clay Shirky Ontologias são sobrevalorizadas. Pesquise o artigo em inglês! 28
29 UMA ABORDAGEM MELHOR Fundamental Features of Programming Languages 29
30 ENSINO MODERNO DE TEORIA DE LINGUAGENS Ensinando linguagens de programação na era pós-lineu 30
31 ARTIGO APRESENTANDO A ABORDAGEM 31
32 ARTIGO APRESENTANDO A ABORDAGEM Paradigmas" de linguagens de programação são um legado moribundo e tedioso 32
33 ARTIGO APRESENTANDO A ABORDAGEM 33
34 ARTIGO APRESENTANDO A ABORDAGEM Criadores de linguagens modernas não têm o menor respeito por eles 34
35 ARTIGO APRESENTANDO A ABORDAGEM 35
36 ARTIGO APRESENTANDO A ABORDAGEM devemos abandonar esse método no ensino de linguagens 36
37 ARTIGO APRESENTANDO A ABORDAGEM 37
38 ARTIGO APRESENTANDO A ABORDAGEM um livro-texto que explora esses assuntos. 38
39 TEORIA NA PRÁTICA COM RACKET (DIALETOS DE SCHEME) 39
40 PADRÕES DE PROJETO Quando as linguagens deixam a desejar 40
41 GOF: LIVRO CLÁSSICO DA GANG OF FOUR Design Patterns: Elements of Reusable Object-Oriented Software (1995) Erich Gamma Richard Helm Ralph Johnson John Vlissides 41
42 PROBLEMAS NA DIFUSÃO DOS PADRÕES Ralph Johnson no IME/USP (2014?) 42
43 PROBLEMAS NA DIFUSÃO DOS PADRÕES Excesso de ênfase nos padrões como resultados finais em vez de passos no processo de design Ralph Johnson no IME/USP (2014?) 43
44 PROBLEMAS NA DIFUSÃO DOS PADRÕES Conformidade com padrões não é uma medida de qualidade. Ralph Johnson no IME/USP (2014?) 44
45 NEM TODO PADRÃO É UNIVERSAL Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley, 1995), p
46 NEM TODO PADRÃO É UNIVERSAL Nossos padrões assumem características no nível de Smalltalk/C++ Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley, 1995), p
47 NEM TODO PADRÃO É UNIVERSAL Se tivéssemos assumido linguagens procedurais, talvez tivéssemos incluído padrões como Herança, Encapsulamento" e Polimorfismo". Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley, 1995), p
48 48
49 49
50 Estudo do livro Padrões de Projeto : 16 dos 23 padrões têm implementações qualitativamente mais simples em Lisp ou Dylan do que em C++, ao menos para alguns usos de cada padrão. 50
51 16 dos 23 padrões são invisíveis ou mais simples, devido a essas características 51
52 CARACTERÍSTICAS Características essenciais, não apenas açúcar sintático. 52
53 AMOSTRA DE CARACTERÍSTICAS LINGUAGENS Common Lisp C Java Python Go Funções de 1ª classe Tipos de 1ª classe Iteradores Modelo de variáveis referência valor* valor e referência referência valor* e referência Checagem de tipos dinâmica estática estática dinâmica estática Expressão de tipos estrutural nominal nominal estrutural estrutural 53
54 AMOSTRA DE CARACTERÍSTICAS LINGUAGENS Common Lisp C Java Python Go Funções são objetos Funções de 1ª classe Classes são objetos Tipos de 1ª classe Iteradores Modelo de variáveis referência valor* valor e referência referência valor* e referência Checagem de tipos dinâmica estática estática dinâmica estática Expressão de tipos estrutural nominal nominal estrutural estrutural 54
55 AMOSTRA DE CARACTERÍSTICAS LINGUAGENS Common Lisp C Java Python Go Funções de 1ª classe Tipos de 1ª classe Iteradores Modelo de variáveis referência valor* valor e referência referência valor* e referência Checagem de tipos dinâmica estática estática dinâmica estática Expressão de tipos estrutural nominal nominal estrutural estrutural 55
56 AMOSTRA DE CARACTERÍSTICAS LINGUAGENS Common Lisp C Java Python Go Funções de 1ª classe Tipos de 1ª classe Iteradores Modelo de variáveis referência valor* valor e referência referência valor* e referência Checagem de tipos dinâmica estática estática dinâmica estática Expressão de tipos estrutural nominal nominal estrutural estrutural 56
57 AMOSTRA DE CARACTERÍSTICAS LINGUAGENS Common Lisp C Java Go Python Funções de 1ª classe Tipos de 1ª classe Iteradores Modelo de variáveis referência valor* valor e referência valor* e referência referência Checagem de tipos dinâmica estática estática estática dinâmica Expressão de tipos estrutural nominal nominal estrutural estrutural 57
58 AMOSTRA DE CARACTERÍSTICAS LINGUAGENS Common Lisp C Java Go Python Funções de 1ª classe Tipos de 1ª classe Iteradores Modelo de variáveis referência valor* valor e referência valor* e referência referência Checagem de tipos dinâmica estática estática estática dinâmica Expressão de tipos estrutural nominal nominal estrutural estrutural 58
59 STRATEGY EM GO Aproveitando as características de Go 59
60 SELECIONAR UM ALGORITMO EM TEMPO DE EXECUÇÃO 60
61 SELECIONAR UM ALGORITMO EM TEMPO DE EXECUÇÃO Contexto Estratégia Estratégias concretas 61
62 STRATEGY EM GO Implementação clássica usando interface Implementação usando funções como objetos 62
63 TESTES interface/strategy_test.go Repo: 63
64 TESTES interface/strategy_test.go 64
65 CLIENTE E ITENS DE UM PEDIDO interface/store.go 65
66 CONTEXTO E ESTRATÉGIA interface/strategy.go 66
67 ESTRATÉGIA CONCRETA interface/store.go 67
68 MAIS ESTRATÉGIAS CONCRETAS interface/store.go 68
69 STRATEGY COM FUNÇÕES DE 1ª CLASSE 69
70 TESTES COM FUNÇÕES 70
71 ESTRATÉGIAS CONCRETAS COM FUNÇÕES 71
72 QUAL SOLUÇÃO É MAIS IDIOMÁTICA? Interfaces x funções 72
73 INTERFACE X FUNÇÕES DE 1ª CLASSE Na biblioteca padrão, interfaces de um método são comuns. 73
74 INTERFACE X FUNÇÕES DE 1ª CLASSE Mas o pacote http suporta os dois estilos de programação*: *Kumar Iyer (ThoughtWorks): Higher-order functions vs interfaces in golang 74
75 STRATEGY EM PYTHON Aproveitando características de Python 75
76 ESTRATÉGIA PARAMETRIZADA COM INVOCÁVEL 76
77 ESTRATÉGIA PARAMETRIZADA COM INVOCÁVEL objeto promo é instanciado com porcentagem de desconto 77
78 SUB-CLASSES IMPLEMENTADAS COMO INVOCÁVEIS 78
79 QUAL A SOLUÇÃO MAIS IDIOMÁTICA? Classes x funções 79
80 QUAL É MAIS IDIOMÁTICA? Estratégia clássica parece muito verbosa em Python* Funções de 1ª classe são muito comuns na biblioteca padrão Exemplo: argumento key nas funções embutidas sorted, max, min * Sim, isto é subjetivo. Estamos falando de estilo! 80
81 QUAL É MAIS IDIOMÁTICA COM PARÂMETROS? Use de closures é comum em Python Python 3 ganhou a declaração nonlocal para suportar melhor essa prática Objetos invocáveis são característica típica de Python Graham Dumpleton recomenda invocáveis para 81
82 CONCLUINDO Aprenda as características fundamentais 82
83 EM VEZ DE CATEGORIAS ESTANQUES B E A D F C G 83
84 PENSE NAS CARACTERÍSTICAS FUNDAMENTAIS B A E D F C G 84
85 AS CARACTERÍSTICAS DÃO A DICA Para decidir se determinada implementação ou padrão faz sentido A B C D E F G + + +
86 PORQUE APRENDER AS CARACTERÍSTICAS FUNDAMENTAIS Aprender novas linguagens mais rápido Aproveitar melhor as características de cada linguagem Escolher entre implementações alternativas Fazer bom uso de padrões de projeto Depurar problemas difíceis Emular características que fazem falta * Inspirado por Programming Language Pragmatics Michael L. Scott 86
87 MUITO GRATO! Luciano Ramalho Github: github.com/standupdev/paradigm-free Slides: speakerdeck.com/ramalho
English version at the end of this document
English version at the end of this document Ano Letivo 2016-17 Unidade Curricular PROGRAMAÇÃO ORIENTADA POR OBJETOS Cursos ENGENHARIA ELETRÓNICA E TELECOMUNICAÇÕES (Mestrado Integrado) ENGENHARIA INFORMÁTICA
Leia maisMas o que é mesmo Padrão de Projeto?
Mas o que é mesmo Padrão de Projeto? Um Padrão de Projeto descreve uma solução comprovada para um problema recorrente e conhecido no desenvolvimento de software orientado a objetos. Mas afinal, porque
Leia maisRoni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná
Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná Reuso Motivações para reutilização de software Aspecto econômico Produtividade Time to market Qualidade Utilização de artefatos (código,
Leia maisProgramação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação
Última actualização: 25 de Outubro de 2008 Ano Lectivo 2008/2009 1º Semestre ção com Objectos ção Centrada em Objectos Docente: Paulo Leocádio Web: www.uac.pt/~pleocadio E-mail: pleocadio@uac.pt : Competências:
Leia maisArquitectura de Sistemas de Software
Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Arquitectar... Arquitectar uma pequena cabana
Leia maisPadrões de Projeto. Parte 1. Prof. Fellipe Aleixo
Padrões de Projeto Parte 1 Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Padrões de Projeto de Software OO Também conhecidos como Padrões de Projeto de Software OO ou simplesmente como Padrões A Inspiração
Leia maisPadrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson
Padrões de Projeto Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos
Leia maisLinguagens de Programação
Visão Geral Faculdade de Computação - UFU Agosto - 2009 1 Princípios 2 O que é uma linguagem de programação? Linguagens naturais facilitam a expressão e o intercâmbio de idéias entre as pessoas. Assim
Leia maisAnálise e Projeto. Padrões de Análise, Arquitetura e Projeto
Análise e Projeto Padrões de Análise, Arquitetura e Projeto 33 Padrões de Arquitetura Padrões Nome do padrão Problema: quando aplicar o padrão? Descreve o problema e seu contexto. Solução: elementos que
Leia maisIntrodução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Apresentação da Disciplina Edirlei Soares de Lima Objetivos da Disciplina Apresentar e discutir técnicas avançadas de Análise e Projeto de
Leia maisEngenharia de Software
Engenharia de Software Projeto e Implementação Padrões de Projeto Msc. Carlos Mar 04/2014 REVISÃO: ORIENTAÇÃO A OBJETOS Msc. Carlos Mar - Abr/2014 Conceitos Fundamentais Classe Objeto Atributos Métodos
Leia maisSISMO - Sistemas e Mobilidade Departamento de Informática / UFMA. Junho de 2008
Introdução SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Compõem uma disciplina da Engenharia de Software voltada para a resolução de problemas
Leia maisProgramação Orientada a Objetos. Padrões de Criação
Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified
Leia maisPadrões de Desenho (Design Patterns)
Padrões de Desenho (Design Patterns) O que são padrões de desenho Porque são úteis Conhecer alguns padrões 1 Padrões (Patterns) Design Patterns Explained: A New Perspective on Object-Oriented Design, Alan
Leia maisAula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02
Reutilização de Software Aula 13 Aula 01: Apresentação Revisão para Prova 1 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 23 Setembro 2013 Bibliografia Método de avaliação
Leia maisCurso - Padrões de Projeto Módulo 1: Introdução
Curso - Padrões de Projeto Módulo 1: Introdução Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Slides N. 2 E / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO
Leia maisPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC O que são padrões? "Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele
Leia maisGabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes
Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Histórico Desenvolvida em 2012 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman Gratuita, Open Source e licenciada sob a Licença
Leia maisProf.ª Esp. Talita Pagani
Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design
Leia maisTópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico
Reuso de Software Aula 03 Tópicos da Aula POO e Padrões de Projetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 12 Março 2012 Programação orientada a objetos Reuso de
Leia maisAspectos preliminares
Aspectos preliminares Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Introdução Alguns conceitos importantes Orientação a Objetos Alguns conceitos importantes Programação Estruturada X Programação OO Classes Objetos Construtores e Destrutores
Leia maisCommon Object Request Broker Architecture
Common Object Request Broker Architecture OMG: Object Management Group. Organização internacional, sem fins lucrativos, fundada em 1989. Mais de 800 membros (incluindo fabricantes de sistemas, produtores
Leia maisCapítulo 2. Orientação a Objetos
Capítulo 2 Orientação a Objetos Princípios da Orientação a Objetos Os princípios da orientação a objetos afetam todo o processo de desenvolvimento de software: Seres humanos pensam em termos de substantivos
Leia maisMAC Tópicos de P.O.O.
MAC 5715 - Tópicos de P.O.O. Anti-Padrão de Desenvolvimento: Será um padrão? Diego Tarábola tarabola@gmail.com Denise Goya dhgoya@ime.usp.br Historinha-evidência Esta implementação de Singleton [2] faz
Leia maisDesign Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1
Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto
Leia maisPadrões de Arquitetura de Software. Leandro Tonietto Unisinos fev-09
Padrões de Arquitetura de Software Leandro Tonietto ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto Unisinos fev-09 Introdução Padrões de projeto de software descrevem a criação, estruturação
Leia maisProgramação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos
Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa
Leia mais1Introdução Helder da Rocha (helder@acm.org)
J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas
Leia maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Leia maisSERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE
PLANO DE ENSINO Disciplina (INS310008): Análise de Sistemas e UML Professor Responsável: Raul Sidnei Wazlawick Créditos: (02 CRÉDITOS 30HS) Semestre: 2017-2 1. Ementa Geral Introdução a orientação a objetos
Leia maisHistórico de Linguagens de Programação
Bacharelado em Ciência da Computação PARADIGMAS DE PROGRAMAÇÃO Histórico de Linguagens de Programação Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Objetivos Geral: Estudar as características
Leia maisProgramação Estruturada Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisPARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO - PLP
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO - PLP Professor: Rômulo César romulodandrade@gmail.com romulo.andrade@upe.br www.romulocesar.com.br Professor NOME: RÔMULO CÉSAR DIAS DE ANDRADE Mini CV: Doutorando
Leia maisProjeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
Leia maisTécnicas para Reutilização de Software
DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de
Leia maisAula 24 Programação Modular, POO e Padrões de Projeto
Aula 24 Programação Modular, POO e Padrões de Projeto Alessandro Garcia LES/DI/PUC-Rio Junho 2010 Diferenças entre... Módulos (em C) e Classes (Linguagens OO) Classes possuem um operador de instanciação
Leia mais1 Introdução à Programação O que é? Para que serve?... 1
Nesta aula... Conteúdo 1 Introdução à Programação 1 1.1 O que é?................................. 1 1.2 Para que serve?............................. 1 2 Linguagens de programação 2 2.1 Programação estruturada........................
Leia maisJ930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)
Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas
Leia maisComunicado 125 Técnico
Comunicado 125 Técnico ISSN 1677-8464 Dezembro, 2016 Campinas, SP Uso de DSL para implementação de regras de autorização em sistemas de informação na arquitetura Java EE Fonte: http://alissonpedrina.blogspot.com.br
Leia maisMódulo III Padrões GOF: Iterator
Módulo III Padrões GOF: Iterator Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões
Leia maisPOO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos
UEG - Universidade Estadual de Goiás (Câmpus Posse) Disciplina: Análise e Projeto de Sistemas II Turma: 4 Semestre Ano: 2016 Professor: José Ronaldo Leles Júnior O que é? É uma forma de abordar um problema.
Leia maisPadrões de Software (Software Patterns)
Padrões de Software (Software Patterns) Cleidson de Souza - cdesouza@ufpa.br Departamento de Informática Universidade Federal do Pará Agenda! Definição! Histórico! Motivação! Exemplo Estratégia MVC! Forma
Leia maisLaboratório de programação II
Laboratório de programação II Paradigma de orientação a Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Contextualização Paradigma de orientação a Contextualização A construção
Leia maisDELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5
REFLEXÃO 5 Módulos 0782, 0783, 0784 e 0785 1/5 23-05-2013 Esta reflexão tem como objectivo partilhar e dar a conhecer o que aprendi nos módulos 0782 Programação em C/C++ - Estrutura Básica e Conceitos
Leia maisLinguagem de Programação e Compiladores
Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução
Leia maisINF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
Leia maisLicenciatura em Engenharia Multimédia
Licenciatura em Engenharia Multimédia Unidade Curricular Programação de Computadores I Computer Programming I Objetivos -Compreender a linguagem Python e seus fundamentos; -Entender os paradigmas de programação;
Leia maisLINGUAGENS DE PROGRAMAÇÃO PROGRAMA E BIBLIOGRAFIA
LINGUAGENS DE PROGRAMAÇÃO PROGRAMA E BIBLIOGRAFIA Mariza A. S. Bigonha e Roberto S. Bigonha UFMG 13 de setembro de 2004 Todos os direitos reservados Proibida cópia sem autorização do autor OBJETIVOS DO
Leia mais2 Paradigmas de linguagens de programação João B. Rocha- Junior. As linguagens evoluem com o passar do tempo
Agenda Paradigmas de Linguagens de ção joao@ecomp.uefs.br Principais paradigmas de linguagem de programação imperajvo funcional declaração Departamento de Ciências Exatas Universidade Estadual de Feira
Leia maisPython para quem sabe Python
Python para quem sabe Python Turma 0, aula 4 Metaclasses, programação funcional e programação assíncrona Exercício: execucao.py Para entender como o interpretador Python lê um arquivo.py Tudo é executável
Leia maisNotas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
Leia maisAmbientes de Desenvolvimento Avançados
Ambientes de Desenvolvimento Avançados http://www.dei.isep.ipp.pt/~jtavares/adav Aula 1 Engenharia Informática 2006/2007 José António Tavares jrt@isep.ipp.pt 1 Aula de Apresentação e de Introdução 2 1
Leia maisPasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma
Pasteur Ottoni de Miranda Junior Alguns Padrões de Projeto Gamma Padrões Gamma de Projeto(ou Gang-of-Four, gof) Os padrões gof foram publicados por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides
Leia maisOrientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental
Orientação a Objetos (OO) LPG II - Java Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios da Orientação a Objetos
Leia maisAnálise Semântica. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 40
Análise Semântica Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 40 Sumário 1 Conceitos 2 A linguagem Cool 3 Análise semântica Símbolos Tipos
Leia maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisAlgoritmos e Programação
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA
Leia maisProf. Rodrigo Rocha
: sobre : MATA56 - de Linguagens de Programação, UFBA, 2016.1 : sobre : Links interessantes sobre Comparação de sintaxe: http://merd.sourceforge.net/pixel/ language-study/syntax-across-languages/ Programa
Leia maisProgramação orientada a objetos
J100 com Programação orientada a objetos TM SE Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivos Este curso tem como objetivo iniciá-lo em Java... mas não apenas isto Visa também a ajudá-lo
Leia maisPCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 1: Visão Geral
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 1: Visão Geral Escola Politécnica da Universidade de São Paulo Objetivos Conceitos de Orientação a Objetos (OO) Aspectos
Leia maisMinistério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO
Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO CURSO Engenharia Eletrônica MATRIZ FUNDAMENTAÇÃO LEGAL (Resolução do COEPP que aprovou a matriz curricular
Leia maisEncapsulamento e Modularização
Encapsulamento e Modularização Departamento de Computação Universidade Federal de Sergipe Encapsulamento Modularização Tipos Abstratos de Dados (TADs) Objetos Classes Conteúdo Encapsulamento Programação
Leia maisPowered by. Tiago Bockholt
Powered by Tiago Bockholt Sobre Mim Tiago Bockholt (2003.2 2008.2) Graduação em Eng. da Computação (Poli-UPE) 2006.1 Semestre acadêmico na TU-BS. 2006.2 Desenvolvedor na GNS-Systems (Projeto Datafinder).
Leia maisTipos para uma Linguagem de Transformação
Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Proposta de Trabalho de Graduação Tipos para uma Linguagem de Transformação Aluno: Orientador: Alexandra Barreto
Leia maisArquitectura de Sistemas de Software
Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2004/2005 1 Arquitectar... Arquitectar uma pequena cabana
Leia maisLuciano Ramalho setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python
Luciano Ramalho luciano@ramalho.org setembro/2012 Objetos Pythonicos Orientação a objetos e padrões de projeto em Python Aula 3 Variáveis e referências + Iteráveis, iteradores e geradores Objetivos desta
Leia mais2º ANO DA LCC PROGRAMAÇÃO ORIENTADA AOS OBJECTOS USANDO A LINGUAGEM JAVA5
PROGRAMAÇÃO ORIENTADA AOS OBJECTOS 2º ANO DA LCC PROGRAMAÇÃO ORIENTADA AOS OBJECTOS USANDO A LINGUAGEM JAVA5 NOTAS TEÓRICAS Prof. F. Mário Martins fmm@di.uminho.pt Departamento de Informática Universidade
Leia maisWeby - O Gerenciador de Conteúdo Web para IFES
Apresentação Weby - O Gerenciador de Web para IFES Marcello Moura, Nicolas Lazarte, Arthur Guimarães {faraohh,nicolaslazartekaqui,warthur2}@gmail.com UFG Cercomp Equipe Web 10 de maio de 2012 Marcello
Leia maisGrupo: Diogo Furtado Phellipe Perin Stephan Hebeda
Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda INTRODUÇÃO Scala é uma linguagem de programação de propósito geral projetado para expressar padrões de programação comuns de uma forma concisa. Foi desenvolvido
Leia maisMódulo III Padrões GOF
Módulo III Padrões GOF Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Introdução aos
Leia maispdmfc.com/academy pdm/ academy
pdmfc.com/ Na PDMFC acreditamos nas pessoas, no seu valor, no seu talento e sobretudo na sua perseverança e na capacidade de se superarem diariamente. Procuramos pessoas apaixonadas pelo seu trabalho,
Leia maisMINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO
DISCIPLINA: Linguagens de Programação CÓDIGO: 2ECOM.031 Data de Elaboração: Janeiro/2012 Carga Horária: Total: 30 h/a; Semanal: 02 aulas; Créditos: 02 Modalidade: Prática Classificação do Conteúdo pelas
Leia maisLSD LSD PICC. Manuela Sousa
LSD PG AC LIC POO LSD PSC SI AED PICC LS Que os estudantes detenham as competências adquiridas em Programação, nomeadamente: Distinguem entre valores, tipos e variáveis; Sabem construir e usar expressões;
Leia maisDomain Logic Patterns. Pedro Lemos N.º Arquitecturas de Software LEIC
Pedro Lemos N.º 49467 pcml@rnl.ist.utl.pt Arquitecturas de Software 2004 - LEIC Outline da Apresentação 1. Introdução e Motivação de Padrões de Software 2. Padrões Arquitecturais para Aplicações Empresariais
Leia maisESCOLA SUPERIOR TÉCNICA PLANO ANALÍTICO LABORATÓRIO DE INFORMÁTICA III( JAVA) SEMESTRE Nº DE CRÉDITOS
ESCOLA SUPERIOR TÉCNICA PLANO ANALÍTICO LABORATÓRIO DE INFORMÁTICA III( JAVA) NÍVEL REGIME ANO ANO ACADÉMICO SEMESTRE Nº DE CRÉDITOS Nº DE HORAS/SEMANA TOTAL DE HORAS SEMESTRAIS DE CONTACTO DOCENTE 1 Laboral
Leia maisCurso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br
Curso teórico: Orientação a Objetos Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br Objetivos Conhecer os conceitos fundamentais de orientação a objetos; Aprender a criar e utilizar
Leia maisProgramação III 2016/1
Programação III 2016/1 Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Antes de mais
Leia maisTema da aula Introdução ao paradigma de programação: Orientado a Objetos
Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção
Leia maisPADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.
PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?
Leia maisLinguagens de Programação Funcional
Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A
Leia maisTópicos Avançados em Engenharia de Software
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Programa de Pós-Graduação em Ciência da Computação Tópicos Avançados em Engenharia de Software Padrões e Frameworks (Aula 01-
Leia maisRuby Uma Linguagem Atraente
Ruby Uma Linguagem Atraente Marcello Moura Diego Roriz Centro de Recursos Computacionais Katon Agência Digital Universidade Federal de Goiás (UFG) Avenida C-104, Quadra 317, Lote 02, Loja 04 Caixa Postal
Leia maisUm Compilador Em Java Para Fins Didáticos
Universidade de São Paulo Instituto de Matemática e Estatística MAC0499 Trabalho de Formatura Supervisionado Um Compilador Em Java Para Fins Didáticos Iniciação Científica Aluno: Daniel Sguillaro Orientador:
Leia maisCurso SISTEMAS DE INFORMAÇÃO Série 3 Disciplina Análise e Projeto Orientados a Objetos
Curso SISTEMAS DE INFORMAÇÃO Série 3 Disciplina Análise e Projeto Orientados a Objetos Prova A 01)O que é UML (Unified Modeling Language)? Cite pelo menos três exemplos de diagramas Comportamentais e três
Leia maisHerança Tiago Eugenio de Melo
Herança Tiago Eugenio de Melo tiago@comunidadesol.org Herança Conceito: Herança é a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, além de características
Leia maisSemântica de Linguagens de Programação
Semântica de Linguagens de Programação Fabio Mascarenhas - 2011.2 http://www.dcc.ufrj.br/~fabiom/sem Introdução Quais das expressões abaixo têm o mesmo significado? a[42] (vector-ref a 42) a[42] a[42]
Leia maisOrientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)
Orientação a Objetos Parte I Introdução a POO (Programação Orientada a Objetos) Histórico Gerações de Linguagens de Programação Primeira Geração: Linguagem de máquina Segunda Geração: Linguagem de montagem
Leia maisProgramação Orientada a Objeto
Programação Orientada a Objeto Prof Márcio Bueno poonoite@marciobueno.com Ementa Levar o aluno a discutir, exercitar e consolidar o uso de técnicas de programação que tenham um impacto considerável sobre
Leia maisProdutividade e qualidade em Python através da metaprogramação
Produtividade e qualidade em Python através da metaprogramação ou a visão radical na prática Luciano Ramalho ramalho@python.pro.br @ramalhoorg Fluent Python (O Reilly) Early Release: out/2014 First Edition:
Leia maisAbordagem Teórico-Prática
Abordagem Teórico-Prática Prof. Giuliano Prado M. Giglio, M.Sc Desenvolvimento de Aplicações Distribuídas - WEB Agenda Padrão MVC Objetivo Características Problemas e se aplicar o MVC Sistema Exemplo Aplicação
Leia maisPROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO
PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO 1 Módulo 9 - Int. à Programação Orientada a Objectos 2 1. Conceitos básicos A Programação Orientada a Objectos: é uma lógica de programação que procura
Leia mais