curso de inverno - boas práticas de programação.pptx

Upload: gabriela-de-lima-gomes-dalle-luche

Post on 23-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    1/48

    1

    Boas prticas de programaoCDSP - 18/07/2011

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    2/48

    2

    Boas prticas de programao

    I) Escrevendo o Cdigo Fonte Estrutura do cdigo fonte Legibilidade Letras maisculas Capitulao de palavras chave Notao ngara ComentriosII) Visibilidde e !o"enclt#rIII) Prote$%o de &otinsIV) Dese"'en(oV) Dics

    !DICE

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    3/48

    *re de cbe$l(o

    Boas prticas de programao

    +

    Estr#t#r do Cdigo

    Fonte

    Nessa rea so declarados os ar!uivos de include"variveis estticas e as constantes#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    4/48

    *re de identi,c$%o

    Boas prticas de programao

    Estr#t#r do Cdigo

    Fonte

    Nessa rea deve$se documentar o programa oufuno# Cont%m comentrios e&plicando a sua'nalidade" data de criao" par(metros" retornos ealtera)es efetuados#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    5/48

    *re de declr$%o de vri.veis e #stesiniciis

    Boas prticas de programao

    Nesta rea devem ser feitos os a*ustes iniciais"importantes para o correto funcionamento doprograma# Entre esses a*ustes iniciais encontram$se a declarao e iniciali+ao de varveis"

    abertura de ar!uivos" etc#

    Estr#t#r do Cdigo

    Fonte

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    6/48

    Cor'o do 'rogr"

    Boas prticas de programao

    , o cdigo escrito para reali+ar a tarefa necessriapara atingir o seu ob*etivo#

    Estr#t#r do Cdigo

    Fonte

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    7/48

    *re de encerr"ento

    Boas prticas de programao

    7

    Nessa rea 'nali+amos a e&ecuo da rotinafechando reas de trabalho temporrias" limpando'ltros" restaurando reas salvas e retornamos o

    resultado da rotina#

    Estr#t#r do Cdigo

    Fonte

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    8/48

    Boas prticas de programao

    8

    egibilidde 3 Ident$%o

    do cdigo

    Cdigo identado

    Cdigo no identado

    -dentar o cdigo torna mais fcil identi'car blocos decomandos !ue faam parte de um loop ou estruturacondicional#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    9/48

    Boas prticas de programao

    4

    egibilidde - 5#ebr de

    lin(sLinhas muito longas podem di'cultar a legibilidade"nesses casos % melhor !uebrar a linha usando o pontoe v.rgula#

    /em !uebra de linha

    Com !uebra de linha

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    10/48

    Boas prticas de programao

    10

    egibilidde - Es'$os e"

    brnco-nserir espaos torna mais fcil identi'car par(metrosde uma funo" distinguir as chaves em uma busca ouvisuali+ar os itens de um clculo#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    11/48

    Boas prticas de programao

    11

    etrs 6isc#ls

    E&istem alguns casos em !ue o cdigo deve ser escritoem letras maisculas#

    Cdigo /0L /ELEC1 2 3456 /N7889

    Nome de campos /N7$:N7;CB;CB

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    12/48

    Boas prticas de programao

    12

    C'it#l$%o de 'lvrs

    c(veDma conveno amplamente utili+ada % a de capitularas palavras chaves" fun)es" variveis e camposutili+ando uma combinao de caracteres emmaisculo e minsculo" visando facilitar a leitura docdigo fonte#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    13/48

    Boas prticas de programao

    1+

    !ot$%o ngr

    @eve ser utili+ada para identi'car o tipo de contedode uma varivel#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    14/48

    Boas prticas de programao

    1

    Co"ent.rios

    Comentrios servem como documentao e e&plicaode um cdigo fonte" mantendo um histrico efacilitando seu entendimento para anlise emanuteno#

    Comentar o fonte" facilita o entendimento por parte doanalista !ue precisar reali+ar manuteno e at%mesmo para !uem o criou" mas lembre$se !ue

    comentrio em e&cesso polui o cdigo e podeatrapalhar" portanto use o bom senso#

    No e&iste uma regra sobre o !ue se deve comentar ou

    como" mas segue algumas dicas sobre o !ue comentare melhorar o entendimento do seu cdi o fonte#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    15/48

    Boas prticas de programao

    1

    Co"ent.rios

    -nsira um cabealho e comente !ual 'nalidade da rotinaou funo" descrevendo !uais par(metros devem serpassados e !ual deve ser o retorno esperado#

    Comente a chave do .ndice utili+ado ao lado da funodb/et5rderF

    0uando utili+ar strings de um ar!uivo C" insira um

    comentrio ao lado com o te&to da string#

    Comente clculos" e&plicando !ual sua lgica#

    Comente trechos de cdigo" e&plicando de forma sucintasua 'nalidade#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    16/481

    Boas prticas de programao

    I) Escrevendo o Cdigo FonteII) Visibilidde e !o"enclt#r

    Aadro de Nomenclatura =isibilidade

    III) Prote$%o de &otinsIV) Dese"'en(oV) Dics

    !DICE

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    17/48

    Cdigo Fonte

    5 nome do cdigo$fonte deve ser montado da seguinteformaG

    F"9lis de Progr"s : ;i'o de

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    18/48

    Boas prticas de programao

    18

    Pdr%o de !o"enclt#r

    EBe"'lo de no"e de Cdigo Fonte

    -ncluso de dados do mdulo Jesto de Aessoas $:PE010>P&

    ;rec(o Descri$%o

    JAE 3am.lia de programas do mdulo Jesto de Aessoas#

    < Entrada de dados#

    979 Numerao de fonte dispon.vel#

    #A4K E&tenso indicadora de !ue o ar!uivo % um cdigo$fonte

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    19/48

    Boas prticas de programao

    14

    Pdr%o de !o"enclt#r

    F#n$es

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    20/48

    Boas prticas de programao

    20

    Pdr%o de !o"enclt#r

    EBe"'lo de no"e de F#n$%o

    3uno de incluso de dados no 3-N

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    21/48

    EBe"'losG

    =alidaCpoF $: =alida contedo de campo

    CalcMurosF $: Clculo de *uros

    Boas prticas de programao

    21

    Pdr%o de !o"enclt#r

    Aara fun)es gen%ricas utili+adas em um determinadomdulo" nomeia$se a funo diretamente de acordo com asua aplicabilidade#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    22/48

    EBe"'losG

    cCodigo =arivel caractere para arma+enar umcdigo

    cN3 =arivel caractere com o nmero da Nota 3iscalnCount =arivel num%rica usada como contadorc6oeda =arivel caractere com o cdigo da moeda

    Boas prticas de programao

    22

    Pdr%o de !o"enclt#r

    Aara variveis no e&iste um padro" por%m deve$se utili+arum nome de acordo com a sua 'nalidade" facilitando oentendimento#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    23/48

    Boas prticas de programao

    2+

    Pdr%o de !o"enclt#r

    No existe tamanho mximo para nomes de variveis e funes,

    entretanto o compilador reconhece apenas 10 caracteres, ignorando o

    restante.

    As variveis nalor!itulo"agar e nalor!itulo#ece$er, so vistas pelocompilador como nalor!itu

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    24/48

    Boas prticas de programao

    2

    Visibilidde

    F#n$es

    3un)es sem declarao !uando usadas a partir do menuda aplicaoF" declaradas como 6ain ou Dser so vis.veisem todo o sistema" carregando a pilha de memria"portanto se forem usadas apenas no prprio cdigo fontedevem ser declaradas como /1

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    25/48

    Boas prticas de programao

    2

    Visibilidde

    Vri.veis

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    26/482

    Boas prticas de programao

    I) Escrevendo o Cdigo FonteII) Visibilidde e !o"enclt#rIII) Prote$%o de &otins

    Campos" 3un)es e 1abelas -niciali+ao de variveis

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    27/48

    Boas prticas de programao

    27

    Prote$%o 3 C"'osH ;bels e

    F#n$es

    Nos fontes do padro % muito importante veri'car ae&istOncia de campos" tabelas e fun)es# Essa precauoevita erros nas rotinas !uando so utili+adas em sistemasdesatuali+ados#

    3ieldAos =eri'ca a e&istOncia de um campo" evitando !ue arotina tente manipular campos ine&istentes# 4etorna posio

    num%rica do campo#

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    28/48

    Boas prticas de programao

    28

    Prote$%o 3 C"'osH ;bels e

    F#n$esExemplos:

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    29/48

    Boas prticas de programao

    24

    Prote$%o 3 IniciliA$%o de

    Vri.veis

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    30/48

    Boas prticas de programao

    +0

    Prote$%o 3 lis tivo

    Dma proteo muito importante em todas as fun)es %salvar o conte&to do alias ativo e tamb%m da!uelesmanipulados dentro da sua funo#Essa proteo garante !ue sua funo no interferir na

    e&ecuo da funo chamadora# < funo Jet

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    31/48

    Boas prticas de programao

    +1

    Prote$%o 3 ;rt"ento de retorno

    de #n$es

    0uando chamar fun)es com algum retorno" utili+e umaestrutura condicional para veri'car seu retorno#

    i d

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    32/48

    Boas prticas de programao

    +2

    Prote$%o 3 Es'eci,cr o lis

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    33/48

    Boas prticas de programao

    ++

    Prote$%o 3 Controle de ;rns$%o

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    34/48

    Boas prticas de programao

    +

    Prote$%o 3 Controle de ;rns$%o

    EBe"'loG

    /e alguma rotina degravao no for e&ecutadacorretamente" as anteriores

    sero desfeitas

    B ti d

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    35/48

    Boas prticas de programao

    +

    Prote$%o 3 ocliA$%o

    0uando a e&ecuo de parte do cdigo estiver condicionadaa uma determinada locali+ao deve$se testar o contedoda varivel global cAaisLoc#

    B ti d

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    36/48

    Boas prticas de programao

    +

    Sigl P9s

    ! ngol

    & rgentin

    J

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    37/48

    Boas prticas de programao

    +7

    Prote$%o 3 Jnco de Ddos

    No

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    38/48

    Boas prticas de programao

    +8

    Prote$%o 3 Jnco de Ddos

    B ti d

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    39/48

    +4

    Boas prticas de programao

    I) Escrevendo o Cdigo FonteII) Visibilidde e !o"enclt#rIII) Prote$%o de &otinsIV)Dese"'en(o

    Comparativo entre fun)esV) Dics

    !DICE

    Boas prticas de programao

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    40/48

    Boas prticas de programao

    0

    Dese"'en(o 3 Co"'rtivo entre

    F#n$es

    Comparativo entre algumas fun)es !ue podem sersubstitu.das por outras similares !ue melhoram odesempenho da rotina#

    Boas prticas de programao

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    41/48

    Boas prticas de programao

    1

    Dese"'en(o 3 Co"'rtivo entre

    F#n$es6sSeeNO) Vers#s dbSeeNO)

    6s/eeQF possui as mesmas funcionalidades bsicas dafuno @b/eeQF" com a vantagem de no necessitar

    acessar novamente a base de dados para locali+ar umainformao * utili+ada pela thread cone&oF ativa#@esta forma" a thread mant%m em memria os dadosnecessrios para reposicionar os registros * locali+adosatrav%s do comando @b/eeQ no caso o 4ecnoFF de forma!ue a aplicao pode simplesmente efetuar oposicionamento sem e&ecutar novamente a busca#< diferena entre o @b/eeQF e o 6s/eeQF % notada emaplica)es com grande volume de posicionamentos" como

    relatrios" !ue necessitam referenciar diversas ve+es omesmo registro durante uma e&ecuo#

    Boas prticas de programao

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    42/48

    Boas prticas de programao

    2

    Dese"'en(o 3 Co"'rtivo entre

    F#n$eset6VO) Vers#s et!e?PrO) Vers#s S#'eret6VO)

    Jet6=F retorna o contedo de um par(metro e se ele noe&istir o seu retorno depender dos par(metros lelp e

    &@efault# /e &@efault for informado o retorno" caso noe&ista" ser &@efault e se no informado retorna #3# e e&ibeelp para lelp falso#/uperJet6=F diferencia$se por arma+enar em um arraP ospar(metros consultados" mas caso se*a a primeira consultaao par(metro" aciona a funo Jet6=F#JetNeRAarF simplesmente aciona a rotina /uperJet6=F#

    Boas prticas de programao

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    43/48

    Boas prticas de programao

    +

    Dese"'en(o 3 Co"'rtivo entre

    F#n$esPosicioneO) Vers#s etDVFVlO)

    < funo A5/-C-5NEF permite o retorno do contedo de umcampo de um registro de uma tabela especi'cado atrav%s

    de uma chave de busca en!uanto !ue o Jet

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    44/48

    Boas prticas de programao

    I) Escrevendo o Cdigo FonteII) Visibilidde e !o"enclt#rIII) Prote$%o de &otinsIV)Dese"'en(oV) Dics

    @icas teis

    !DICE

    Boas prticas de programao

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    45/48

    Boas prticas de programao

    Dics 3 lg#"s dics teis

    5perador STTS no % o mesmo !ue STS# Embora ocompilador no acuse erro" o resultado da comparao noser o mesmo# Espaos em branco fa+em diferena na

    comparao" utili+e

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    46/48

    Boas prticas de programao

    Dics 3 lg#"s dics teis

    Em Loops condicionados ao 'm de uma tabela noes!uea de fa+er um /Qip" preferencialmente usando oalias E /NL$:db/QipFF F# /e houver uma condio

    dentro do Khile" veri'!ue se o /Qip ser e&ecutado#

    /empre !ue poss.vel utili+e a passagem de par(metros porreferOncia no lugar de variveis tipo Arivate#

    Boas prticas de programao

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    47/48

    Boas prticas de programao

    7

    Fonte de Cons#lt

  • 7/24/2019 Curso de Inverno - Boas Prticas de Programao.pptx

    48/48

    @anilo @ias

    danilo#diasVtotvs#com#br

    5@ES;ES

    Boas prticas de programao

    mailto:[email protected]:[email protected]