quarta-feira, 11 de fevereiro de 2015

Começando um projeto

Olá, noobs!

Há algum tempo estou com um projeto. Não tenho tido muito tempo pra me dedicar a ele, mas vou tocando conforme posso. Já citei ele no meu primeiro post, e agora vou falar um pouco sobre...

Em primeiro lugar, este projeto é, pra mim, uma maneira de testar tecnologias, testar habilidades, testar metodologias ágeis, etc. Estou fazendo junto com minha namorada e um amigo, que também já foram citados, e decidi que vou postar, o mais regular que eu conseguir, como as coisas estão indo.
A título de ambientação, o projeto é um gerenciador de fichas de RPG, inicialmente para o sistema de Tormenta.

O projeto está no GitHub, para quem quiser baixar.


Enfim, após discutir com o Gabriel os nossos objetivos finais - ou seja, o produto final - que desejamos obter, comecei a trabalhar no site que será disponibilizado. Criei o index.html com o cabeçalho, onde, assim como na ficha, ficam as informações mais básicas do personagem. Ficou bastante bonito (como pode ser visto abaixo).



Quando o Gabriel olhou o arquivo, porém, veio imediatamente falar comigo:

Cara... não faz o DOM na mão! JavaScript > HTML + CSS!

Ao qual eu respondi que, por mais que eu utilize JS, sempre será necessário o uso de HTML e CSS no DOM.

Nossa discussão durou algum tempo, durante o qual defendi minha posição de usar o HTML e CSS diretamente no DOM, e ele a de criar o DOM dinamicamente por meio de Frameworks de JS, citando o Backbone.js.

A discussão ficou por isso mesmo, até que, essa semana, ele postou um link do CodeSchool com um curso de Backbone. Resolvi conferir. Fiz o primeiro módulo do curso e... gostei! Realmente, é muito simples de ler, quando já se entende sobre o que é aquilo. O documento fica simples, pois abstrai a redundância do documento HTML. Eu posso simplesmente importar um arquivo com o JavaScript e Voilà! O DOM está pronto. (Infelizmente, o CodeSchool cobra uma taxa de $29.00 POR MÊS para fazer os cursos lá, com exceção do primeiro módulo... Valeria a pena, se eu tivesse tempo de fazer vários cursos por mês... Mas eu acho alternativas...) :)

Claro, falando assim parece até mágica.

Não. Não é.

Nesse post não vou mostrar nenhum tipo de desenvolvimento com o Backbone.js, até por que ainda não tenho nada pronto. Meu intuito é explicar a decisão que tomei.

De acordo com o Uncle Bob (já citado no meu post anterior), é essencial que o código seja compreensível. Não adianta que tenhamos um documento enorme, cheio de métodos, que não se entenda nada. O ideal são documentos pequenos. Métodos que façam uma - e apenas uma! - coisa, e bem feita! É preciso que o documento seja simples o suficiente para que alguém que nunca o tenha visto possa compreender o que está sendo feito em pouco tempo. E isso é mais fácil dito do que feito, por incrível que pareça.

Usar um framework nem sempre é a decisão mais aconselhada. Como nós não somos os donos do código, é possível que ele venha a mudar e determinadas funções parem de funcionar. E é bem difícil fazer com que o framework não seja o dono do código (no sentido de "quebrar" o código quando mudar).

Esse, porém, é meu intuito. Nos próximos dias, vou estudar o que eu puder sobre Backbone.js para que eu possa desenvolver a mesma coisa que desenvolvi anteriormente nele, e mostrar a diferença. Quiçá eu tenha um arquivo bonito, simples e elegante para mostrar aqui em breve.