Padronização de código C#

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Programação orientada a objetos
Classes C++ Class nome da classe { private: membros privados
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
Prof. Thiago Pereira Rique
Orientação a Objetos: Encapsulamento e Classificação
Polimorfismo e Acoplamento Dinâmico
Introdução à Programação Pascal - Começando Prof. Filipo Studzinski Perotto 2009.
Políticas Curso de aprofundamento em linguagem C.
Ponteiros em C.
Wagner Santos C. de Jesus
Paradigmas da Programação
Paradigmas da Programação – Semestre 1 – Aula 3
Documentando con Javadoc
Introdução a Programação JAVA
Linguagem técnica de programação I Java – REVISÃO
C# Documentando código em XML Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Marden Menezes Costa.
Introdução a Computação e Cálculo Numérico
Unidade I: “Dê um mergulho rápido”
Revisão /*======================================================*/
Aula PHPdoc Prof. Naércio Filho Técnico em Informática
PROGRAMAÇÃO ESTRUTURADA II
SQL Server 2012 Tipos de Dados e Tabelas
O que é o Delphi ? Uma IDE (Integrated Development Enviroment)
Atributos, Encapsulamento e Interface em Java
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Prof. Daniel Aula 03.  Criar Projeto  Criar Pacote  Criando classes  Meu primeiro programa  Compilar  Comentários  Variáveis.
Programação em C++ Compiladores
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
By Ducheno Kelly Centro de Formação São Domingos.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Wagner Santos C. de Jesus
Uso de parâmetros na linha de comando. Parâmetros da função main:
Linguagem de Programação C#
Programação Orientada a Objetos - Java
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Aula Prática 3 Funções Monitoria Introdução à Programação.
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
Aula Prática 3 Monitoria IP/CC (~if669). Relembrando Padronização Comentários Identação Significado em nomes de variáveis Depuração de Erros.
Estrutura de Controle em JAVA
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
William Ivanski Curso de Programação C#. Sumário  Exercícios para Fixação  Utilizando uma IDE  Elementos da Linguagem C#  Valores  Variáveis  Tipos.
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
Tipos de dados inteiro caracter real logico
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Aula Prática 3 Funções Monitoria Introdução à Programação.
Conceitos Básicos e Manipulação de Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Bruno Inojosa MCP .NET Framework
Introdução à Programação
Conceitos de OO em Java Parte I
Introdução Sintaxe Básica da Linguagem JAVA
C# - Unity Introdução. Criando um script Mono Develop Uma IDE.
Laboratório de Programação II Método main Dados e Métodos de Classes.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Linguagem de Programação
1 Programação – JAVA Unidade - 4 Arrays e Strings Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Java Básico Lab Ruddá Beltrão | Cristian Costa.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
IDENTIFICAÇÃO DOS RELACIONAMENTOS Nesta atividade devem ser definidos os relacionamentos entre as classes Podem ser representados pela: – associação, –
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

Padronização de código C# Por Celito Muck Felipetto

Introdução Por que a padronização de código? Ela é realmente necessária? Padronização da padronização? Qual usar? Como usar?

Convenção de nomenclatura Notação Húngara bBusy : boolean chInitial : char cApples : count of items dwLightYears : double word (systems) fBusy : boolean (flag) nSize : integer (systems) or count (application) iSize : integer (systems) or index (application)

Convenção de nomenclatura Notação Posicional Máximo 8 caracteres Apenas usava mnemônicos BUSY : boolean WORDL : char APPLES : int LYEAR : double ISVAL : boolean (flag)

Convenção de nomenclatura CamelCase: isBusy : boolean longWord : string apples : int lightYear : double varWithALongName : float Pascal: IsBusy : boolean LongWord : string Apples : int Light Year : double VarWithALongName : float

Convenção de nomenclatura Underscore & Hyphen (UPPER or lower) is_busy : boolean long_word : string NUM_APPLES : int _light_year : double first-letter : char VAR-WITH-A-VERY-LONG-NAME : float

Convenção de nomenclatura Padrão C#: Estrutura Nomenclatura Exemplo Classe Pascal PessoaFisica Interface ‘I’ + Pascal IProgramador Método public, Propriedades NomeCompleto() Método private Camel Case calculaIdade() Variável Public & Protected PrimeiroNome Variável Private salarioInicial Constantes Uppercase Underscored PISO_SALARIAL

Convenção de nomenclatura Padrão alternativo: Estrutura Nomenclatura Exemplo Classe Pascal PessoaFisica Interface ‘I’ + Pascal IProgramador Método public, Propriedades Camel Case nomeCompleto() Método private calculaIdade() Variavel Public & Protected primeiroNome Variavel Private ‘_’ + Camel Case _salarioAtual Constantes Uppercase Underscored PISO_SALARIAL

Indentação Tabulação != 3 Espaços Fontes Monospaced Namespace não tem indentação Limite da linha

Indentação Função quebrada: Caso 1: Caso 2: nomeCompleto = metodoQueCaptaONome... nomeCompleto = metodoQueCaptaONome(); Caso 2: metodoMuitoComprido(metodoMuitoCom... metodoMuitoComprido( metodoMuitoComprido());

Indentação Inicio de Bloco Mesma linha Próxima linha (MS) public void NomeDaFunção(){ ... } Próxima linha (MS) public void NomeDaFunção() { ... }

Idioma Escopo do projeto Equipe de programação Mistura de idiomas

Documentação Importancia da documentação O que documentar? C# XML Doc Comentários com Tags

Documentação Tags: <summary> = Descrição da estrutura que segue <param> = Descrição do parametro <returns> = Descrição do retorno <code> = Delimita codigo na documentação <see> = Referencia um membro externo <example> = Exemplifica a documentação

Documentação Exemplo: /// <summary> /// Retorna o nome completo da Pessoa /// </summary> /// <param name=“tratamento”> Tratamento a ser adicionado /// antes do nome </param> /// <example> /// Esse exemplo mostra como pode ser /// usado o metodo <see cref=“NomeCompleto"/>. /// <code> /// class ClasseTeste /// { /// static int Main() /// { /// NomeCompleto(false); /// } /// } /// </code> /// </example> public string NomeCompleto(string tratamento) { … }

Repositório de código SVN GIT Repositório centralizado Bom para pequenos grupos GIT Repositórios hierarquicos Bom para projetos complexos

TODO O que é o TODO? Necessidade do TODO TODO direcionado //TODO: Adicionar sons ao personagem; Necessidade do TODO TODO direcionado //TODO: [João] Fazer conexão com BD; Sistemas mais completos: Redmine; Jira; Trac; FogBugz

Fontes MSDN: Microsoft Developer Network (msdn.microsoft.com) Naming convention (programming): Wikipedia (en.wikipedia.org/wiki/Naming_convention_(programing)) Google...