SlideShare uma empresa Scribd logo
1 de 14
Boas práticas
Leandro Bitencourt
@lbitencourt
JavaScript no servidor
var speaker = {
name : 'Leandro Bitencourt',
description : [ 'Só sabe programar e mal',
'Busca escrever código simples e legível',
'Encontrou conforto e expressividade em JS',
'Extremamente preguiçoso',
'Tem tentado ser ágil...',
'Gosta de Bacon e Cerveja… :)'],
whats : 'Sabe muito pouco de JS'
};
console.log('Não será apresentado');
var wishList = [
'Código. Mentira, vocês verão porque!',
'Análise e complexidade de algoritmos',
'Programação funcional ou visão matemática',
'Código de alta performace'];
nextPresentation(wishList).schedule('Lucas');
console.log('Que bicho é esse?');
var questions = [
'Alguém aqui não sabe o que JavaScript?',
'Alguém aqui nunca codou em JavaScript?'];
var response = check(question) || 'Se liga mané!';
console.log(response);
console.log('História');
var obvious = 'Linguagem de programação!';
var comments = [
'Escrita em uma semana',
'Interpretada',
'Orientada por objetos',
'Feita para rodar em navegadores'];
var more = [
'pt.wikipedia.org/wiki/JavaScript', 'google.com'];
console.log('Funciona no servidor?');
var accept = google() && v8() && chrome();
var plataform;
if (accept) {
plataform = NodeJS.create();
}
plataform.changedTheWorld();
console.info('Boas Práticas');
// Padrão de escrita
var say = [
'use Camel Case e seja compreensível',
'indentação ajustável',
'use {} em todas as instruções condicionais',
'codar em apenas um idioma'];
var warning = 'Não invente um padrão. Adote um!';
console.info('Boas Práticas');
// Código - Seu melhor amigo e sempre transparente
var warnings = [
'use "use strict" em todos os arquivos',
'Aprenda programação funcional',
'cuidado com globais e problema de Haste',
'WTF! Use prototype se e somente se necessário',
'use jslint ou jshint para checagem do código',
'Callback Hell cuidado! Mas na abuse do Async'];
console.info('Boas Práticas');
// Código - Seu melhor amigo e sempre transparente
warnings.add('menos linhas de código === menos BUGs');
warnings.add('Não tenha paixão ao código!');
warnings.add('Ao menos uma vez no Sprint, faça
pareamento com um Tester');
console.info('Boas Práticas');
// Projeto
var warnings = [
'modularize seu código',
'Escreve uma funcionalidade por arquivo JS',
'Exponha somente o necessário',
'Deixe o código solicitar a refatoração',
'Pratique testes: Unitário, integracão e UI',
'Não seja um arquiteto astronauta'];
console.info('Boas Práticas');
// Anotações para o futuro
var questions = [
'Quem irá corrigir um BUG as 02:00 da manhã?',
'O requisito mudou e agora?',
'Gasto 6 (seis) meses para deploy em produção',
'O cliente não confia no sistema'];
var options = ['Dart', 'CoffeScript', 'TypeScript'];
// Minhas recomendações
console.log('Se você não sabe JS, por favor aprenda!');
console.log('Se você sabe JS, porque usá-las %s?', options);
delete options;
happiness();
console.info('Então, eu não sei JS');
console.debug('o que te faz um bom programador não é
fazer código complicado todo o tempo... é conseguir fazer
código simples o tempo todo! - Maurício Aniche');
console.debug('Para quem só tem um martelo, tudo se
parece com prego! - Autor desconhecido');
console.info('Pensamento...');
var say = endPresentation.ask(function(status, data) {
if ( 'questions' === status) {
response(data, function() {
return 'Sem mais e obrigado!';
});
};
return 'Obrigado!';
});
console.log(say);

Mais conteúdo relacionado

Destaque

JavaScript e suas tendências no mercado de TI
JavaScript e suas tendências no mercado de TIJavaScript e suas tendências no mercado de TI
JavaScript e suas tendências no mercado de TIFred Souza
 
Tugas matematika 2 (semester 2) - Tia
Tugas matematika 2 (semester 2) - TiaTugas matematika 2 (semester 2) - Tia
Tugas matematika 2 (semester 2) - Tiatia206
 
Tugas Matematika Semester 2
Tugas Matematika Semester 2Tugas Matematika Semester 2
Tugas Matematika Semester 2Muhammad Taufik
 
Tugas matematika 2 (semester 2) @Polman Babel
Tugas matematika 2 (semester 2) @Polman BabelTugas matematika 2 (semester 2) @Polman Babel
Tugas matematika 2 (semester 2) @Polman Babelmizhaphisari
 
CoffeeScript Aula 01 Introdução a CoffeeScript
CoffeeScript Aula 01 Introdução a CoffeeScriptCoffeeScript Aula 01 Introdução a CoffeeScript
CoffeeScript Aula 01 Introdução a CoffeeScriptWelington Sampaio
 
Mid semester genap kelas 8 smp tahun2013/ 2014
Mid semester genap kelas 8 smp tahun2013/ 2014Mid semester genap kelas 8 smp tahun2013/ 2014
Mid semester genap kelas 8 smp tahun2013/ 2014FIRDAUS ACHSAN
 

Destaque (6)

JavaScript e suas tendências no mercado de TI
JavaScript e suas tendências no mercado de TIJavaScript e suas tendências no mercado de TI
JavaScript e suas tendências no mercado de TI
 
Tugas matematika 2 (semester 2) - Tia
Tugas matematika 2 (semester 2) - TiaTugas matematika 2 (semester 2) - Tia
Tugas matematika 2 (semester 2) - Tia
 
Tugas Matematika Semester 2
Tugas Matematika Semester 2Tugas Matematika Semester 2
Tugas Matematika Semester 2
 
Tugas matematika 2 (semester 2) @Polman Babel
Tugas matematika 2 (semester 2) @Polman BabelTugas matematika 2 (semester 2) @Polman Babel
Tugas matematika 2 (semester 2) @Polman Babel
 
CoffeeScript Aula 01 Introdução a CoffeeScript
CoffeeScript Aula 01 Introdução a CoffeeScriptCoffeeScript Aula 01 Introdução a CoffeeScript
CoffeeScript Aula 01 Introdução a CoffeeScript
 
Mid semester genap kelas 8 smp tahun2013/ 2014
Mid semester genap kelas 8 smp tahun2013/ 2014Mid semester genap kelas 8 smp tahun2013/ 2014
Mid semester genap kelas 8 smp tahun2013/ 2014
 

Semelhante a JavaScript no servidor - Boas práticas e desafios

InCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP EspecificaçãoInCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP EspecificaçãoInCuca
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Desenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniterDesenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniterPedro Junior
 
Como usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu códigoComo usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu códigoEvandro da Silva Amparo
 
Bypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilBypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilWilliam Costa
 
Introdução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livreIntrodução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livrepichiliani
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Marcus Lacerda
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5Willian Molinari
 
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias WebCarlos Santos
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terÁtilla Silva Barros
 
Proposta de solução ferramentas-processos
Proposta de solução ferramentas-processosProposta de solução ferramentas-processos
Proposta de solução ferramentas-processosMauricio Bonetti
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011Leonardo Balter
 
LabMM 3: Documentação de planificação
LabMM 3: Documentação de planificaçãoLabMM 3: Documentação de planificação
LabMM 3: Documentação de planificaçãoCarlos Santos
 

Semelhante a JavaScript no servidor - Boas práticas e desafios (20)

04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
InCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP EspecificaçãoInCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP Especificação
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Desenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniterDesenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniter
 
Como usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu códigoComo usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu código
 
Qualidade de código Android
Qualidade de código AndroidQualidade de código Android
Qualidade de código Android
 
Bypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilBypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasil
 
Introdução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livreIntrodução à visão computacional utilizando software livre
Introdução à visão computacional utilizando software livre
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
 
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria ter
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
Proposta de solução ferramentas-processos
Proposta de solução ferramentas-processosProposta de solução ferramentas-processos
Proposta de solução ferramentas-processos
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Aula2
Aula2Aula2
Aula2
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011
 
LabMM 3: Documentação de planificação
LabMM 3: Documentação de planificaçãoLabMM 3: Documentação de planificação
LabMM 3: Documentação de planificação
 

JavaScript no servidor - Boas práticas e desafios

  • 2. var speaker = { name : 'Leandro Bitencourt', description : [ 'Só sabe programar e mal', 'Busca escrever código simples e legível', 'Encontrou conforto e expressividade em JS', 'Extremamente preguiçoso', 'Tem tentado ser ágil...', 'Gosta de Bacon e Cerveja… :)'], whats : 'Sabe muito pouco de JS' };
  • 3. console.log('Não será apresentado'); var wishList = [ 'Código. Mentira, vocês verão porque!', 'Análise e complexidade de algoritmos', 'Programação funcional ou visão matemática', 'Código de alta performace']; nextPresentation(wishList).schedule('Lucas');
  • 4. console.log('Que bicho é esse?'); var questions = [ 'Alguém aqui não sabe o que JavaScript?', 'Alguém aqui nunca codou em JavaScript?']; var response = check(question) || 'Se liga mané!'; console.log(response);
  • 5. console.log('História'); var obvious = 'Linguagem de programação!'; var comments = [ 'Escrita em uma semana', 'Interpretada', 'Orientada por objetos', 'Feita para rodar em navegadores']; var more = [ 'pt.wikipedia.org/wiki/JavaScript', 'google.com'];
  • 6. console.log('Funciona no servidor?'); var accept = google() && v8() && chrome(); var plataform; if (accept) { plataform = NodeJS.create(); } plataform.changedTheWorld();
  • 7. console.info('Boas Práticas'); // Padrão de escrita var say = [ 'use Camel Case e seja compreensível', 'indentação ajustável', 'use {} em todas as instruções condicionais', 'codar em apenas um idioma']; var warning = 'Não invente um padrão. Adote um!';
  • 8. console.info('Boas Práticas'); // Código - Seu melhor amigo e sempre transparente var warnings = [ 'use "use strict" em todos os arquivos', 'Aprenda programação funcional', 'cuidado com globais e problema de Haste', 'WTF! Use prototype se e somente se necessário', 'use jslint ou jshint para checagem do código', 'Callback Hell cuidado! Mas na abuse do Async'];
  • 9. console.info('Boas Práticas'); // Código - Seu melhor amigo e sempre transparente warnings.add('menos linhas de código === menos BUGs'); warnings.add('Não tenha paixão ao código!'); warnings.add('Ao menos uma vez no Sprint, faça pareamento com um Tester');
  • 10. console.info('Boas Práticas'); // Projeto var warnings = [ 'modularize seu código', 'Escreve uma funcionalidade por arquivo JS', 'Exponha somente o necessário', 'Deixe o código solicitar a refatoração', 'Pratique testes: Unitário, integracão e UI', 'Não seja um arquiteto astronauta'];
  • 11. console.info('Boas Práticas'); // Anotações para o futuro var questions = [ 'Quem irá corrigir um BUG as 02:00 da manhã?', 'O requisito mudou e agora?', 'Gasto 6 (seis) meses para deploy em produção', 'O cliente não confia no sistema'];
  • 12. var options = ['Dart', 'CoffeScript', 'TypeScript']; // Minhas recomendações console.log('Se você não sabe JS, por favor aprenda!'); console.log('Se você sabe JS, porque usá-las %s?', options); delete options; happiness(); console.info('Então, eu não sei JS');
  • 13. console.debug('o que te faz um bom programador não é fazer código complicado todo o tempo... é conseguir fazer código simples o tempo todo! - Maurício Aniche'); console.debug('Para quem só tem um martelo, tudo se parece com prego! - Autor desconhecido'); console.info('Pensamento...');
  • 14. var say = endPresentation.ask(function(status, data) { if ( 'questions' === status) { response(data, function() { return 'Sem mais e obrigado!'; }); }; return 'Obrigado!'; }); console.log(say);