Java script

1,279 views
1,176 views

Published on

Essa apresentação intenciona aprensetar novamente para desenvolvedores

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,279
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
35
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Java script

  1. 1. JSJavaScript, o incompreendido. Mozart Diniz mozart.diniz@gmail.com
  2. 2. JavaScript?
  3. 3. Java JavaScript é a linguagem de programaçãomais incompreendida do mundo. Douglas Crockford
  4. 4. Você pega a sintaxe do Java, o modelofuncional de Scheme, o conceito de prototype de Self,coloca tudo isso juntoe chama de LiveScript. Como assim eu só tenho 10 dias?
  5. 5. JavaScript parece legal, mas eu tenho medo dele! E eu sei por quê!
  6. 6. Retrospectiva- Janeiro de 1995: Primeira demonstração pública do Java- Maio de 1995: Netscape licencia o Java- Outubro de 1995: Navigator 2.0B1 passa a suportar Java - Rumores começam a mencionar um possível suporte a uma linguagem de script. - Todos estava maravilhados com as coisas legais que se podiam fazer com Applets- Dezembro de 1995: Netscape renomeia LiveScript para JavaScript e lança junto com o Navigator 2.0B3
  7. 7. Um começo ruim- A decisão de relacionar o JavaScript com o Java, tanto o nome quanto a sintaxe, se mostrou péssima.- Obviamente os programadores Java estariam em vantagem para entender e começar a ensinar JavaScript, certo?
  8. 8. É um brinquedo- Quando os primeiros programadores tiveram contato com a linguagem ficam bem insatisfeitos. - “Tudo é público!” - “Não existem subclasses!” - “Você pode adicionar e remover métodos em objetos que já existem!” - “Você pode mudar uma propriedade para um método!”
  9. 9. Resultado- Programadores Java disseram “evitem o JavaScript”- Deixem toda a sua lógica no servidor e usem uma linguagem de verdade
  10. 10. Então, as coisas ficaram ruins.- Applets deram errado.- Códigos JavaScript mal feitos quebravam por todo lado.- Problemas de segurança fizeram as pessoas desativarem o JavaScript em seus navegadores.
  11. 11. Criou-se um vácuo- Programadores não se interessaram em aprender JavaScript.- Então, os WebDesigners o fizeram: - Espalham péssimos códigos por toda a internet. - Nas páginas e nos livros. - As pessoas passaram a aprender com esses exemplos.
  12. 12. Então, as coisas ficaram piores. - Iniciou-se a guerra dos browsers. - JavaScript tornou-se a arma principal. - O DOM é a arma de apoio. - A web tornou-se incompatível. - Muitos cabelos se foram por aqui.
  13. 13. Admita, durante anos você colocou a culpa no JavaScript, quando na verdade oproblema sempre foi a Guerra dos Browsers.
  14. 14. Com o fim da guerra...- Netscape perdeu. - A empresa quebrou, liberou os fontes do Netscape e hoje seu legado é a fundação Mozilla.- Microsoft foca em produzir bugs para CSS.- IE introduz Ajax, Mozilla segue o padrão.
  15. 15. Dos escombros, a revolução!
  16. 16. Agradeça ao Google.- Google Mail(443 mil linhas de JS)- Google Suggest- Google MapsQue tecnologia esses caras usam?Como eles fazem isso? Isso é umplugin?
  17. 17. Toneladas de Frameworks.AccDC, Ample SDK, CupQ, DHTMLX, Dojo,Echo3, Enyo, Ext JS, Google Web Toolkit,jQuery, midori, MochiKit, MooTools, Prototype& script.aculo.us, Backbone.js, AngularJS,Ember.js, Knockout, Agility.js, CanJS, Spine,Maria, Sammy.js, Stapes.js, Epitome, soma.js,PlastronJS, rAppid.js, Serenade.js, Kendo UI
  18. 18. Além da guerra dos browsers,existem outros lugares para crescer.
  19. 19. Github Top Languages
  20. 20. JavaScript venceu onde todas as outras falharam,existe algo de brilhante nisso, e não foi por acaso.
  21. 21. "Todos somos geniais.Mas se você julgar umpeixe pela suahabilidade de escalaruma arvore, ele viverátoda a sua vidaacreditando que éestúpido".(A. Einstein)
  22. 22. Partes Boas- Objetos dinâmicos- Objetos Literais- Prototypal Inheritance
  23. 23. Partes Ruins- Variáveis Globais- Ponto e virgula- typeof- eval (eval is evil)- false, null, undefined, NaN
  24. 24. JQuery é um amigo... ...que vai te apunhalar pelas costas
  25. 25. Problema 1: Macarronada$.ajax({type: "POST", url: "returnSemesterNumbers", data: "programId="+selectedprog, success: function(data) { $.ajax({type: "POST", url: "returnCourses", data: "programId="+selectedprog+"&semNum="+semnum, success: function(data1) { // traga o azeite por favor } }) }});
  26. 26. Problema 1: Macarronadarequest = new XMLHttpRequest();request.open("POST", "returnSemesterNumbers", true);request.onreadystatechange = successCallback;request.send("programId=" + selectedprog + "&semNum=" + semnum);function successCallback() { request.open("POST", "returnCourses", true); request.onreadystatechange = outroCallbackAi; request.send("programId="+selectedprog+"&semNum="+semnum);}
  27. 27. Problema 2: Desempenho
  28. 28. Problema 2: Desempenho
  29. 29. Problema 3: O que é feito com JQuery, pode ser feito de forma nativa. //Obter elementos do DOM via sintaxe CSS $("form input[type=text]") document.querySelectorAll("form input[type=text]"); //forEach $.each([2, 5, 9], function() { console.log(a) }); [2, 5, 9].forEach(function() { console.log(a) });
  30. 30. Problema 3: O que é feito com JQuery, pode ser feito de forma nativa.//Adicionar classes ao elemento$("p").addClass("holiday-special");var element = document.getElementById("header");element.classList.add("holiday-special");element.classList.toggle("hide");element.classList.remove("holiday-special");
  31. 31. Esqueça essesbrowsers e vamos nosdivertir em outro lugar!
  32. 32. var http = require(http);http.createServer(function (req, res) { res.writeHead(200, {Content-Type: text/plain}); res.write("Server is running. n");}).listen(8124, "127.0.0.1");console.log(Server running at http://127.0.0.1:8124/);
  33. 33. Existe algo familiar nesse código?// Node.jsclient.on(data, function(data){ // faça algo});// Browserelement.addEventListener(click,function () { // faça algo},false);
  34. 34. //Buscandodb.users.find( { status: "A" } ).explain()//Atualizandodb.users.update( { age: { $gt: 25 } }, { $set: { status: "C" } }, { multi: true })//Removendodb.users.remove( { status: "D" } )
  35. 35. // Lendo um arquivo de textovar text = fs.readFileSync(fileName, "utf8");text.split(/r?n/).forEach(function (line) { // do semething});//Escrevendo em um arquivo de textofs.writeFileSync(fileName, str, utf8);var out = fs.createWriteStream(fileName, { encoding: "utf8"});out.write(str);out.end();
  36. 36. console.log(Dúvidas?);
  37. 37. Obrigado! Mozart Dinizmozart.diniz@gmail.com

×