Clean Code. Escrevendo código para seres humanos. Rodrigo
|
|
- Maria da Assunção Almada Vilalobos
- 8 Há anos
- Visualizações:
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
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
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
66
67
68
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 maisPadrõ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 maisNotas 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 maisPrá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 maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia maisUsando 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 maisOrganizaçã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 maisOrientação a Objetos. Fernando Camargo 5 de junho de 2017
Orientação a Objetos Fernando Camargo 5 de junho de 2017 ZG Soluções Por que um tema tão básico? Por que um tema tão básico? 1 Vantagens da Qualidade de Código Tempo gasto com código de má qualidade Features
Leia maisBANCO 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 maisUML & 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 maisRepeater no GASweb. Regiões
Repeater no GASweb Por: Rodrigo Silva O controle de servidor Repeater é um container básico que permite a você criar uma lista de qualquer informação que deseja em uma página Web. Ele não tem uma aparência
Leia maisMé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 maisIntroduçã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 maisANÁ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 maisIntroduçã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 maisATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS
ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o
Leia maisRelacionamentos 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 maisAula 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 maisDescriçã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 maisCódigo Limpo. Curso de Verão IME/USP Hugo Corbucci
Código Limpo Curso de Verão 2010 - IME/USP www.agilcoop.org.br Hugo Corbucci Introdução A única métrica válida de qualidade de código: VSFs/min Código bom Código ruim 2 Introdução Você sabe que está trabalhando
Leia maisCiê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 mais4.1. UML Diagramas de casos de uso
Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema
Leia maisLógica de Programação
Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE
Leia maisAutoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre
Leia maisTó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 maisGuia 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 maisUsando o do-file editor Automatizando o Stata
Usando o do-file editor Automatizando o Stata 1 O QUE É O EDITOR DE DO-FILE O Stata vem com um editor de texto integrado, o do-file editor (editor de do-files, em português), que pode ser usado para executar
Leia maisTutorial 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 maisGuia para Escolha de Fotos no PSG Request
Gui apar aescol hadefot os com opsg Request Manualdousuár i ofi nal DLL System Guia para Escolha de Fotos no PSG Request Como escolher as fotos do CD ou DVD que você recebeu de seu Fotógrafo Suporte Técnico
Leia maisSistema de Gestão Sa&M
Sistema de Gestão Sa&M Copyright 2008-2012 MediaWorks Sistemas de Informática LTDA. This document contains confidential and proprietary information of MediaWorks Sistemas de Informática LTDA. and may be
Leia maisMODELAGEM DE SISTEMA Apresentação
MODELAGEM DE SISTEMA Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Apresentação da Disciplina Apresentação da Disciplina Apresentação da Disciplina
Leia maisOs 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 maisDESENVOLVIMENTO 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 maisJSP - ORIENTADO A OBJETOS
JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...
Leia maisProgramaçã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 maisPrá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 maisMicrosoft Access: Criar relatórios para um novo banco de dados. Vitor Valerio de Souza Campos
Microsoft Access: Criar relatórios para um novo banco de dados Vitor Valerio de Souza Campos Conteúdo do curso Visão geral: O produto final Lição: Inclui oito seções Tarefas práticas sugeridas Teste Visão
Leia maisUser 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 maisEm 2 minutos de leitura você aprenderá facilmente a: Montar seu perfil Buscar colaboradores e comunidades Utilizar recursos
GUIA RÁPIDO Em 2 minutos de leitura você aprenderá facilmente a: Montar seu perfil Buscar colaboradores e comunidades Utilizar recursos 1º ACESSO Em conecta.estacio.br Coloque sua senha e login (não é
Leia maisTrabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011
Leia maisUML 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 maisO que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?
O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação
Leia maisCurso de atualização Educação Integral e Integrada. Tutorial Moodle. Belo Horizonte, 2013.
Curso de atualização Educação Integral e Integrada Tutorial Moodle Belo Horizonte, 2013. 1. INTRODUÇÃO... 3 2. ACESSANDO O AMBIENTE... 4 3. CONHECENDO O AMBIENTE... 5 3.1. CAIXAS DE UTILIDADES... 5 4.
Leia maisAqui 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 maisTDD Desenvolvimento Guiado por Testes (Portuguese Edition) Kent Beck
TDD Desenvolvimento Guiado por Testes (Portuguese Edition) Kent Beck TDD Desenvolvimento Guiado por Testes (Portuguese Edition) Kent Beck Este livro ilustra com exemplos práticos e reais como codificar
Leia maisÍndice: Nitgen do Brasil www.nitgen.com.br
Índice: CAPÍTULO 3. PROGRAMAÇÃO EM DELPHI...2 3.1 INICIALIZANDO E FECHANDO O MÓDULO...2 3.1.1 Inicializando o módulo...2 3.1.2 Fechar o módulo após o uso...2 3.2 RELACIONANDO OS SENSORES NA PROGRAMAÇÃO...2
Leia maisA 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 maisAnálise e Projeto de Software
Análise e Projeto de Software 1 Mundo Real Modelagem Elicitação Análise Problemas Soluções Gap Semântico Mundo Computacional Elicitação de Requisitos Análise de Requisitos Modelagem dos Requisitos 2 Projeto
Leia maisEspecificação do Trabalho Prático
Especificação do Trabalho Prático O professor Thomas é um homem muito ocupado. Tem, em sua agenda, uma série de compromissos que ele deve atender em 2009. De tantos compromissos que tem, resolveu contratar
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem
Leia maisLOGs e ALERTAS de DESEMPENHO
LOGs e ALERTAS de DESEMPENHO Servem para Coletar automaticamente dados de desempenho de computadores locais ou remotos e ainda visualizar os dados de contador registrados em log usando o Monitor do sistema,
Leia maisEstraté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 maisUML 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 maisResolução de problemas e desenvolvimento de algoritmos
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de
Leia maisProcesso de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br
Processo de Desenvolvimento de Software nelmarpg@yahoo.com.br 1 Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)
Leia maisCriando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011
Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL
Leia maisUML: Casos de Uso. Projeto de Sistemas de Software
UML: Casos de Uso Projeto de Sistemas de Software UML Casos de Uso Introdução Casos de uso Elementos do diagrama de casos de uso Descrição de casos de uso Exemplo: Blog Ferramentas de modelagem Bibliografia
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisPOO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Leia maisTé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 maisDiagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)
Diagrama de Classes Diagrama de Classes Modelo de classes de especificação Perspectiva de Projeto Ilustra as especificações de software para as classes e interfaces do sistema. É obtido através da adição
Leia maisData Transformation Services (DTS) por Anderson Ferreira Souza
Data Transformation Services (DTS) por Anderson Ferreira Souza O Sql Server possui um recurso extremamente poderoso que é muito pouco utilizado pelos administradores e programadores. Com certeza, sendo
Leia maisAJAX no GASweb. Mas e afinal, para que usamos o AJAX?
Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente
Leia mais5/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 maisO código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.
1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente
Leia maisAULA: BrOffice Impress terceira parte. Ao final dessa aula, você deverá ser capaz de:
AULA: BrOffice Impress terceira parte Objetivo Ao final dessa aula, você deverá ser capaz de: Conhecer a integração dos softwares do BrOffice; Aprender a trabalhar no slide mestre; Utilizar interação entre
Leia maisUniversidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação. Lucas Nunes Paim lucaspaim@pet-si.ufrrj.br
Universidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação Lucas Nunes Paim lucaspaim@pet-si.ufrrj.br Aula 1 1. Introdução O que é Python? Por que usar Python? 2. Instalação 3. Variáveis 4.
Leia maisIniciando o MySQL Query Brower
MySQL Query Brower O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico. Assim como o MySQL Administrator foi criado
Leia maisBoas 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 maisAluísio Eustáquio da Silva
1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que
Leia maisVersionamento de Código. Núcleo de Desenvolvimento de Software
Versionamento de Código Núcleo de Desenvolvimento de Software Por quê? Facilidades de utilizar um sistema de versionamento de código. Várias versões Quando se salva uma nova versão de um arquivo, a versão
Leia maisO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software) Um processo de
Leia maisAdicionando Caixas de Verificação no seu Programa Java
Adicionando Caixas de Verificação no seu Programa Java Priscila Gomes Neste tutorial iremos falar sobre os aspectos básicos de uma caixa de verificação: quais os tipos, quando e como utiliza-las, como
Leia maisSQL Gatilhos (Triggers)
SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE
Leia maisFolha 3. O processador de texto do STAROFFICE : Ferramentas
Folha 3. O processador de texto do STAROFFICE : Ferramentas 1. Quebra de páginas, secções, símbolos especiais e fórmulas 1.1. Considerar o seguinte texto : Disciplina de Informática. A disciplina de Informática
Leia maisComo funcionam os comandos de SQL no Logic Basic Por Alan Oliveira
Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira www.linksinfo.com.br Tutorial versão 1.0 Sobre o Logic basic: Parte 1 Sobre o Logic Basic e o SQL O Logic Basic é uma linguagem de programação
Leia maisEvoluçã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 maisDiagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.
1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para
Leia maisUniversidade da Beira Interior. Sistemas Distribuídos - 2014/2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services
JAX-RS: Java API for RESTful Web Services A - Creating RESTful Web Services from a Database 1- Comece por criar um projeto do tipo Java Web application, como fez nos exercícios das fichas anteriores. No
Leia maisUniversidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.
Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco
Leia maisGuia Prático. Sistema EAD PRO-CREA
Guia Prático Sistema EAD PRO-CREA Nesta Guia Prático mostraremos a você: O Sistema EAD PRO-CREA A Monitoria Dicas de como organizar seu estudo O Sistema EAD PRO-CREA O Sistema de Ensino a Distância EAD
Leia maisRecovery (recuperação para o padrão de fábrica) Windows 8
Recovery (recuperação para o padrão de fábrica) Windows 8 * Mantenha sempre um backup de seus dados por segurança, é de responsabilidade do proprietário manter um backup dos mesmos. A ASUS não se responsabilizará
Leia maisIntrodução ao Paradigma Orientado a Objetos. Principais conceitos
Introdução ao Paradigma Orientado a Objetos Principais conceitos Paradigmas de Programação PROGRAMAÇÃO ESTRUTURADA X PROGRAMAÇÃO ORIENTADA A OBJETOS Paradigma Programação estruturada Na programação estrutura
Leia maisUML - Unified Modeling Language
UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril
Leia maisRoteiro do Trabalho Prático
Projeto de Sistemas - 2011/2 Roteiro do Trabalho Prático O trabalho prático consta da realização das atividades de Projeto da Arquitetura de Software e Projeto dos Componentes da Arquitetura, devendo ser
Leia maisComputação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na
Leia maisEncapsulamento de Dados
Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam
Leia maisLINGUAGEM ORIENTADA A OBJETOS
LINGUAGEM ORIENTADA A OBJETOS TI MÓDULO II O ECLIPSE O eclipse é uma IDE Open Source (código fonte aberto) que serve para o desenvolvimento em muitas linguagens: PHP Java Python HTML C/C++ A IDE Eclipse
Leia maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia maisWindows. Introdução. Introdução Sistema Operacional. Introdução Sistema Operacional. Introdução Sistema Operacional. Introdução Sistema Operacional
Windows Prof. Leandro Tonietto Cursos de Informática Unisinos Março-2008 O que é Sistema operacional? O que é Windows? Interface gráfica: Comunicação entre usuário e computador de forma mais eficiente
Leia maisConstruindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas
Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes Ciência da Computação da PUC Minas 2 Camada responsável por armazenar em um repositório de dados e reconstituir objetos de
Leia maisEste trabalho tem como objetivo praticar o uso de tipos abstratos de dados e estruturas do tipo Lista.
Universidade Federal do Espírito Santo Departamento de Informática Estruturas de Dados I (INF09292) 1 o Trabalho Prático Período: 2013/1 Prof a Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br Data de
Leia maisTuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br
Tuplas e Dicionários Vanessa Braganholo vanessa@ic.uff.br 2 Tuplas Tuplas } Tuplas são sequências de valores, da mesma forma que listas } Mas, existem diferenças... } Os valores de uma tupla, ao contrário
Leia maisCriando uma agenda simples com NetBeans 6.5
Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno de
Leia maisListando itens em ComboBox e gravando os dados no Banco de Dados MySQL.
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no
Leia maisO CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo
Leia maisDESENVOLVENDO O SISTEMA
DESENVOLVENDO O SISTEMA Declaração da Necessidade O primeiro passo do processo de análise de sistema envolve a identificação da necessidade [Pressman-95]. Normalmente o analista reúne-se com o usuário
Leia mais