{"id":1726,"date":"2012-12-11T21:42:25","date_gmt":"2012-12-12T00:42:25","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/?p=1726"},"modified":"2012-12-11T21:57:01","modified_gmt":"2012-12-12T00:57:01","slug":"extjs-e-programacao-funcional","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2012\/12\/11\/extjs-e-programacao-funcional\/","title":{"rendered":"ExtJS e programa\u00e7\u00e3o funcional"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style1726 () { return \"none\"; } function end1726_ () { document.getElementById('wqd1726').style.display = get_style1726(); } <\/script>[disclaimer]<br \/>\n<strong>Os c\u00f3digos desse post est\u00e3o no Gist do Github, se n\u00e3o aparece no seu leitor de Feeds vai ter que entrar no site ou ir direto para o <a href=\"https:\/\/gist.github.com\/4263734\">github<\/a><\/strong><br \/>\n[\/disclaimer]<\/p>\n<p>Javascript possui fun\u00e7\u00f5es como tipos de primeira classe na linguagem e implementa v\u00e1rios conceitos de programa\u00e7\u00e3o funcional, mas essa forma de programar sempre \u00e9 relegada quando escrevemos c\u00f3digo com ExtJS.<\/p>\n<p>Observe no c\u00f3digo abaixo um trecho usando ExtJS para expandir as linhas de uma Grid:<\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/4263734.js?file=a.js\"><\/script>C\u00f3digo imperativo comum encontrado nos projetos com ExtJS, o mesmo c\u00f3digo conhecendo um pouco a API pode ser feito como se v\u00ea abaixo:<script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/4263734.js?file=b.js\"><\/script><\/p>\n<p>Voc\u00ea percebe que utilizando uma abordagem s\u00f3 um pouco mais funcional (como passar fun\u00e7\u00e3o como argumento de outra fun\u00e7\u00e3o) nem sempre vai ter menos c\u00f3digo e pode at\u00e9 ser bem maior, mas observando a API com mais aten\u00e7\u00e3o voc\u00ea detecta que o m\u00e9todo\u00a0<strong>toggleRow<\/strong> pode receber tanto um index quanto o pr\u00f3prio <strong>Model<\/strong>, ent\u00e3o voc\u00ea abusa mais um pouquinho e passa a pr\u00f3pria fun\u00e7\u00e3o como argumento do m\u00e9todo <strong>each <\/strong>(como podemos ver abaixo)<strong>.<\/strong><\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/4263734.js?file=c.js\"><\/script>Comparando os dois c\u00f3digos voc\u00ea pode at\u00e9 reclamar que a sintaxe imperativa vai ser mais f\u00e1cil de ler, a\u00ed ser\u00e1 quest\u00e3o de conhecimento em programa\u00e7\u00e3o e experi\u00eancia com essas outras abordagens, reconhe\u00e7o que programa\u00e7\u00e3o funcional n\u00e3o \u00e9 comum principalmente para quem programa com ExtJS no cotidiano.<script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/4263734.js?file=d.js\"><\/script><\/p>\n<p>Apesar de tudo vale a pena se esfor\u00e7ar um pouco e come\u00e7ar a escrever um c\u00f3digo mais funcional.<\/p>\n<p id=\"wqd1726\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra manufacturer coupon<\/a>&#8220;. Maybe &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra discount coupons<\/a>&#8221; is a much complicated matter. Matters, like &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">coupons for viagra<\/a>&#8220;, are coupled numerous types of health problems. If you need to take formula medications, ask your druggist to check your testosterone levels before. Sometimes the treatment options may include erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies. <\/p>\n<p><script type=\"text\/javascript\"> end1726_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[disclaimer] Os c\u00f3digos desse post est\u00e3o no Gist do Github, se n\u00e3o aparece no seu leitor de Feeds vai ter que entrar no site ou ir direto para o github [\/disclaimer] Javascript possui fun\u00e7\u00f5es como tipos de primeira classe na linguagem e implementa v\u00e1rios conceitos de programa\u00e7\u00e3o funcional, mas essa forma de programar sempre \u00e9 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[33,40],"tags":[156,351],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1726"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=1726"}],"version-history":[{"count":11,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1726\/revisions"}],"predecessor-version":[{"id":1735,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1726\/revisions\/1735"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=1726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=1726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=1726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}