Clean Code. Escrevendo código para seres humanos. Rodrigo

Tamanho: px
Começar a partir da página:

Download "Clean Code. Escrevendo código para seres humanos. Rodrigo Rosa @rodrigorosa"

Transcrição

1 Clean Code Escrevendo código para seres humanos Rodrigo

2 Rodrigo

3

4 Mas afinal O que é código limpo?

5 Ward Cunningham co-criador da XP Elegância e eficiência, fazer uma coisa bem feita! Bjarne Stroustrup criador do C++ Fácil para outro desenvolvedor entender e melhorar! Legibilidade, código como leitura de um livro! Dave Thomas co-autor do The Pragmatic Programmer Grady Booch co-criador do UML Escrito por alguém que se importa! Cada rotina faz exatamente o que você espera que ela faça! Michael Feathers escritor e coach

6 Qualquer um consegue escrever código que um computador entende. Bons programadores escrevem código que humanos entendem. (Martin Fowler)

7 Por que é importante escrever bom código? Modelo mental (o problema) Modelo semântico (a solução!) Modelo sintático (o código)

8 Três meses depois

9 Meu código lindo!

10 Quem é o culpado?

11

12 Deixe uma única janela quebrada e

13 Regra do escoteiro "Deixe o campo mais limpo que quando você chegou."

14 Agenda Nomes Funções Comentários Formatação Classes Testes Automatizados

15 Nomes

16 Revelar intenção calcular(int d, int t) calcularvalordeatraso(int dias, int taxa)

17 Evitar desinformação List pagamentoslist = new ArrayList(); Algum tempo depois. Set pagamentoslist = new HashSet();

18 Fazer distinções significativas copy(a, b); copy(source, destination);

19 Evitar redundância Double variablevalorpagar; Double valorpagar; create table PessoasTable( ) create table Pessoas( )

20 Usar nomes: Pronunciáveis: Date genymdhms; Date generationtimestamp;

21 Usar nomes: Procuráveis: String a; int x; //números mágicos total = 7; MAX_FILES_PER_STUDENT = 7;

22 Evitar encoding Notação húngara nvalor; snome; acondicoes; Member prefixes m_valor; _valor;

23 Usar um termo por conceito getpessoas(); fetchpessoas(); retrievepessoas();

24 Classes e métodos Classes devem ser substantivos Pessoa Conta Pagamento Métodos devem ser verbos totalizar() excluir()

25 Parece simples, mas não deixe isso te enganar (Erico Rocha)

26 Funções

27 Regras do Clube das Funções: 1 - Devem ser pequenas! 2 - Devem ser menores!

28 Funções Fazer uma única coisa! DRY - Don't Repeat Yourself SRP - Single Responsibility Principle Número de linhas? Número de indentações?

29 Exemplos de funções pequenas Um nível de abstração por função!

30 Ler o código de cima para baixo Estruturar em níveis Código como uma narrativa Cada função é seguida pelas outras no próximo nível

31 Código como narrativa

32 Parâmetros O ideal é zero! Um é bom! Dois é tolerável! Três? Evitar! Parâmetros do tipo boolean: maybe not Output Parameter: just don't

33 Efeitos colaterais boolean login(string user, String password) { User user = UserRepository.findByName(user); if (user!= null && user.checkpassword(password)) { Session.initialize(); return true; } return false; }

34 Command Query Separation Função deve FAZER algo ou RETORNAR algo Use exceções ao invés de códigos de retorno Não retornar null Não passar null

35 Refinamento Primeira versão da função apenas faz o código funcionar Refinamentos para extrair métodos privados separando responsabilidades, renomear variáveis e métodos Por fim, temos funções curtas, bem nomeadas, organizadas e estruturadas

36 Comentários https://acertandooalvo.files.wordpress.com/2012/07/fofoca.jpg

37

38 Quando comentários são ruins? Quando são redundantes Quando estão desatualizados Quando são desnecessários, gerando sujeira e ruído no código

39

40 Quando compensam código ruim" // verifica se o funcionário tem direito // a todos benefícios if(employee.flags && HOURLY_FLAG) && (employee.age > 65) if(employee.iseligibleforfullbenefits())

41 Melhor refatorar // módulo da lista global depende // do subsistema do qual fazemos parte? if(module.getdependsystems().contains(subsysmod.getsubsystem())){} List dependees = module.getdependsystem(); String oursubsystem = subsysmod.getsubsystem(); if(dependees.contains(oursubsystem)){}

42 Quando comentários são benéficos Intenção ao invés de explicação Alerta sobre consequências TODO Destacar a importância de algo

43 Lembrem-se! Autor e data ficam no controle de versão Documentação somente em APIs públicas Código comentado é código morto!

44

45 Formatação

46 The Open Closed Principle - Uncle Bob 12 May 2014 Craftsmanship In 1988 Bertrand Meyer defined one of the most important principles of software engineering. The Open Closed Principle (OCP). In his book Object Oriented Software Construction[1] he said: A satisfactory modular decomposition technique must satisfy one more requirement: It should yield modules that are both open and closed. A module will be said to be open if it is available for extension. For example, it should be possible to add fields to the data structures it contains, or new elements to the set of functions it performs. A module will be said to be closed if is available for use by other modules. This assumes that the module has been given a well-defined, stable description (the interface in the sense of information hiding). In the case of a programming language module, a closed module is one that may be compiled and stored in a library, for others to use. In the case of a design or specification module, closing a module simply means having it approved by management, adding it to the project's official repository of accepted software items (often called the project baseline), and publishing its interface for the benefit of other module designers. This definition is obviously dated. Nowadays many languages don't require that modules be compiled. And getting module specifications approved by management smacks of a waterfall mentality. Still, the essence of a great principle still shines through those old words. To wit: You should be able to extend the behavior of a system without having to modify that system.

47

48 Metáfora do jornal Lido verticalmente Manchete no topo Sinopse Detalhes

49 Ordenação vertical (de cima para baixo) Espaçamento vertical (parágrafos) Continuidade vertical (associação íntima) Distância vertical (não separar conceitos)

50 Formatação https://github.com/caelum/caelum-stella/blob/master/stella-boleto/src/main/java/br/com/caelum/stella/boleto/utils/stellastringutils.java

51 Padrões internos Padrões da equipe Recursos da IDE Respeito!

52 Classes

53 SOLID Single Responsibility Principle (SRP) Open Closed Principle (OCP) Liskov Substitution Principle (LSP) Interface Segregation Principle (ISP) Dependency Inversion Principle (DIP)

54 Classes Devem ser pequenas! Responsabilidade única

55 Acoplamento "É o grau em que um módulo depende de outro módulo de programação.

56 Coesão "É a medida da força relativa de um módulo"

57 Regras do Clube das Classes: 1. Devem ter baixo acoplamento 2. Devem ter alta coesão

58 Te s te s

59 Três leis 1. Não se deve escrever testes de produção até ter um teste falhando; 2. Não se deve escrever mais que o suficiente para falhar o teste 3. Não se deve escrever mais código de produção que o suficiente para o teste passar

60 Manter os códigos dos testes limpos (padrão construir-operar-verificar) Minimizar o numero de asserts por teste (não necessariamente apenas um) Testar um único conceito por teste

61 Formas de medir a qualidade Testes automatizados Peer review Avaliadores estáticos de código FindBugs, CheckStyle, PMD CodeClimate, RubyCritic

62

63 Reconhecer bom código de mau código não significa que você saiba fazer bom código. (Uncle Bob)

64 Leituras complementares

65 Fontes e referências https://github.com/caelum/caelum-stella/ https://github.com/unclebob

66

67

68

Padrões de Projeto em Desenvolvimento Web SCC 266. Prof. Renata Pontin M. Fortes renata@icmc.usp.br PAE: Willian Watanabe (watinha@gmail.

Padrões de Projeto em Desenvolvimento Web SCC 266. Prof. Renata Pontin M. Fortes renata@icmc.usp.br PAE: Willian Watanabe (watinha@gmail. Padrões de Projeto em Desenvolvimento Web SCC 266 Prof. Renata Pontin M. Fortes renata@icmc.usp.br PAE: Willian Watanabe (watinha@gmail.com) 2.semestre 2010 Instituto de Ciências Matemáticas e de Computação

Leia mais

UML & Padrões. Aula 1 Apresentação. Profª Kelly Christine C. Silva

UML & Padrões. Aula 1 Apresentação. Profª Kelly Christine C. Silva UML & Padrões Aula 1 Apresentação Profª Kelly Christine C. Silva Sistemas para Internet Módulo I - Construção de sites informativos Módulo II - Construção de sites dinâmicos Módulo III - Aplicações para

Leia mais

Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web

Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web O objetivo deste exercício é fornecer uma introdução a criação de uma aplicação composta de modo a ilustrar

Leia mais

Métodos Formais em Engenharia de Software. VDMToolTutorial

Métodos Formais em Engenharia de Software. VDMToolTutorial Métodos Formais em Engenharia de Software VDMToolTutorial Ana Paiva apaiva@fe.up.pt www.fe.up.pt/~apaiva Agenda Install Start Create a project Write a specification Add a file to a project Check syntax

Leia mais

Práticas de desenvolvimento aplicadas na automação de testes com Selenium Robson Bittencourt #gutsrs

Práticas de desenvolvimento aplicadas na automação de testes com Selenium Robson Bittencourt #gutsrs Práticas de desenvolvimento aplicadas na automação de testes com Selenium Robson Bittencourt #gutsrs /@gutsrs Programação 19h15 às 19h45 Recepção, boas vindas e Coffee para integração 19h45 às 19h55 Abertura

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

Leia mais

Notas de Aula 04: Casos de uso de um sistema

Notas de Aula 04: Casos de uso de um sistema Notas de Aula 04: Casos de uso de um sistema Objetivos da aula: Aprender os elementos básicos da modelagem por casos de uso Utilizar as associações entre casos de uso, atores e demais artefatos Compreender

Leia mais

Boas Práticas de Programação

Boas Práticas de Programação Boas Práticas de Programação João Arthur Brunet Monteiro Mestrando em Informática - COPIN 25/10/2008 João Arthur Brunet Monteiro 1/ 27 Roteiro Introdução 1 Introdução Objetivos Contextualização 2 Práticas

Leia mais

Java SE 8 Programmer I: O guia para sua certificação Oracle Certified Associate (Portuguese Edition)

Java SE 8 Programmer I: O guia para sua certificação Oracle Certified Associate (Portuguese Edition) Java SE 8 Programmer I: O guia para sua certificação Oracle Certified Associate (Portuguese Edition) Guilherme Silveira, Mário Amaral Click here if your download doesn"t start automatically Java SE 8 Programmer

Leia mais

Tópicos de Orientação a Objetos

Tópicos de Orientação a Objetos Capítulo 3 Tópicos de Orientação a Objetos Um bom design de software visa a uma arquitetura flexível que permita futuras alterações, facilite a produção de código organizado e legível, maximizando seu

Leia mais

User Guide Manual de Utilizador

User Guide Manual de Utilizador 2400 DPI OPTICAL GAMING MOUSE User Guide Manual de Utilizador 2014 1Life Simplify it All rights reserved. www.1-life.eu 2 2400 DPI OPTICAL GAMING MOUSE ENGLISH USER GUIDE...4 MANUAL DE UTILIZADOR PORTUGUÊS...18

Leia mais

Psicologia social contemporânea: Livro-texto (Portuguese Edition)

Psicologia social contemporânea: Livro-texto (Portuguese Edition) Psicologia social contemporânea: Livro-texto (Portuguese Edition) Marlene Neves Strey, Pedrinho A. Guareschi, Maria da Graça Corrêa Jacques, Sérgio Antônio Carlos, Nara Maria G. Bernardes, Tania Mara Galli

Leia mais

Bíblia de Estudo Conselheira - Gênesis: Acolhimento Reflexão Graça (Portuguese Edition)

Bíblia de Estudo Conselheira - Gênesis: Acolhimento Reflexão Graça (Portuguese Edition) Bíblia de Estudo Conselheira - Gênesis: Acolhimento Reflexão Graça (Portuguese Edition) Sociedade Bíblica do Brasil Click here if your download doesn"t start automatically Download and Read Free Online

Leia mais

Padrões de Codificação Java

Padrões de Codificação Java Padrões de Codificação Java João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 1.0 Última Atualização: Março / 2005 1 Objetivos Apresentar os padrões de codificação Java da SUN 2 Introdução Um padrão

Leia mais

Descrição de Arquitectura e Design. SyncMasters

Descrição de Arquitectura e Design. SyncMasters 1 Descrição de Arquitectura e Design SyncMasters ConfiKeeper Version 2.0, 16-11-2014 by SyncMasters: Carlos Paiva, 2009108909, cpaiva@student.dei.uc.pt Inês Parente, 2012152484, iparente@student.dei.uc.pt

Leia mais

Da Emoção à Lesão: um Guia de Medicina Psicossomática (Portuguese Edition)

Da Emoção à Lesão: um Guia de Medicina Psicossomática (Portuguese Edition) Da Emoção à Lesão: um Guia de Medicina Psicossomática (Portuguese Edition) Geraldo José Ballone, Ida Vani Ortolani, Eurico Pereira Neto Click here if your download doesn"t start automatically Download

Leia mais

Estratégias de Escrita de Testes Automatizados

Estratégias de Escrita de Testes Automatizados Estratégias de Escrita de Testes Automatizados Paulo Cheque 12/02/2009 Verão 2009 2 Sobre a Palestra Refatoração TAD TFD/POUT TDD BDD Padrões e Anti padrões 3 (Refatoração) Uma modificação feita em pequenos

Leia mais

Como deixar seus cabelos lindos e saudáveis (Coleção Beleza) (Portuguese Edition)

Como deixar seus cabelos lindos e saudáveis (Coleção Beleza) (Portuguese Edition) Como deixar seus cabelos lindos e saudáveis (Coleção Beleza) (Portuguese Edition) Edições Lebooks Click here if your download doesn"t start automatically Como deixar seus cabelos lindos e saudáveis (Coleção

Leia mais

Introdução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura

Introdução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura Introdução ao TDD #guma10anos Abril de 2014 Dionatan Moura about.me/dionatanmoura Introdução ao TDD Extreme Programming TDD Refatoração xunit Baby Steps Clean Code Patterns para TDD Red Bar Test Green

Leia mais

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition)

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition) Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition) Ricardo De Moraes / André Luís De Souza Silva Click here if your download doesn"t start automatically Introdução A Delphi Com Banco

Leia mais

Técnicas de Database Refactoring para ambientes 24x7. Matheus de Oliveira

Técnicas de Database Refactoring para ambientes 24x7. Matheus de Oliveira <matheus.oliveira@dextra.com.br> Técnicas de Database Refactoring para ambientes 24x7 Matheus de Oliveira Matheus de Oliveira DBA PostgreSQL consultorias e suportes 24x7/8x5

Leia mais

5/10/10. Implementação. Building web Apps. Server vs. client side. How to create dynamic contents?" Client side" Server side"

5/10/10. Implementação. Building web Apps. Server vs. client side. How to create dynamic contents? Client side Server side 5/10/10 Implementação Mestrado em Informática Universidade do Minho! 6! Building web Apps How to create dynamic contents?" Client side" Code runs on the client (browser)" Code runs on a virtual machine

Leia mais

A oração de Jabez: Alcançando a bênção de Deus (Portuguese Edition)

A oração de Jabez: Alcançando a bênção de Deus (Portuguese Edition) A oração de Jabez: Alcançando a bênção de Deus (Portuguese Edition) Bruce Wilkinson Click here if your download doesn"t start automatically A oração de Jabez: Alcançando a bênção de Deus (Portuguese Edition)

Leia mais

Laboratório 3. Base de Dados II 2008/2009

Laboratório 3. Base de Dados II 2008/2009 Laboratório 3 Base de Dados II 2008/2009 Plano de Trabalho Lab. 3: Programação em Transact-SQL MYSQL Referências www.mysql.com MICROSOFT SQL SERVER - Procedimentos do Lado do Servidor (Stored Procedures)

Leia mais

Aqui pode escolher o Sistema operativo, e o software. Para falar, faça download do Cliente 2.

Aqui pode escolher o Sistema operativo, e o software. Para falar, faça download do Cliente 2. TeamSpeak PORTUGUES ENGLISH Tutorial de registo num servidor de TeamSpeak Registration tutorial for a TeamSpeak server Feito por [WB ].::B*A*C*O::. membro de [WB ] War*Brothers - Non Dvcor Dvco Made by:

Leia mais

Microsoft Visual Studio Express 2012 for Windows Desktop

Microsoft Visual Studio Express 2012 for Windows Desktop Microsoft Visual Studio Express 2012 for Windows Desktop Apresentação da ferramenta Professor: Danilo Giacobo Página pessoal: www.danilogiacobo.eti.br E-mail: danilogiacobo@gmail.com 1 Introdução Visual

Leia mais

Intangíveis: O Lado Oculto da Gestão Empresarial (Portuguese Edition)

Intangíveis: O Lado Oculto da Gestão Empresarial (Portuguese Edition) Intangíveis: O Lado Oculto da Gestão Empresarial (Portuguese Edition) Sérgio Leal Caldas Click here if your download doesn"t start automatically Intangíveis: O Lado Oculto da Gestão Empresarial (Portuguese

Leia mais

Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition)

Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition) Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition) Cyro César Click here if your download doesn"t start automatically Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition)

Leia mais

Gestão da comunicação - Epistemologia e pesquisa teórica (Portuguese Edition)

Gestão da comunicação - Epistemologia e pesquisa teórica (Portuguese Edition) Gestão da comunicação - Epistemologia e pesquisa teórica (Portuguese Edition) Maria Cristina Castilho Costa, Maria Aparecida Baccega Click here if your download doesn"t start automatically Download and

Leia mais

Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis. OWASP Education Project. The OWASP Foundation http://www.owasp.org

Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis. OWASP Education Project. The OWASP Foundation http://www.owasp.org Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis Education Project Rafael Dreher Porto Alegre Chapter - Co-founder Security Consultant @ Dell dreher@owasp.org Copyright 2007 The Foundation

Leia mais

Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil)

Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil) Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil) Click here if your download doesn"t start automatically Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil) Farmacologia na Pratica

Leia mais

Evolução de Software e Refatoração

Evolução de Software e Refatoração Evolução de Software e Refatoração Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software é usado; O ambiente de negócio muda; Erros devem ser reparados; Novos computadores

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

RODA: A Service-Oriented Digital Repository

RODA: A Service-Oriented Digital Repository RODA: A Service-Oriented Digital Repository Database Archiving José Carlos Ramalho jcr@keep.pt José Carlos Ramalho jcr@di.uminho.pt Dep. of Informatics University of Minho 1 Context RODA (2006-2009) Metadata

Leia mais

Biscuit - potes (Coleção Artesanato) (Portuguese Edition)

Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Regina Panzoldo Click here if your download doesn"t start automatically Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Regina Panzoldo

Leia mais

GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE EDITION) BY VICENTE FALCONI

GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE EDITION) BY VICENTE FALCONI Read Online and Download Ebook GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE EDITION) BY VICENTE FALCONI DOWNLOAD EBOOK : GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE Click link bellow and free register to

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

Farmácia Homeopática: Teoria e Prática (Portuguese Edition)

Farmácia Homeopática: Teoria e Prática (Portuguese Edition) Farmácia Homeopática: Teoria e Prática (Portuguese Edition) Olney Leite Fontes Click here if your download doesn"t start automatically Farmácia Homeopática: Teoria e Prática (Portuguese Edition) Olney

Leia mais

Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition)

Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition) Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition) Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition) Médico há mais de vinte anos e meditador há mais tempo ainda,

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ. Documentação Key Organizer Projeto realizado para a disciplina de Resolução de Problemas em Engenharia

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ. Documentação Key Organizer Projeto realizado para a disciplina de Resolução de Problemas em Engenharia PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ Documentação Key Organizer Projeto realizado para a disciplina de Resolução de Problemas em Engenharia CURITIBA Novembro de 2012 Carlo Nery de Lima Moro João

Leia mais

Usando o Google Code como repositório para projetos no Eclipse com SubClipse.

Usando o Google Code como repositório para projetos no Eclipse com SubClipse. Usando o Google Code como repositório para projetos no Eclipse com SubClipse. Autor: Rafael Oliveira Lopes http://www.dcc.ufrj.br/~rlopes Data: 02 de Junho de 2007 Introdução Senhores, Diante de alguns

Leia mais

UML Linguagem de Modelagem Unificada

UML Linguagem de Modelagem Unificada Modelagem de Sistemas UML Linguagem de Modelagem Unificada Prof. Mauro Lopes 1-25 Objetivos Nesta aula iremos apresentar os elementos conceituais da Linguagem de Modelagem Unificada (UML). Boa aula a todos.

Leia mais

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS RESUMO Este artigo apresenta a especificação de um sistema gerenciador de workflow, o ExPSEE, de acordo com a abordagem de desenvolvimento baseado

Leia mais

Modelagem de Processos com BPMN (2ª edição) (Portuguese Edition)

Modelagem de Processos com BPMN (2ª edição) (Portuguese Edition) Modelagem de Processos com BPMN (2ª edição) (Portuguese Edition) André L. N. Campos Click here if your download doesn"t start automatically Modelagem de Processos com BPMN (2ª edição) (Portuguese Edition)

Leia mais

O essencial do comando mysqladmin, através de 18 exemplos

O essencial do comando mysqladmin, através de 18 exemplos O essencial do comando mysqladmin, através de 18 exemplos Elias Praciano O mysqladmin é uma ferramenta de linha de comando que vem junto com a instalação do servidor MySQL e é usada por administradores

Leia mais

Introdução ao Design

Introdução ao Design Introdução ao Design João Arthur e Guilherme Germoglio Coordenação de Pós-graduação em Informática - COPIN 16/10/2008 João Arthur e Guilherme Germoglio 1/ 33 Roteiro 1 Introdução Objetivos 2 Definições

Leia mais

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

Slides_Java_1 !$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code. Slides_Java_1!"#$!" $ % & $ Sistemas Informáticos I, 2005/2006 ( Java source code Compile javac Java bytecode Run java Output:!"#) %& Name of program. Must be the same as name of file.!"#$!"$ % & $ Where

Leia mais

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition)

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition) Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition) Ricardo De Moraes / André Luís De Souza Silva Click here if your download doesn"t start automatically Introdução A Delphi Com Banco

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição

Leia mais

Biscuit - potes (Coleção Artesanato) (Portuguese Edition)

Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Regina Panzoldo Click here if your download doesn"t start automatically Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Regina Panzoldo

Leia mais

Como testar componentes eletrônicos - volume 1 (Portuguese Edition)

Como testar componentes eletrônicos - volume 1 (Portuguese Edition) Como testar componentes eletrônicos - volume 1 (Portuguese Edition) Renato Paiotti Newton C. Braga Click here if your download doesn"t start automatically Como testar componentes eletrônicos - volume 1

Leia mais

a. A plataforma recomendada é Web, com arquitetura Microsoft.Net; b. A linguagem recomendada para codificação de Sistemas de Informações é C#;

a. A plataforma recomendada é Web, com arquitetura Microsoft.Net; b. A linguagem recomendada para codificação de Sistemas de Informações é C#; 1. OBJETIVO O objetivo deste documento é definir as normas e os padrões que deverão ser adotados pelos desenvolvedores da equipe interna e externa (fornecedores) que venham a desenvolver soluções de software

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Tutorial Moodle Visão do Aluno

Tutorial Moodle Visão do Aluno Tutorial Moodle Visão do Aluno A P R E S E N T A Ç Ã O A sigla MOODLE significa (Modular Object Oriented Dynamic Learning Environment), em inglês MOODLE é um verbo que descreve a ação ao realizar com gosto

Leia mais

Um olhar que cura: Terapia das doenças espirituais (Portuguese Edition)

Um olhar que cura: Terapia das doenças espirituais (Portuguese Edition) Um olhar que cura: Terapia das doenças espirituais (Portuguese Edition) Padre Paulo Ricardo Click here if your download doesn"t start automatically Um olhar que cura: Terapia das doenças espirituais (Portuguese

Leia mais

Remuneração, Benefícios e Relações de Trabalho: Como Reter Talentos na Organização (Série Recursos Humanos) (Portuguese Edition)

Remuneração, Benefícios e Relações de Trabalho: Como Reter Talentos na Organização (Série Recursos Humanos) (Portuguese Edition) Remuneração, Benefícios e Relações de Trabalho: Como Reter Talentos na Organização (Série Recursos Humanos) (Portuguese Edition) Idalberto Chiavenato Click here if your download doesn"t start automatically

Leia mais

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company www.iportalmais.pt. Manual

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company www.iportalmais.pt. Manual IPortalMais: a «brainware» company FUNAMBOL FOR IPBRICK MANUAL Easy Linux! Title: Subject: Client: Reference: Funambol Client for Mozilla Thunderbird Doc.: Jose Lopes Author: N/Ref.: Date: 2009-04-17 Rev.:

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software Ciência da Computação ENGENHARIA DE SOFTWARE Análise dos Requisitos de Software Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução Tipos de requisitos Atividades Princípios da

Leia mais

Programas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos

Programas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos OO -Objetos, classes, atributos, métodos, estado, comportamento e identidade (Slide) Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Programas eram lineares e com poucos

Leia mais

Minhas lembranças de Leminski (Portuguese Edition)

Minhas lembranças de Leminski (Portuguese Edition) Minhas lembranças de Leminski (Portuguese Edition) Domingos Pellegrini Click here if your download doesn"t start automatically Minhas lembranças de Leminski (Portuguese Edition) Domingos Pellegrini Minhas

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos

Leia mais

Antonio Moreira Franco Junior. Click here if your download doesn"t start automatically

Antonio Moreira Franco Junior. Click here if your download doesnt start automatically Ensino da Contabilidade Introdutória: Uma análise do ensino nos cursos de Ciências Contábeis das Instituições de Ensino Superior do Estado de São Paulo (Portuguese Edition) Antonio Moreira Franco Junior

Leia mais

Meu Filho é Alérgico! E Agora? (Portuguese Edition)

Meu Filho é Alérgico! E Agora? (Portuguese Edition) Meu Filho é Alérgico! E Agora? (Portuguese Edition) Lucimara Da Cunha Corbo Click here if your download doesn"t start automatically Meu Filho é Alérgico! E Agora? (Portuguese Edition) Lucimara Da Cunha

Leia mais

Direito Processual Civil (Coleção Sucesso Concursos Públicos e OAB) (Portuguese Edition)

Direito Processual Civil (Coleção Sucesso Concursos Públicos e OAB) (Portuguese Edition) Direito Processual Civil (Coleção Sucesso Concursos Públicos e OAB) (Portuguese Edition) Marina Vezzoni Click here if your download doesn"t start automatically Direito Processual Civil (Coleção Sucesso

Leia mais

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP extreme Programming extreme Programming (XP) Metodologia ágil para equipes pequenas a médias desenvolvendo software com requesitos vagos ou que mudam freqüentemente. [Beck 2000] Em XP, codificação é principal

Leia mais

Conceitos e Benefícios do Test Driven Development

Conceitos e Benefícios do Test Driven Development Conceitos e Benefícios do Test Driven Development Eduardo N. Borges Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 91.501-970 Porto Alegre RS Brazil enborges@inf.ufrgs.br

Leia mais

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014 Aula 06 Introdução à Teste de Módulos II e Exercícios Alessandro Garcia LES/DI/PUC-Rio Março 2014 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração similarmente: cada função

Leia mais

Vem, Espírito Criador!: Meditações sobre o Veni creator (Portuguese Edition)

Vem, Espírito Criador!: Meditações sobre o Veni creator (Portuguese Edition) Vem, Espírito Criador!: Meditações sobre o Veni creator (Portuguese Edition) Raniero Cantalamessa Click here if your download doesn"t start automatically Vem, Espírito Criador!: Meditações sobre o Veni

Leia mais

As 100 melhores piadas de todos os tempos (Portuguese Edition)

As 100 melhores piadas de todos os tempos (Portuguese Edition) As 100 melhores piadas de todos os tempos (Portuguese Edition) Click here if your download doesn"t start automatically As 100 melhores piadas de todos os tempos (Portuguese Edition) As 100 melhores piadas

Leia mais

TCP/IP - NÍVEL APLICAÇÃO (utilizador)

TCP/IP - NÍVEL APLICAÇÃO (utilizador) Protocolos de Aplicação (Telnet, FTP, SMTP, POP, HTTP) TCP/IP - NÍVEL APLICAÇÃO (utilizador) TCP UDP ICMP IP ARP Acesso à rede Secção de Redes de Comunicação de Dados Redes de Computadores Correio Electrónico

Leia mais

Engenharia de Software

Engenharia de Software Tema da Aula A Modelagem e os Métodos em Prof. Cristiano R R Portella portella@widesoft.com.br Modelos em Abstração Um modelo é uma abstração de um objeto ou fenômeno sob um determinado ponto de vista

Leia mais

Voyager 1202g. Guia Rápido de Instalação. Leitor laser sem fio de feixe único. VG1202-BP-QS Rev A 10/11

Voyager 1202g. Guia Rápido de Instalação. Leitor laser sem fio de feixe único. VG1202-BP-QS Rev A 10/11 Voyager 1202g Leitor laser sem fio de feixe único Guia Rápido de Instalação VG1202-BP-QS Rev A 10/11 Nota: Consulte o guia do usuário para obter informações sobre a limpeza do dispositivo. Introdução Desligue

Leia mais

Programação Funcional. Capítulo 13. Mônadas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2013.

Programação Funcional. Capítulo 13. Mônadas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2013. Programação Funcional Capítulo 13 Mônadas José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.1 1/42 1 Mônadas 2 Entrada e saída 3 Expressão do 4 Computações que podem

Leia mais

Serviços: API REST. URL - Recurso

Serviços: API REST. URL - Recurso Serviços: API REST URL - Recurso URLs reflectem recursos Cada entidade principal deve corresponder a um recurso Cada recurso deve ter um único URL Os URLs referem em geral substantivos URLs podem reflectir

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Pesquisa sobre código limpo (clean code) 09-05-2014 Por: Tarik Boschi http://boschi.com.br

Pesquisa sobre código limpo (clean code) 09-05-2014 Por: Tarik Boschi http://boschi.com.br Pesquisa sobre código limpo (clean code) 09-05-2014 Por: Tarik Boschi http://boschi.com.br 1. QUESTIONÁRIO O presente questionário foi disponibilizado para o levantamento sobre práticas de código limpo

Leia mais

Livro do Desassossego

Livro do Desassossego Livro do Desassossego Fernando Pessoa Click here if your download doesn"t start automatically Livro do Desassossego Fernando Pessoa Livro do Desassossego Fernando Pessoa [...] Download Livro do Desassossego...pdf

Leia mais

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

Versão: 1.0. Segue abaixo, os passos para o processo de publicação de artigos que envolvem as etapas de Usuário/Autor. Figura 1 Creating new user.

Versão: 1.0. Segue abaixo, os passos para o processo de publicação de artigos que envolvem as etapas de Usuário/Autor. Figura 1 Creating new user. Órgão: Ministry of Science, Technology and Innovation Documento: Flow and interaction between users of the system for submitting files to the periodicals RJO - Brazilian Journal of Ornithology Responsável:

Leia mais

Receitas na Pressão - Vol. 01: 50 Receitas para Panela de Pressão Elétrica (Portuguese Edition)

Receitas na Pressão - Vol. 01: 50 Receitas para Panela de Pressão Elétrica (Portuguese Edition) Receitas na Pressão - Vol. 01: 50 Receitas para Panela de Pressão Elétrica (Portuguese Edition) Click here if your download doesn"t start automatically Receitas na Pressão - Vol. 01: 50 Receitas para Panela

Leia mais

A necessidade da oração (Escola da Oração) (Portuguese Edition)

A necessidade da oração (Escola da Oração) (Portuguese Edition) A necessidade da oração (Escola da Oração) (Portuguese Edition) Click here if your download doesn"t start automatically A necessidade da oração (Escola da Oração) (Portuguese Edition) A necessidade da

Leia mais

A Vivência do Evangelho Segundo o Espiritismo (Portuguese Edition)

A Vivência do Evangelho Segundo o Espiritismo (Portuguese Edition) A Vivência do Evangelho Segundo o Espiritismo (Portuguese Edition) Edison de Oliveira Click here if your download doesn"t start automatically A Vivência do Evangelho Segundo o Espiritismo (Portuguese Edition)

Leia mais

MONITORAMENTO REMOTO DO CONSUMO DE ÁGUA UTILIZANDO SOFTWARE DE INTERFACE HOMEM-MÁQUINA - HIDROAER

MONITORAMENTO REMOTO DO CONSUMO DE ÁGUA UTILIZANDO SOFTWARE DE INTERFACE HOMEM-MÁQUINA - HIDROAER MONITORAMENTO REMOTO DO CONSUMO DE ÁGUA UTILIZANDO SOFTWARE DE INTERFACE HOMEM-MÁQUINA - HIDROAER Alex Lage de Morais 1 ; Wilson Cabral de Sousa Jr. 2 ;Elaine Nolasco Ribeiro 3 RESUMO - Uma parte do projeto

Leia mais

Bíblia da Família - Nova Tradução na Linguagem de Hoje: Estudos de Jaime e Judith Kemp (Portuguese Edition)

Bíblia da Família - Nova Tradução na Linguagem de Hoje: Estudos de Jaime e Judith Kemp (Portuguese Edition) Bíblia da Família - Nova Tradução na Linguagem de Hoje: Estudos de Jaime e Judith Kemp (Portuguese Edition) Jaime Kemp, Judith Kemp, Sociedade Bíblica do Brasil Click here if your download doesn"t start

Leia mais

Addition of Fields in Line Item Display Report Output for TCode FBL1N/FBL5N

Addition of Fields in Line Item Display Report Output for TCode FBL1N/FBL5N Addition of Fields in Line Item Display Report Output for TCode FBL1N/FBL5N Applies to: Any business user who uses the transactions FBL1N and FBL5N to display line item reports for vendors and customers.

Leia mais

Você sabe fazer perguntas em Inglês? Em primeiro lugar observe as frases abaixo: Afirmativo: Ele é estudante Interrogativo: Ele é estudante?

Você sabe fazer perguntas em Inglês? Em primeiro lugar observe as frases abaixo: Afirmativo: Ele é estudante Interrogativo: Ele é estudante? Do you know how to ask questions in English? Você sabe fazer perguntas em Inglês? Em primeiro lugar observe as frases abaixo: Afirmativo: Ele é estudante Interrogativo: Ele é estudante? Note que tanto

Leia mais

Planejamento de comunicação integrada (Portuguese Edition)

Planejamento de comunicação integrada (Portuguese Edition) Planejamento de comunicação integrada (Portuguese Edition) Click here if your download doesn"t start automatically Planejamento de comunicação integrada (Portuguese Edition) Planejamento de comunicação

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

A Evolução de XP segundo Kent Beck Parte 2

A Evolução de XP segundo Kent Beck Parte 2 A Evolução de XP segundo Kent Beck Parte 2 O que mudou nesses 5 anos? Danilo Toshiaki Sato dtsato@ime.usp.br Agenda PARTE 1 1. Introdução 2. O que é XP? 3. O que mudou em XP? Valores, Princípios e Práticas

Leia mais

Histologia e Biologia Celular (Portuguese Edition)

Histologia e Biologia Celular (Portuguese Edition) Histologia e Biologia Celular (Portuguese Edition) Abraham L Kierszenbaum, Laura Tres Histologia e Biologia Celular (Portuguese Edition) Abraham L Kierszenbaum, Laura Tres Novas características foram introduzidas

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications) A boa organização lógica do documento

Leia mais

O som dos acordes (Portuguese Edition)

O som dos acordes (Portuguese Edition) O som dos acordes (Portuguese Edition) Lulu Martin Click here if your download doesn"t start automatically O som dos acordes (Portuguese Edition) Lulu Martin O som dos acordes (Portuguese Edition) Lulu

Leia mais

Práticas de Desenvolvimento de Software

Práticas de Desenvolvimento de Software Aula 3. 09/03/2015. Práticas de Desenvolvimento de Software Aula 3 - Introdução à linguagem de programação Ruby Oferecimento Ruby (1) Ruby Ruby (2) Ruby Linguagem de programação dinâmica, de código aberto,

Leia mais