Padrões Web & Coding Standards Boas Maneiras na Programação Web por Antonio Albuquerque
Sobre Mim <ul><li>Nome:  Antonio C. Albuquerque Netto </li></ul><ul><li>Email:  [email_address] </li></ul><ul><li>Blog:  h...
<ul><li>&quot; A simplicidade é o último grau da sofisticação &quot;   (Leonardo Da Vinci) </li></ul>
Uma Breve história sobre a Simplicidade <ul><li>O  Princípio da Simplicidade  é consagrado pelo desprendimento quantitativ...
A simplicidade em 4 regras <ul><li>i – Coloque tudo num  único lugar ; </li></ul><ul><li>ii – Selecione o  Essencial; </li...
Princípio do KISS <ul><li>Com isso nos deparamos com o princípio do  KISS , um  </li></ul><ul><li>acrônimo em inglês de: <...
A Navalha de Ockham <ul><li>A  Navalha de Ockham  é um princípio lógico criado pelo  </li></ul><ul><li>frade Franciscano i...
Princípios e Argumentos <ul><li>Na área de T.I, além da Navalha de Ockham nos deparamos com inúmeros princípios e argument...
Método DRY <ul><li>“ Programadores estão sempre em modo de manutenção.”  –   The Pragmatic Programmer </li></ul><ul><li>DR...
World Wide Web : O início A web foi criada em 1989, no  CERN , por Tim Berners-Lee, para otimizar a comunicação no centro ...
Padrões Web <ul><ul><li>O que significa? </li></ul></ul><ul><li>São as normas que regem a construção de conteúdo para web....
Padrões Web <ul><li>Existem vários padrões estabelecidos pela W3C, os mais conhecidos são: </li></ul><ul><li>- xHTML </li>...
Cross-browser Cross-browser  refere-se à habilidade de um site, Aplicação Web, construtor HTML ou script side-client supor...
Vantagens <ul><li>Uniformidade, Simplicidade e Liberdade </li></ul><ul><li>O uso de webstandards permite que as fases de d...
Coding Standards <ul><li>Programar é uma arte? </li></ul>
Coding Standards <ul><li>Na verdade resolver problemas e criar soluções é sim uma arte e com o amadurecimento e uma maior ...
Coding Standards <ul><li>Com a ajuda de uma poderosa  IDE  de programação isso pode facilitar  e muito  a sua vida. </li><...
Coding Standards Evite o espaguete!!
Coding Standards: O Início Os programadores  c/c++  já utilizam padrões e convenções a anos e  Todd Hoff’s , criou aquele ...
Coding Standards Mas sem dúvida alguma, o “Boom” do coding standard veio com a gigante linguagem de programação  Java   e ...
Coding Standards <ul><li>Ganhos Reais: </li></ul><ul><li>Facilidade de Implementação; </li></ul><ul><li>Melhor visibilidad...
Coding Standards: PHPDOC http://www.phpdoc.org/
Coding Standards <ul><li>Introdução </li></ul><ul><li>Serve para escrever um código organizado, bem estruturado e document...
Coding Standards <ul><li>Identação </li></ul><ul><li>4 espaços para identação de blocos de comando (Tab configurado para 4...
Coding Standards <ul><li>Nomeclaturas </li></ul><ul><li>Padrão CamelCase  : </li></ul><ul><li>É a denominação em inglês pa...
Coding Standards Item  Estilo  Exemplos  Obs. Classe  Upper Camel Case  ExemploDeClasse  Método/Função  Lower Camel Case  ...
Coding Standards <ul><li>Recomendações: </li></ul><ul><li>Só usar abreviações quando for realmente necessário ou se tratar...
Coding Standards <ul><li>Testando 1, 2 3 ... </li></ul><ul><li>Referência: Walker de Alencar </li></ul><ul><li>( www.walke...
Dúvidas
<ul><li>“ A perfeição não é alcançada quando já não há mais nada para adicionar, mas sim, quando já não há mais nada que s...
Referências <ul><li>ACAlbuquerque.Blog </li></ul><ul><li>◦  http://www.acalbuquerque.blog.br </li></ul><ul><li>Appendix B....
Próximos SlideShares
Carregando em…5
×

Padrões Web & Code Standard

2.052 visualizações

Publicada em

Palestra sobre Padrões Web e Coding Standards para a III Semana de Informática da Universidade Católica de Pernambuco

Publicada em: Tecnologia, Design
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.052
No SlideShare
0
A partir de incorporações
0
Número de incorporações
15
Ações
Compartilhamentos
0
Downloads
60
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Padrões Web & Code Standard

  1. 1. Padrões Web & Coding Standards Boas Maneiras na Programação Web por Antonio Albuquerque
  2. 2. Sobre Mim <ul><li>Nome: Antonio C. Albuquerque Netto </li></ul><ul><li>Email: [email_address] </li></ul><ul><li>Blog: http://www.acalbuquerque.blog.br </li></ul>
  3. 3. <ul><li>&quot; A simplicidade é o último grau da sofisticação &quot; (Leonardo Da Vinci) </li></ul>
  4. 4. Uma Breve história sobre a Simplicidade <ul><li>O  Princípio da Simplicidade  é consagrado pelo desprendimento quantitativo mínimo e qualitativo máximo dos fatores para alcançar um objetivo específico. </li></ul><ul><li>A simplicidade, denominada em chinês  Tang Son , é composta por duas idéias fundamentais: </li></ul><ul><li>Tang -  Simplicidade quantitativa, quando algo é simples em quantidade e; </li></ul><ul><li>Son -  Simplicidade qualitativa, quando algo é puro em qualidade. </li></ul>
  5. 5. A simplicidade em 4 regras <ul><li>i – Coloque tudo num único lugar ; </li></ul><ul><li>ii – Selecione o  Essencial; </li></ul><ul><li>iii – Elimine  o resto; </li></ul><ul><li>iv – Organize o material restante de  modo agradável e ordenado; </li></ul><ul><li> </li></ul><ul><li>por Leo Babauta ( http://zenhabits.net ) </li></ul>
  6. 6. Princípio do KISS <ul><li>Com isso nos deparamos com o princípio do  KISS , um  </li></ul><ul><li>acrônimo em inglês de: </li></ul><ul><li>“ Keep It Simple, Stupid”  ou; </li></ul><ul><li>&quot;Keep It Sweat & Simple&quot;  ou; </li></ul><ul><li>&quot;Keep it Short & Simple&quot;  ou; </li></ul><ul><li>&quot;Keep it Simple, Silly“ </li></ul><ul><li>Trata-se de  um princípio geral que valoriza a simplicidade do projeto e defende que toda a complexidade desnecessária seja evitada. Este princípio teve a sua inspiração diretamente no princípio da  Navalha de Ockham . </li></ul>
  7. 7. A Navalha de Ockham <ul><li>A Navalha de Ockham é um princípio lógico criado pelo </li></ul><ul><li>frade Franciscano inglês, William de Ockham. </li></ul><ul><li>O princípio afirma que a explicação para qualquer fenômeno </li></ul><ul><li>deve assumir apenas as premissas estritamente necessárias </li></ul><ul><li>à explicação do fenômeno e eliminar todas as que não </li></ul><ul><li>causariam qualquer diferença aparente nas predições da </li></ul><ul><li>hipótese ou teoria. </li></ul><ul><li>“ Se em tudo o mais forem idênticas as várias explicações de um fenômeno, a mais simples é a melhor”” </li></ul><ul><li> William de Ockham </li></ul>
  8. 8. Princípios e Argumentos <ul><li>Na área de T.I, além da Navalha de Ockham nos deparamos com inúmeros princípios e argumentos válidos para o nosso cotidiano. </li></ul><ul><li>YAGNI Argument - É uma sigla para “You Ain’t Gonna Need It” , ou “Você não vai precisar disso” em português. É uma idéia usada na engenharia de software para controlar a adição de novas funcionalidades em um aplicativo que irão acrescentar mais custos de manutenção do que benefícios. </li></ul><ul><li>DRY - É a sigla para o termo &quot;Dont repeat yourself&quot; ( Não se repita ), sendo uma filosofia de um processo que visa a não repetição de código, particularmente utilizado em computação. Essa filosofia enfatiza que informação não deve ser duplicada, porque duplicação aumenta dificuldades nas mudanças, pode diminuir a clareza, e leva a oportunidades de um código não coeso. </li></ul><ul><li>Lista de filosofias de desenvolvimento de software: http://en.wikipedia.org/wiki/List_of_software_development_philosophies </li></ul>
  9. 9. Método DRY <ul><li>“ Programadores estão sempre em modo de manutenção.” – The Pragmatic Programmer </li></ul><ul><li>DRY é mais do que apenas uma boa prática de desenvolvimento, é uma </li></ul><ul><li>filosofia que envolve evitar repetições. Trechos de código repetidos na </li></ul><ul><li>maior parte dos casos (se não em todos) somente tornam nosso código </li></ul><ul><li>mais obscuro e inconsistente. Quando repetimos trechos de código em </li></ul><ul><li>nosso projeto ou mesmo em projetos diferentes, estamos aumentando a </li></ul><ul><li>complexidade de gerenciamento e dificultando mudanças. </li></ul>
  10. 10. World Wide Web : O início A web foi criada em 1989, no CERN , por Tim Berners-Lee, para otimizar a comunicação no centro europeu de pesquisas nucleares. Berners-Lee criou o HTML, uma linguagem de marcação para formatar os documentos que seriam distribuídos em rede. Como tratava de documentos formais, o HTML não tinha uma preocupação visual, sendo informação pura. A marcação era utilizada para determinar o que significava cada elemento. Anos mais tarde, o projeto do CERN foi aberto e a internet tornou-se a rede mundial de computadores. As potencialidades de comunicação e negócio logo fizeram a internet tornar-se bastante popular e a necessidade de um maior apelo visual para o comércio logo surgiu.
  11. 11. Padrões Web <ul><ul><li>O que significa? </li></ul></ul><ul><li>São as normas que regem a construção de conteúdo para web. </li></ul><ul><li>W3C – World Wide Web Consortium </li></ul><ul><li>Criada em 1994 por Tim Berners-Lee, hoje possuindo mais de 400 membros como: </li></ul><ul><li>- Adobe System, Inc </li></ul><ul><li>- Apple, Inc </li></ul><ul><li>- Cisco </li></ul><ul><li>- Google, Inc </li></ul><ul><li>- Mozilla foundation </li></ul><ul><li>- Microsoft Corp. </li></ul><ul><li>- ORACLE </li></ul><ul><li>- ...outros </li></ul>
  12. 12. Padrões Web <ul><li>Existem vários padrões estabelecidos pela W3C, os mais conhecidos são: </li></ul><ul><li>- xHTML </li></ul><ul><li>- CSS </li></ul><ul><li>- XML </li></ul><ul><li>- DOM </li></ul><ul><li>xHTML - O XHTML , ou eXtensible Hypertext Markup Language , é uma reformulação da linguagem de marcação HTML, baseada em XML. Combina as tags de marcação HTML com regras da XML. Este processo de padronização tem em vista a exibição de páginas Web em diversos dispositivos (televisão, palm, celular, etc). Sua intenção é melhorar a acessibilidade. </li></ul><ul><li>CSS - Cascading Style Sheets (ou simplesmente CSS ) é uma linguagem de estilo utilizada para definir a apresentação de documentos escritos em uma linguagem de marcação, como HTML ou XML. Seu principal benefício é prover a separação entre o formato e o conteúdo de um documento. </li></ul><ul><li>XML - eXtensible Markup Language é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais. </li></ul><ul><li>DOM - DOM (Document Object Model - Modelo de Objetos de Documentos) é uma especificação da W3C, independente de plataforma e linguagem , onde pode-se dinamicamente alterar e editar a estrutura, conteúdo e estilo de um documento eletrônico. </li></ul>
  13. 13. Cross-browser Cross-browser refere-se à habilidade de um site, Aplicação Web, construtor HTML ou script side-client suportar múltiplos navegadores.
  14. 14. Vantagens <ul><li>Uniformidade, Simplicidade e Liberdade </li></ul><ul><li>O uso de webstandards permite que as fases de design e programação ocorram em paralelo, reduzindo o tempo de produção. A manutenção do projeto também fica mais simples </li></ul><ul><li>SEO (Search Engine Optimization) </li></ul><ul><li>Quando um HTML é estruturado da maneira correta, com as tag´s sendo utilizadas para as funções que foram criadas, a indexação em mecanismos de busca inteligentes, como o Google, é muito mais bem realizada. Por exemplo, o Google sabe que algo escrito entre tag´s [h1] é um título importante e têm relevância maior em uma busca com determinada palavra-chave. Isso não acontece se o título fosse marcado com [font size=&quot;5&quot; color=&quot;#FF6600&quot;][strong] . </li></ul><ul><li>Otimização </li></ul><ul><li>Como o arquivo de apresentação visual só precisa ser baixado uma vez e o HTML é estruturado da forma correta, as páginas ficam muito mais leves, carregando rapidamente e permitindo que o usuário tenha uma experiência de navegação otimizada. Além disso, economiza-se muito (em alguns casos, até 75%) em banda que antes era desperdiçada para transportar códigos inúteis. </li></ul><ul><li>Acessibilidade </li></ul><ul><li>Usar web standards por si só já é um grande passo no quesito de acessibilidade. Não será necessário criar versões específicas de um projeto para portadores de deficiência. Além disso, o projeto poderá ser visto em qualquer navegador, com algumas diferenças de renderização. </li></ul>
  15. 15. Coding Standards <ul><li>Programar é uma arte? </li></ul>
  16. 16. Coding Standards <ul><li>Na verdade resolver problemas e criar soluções é sim uma arte e com o amadurecimento e uma maior interação entre programadores, isso virou uma ciência. </li></ul><ul><li>Não existe esse negócio de o “meu jeito de programar, de pensar ou escrever” , existe sim um ou vários padrões de projetos ( Design Patterns ). </li></ul><ul><li>Acontece que nós somos educados desde criança para trabalharmos em grupos, mas na verdade a vida exige que nós devemos trabalhar em equipe. E existe uma grande diferença entre esses 2 modos. </li></ul><ul><li>Visando mais produtividade e padronização do ambiente de trabalho, foi que as grandes corporações adotaram o coding standards . </li></ul>
  17. 17. Coding Standards <ul><li>Com a ajuda de uma poderosa IDE de programação isso pode facilitar e muito a sua vida. </li></ul>
  18. 18. Coding Standards Evite o espaguete!!
  19. 19. Coding Standards: O Início Os programadores c/c++ já utilizam padrões e convenções a anos e Todd Hoff’s , criou aquele que acredito ser o primeiro manual sobre coding standards e que serviu de base para muitos outros e de diferentes linguagens. http://www.possibility.com/Cpp/c++_coding_standards.pdf
  20. 20. Coding Standards Mas sem dúvida alguma, o “Boom” do coding standard veio com a gigante linguagem de programação Java e seus fiéis seguidores. A Sun desenvolveu uma ótima documentação de Coding Standards, que é seguida pelos desenvolvedores Java, e como Padrão de Documentação em Código, criou um sistema de documentação excelente conhecido como  JavaDoc , onde há ferramentas que geram a documentação HTML e em outros formatos baseado nos blocos de documentação feitos no código fonte.
  21. 21. Coding Standards <ul><li>Ganhos Reais: </li></ul><ul><li>Facilidade de Implementação; </li></ul><ul><li>Melhor visibilidade de código; </li></ul><ul><li>Portabilidade de código; </li></ul><ul><li>Melhor reaproveitamento de código; </li></ul><ul><li>Redução de tempo em: </li></ul><ul><ul><li>Adaptação de novos desenvolvedores. </li></ul></ul><ul><ul><li>Manutenção; </li></ul></ul><ul><ul><li>Migração; </li></ul></ul><ul><li>Diminuição de reescrita de código por falta de documentação. </li></ul>
  22. 22. Coding Standards: PHPDOC http://www.phpdoc.org/
  23. 23. Coding Standards <ul><li>Introdução </li></ul><ul><li>Serve para escrever um código organizado, bem estruturado e documentado. </li></ul><ul><li>Melhorando visibilidade e facilitando futuras manutenções e implementações. </li></ul><ul><li>Assegurar a Alta Qualidade do código, diminuir bug´s. </li></ul><ul><li>*Observação: </li></ul><ul><li>As regras a seguir são baseadas no PHP Coding Standards do Walker de Alencar; </li></ul><ul><li>Algumas modificações foram realizadas se adequando à nossa realidade; </li></ul>
  24. 24. Coding Standards <ul><li>Identação </li></ul><ul><li>4 espaços para identação de blocos de comando (Tab configurado para 4 espaços) </li></ul><ul><li>1 linha em branco após declaração de classes ou métodos/funções, as chaves devem ser abertas na mesma linha da declaração do comando. </li></ul><ul><li>A identação deve ser mantida mesmo ao passar de blocos de código PHP para código HTML, e vice-versa. </li></ul>
  25. 25. Coding Standards <ul><li>Nomeclaturas </li></ul><ul><li>Padrão CamelCase : </li></ul><ul><li>É a denominação em inglês para a prática de escrever palavras compostas ou frases, onde cada palavra é iniciada com Maiúsculas, e unida sem espaços. </li></ul><ul><li>Divisões: </li></ul><ul><li>lowerCamelCase ( iPod, iPhone ) </li></ul><ul><li>UpperCamelCase ( OpenOffice, StarTrek ) </li></ul>
  26. 26. Coding Standards Item Estilo Exemplos Obs. Classe Upper Camel Case ExemploDeClasse Método/Função Lower Camel Case exemploDeMetodo Objeto/Atributo/Variável Lower Camel Case exemploDeAtributo Constantes Upper Case / Underline LIMIT, MAX_SIZE Pastas Singular / Underline / Lower Case model, view, img, lib Bom senso quando abreviar Arquivos de classe Upper Camel Case ExemploControll.php Nome igual ao nome da classe Demais arquivos Singular / Underline / Lower Case index.php, estilo.css
  27. 27. Coding Standards <ul><li>Recomendações: </li></ul><ul><li>Só usar abreviações quando for realmente necessário ou se tratar de costume; palavras completas facilitam o entendimento e conseqüentemente melhoram a legibilidade. </li></ul><ul><li>Para decisão do uso de palavra estrangeira ou nacional deve ser levado em consideração, mais uma vez, a questão da facilidade de entendimento; a palavra que passar mais facilmente a idéia desejada deve ser utilizada. </li></ul><ul><li>Usar aspas simples sempre que possível. Desde que seja uma string literal sem apóstrofo[ ], caso seja, utilizar aspas duplas para evitar slashes[]. Classes devem estar em arquivos isolados que possuem o mesmo nome da classe. </li></ul><ul><li>Usar tag´s completas(<?php e <?php echo) e NUNCA utilizar short-tag´s(<? e <?=). </li></ul><ul><li>E caso o arquivo possua apenas elementos PHP, não é aconselhado fechar tag PHP(?>). Usar espaço entre os operadores (=, +, -, %, &&, || ...). </li></ul><ul><li>Tentar ser o mais fiel o possível quanto a documentação do código utilizando os conceitos do PHPDocumentor. Mantendo a simplicidade e clareza nos comentários. </li></ul>
  28. 28. Coding Standards <ul><li>Testando 1, 2 3 ... </li></ul><ul><li>Referência: Walker de Alencar </li></ul><ul><li>( www.walkeralencar.com ) </li></ul>
  29. 29. Dúvidas
  30. 30. <ul><li>“ A perfeição não é alcançada quando já não há mais nada para adicionar, mas sim, quando já não há mais nada que se possa retirar&quot; (Antoine de Saint-Exupéry) </li></ul>
  31. 31. Referências <ul><li>ACAlbuquerque.Blog </li></ul><ul><li>◦ http://www.acalbuquerque.blog.br </li></ul><ul><li>Appendix B. Zend Framework Coding Standard for PHP </li></ul><ul><li>◦ http://framework.zend.com/manual/en/coding-standard.html </li></ul><ul><li>PEAR Manual </li></ul><ul><li>◦ http://pear.php.net/manual/en/standards.classdef.php </li></ul><ul><li>CamelCase </li></ul><ul><li>◦ http://pt.wikipedia.org/wiki/CamelCase </li></ul><ul><li>PHP Coding Standards ( Walker de Alencar ) </li></ul><ul><li>◦ http://blog.walkeralencar.com/archives/11 </li></ul><ul><li>PHPDOC </li></ul><ul><li>◦ http://www.phpdoc.org/ </li></ul><ul><li>Usabilidoido </li></ul><ul><li>◦ http://www.usabilidoido.com.br/ </li></ul><ul><li>W3C </li></ul><ul><li>◦ http://www.w3.org/ </li></ul><ul><li>Navalha de Ockham </li></ul><ul><li>◦ http://pt.wikipedia.org/wiki/Navalha_de_Occam </li></ul><ul><li>YAGNI argument </li></ul><ul><li>◦ http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It </li></ul><ul><li>Princípio da Simplicidade </li></ul><ul><li>http://www.jmdois.com.br/home/an_txt15.htm </li></ul><ul><li>http://migre.me/ain5 </li></ul><ul><li>http://zenhabits.net/ </li></ul><ul><li>Princípio do KISS </li></ul><ul><li>http://en.wikipedia.org/wiki/KISS_principle </li></ul><ul><li>Método DRY </li></ul><ul><li>http://en.wikipedia.org/wiki/Don%27t_repeat_yourself </li></ul><ul><li>Lista de filosofias de desenvolvimento de software: http://en.wikipedia.org/wiki/List_of_software_development_philosophies </li></ul><ul><li>Webstandards (Padrões Web) </li></ul><ul><li>◦ http://www.webstandards.org/ </li></ul><ul><li>◦ http://www.maujor.com </li></ul><ul><li>◦ http://www.tableless.com.br/ </li></ul>

×