Como alguém que fez parte da lendária equipe MooTools JavaScript, tenho certa afeição por estender os protótipos de objetos nativos. É claro que a prática de estender protótipos é um tabu hoje em dia, pois os fornecedores de navegadores estão iterando e implementando novas especificações mais rapidamente do que na era do IE6, mas estender os nativos no Node.js poderia ser considerado mais seguro, pois, em teoria, temos mais controle sobre o ambiente (versão do Node.js).
A extensão de um nativo no Node.js é bastante simples:
// Inside a file module called "String.prototype.startsWith.js" // Naming convention important for maintenance and clearness of intent // This is a very, very simple shim not made for production use // It's simply to illustrate the prototype extension // More logic should be added for edge cases if(!String.prototype.startsWith) { String.prototype.startsWith = function(term) { return this.substr(0, term.length) === term; }; } // ---------- // Inside any other module that wants to use the extension require('String.prototype.startsWith'); // Usage if(myString.startsWith('Moo')) { // ... }
Desde que o senhor exija o módulo que contém o código de extensão, o nativo terá o método adicional desejado. É claro que isso não se aplica apenas aos nativos, o senhor pode estender outros objetos da mesma forma. Se o senhor pesquisar no npm, poderá encontrar vários protótipos de extensões, sendo um deles String.prototype.startsWith, que também funcionam no código do lado do cliente.
Presumo que receberei algum tipo de ódio por sugerir que essa prática seja mais adequada para o Node.js, portanto, o senhor pode me atacar!
Expressões regulares para o resto de nós
Mais cedo ou mais tarde, o senhor se deparará com uma expressão regular. Com sua sintaxe enigmática, documentação confusa e enorme curva de aprendizado, a maioria dos desenvolvedores se contenta em copiá-las e colá-las do StackOverflow e torcer para que funcionem. Mas e se o senhor pudesse decodificar as expressões regulares e aproveitar seu poder? Em…
Tags META do Facebook Open Graph
Não é segredo que o Facebook se tornou um importante gerador de tráfego para todos os tipos de sites. Hoje em dia, até mesmo as grandes corporações direcionam os consumidores para suas páginas do Facebook, em vez de para os sites corporativos diretamente. E, é claro, há widgets “Curtir” e “Recomendar” do Facebook em todos os sites. Um…
Links deslizantes no estilo GitHub
O GitHub parece mudar muito, mas não muda de fato, se é que isso faz algum sentido; as atualizações ocorrem com frequência, mas são sempre bem pequenas. Encontrei uma das atualizações mais recentes na página de pull request. Links para o branch longo…