Post on 18-May-2015
description
Javascript : no navegador e alémJavascript : no navegador e alémPHP Conference 2010PHP Conference 2010
PHPConference Brasil 2010 - Duodraco
Duodraco...Duodraco...
● Desenvolvimento web desde 2002● Análise, desenvolvimento, arquitetura
● Zend Certified Engineer '07● Certified Scrum Master● Analista no TiqueImóveis● Evangelista PHP
PHPConference Brasil 2010 - Duodraco
ObjetivosObjetivos
PHPConference Brasil 2010 - Duodraco
Falaremos hoje sobreFalaremos hoje sobre
● Javascript● História● Boas práticas● Importantes Desconhecidos● JS sem navegador● PHP
PHPConference Brasil 2010 - Duodraco
HistóriaHistória
● Criado para a Netscape em 1995● LiveScript● Colaboração da Sun
● Java: nome e sintaxe parecidos● Gerou o ECMAScript
● Tornando-se um padrão● Este é base do ActionScript
PHPConference Brasil 2010 - Duodraco
VersõesVersões
● 1.0 – Março de 1996● 1.1 – Agosto de 1996● 1.2 – Junho de 1997● 1.3 – Outubro de 1998
● Ecma-262 – 1ª e 2ª edições
● 1.5 – Novembro/2000 – ECMA-262 3ªed.● Subset da linguagem futuramente torna-se JSON
PHPConference Brasil 2010 - Duodraco
VersõesVersões
● 1.6 – Nov/05 – 1.5 + Array Extras + E4X …● 1.7 – Out/06 – 1.6 + Generators + Iterators …● 1.8 – Jun/08 – 1.7+Gen. Expressions/Closures …● 1.8+(1.9)
● Firefox4● JSON encode/decode nativo● Function bind● ...
PHPConference Brasil 2010 - Duodraco
DHTMLDHTML
● Dynamic HTML● HTML + CSS + Javascript
● Ações e eventos JS● HTML não “estático”● Animações● Elementos GUI
● … muito besteirol
PHPConference Brasil 2010 - Duodraco
AjaxAjax
● Asynchronous Javascript And XML● XMLHttpRequest assíncrono
● ActiveX no Internet Explorer
● Requisição HTTP● Processamento de XML – DOM● Processamento de XSL
● Deveria ser usado com Webservices
PHPConference Brasil 2010 - Duodraco
FrameworksFrameworks
PHPConference Brasil 2010 - Duodraco
FrameworksFrameworks
● Simplifica o desenvolvimento● Implementam funcionalidades complexas
● Com interfaces simples
● Introduzem facilitadores na sintaxe
● Interface com o Usuário● Gráficos● HTML5
PHPConference Brasil 2010 - Duodraco
FrameworksFrameworks
● jQuery● Prototype● ExtJS● Dojo● GWT● Mootools
● RaphaëlJS (SVG)
● jQueryUI● jQueryMobile
● script.aculo.us● YUI● moo.fx● qooxdoo
PHPConference Brasil 2010 - Duodraco
Estilo de CodificaçãoEstilo de Codificação
● Organização● Legibilidade● Manutenabilidade● Evita erros por má codificação
● Sintaxe principalmente
PHPConference Brasil 2010 - Duodraco
Estilo de CodificaçãoEstilo de Codificação
● Endentação - tabulação com espaços (quatro)● Limite de 80 caracteres● Chaves de blocos lógicos
● Quebra de linha após abertura
● Nomenclatura compreensível● Variáveis, atributos, métodos, funções
● Utilizar formatação uniforme nas declarações● OFormatoCamelizadoÉMuitoBom
PHPConference Brasil 2010 - Duodraco
Estilo de CodificaçãoEstilo de Codificação
● Terminar os comando com ;● Codificar de maneira autodescritiva● Evitar eval e with● Utilizar-se de JSON
PHPConference Brasil 2010 - Duodraco
Estilo de CodificaçãoEstilo de Codificação
PHPConference Brasil 2010 - Duodraco
OOPOOP
● Javascript é uma linguagem oo● Baseado em prototipação
● Classes com visibilidade● Public● Private● Privileged
– WTF?
PHPConference Brasil 2010 - Duodraco
Atributos Privados Atributos Privados
● Não têm acesso externo diretamente
● Declarados como parâmetro ou● Com var dentro da “Classe”
PHPConference Brasil 2010 - Duodraco
Métodos privadosMétodos privados
● Não têm acesso direto externamente● Declarados como function dentro da “Classe”
PHPConference Brasil 2010 - Duodraco
Atributos PúblicosAtributos Públicos
● Acesso externo e interno
● Criado com ● this.atributo● Classe.prototype.atributo
– Pode ser um Function (Método Público)
PHPConference Brasil 2010 - Duodraco
Métodos PrevilegiadosMétodos Previlegiados
● Métodos Públicos com acesso a itens privados
● this.metodo = function(){...}
PHPConference Brasil 2010 - Duodraco
Um ExemploUm Exemplo
PHPConference Brasil 2010 - Duodraco
HerançaHerança
● Sim, existe
● prototype● apply|call
PHPConference Brasil 2010 - Duodraco
E4XE4X
● EcmaScript for (4) Xml● Interpretação de XML nativa ao Javascript● Atualmente só funciona com Firefox
PHPConference Brasil 2010 - Duodraco
JSONJSON
● Javascript Object Notation● Objetivo: legível para humanos● Douglas Crockford
● Baseado em um Subset do JS – 1999
● Adoção do Yahoo e Google em 2005~06
PHPConference Brasil 2010 - Duodraco
JSON NativoJSON Nativo
● Encode e decode● Firefox 3.5+, Webkit, Opera 10.5+, Webkit
● JSON.stringify({name:”Duodraco”,year:1981})● JSON.parse('{teste:”Uma string JSON”}')
PHPConference Brasil 2010 - Duodraco
JSON-RPCJSON-RPC
● Remote Procedure Call● HTTP ou Sockets● Bidirecional
● Request:● { "method": "helloWord", "params": ["PHPConf"], "id": 1}
● Response:● { "result": "Olá PHPConf", "error": null, "id": 1}
PHPConference Brasil 2010 - Duodraco
XULXUL
● Xml UserInterface Language● Mozilla
● Firefox,Thunderbird,Seabird,Flock, etc
● XML+JS
PHPConference Brasil 2010 - Duodraco
NoSQLNoSQL
● Trabalham com documentos JSON● Internamente com Javascript● MongoDB
● MapReduce
● CouchDB● MapReduce, Validações, transformações internas
PHPConference Brasil 2010 - Duodraco
NoSQLNoSQL
● Requisição:● localhost/php_conf/palestrantes/?limit=1
● Resposta:{“ok”:1,”results”:[{“name”:”Duodraco”,”_id”:“$oid”:”4b7ee0731d41c8137e000002”}}],”id”:1}
PHPConference Brasil 2010 - Duodraco
Embedded - WidgetsEmbedded - Widgets
● Apple● Dashboard Widgets● Extensões Safari5
● Microsoft Gadgets● Yahoo Widgets● Google Desktop
PHPConference Brasil 2010 - Duodraco
EmbeddedEmbedded
● Adobe● PDF com suporte a Javascript● Photoshop, Illustrator, InDesign, Dreamweaver
● OpenOffice● Google Docs - Spreadsheets● Phillips – Pronto Script● Sphere
PHPConference Brasil 2010 - Duodraco
ServerSideServerSideJavaScriptJavaScript
● Netscape – 1996 - LiveWire● Como nosso PHP: script no servidor
● Aptana Jaxer● Opera – Unite● IIS+ASP
● JScript
PHPConference Brasil 2010 - Duodraco
ScriptingScripting
● Java 1.6● javax.script
● Qt● QtScript
PHPConference Brasil 2010 - Duodraco
LinguagensLinguagens
● Objective-J● CoffeeScript● JSON
PHPConference Brasil 2010 - Duodraco
AplicaçãoAplicação
● Flash● ActionScript
● AIR – Adobe Integrated Runtime● XUL● GJS
● GnomeShell
● Kjsembed | Kross● plasmoid
PHPConference Brasil 2010 - Duodraco
PlasmoidPlasmoid
● “Widgets” para a plataforma desktop KDE● Podem ser escritos em diversas linguagens
● Python, C++, Ruby, Java … e Javascript
● Tem uma estrutura simples● Podem acessar dados do sistema
PHPConference Brasil 2010 - Duodraco
PHPPHP
● JSON● Arquivos de Configuração
● XML, INI, YAML,etc...
● Transporte de Informação● Leve e simples
PHPConference Brasil 2010 - Duodraco
PHP – Parsers JSONPHP – Parsers JSON
● Zend_JSON● PEAR\Json● XmlRpc Json● PHP
PHPConference Brasil 2010 - Duodraco
json_encodejson_encodejson_decodejson_decode
● json_encode($valorPHP,$options = 0);● json_decode(“String JSON”);
● http://php.net/json_encode● http://php.net/json_decode
ConclusãoConclusão
Dúvidas???Dúvidas???
PHPConference Brasil 2010 - Duodraco
● http://duodra.co● o@duodra.co
● @duodraco [twitter e identi.ca]
● facebook.com/duodraco● linkedin.com/in/andersoncasimiro● slideshare.net/duodraco
ContatoContato