Você está na página 1de 26

MENU MENU

9 de December de 2013 9 de December de 2013

JAVASCRIPT
open in browser PRO version JAVASCRIPT
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Modularizao em JavaScript
Componentes e mdulos nunca foram to mencionados como ultimamente. Ambos so conceitos antigos devemos entender e passar a adotar o quanto Modularizao em que JavaScript Componentes e mdulos nunca foram to mencionados como ultimamente. antes. Quem sabe voc possa repensar o seu JavaScript hoje mesmo? Ambos so conceitos antigos que devemos entender e passar a adotar o quanto Por Jean Carlo Em er antes. Quem sabe voc possa repensar o seu JavaScript hoje mesmo?
Por Jean Carlo Em er 29 Tw eetar 99 Like 290 6 6

Modularizao implica na diviso das funcionalidades de um cdigo em partes distintas. Os mdulos compe peas que podem ser adicionadas e removidas quando necessrio, vejam: reuso de cdigo . Modularizao implica na diviso das funcionalidades de um cdigo em partes distintas. Os mdulos compe peas que podem adicionadas e removidas quando vejam: de cdigo . Os frutos doser encapsulamento alcanado com a necessrio, modularizao so reuso a reduo da complexidade , separao de interesses e manuteno descomplicada. Ainda, a definio de cada mdulo fora o programador a determinar Os frutos do encapsulamento alcanado com a modularizao quais os limites e responsabilidades de cada poro do cdigo. so a reduo da complexidade , separao de interesses e manuteno descomplicada. Ainda, a definio de cada mdulo fora o programador a determinar quais os que limites e responsabilidades de cada do cdigo. Acredito estes argumentos j justificam aporo adoo de um sistema de mdulos para seu cdigo. Assumindo que estamos escrevendo cdigo segundo a especificao ECMAScript 5, tudo comea por uma das palavras grifadas Acredito que estes argumentos j justificam a adoo de um sistema de mdulos para seu cdigo. Assumindo que no incio do texto: encapsulamento. estamos escrevendo cdigo segundo a especificao ECMAScript 5, tudo comea por uma das palavras grifadas no incio do texto: encapsulamento.

Encapsulamento em JavaScript
open in browser PRO version

Encapsulamento em JavaScript

Todo programador que se depara com um cdigo, por menos complexo que seja, precisar entender o conceito de escopo. O escopo de uma varivel ou funo no JavaScript so as linhas de cdigo em que estas so acessveis.
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

escopo. O escopo de uma varivel ou funo no JavaScript so as linhas de cdigo em que estas so acessveis. escopo. O escopo ou funo no JavaScript so as linhas de cdigo em que estas so acessveis. Encapsulamento de umuma dos varivel fundamentos da programao orientada a objetos tradicional. Considerando que no temos classes no JavaScript e se entendermos encapsulamento como uma forma de restringir acesso informao, Encapsulamento um dos fundamentos da programao orientada a objetos tradicional. Considerando que no conclumos que a definio de escopo o caminho para alcana-lo. temos classes no JavaScript e se entendermos encapsulamento como uma forma de restringir acesso informao, conclumos que a definio de escopo o caminho alcana-lo. window , e aqueles criados a partir da O JavaScript possui um escopo global, que quando para em navegadores execuo de uma funo. A maneira mais fcil de alcanar encapsulamento utilizando uma funo annima window O JavaScript possui um escopo global, que quando em navegadores , e aqueles criados a partir da invocada imediatamente aps sua definio: execuo de uma funo. A maneira mais fcil de alcanar encapsulamento utilizando uma funo annima invocada imediatamente aps sua definio:
1. 2. 3. (function () { var hideFromOutside = true; (function () { })(); var hideFromOutside = true; })();

Por favor, saiba que este pattern chama-se Immediately-Invoked Function Expression (IIFE) e que os parnteses iniciais servem para que a instruo seja reconhecida como uma expresso. Por favor, saiba que este pattern chama-se Immediately-Invoked Function Expression (IIFE) e que os parnteses iniciais servem para que a instruo seja reconhecida como uma expresso.

Mdulos Mdulos
1. 2.

Mencionado j h mais de 10 anos, o mais simples dos padres de escrita de mdulos em JavaScript o module pattern. O padro consiste de uma IIFE que retorna um objeto com valores e funes, veja: Mencionado j h mais de 10 anos, o mais simples dos padres de escrita de mdulos em JavaScript o module pattern. O padro consiste de uma IIFE que retorna um objeto com valores e funes, veja:
var counter = (function () {

var current = 0; var counter = (function () { 3. return { var current = 0; 4. name: "counter", return { 5. next: function () { "counter" , a developer? Try out the HTML to PDF API Are you open in browser name PRO: version

pdfcrowd.com

5. 6. 7. 8. 9. 10. 11. 12.

next: function () { return current + 1; next: function () { }, return current + 1; isFirst: function () { }, return current == 0; isFirst: function () { } return current == 0; }; } })(); }; })();

Revealing Module Pattern


O module pattern possui muitas variaes, uma delas o revealing module pattern. Neste padro, todas as funes e valores do mdulo so acessveis no escopo local e apenas referncias so retornadas na forma de objeto. Revealing Pattern O module Module pattern possui muitas variaes, uma delas o revealing module pattern. Neste padro, todas as funes e valores do mdulo so acessveis no escopo local e apenas referncias so retornadas na forma de objeto.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. var counter = (function () { var current = 0; var counter = (function () { function next() { var current = 0; return current + 1; function next() { } return current + 1; function isFirst() { } return current == 0; function isFirst() { } return current == 0; } return {

next: next, return { 12. isFirst: isFirst next: next, 13. }; isFirst: isFirst 14. })(); }; open in browser PRO version Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Namespace

Apesar de mencionado no artigo que define o padro, o ideal retornar apenas referncias a funes, retornar outros valores pode dar dor de cabea. Revealing module pattern bastante interessante pela garantia de acesso Apesar de mencionado no artigo que o padro , o ideal retornar apenas referncias funes, retornar this , por descomplicado sem a necessidade dedefine uso do exemplo. A propsito, este conceito a ser til para a outros valores pode dar dor de cabea. Revealing module pattern bastante interessante pela garantia de acesso construo de mdulos melhores em outros padres. this descomplicado sem a necessidade de uso do , por exemplo. A propsito, este conceito ser til para a construo de mdulos melhores em outros padres.

Os padres que vimos at ento poluem o escopo global da aplicao com a definio de uma srie de variveis. Uma soluo a criao de um namespace de uso especfico para os mdulos. Namespace Os padres que vimos at ento poluem o escopo global da aplicao com a definio de uma srie de variveis. Uma soluo a criao de um namespace de uso especfico para os mdulos.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. window.App = { modules: {} window.App = { }; modules: {} }; App.modules.counter = (function () { /* ... */ App.modules.counter = (function () { })(); /* ... */ })(); App.modules.slider = (function () { /* ... */ App.modules.slider = (function () { })(); /* ... */ })();

Mdulos robustos
open in browser PRO version

Mdulos robustos

natural que mdulos dependam uns dos outros. Uma caracterstica importante de um sistema de mdulos robusto a possibilidade de indicar quais so as dependncias de um determinado mdulo e traar uma estratgia de Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Asyncronous Module Definition (AMD)

a possibilidade de indicar quais so as dependncias de um determinado mdulo e traar uma estratgia de carregamento caso esta no esteja disponvel. a possibilidade de indicar quais so as dependncias de um determinado mdulo e traar uma estratgia de carregamento caso esta no esteja disponvel.

Mdulos AMD podem ser requisitados, definidos e utilizados a medida que necessrios. Nosso contador, se reescrito em AMD, ficaria da seguinte maneira: Asyncronous Module Definitiondefinidos (AMD) Mdulos AMD podem ser requisitados, e utilizados a medida que necessrios. Nosso contador, se reescrito em AMD, ficaria da seguinte maneira:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. define('counter', function () { var current = 0; define('counter', function () { function next() { var current = 0; return current + 1; function next() { } return current + 1; function isFirst() { } return current == 0; function isFirst() { } return current == 0; return { } next: next, return { isFirst: isFirst next: next, }; isFirst: isFirst }); }; });

Diferente de outros sistemas de mdulos, as dependncias de cada mdulo AMD so indicadas na sua prpria definio. Isto significa que as dependncias no precisam estar prontas para o uso assim que o mdulo seja Diferente de outros sistemas de mdulos, as dependncias de cada mdulo AMD so definido, estas podem ser carregadas assincronamente condicionando a execuo do indicadas mdulo. na sua prpria definio. Isto significa que as dependncias no precisam estar prontas para o uso assim que o mdulo seja definido, podem ser carregadas a execuo do mdulo. O trecho estas de cdigo a seguir define umassincronamente mdulo com duascondicionando dependncias:
open in browser PRO version

O trecho de cdigo Are a seguir define um mdulo com duas dependncias: you a developer? Try out the HTML to PDF API

pdfcrowd.com

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

define( [ define( 'dep1', [ 'dep2' 'dep1', ], 'dep2' ], function (dep1, dep2) { /* ... */ function (dep1, dep2) { } /* ... */ ); } );

Requisitando mdulos

Caso tenha achado estranho, saiba que a definio do mdulo geralmente utiliza uma formatao de espaos bastante especfica para facilitar a leitura e entendimento das dependncias. Caso tenha achado estranho, saiba que a definio do mdulo geralmente utiliza uma formatao de espaos bastante especfica para facilitar a leitura e entendimento das dependncias. Em meio ao trecho de cdigo, caso no tenha notado, no definimos o identificador deste mdulo. Os mdulos podem (e devem) ser definidos um em cada arquivo e, nestes casos, o nome do arquivo torna-se o identificador. Em meio ao trecho de cdigo, caso no tenha notado, no definimos o identificador deste mdulo. Os mdulos podem (e devem) ser definidos um em cada arquivo e, nestes casos, o nome do arquivo torna-se o identificador.

Toda aplicao ter um trecho principal de cdigo que ir requisitar os mdulos e fazer o bootstrap da aplicao. O require (sim, a semntica lgica) no exige identificao e atende ao requisito, veja a seguir: Requisitando mdulos Toda aplicao ter um trecho principal de cdigo que ir requisitar os mdulos e fazer o bootstrap da aplicao. O require (sim, a semntica lgica) no exige identificao e atende ao requisito, veja a seguir:
1. 2. require( [ require( 3. 'slider', [ 4. 'counter', 'slider', 5. 'inputMask' 'counter', 6. ], open in browser 'inputMask' PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

6. 7. 8. 9. 10. 11.

], ], function (slider, counter, inputMask) { /* ... */ function (slider, counter, inputMask) { } /* ... */ ); } );

Carregando os mdulos

Uma boa prtica criar uma interface comum para iniciar o comportamento de cada um dos mdulos. Existem diferentes preferncias, particularmente utilizo uma funo init . Desta forma, o corpo de cdigo do require Uma boaalgo prtica criar uma interface para iniciar de cada um dos mdulos. Existem slider.init() counter.init() conteria como e comum . o comportamento init require diferentes preferncias, particularmente utilizo uma funo . Desta forma, o corpo de cdigo do slider.init() counter.init() conteria algo como e .

Mdulos AMD podem ser utilizados em qualquer navegador, porm sua definio no suportada nativamente. O que significa que precisamos de uma biblioteca que provenha as tais funes define e require . O mais popular Carregando os mdulos Mdulos AMD podem ser utilizados em qualquer navegador, porm sua definio no suportada nativamente. O loader de AMD o require.js. Desculpe decepcionar, mas sua configurao no est norequire escopo deste texto. define que significa que precisamos de uma biblioteca que provenha as tais funes e . O mais popular loader de AMD o require.js. Desculpe decepcionar, mas sua configurao no est no escopo deste texto.

Empacotando os mdulos

Um dos principais argumentos contra o uso de AMD a demora para o carregamento de todos os mdulos e suas dependncias. Apesar de possvel, o carregamento assncrono de cada um dos mdulos sumariamente Empacotando os mdulos Um dos principais argumentos contra o os uso de AMD de a demora para o carregamento de todos os mdulos e suas no recomendado levando em conta protocolos rede que utilizamos atualmente. dependncias. Apesar de possvel, o carregamento assncrono de cada um dos mdulos sumariamente no recomendado levando em conta os protocolos de rede que utilizamos atualmente. Existem ferramentas como o r.js que tem a funo de empacotar os mdulos e entregar um nico arquivo para donwload no client-side. O r.js depende de Node.js e introduz uma etapa de anlise e concatenao dos arquivos. Existem ferramentas como o r.js que tem a funo de empacotar os mdulos e entregar um nico arquivo para donwload no client-side. O r.js depende e introduz uma etapa de anlise e concatenao dos arquivos. Caso j possua um workflow para cuidarde doNode.js seus assets , concatenar os arquivos e utilizar o almond pode ser uma soluo bem mais simples. O nico detalhe que voc precisar atribuir um identificador para cada mdulo. Mesmo Caso j possua um workflow para cuidar do seus assets, concatenar os arquivos e utilizar o almond pode ser uma que os mdulos estejam definidos cada um em um arquivo, lembre-se que a biblioteca entrar em ao apenas soluo bem mais simples. O nico detalhe que voc precisar atribuir um identificador para cada mdulo. Mesmo aps aPRO concatenao. open in browser version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

aps a concatenao.

Motivao para o uso


Os mdulos AMD j so utilizados nos mais famosos projetos escritos em JavaScript, basta acessar os repositrios: jQuery, Flight , Lo-Dash Motivao para o uso , Mout; e muitos outros. Os mdulos AMD j so utilizados nos mais famosos projetos escritos em JavaScript, basta acessar os repositrios: jQuery, Flight, Lo-Dash, Mout; e muitos outros. A definio permite ainda definir plugins para estender o comportamento de carregamento dos mdulos e carregar outros contedos que no sejam unicamente JavaScript. A definio permite ainda definir plugins para estender o comportamento de carregamento dos mdulos e carregar outros contedos que no sejam unicamente JavaScript.

aps a concatenao.

O futuro O futuro
A especificao ECMAScript 6 j possui um rascunho de uma nova definio de mdulos. Os assim chamados ES6 modules so baseados em um sistema de mdulos robusto da especificao CommonJS. A especificao ECMAScript 6 j possui um rascunho de uma nova definio de mdulos. Os assim chamados ES6 modules so baseados em um sistema de mdulos robusto da especificao CommonJS.

CommonJS modules

Os mdulos CJS se tornaram bastante populares por serem a base do padro adotado pelo Node.js. O principal impedimento para seu uso atualmente o no suporte a este padro nos navegadores. Existem ferramentas para CommonJS modules Os mdulos CJS se em tornaram bastante populares por serem base do padro adotado pelo Node.js . O principal viabilizar o seu uso navegadores, inclusive mdulos AMDapodem internamente utilizar a sintaxe proposta pela impedimento para seu uso atualmente o no suporte a este padro nos navegadores. Existem ferramentas para especificao de CommonJS. viabilizar o seu uso em navegadores, inclusive mdulos AMD podem internamente utilizar a sintaxe proposta pela especificao de CommonJS.

ES6 modules

O sistema de mdulos ES6 combina os dois melhores sistemas de mdulos existentes. A definio dos mdulos se parece muito com CJS e as mesmas caractersticas assncronas da AMD so endereadas pela especificao de ES6 modules O sistema de mdulos ES6 combina os dois melhores sistemas de mdulos existentes. A definio dos mdulos se um loader nativo . parece muito com CJS e as mesmas caractersticas assncronas da AMD so endereadas pela especificao de um loader nativo. open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

[ES6 modules] permitiro a definio de dependncias sem uso de callbacks (como em CJS) mas sero assncronos (como AMD). David Herman [ES6 modules] permitiro a definio de dependncias sem uso de callbacks (como em CJS) mas sero assncronos (como AMD). David Herman

Consideraes finais Consideraes finais


Um sistema de mdulos adequado a sada para manter a sanidade do seu cdigo JavaScript. A despeito das inmeras solues, saiba que a escolha de um sistema j padronizado garante o uso de uma soluo otimizada Um sistema de mdulos adequado a sada para manter a sanidade do seu cdigo JavaScript. A despeito das para este problema comum. inmeras solues, saiba que a escolha de um sistema j padronizado garante o uso de uma soluo otimizada para este problema comum. Se me permite um conselho: prefira sempre um sistema de mdulos robusto , difcil prever o quo complexa uma aplicao poder se tornar. Em outras palavras, escolha entre: AMD, CommonJS modules utilizando Se me permite um conselho: sempre um sistema mdulos robusto , difcil prever o quo .complexa ferramentas como Browserifyprefira e at mesmo (por sua conta ede risco) ES6 modules com ES6 Module Loader uma aplicao poder se tornar. Em outras palavras, escolha entre: AMD, CommonJS modules utilizando ferramentas como Browserify e at mesmo (por sua conta e risco) ES6 modules com ES6 Module Loader.

Por Jean Carlo Emer


Arteso da internet, cientista da computao e palestrante. Adora aprender uma linguagem diferente, seja as do tipo que solucionam problemas aritmticos e lgicos, marcam, estilizam ou geram outras. tambm um dos criadores da Rye.js e Arteso da internet, cientista da computao e palestrante. Adora aprender uma linguagem diferente, seja as do tipo que defensor da pluralidade das bibliotecas aspirantes a superar a jQuery. solucionam problemas aritmticos e lgicos, marcam, estilizam ou geram outras. tambm um dos criadores da Rye.js e defensor da pluralidade das bibliotecas aspirantes a superar a jQuery. http://jcemer.com

Por Jean Carlo Emer

open in browser PRO version Are you a developer? Try out the HTML to PDF API http://jcemer.com

pdfcrowd.com

Ma i s p o s ts d o a u to r Ma i s p o s ts d o a u to r

7 comentrios Join the discussion


Mais votados Comunidade
um ms atrs

Compartilhar

Leo Balter

Obrigado, Jean, tinha me programado para procurar algo compatvel com mdulos CommonJS e fosse similar ao esquema do NodeJS, com require() e module.exports, no finalzinho do artigo encontrei logo o Browserify que foi exatamente o que procurava. \o/

Confesso que demorei um tempo pra utilizar ferramentas AMD/CommonJS pois queria aguardar a especificao d ES6, mas parei em uma situao que no estou vendo mais utilidade invs de apenas continuar esperando.
8
Responder Compartilhar

Suissa

Leo Balter um ms atrs


Responder Compartilhar

Tb tem esse aqui do Miller https://github.com/millermedei... Eu nunca usei, acho o browserify mto bom :D

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Pedro Nauck 1

um ms atrs

Valeu Jean, ainda essa semana tava buscando um bom contedo sobre modularizao Javascript.
Responder Compartilhar

Luiz Henrique

13 horas atrs

Valeu pelo contedo. Obrigado


Responder Compartilhar

Tiago Celestino

22 dias atrs

Usei o require.js em uma app, achei super prtico, o problema que em alguns momentos parava de funcionar, principalmente no IECA.
Responder Compartilhar

Palmer

23 dias atrs

hardcore heim
Responder Compartilhar

marlonnauweb

um ms atrs

Excelente Jean, conceitos importantssimos para os novos desenvolvedores js. Profissionalizando a rea ;) Parabns e obrigado
Responder Compartilhar

NOSSOS SERVIOS
Assinar feed Add Disqus to your site

Produzimos seu cdigo front-end NOSSOS SERVIOS Produzimos seu cdigo front-end Sites WordPress
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Micro Workshops Online Micro Workshops Online Aulas Particulares Aulas Particulares Vdeos tutoriais Vdeos tutoriais

O grande desencontro do HTTP com o HTML O grande desencontro do HTTP com o HTML

MAIS VISITADOS
PHPUnit, como iniciar sem dores MAIS VISITADOS PHPUnit, como iniciar sem dores O grande desencontro do HTTP com o HTML O grande desencontro do HTTP com o HTML Assista: [Live Coding] Codificando um Layout com HTML/CSS
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

No tenho verso mobile, fao ou no fao? No tenho verso mobile, fao ou no fao? CSS Transition e CSS Animation CSS Transition e CSS Animation

SEJA UM AUTOR
Quer escrever no Tableless? SEJA UM AUTOR Quer escrever no Tableless?

open in browser PRO version

NEWSLETTER

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

NEWSLETTER NEWSLETTER
Primeiro nome Sobrenome Email Address

Cadastrar Cadastrar

MAIS RECENTES
PHPUnit, como iniciar sem dores MAIS RECENTES PHPUnit, como iniciar sem dores O que falamos em 2013? O que falamos em 2013? O grande desencontro do HTTP com o HTML O grande desencontro do HTTP com o HTML No tenho verso mobile, fao ou no fao? No tenho verso mobile, fao ou no fao? Domnio Gratuito existe, mas, devo us-lo? Domnio Gratuito existe, mas, devo us-lo? Como escrever bem para o SEO Texto e Contexto, da palavra-chave semntica. Como escrever bem para o SEO Texto e Contexto, da palavra-chave semntica. Formulrios acessveis com wai-aria
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

JavaScript de forma assncrona e legvel JavaScript de forma assncrona e legvel Ensine mais Ensine mais Criando um blog com Octopress e Github Pages Criando um blog com Octopress e Github Pages Introduo ao Selenium 2 Introduo ao Selenium 2 TDD, por que usar? TDD, por que usar? Transies inteligentes na experincia do usurio Transies inteligentes na experincia do usurio Assista: [Live Coding] Codificando um Layout com HTML/CSS Assista: [Live Coding] Codificando um Layout com HTML/CSS Turbinando as Media Queries Turbinando as Media Queries

Tableless
Follow
+ 4,044

+1

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Tableless
Like

28,466 people like Tableless.

Facebook social plugin

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

VAGAS E TRAMPOS
DESENVOLVEDOR PHP (Rio de Janeiro) VAGAS E TRAMPOS DESENVOLVEDOR PHP (Rio de Janeiro) Desenvolvedor web pleno (front e back-end) (So Paulo) Desenvolvedor web pleno (front e back-end) (So Paulo) Web Designer (So Paulo)
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Atendimento / Analista de Negcios na Object Edge (Rio Grande do Sul) Atendimento / Analista de Negcios na Object Edge (Rio Grande do Sul) Estgio desenvolvedor front-end (Rio Grande do Sul) Estgio desenvolvedor front-end (Rio Grande do Sul) Gerente de Projetos na Object Edge Brasil (Rio Grande do Sul) Gerente de Projetos na Object Edge Brasil (Rio Grande do Sul) Desenvolvedor Web HTML/CSS/JS (Rio Grande do Sul) Desenvolvedor Web HTML/CSS/JS (Rio Grande do Sul)

CATEGORIAS CATEGORIAS

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

CATEGORIAS CATEGORIAS HISTRICO HISTRICO


Select Month Select Category

O Bsico O Bsico open in browser PRO version

17 17

Tudo o que voc precisa saber sobre Sitemaps


Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Tudo o que voc precisa saber sobre Sitemaps Tudo o que voc precisa saber sobre Sitemaps

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Semntica

14 14

Semntica, padres e o que voc tem a ver com isto


Semntica

Semntica, padres e o que voc tem a ver com isto

Artigos Artigos open in browser PRO version

9 9

Modos de Mesclagem em CSS

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Modos de Mesclagem em CSS Modos de Mesclagem em CSS

MAIS ARTIGOS MAIS ARTIGOS PHPUnit, como iniciar sem dores


PHP PHP

Instalando o PHUnit utilizando o gerenciador de pacotes Composer. PHPUnit, como iniciar sem dores Instalando o PHUnit utilizando o gerenciador de pacotes Composer.
ARTIGOS

O que falamos em 2013?


ARTIGOS

E o que vamos falar em 2014? Confira alguns do assuntos que fizeram a cabea em 2013 e podem ser grandes promessas para 2014. O que falamos em Confira 2013? E o que vamos falar em 2014? alguns do assuntos que fizeram a cabea em 2013 e podem ser grandes promessas para 2014.
CDIGO

O grande desencontro do HTTP com o HTML


CDIGO

Duas tecnologias criadas sob o mesmo projeto que possuem uma falha de compatibilidade. Vamos open in browser PRO version Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Duas tecnologias criadas sob o mesmo projeto que possuem uma falha de compatibilidade. Vamos conhecer um pouco da histria do HTTP e HTML, boas prticas e como manter interaes coerentes entre cliente e servidor. Duas tecnologias criadas sob o mesmo projeto que possuem uma falha de compatibilidade. Vamos conhecer um pouco da histria do HTTP e HTML, boas prticas e como manter interaes coerentes entre cliente e servidor.
CSS

No tenho verso mobile, fao ou no fao?


CSS

Ainda tem dvidas se deve ou no fazer a verso mobile do seu produto ou site? Saia dessa... No tenho verso mobile, fao ou no Ainda tem dvidas se deve ou no fazer a verso mobile do seufao? produto ou site? Saia dessa...
ARTIGOS

Domnio Gratuito existe, mas, devo us-lo?


ARTIGOS

Muitos tipos de domnio esto espalhados pela web, inclusive os gratuitos, mas, afinal, eu posso realmente usar? Domnio Gratuito mas, devo us-lo? Muitos tipos de domnio estoexiste, espalhados pela web, inclusive os gratuitos, mas, afinal, eu posso realmente usar?
SEO

Como escrever bem para o SEO Texto e Contexto, da palavra-chave semntica. Entenda como melhorar o texto para os sistemas de busca. Como escrever bem para o SEO Texto e Contexto, da palavra-chave semntica. Entenda como melhorar o texto para os sistemas de busca.
SEO ACESSIBILIDADE

Formulrios acessveis com wai-aria


ACESSIBILIDADE

Crie formulrios incrveis usando as boas prticas e acessibilidade, afim de suprir todos os tipos de usurios. Formulrios acessveis com wai-aria Crie formulrios incrveis usando as boas prticas e acessibilidade, afim de suprir todos os tipos de usurios.
GERAL GERAL JavaScript de forma assncrona e legvel

A programao assncrona possui a vantagem de gerar cdigos perfomticos. Em certos casos, a implementao de diversas funes assncronas encadeadas atravs de funes callback pode open in browser PRO version Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

implementao de diversas funes assncronas encadeadas atravs de funes callback pode prejudicar a leitura e a manuteno do cdigo. Para demonstrar esse encadeamento, vamos utilizar um trecho implementao de diversas funes assncronas encadeadas atravs de funes callback pode prejudicar a leitura e a manuteno do cdigo. Para demonstrar esse encadeamento, vamos utilizar um trecho
ARTIGOS

Ensine mais
ARTIGOS

Aprenda ensinando em 2014. Ensine mais em Aprenda ensinando 2014.


CDIGO

Criando um blog com Octopress e Github Pages Crie um blog em Octopress, framework baseado em Jekyll. Criando um blog com Octopress e Github Pages Crie um blog em Octopress, framework baseado em Jekyll.
CDIGO

NS FAZEMOS NS FAZEMOS Produzimos seu cdigo front-end


Sites WordPress Produzimos seu cdigo front-end Micro Workshops Online Sites WordPress Aulas Particulares Micro Workshops Online Vdeos tutoriais Aulas Particulares Vdeos tutoriais

POSTS RECENTES POSTS RECENTES PHPUnit, como iniciar sem dores


O que falamos em 2013? PHPUnit, como iniciar sem dores O grande desencontro do HTTP O que com o falamos HTML em 2013? O grande desencontro do HTTP No tenho verso mobile, fao ou com o HTML no fao? No tenho versoexiste, mobile, fao ou Domnio Gratuito mas, no fao? devo us-lo?

SIGA-NOS SIGA-NOS Twitter


Facebook Twitter FEED Rss Facebook Google+ FEED Rss Google+

open in browser PRO version

DomnioTry Gratuito existe, mas, Are you a developer? out the HTML to PDF API

pdfcrowd.com

Arquitetura de Informao e UX: Diego Eis . Design: Luis Vilela. Ilustraes: Tilman Zitzmann. Arquitetura de Informao e UX: Diego Eis . Design: Luis Vilela. Ilustraes: Tilman Zitzmann.

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Você também pode gostar