
A Udemy oferece um certificado ao término de cada curso e a HCode reforça isso com um certificado oficial, criado pela plataforma deles.
Olha que bacana, tem até QRcode! Coisa chique! =D

A Udemy oferece um certificado ao término de cada curso e a HCode reforça isso com um certificado oficial, criado pela plataforma deles.
Olha que bacana, tem até QRcode! Coisa chique! =D

Na verdade, quem me acompanha no Twitter já viu que eu acabei o curso ontem mas eu estava extremamente hypado então achei melhor não escrever este post sob efeito de overdose de dopamina. xD
Porém, eu continuo no hype então se este post sair um pouco tendencioso não me culpem!
Eu quero falar sobre o Curso de Javascript Completo da Hcode mas não vou abordar muitos detalhes técnicos desta vez porquê isso já foi bastante abordado durante a série de logs que eu andei postando por aqui.
Então, sem muitas delongas…
Os pontos positivos deste curso são basicamente os mesmos do Curso de PHP 7, o qual eu já relatei aqui. Só que melhorados! E eu nem acreditava que isto seria possível.
Não quero puxar muito a sardinha para o pessoal da HCode (ainda mais depois que eu fui citado nesta live aqui, aprox. aos 2:00:05. Valeu mesmo pessoal! =D)… mas não tem como não reconhecer o ótimo trabalho que foi feito neste curso. Realmente, eles aprenderam bastante com os poucos tropeções que deram nos outros cursos e dá pra ver também uma evolução constante neste mesmo curso.
Basicamente, o curso não passa muito a “mão na cabeça” do aluno. Isso porquê os professores já esperam que o aluno saiba um mínimo de HTML e CSS e tenha dado ao menos uma olhadinha em Javascript.
Após uma introdução básica no javascript o segundo módulo já insere um pequeno projeto: criar uma calculadora. Mas não é uma calculadorazinha só de função, não. É essa belezinha aqui.
Isso, pra mim, foi bom porquê eu já senti que estava fazendo algo desde cedo e a cada aula ia enxergando melhor onde estavam sendo utilizados os conceitos explicados.
Após isto, veio um projeto mais interessante que o outro. E devo dizer, existem vários trechos de código extremamente interessantes em cada um deles. Desde o projeto mais simples ao mais complexo.
Além disso, as gravações e edições dos vídeo do curso vão seguindo uma crescente até encontrar um padrão próprio e, daí pra frente, mantém a qualidade.
Quanto a duração do curso: O curso demora pra ser finalizado porque os projetos são extensos e alguns são complexos por natureza.
Alguns momentos dão uma dorzinha de cabeça marota. Algumas tecnologias abordadas podem ser um pouco complexas de entender mas são extremamente necessárias para construir aplicações de forma profissional. Então é sempre bom ficar de olho na sessão de dúvidas dos usuários porquê vira e mexe o pessoal está lá se ajudando.
Mas isso não pode ser considerado uma crítica negativa porquê depois que você “olha pra trás” e vê o tanto que aprendeu ao terminar cada um dos projetos dá um certo orgulho. Aquela lagriminha no canto do olho, sabe?
Fala a verdade, é muito legal perceber que você conseguiu fazer um site completo com backend e frontend em javascript, um Dropbox clone plenamente funcional e um Whatsapp clone que funciona igual o “de verdade” e dá até pra usar com os amigos! =D
Ok, nem tudo são flores. Mas confesso que foi bem difícil encontrar os espinhos.
Basicamente, os pontos negativos são bem pontuais. É um trecho de código ou outro que não funciona por causa de alguma atualização de tecnologia (“cof cof” Firebase “cof cof”) e coisas do gênero.
Mas basta olhar na sessão de dúvidas que provavelmente alguém já resolveu isto. O povo tem se ajudado bastante por lá.
E… pra deixar pontuado de novo… a bendita falta de um projeto com TDD. “Teve uns momentos” ali onde aconteceram uns erros “ao vivo” nos vídeos, que eu olhava e pensava: “putz, um TDDzinho básico teria resolvido isso e este erro nem teria passado em branco”.
Mas os caras falaram na live que vão criar algum projeto que aborde testes, tanto neste curso quanto no de PHP e nos projetos futuros que eles estão planejando.
Aliás, eles planejam criar um ecossistema de projetos intercambiáveis! Um verdadeiro universo MCU de cursos Hcode. Se conseguirem isso todo mundo ganha! Vai ser muito interessante de ver. =]
Fora isso, às vezes tem um errinho ou outro no código (que poderia ter sido evitado com TDD u.u) que eles só vão consertar dois ou três vídeos depois mas ainda não colocaram os devidos avisos na sessão. Então se o aluno for muito afobado acaba ficando um pouco frustrado com isso.
E, por fim, um ponto negativo bônus só pra ser chato mesmo: Realmente, o projeto Restaurante Saboroso devia ter vindo antes do Dropbox Clone, na minha opinião.
Depois que você passa elas chibatadas do Dropbox Clone e do Whatsapp Clone, o Restaurante Saboroso vira uma brincadeira no parque!
Mesmo assim, é um projeto que traz algumas novidades e alguns códigos inteligentes e bem interessantes, como eu já mencionei algumas vezes nos logs.
“Vale a pena investir meu rico dinheirinho neste curso?”
Vale a pena demais.
Mas já advirto: apesar de toda a excelente didática dos professores e todo o trabalho técnico de qualidade, não é um curso para molengas!
É um curso pra quem quer realmente aprender código botando a mão na massa em projetos de verdade!
Isso porquê, mesmo com todo o suporte que eles oferecem, são projetos complexos por sua própria natureza e trazem com eles problemas reais do dia-a-dia de desenvolvimento.
O que também significa que você pode ficar aí umas horinhas para resolver um problema ou até mesmo perder umas noites de sono caso queira realmente terminar o projeto.
Então vá lá e gaste seu rico dinheirinho com confiança mas tenha ciência de que o aprendizado depende muito de você também! Teje avisado! u.u
E olha aí: me obrigaram a criar o Troféu Cursito de Diamante!
Então, que o pessoal da HCode possa colocar este valoroso troféu em suas estantes mentais pra poder contar para os netos quando estiverem velhinhos!
Tá, divaguei demais… xD
Mas enfim, o curso é bom, criançada! E eu estou bem feliz e com uma pontinha de orgulho de ter terminado ele. =]
A parte de reservas na área do admin já está funcionando perfeitamente e está bem interessante!
É possível definir uma data de busca para os registros, que já são retornados para o template com paginação.

E agora temos gráficos! Este gráfico foi criado utilizando Charts.js. Ficou muito legal! =]

Também foi adicionado um recurso muito interessante ao dashboard do admin, utilizando Socket.io. Quando há alguma alteração nos registros, tanto no front-end quanto na área admin, o dashboard é “avisado” por um evento e atualiza automaticamente os dados.

Com isto, terminei o último projeto do curso e, por consequência, o curso!
Como sempre, pretendo escrever um postezito sobre a minha experiência no curso, embora eu ache que não vá escrever muito porquê desta vez a experiência ficou bem detalhada no blog, então não terei muita coisa a acrescentar a não ser o meu sentimento mesmo.
Mas vou fazer isto amanhã. Não posso fazer isto neste momento porquê estou dando voltas olímpicas de felicidade no meu quarto e isto pode acabar influenciando muito no post.
Então escreverei sobre isso amanhã, quando os nervos estiverem calmos! haha =D
Ocorreram algumas mudanças interessantes no método save, que havíamos criado no prototoype dos formulários lá no arquivo hcode-formsave.js.
Agora ele não retorna mais uma Promise e aceita parâmetros de configuração para eventos de success e failure na hora do submit do formulário.
Abaixo, como ficou o método:

E também um exemplo de utilização.

Achei que ficou mais interessante assim, além de resolver um bug que acontecia quando era preciso enviar o formulário mais de uma vez.
Aqui uma curiosidade: No projeto atual, a classe HcodeGrid utiliza-se do plugin personalizado que foi criado no arquivo “hcode-formsave.js”. Logo, deve-se importar e utilizar da forma como está na imagem.

Isso talvez possa “engessar” um pouco as coisas?
Bem, sim e não.
Na verdade, a classe HcodeGrid (que está no arquivo hcode-grid.js) apenas espera que exista, como pré-requisito, um método save dentro do Prototype de HtmlFormElement (que não possui um por padrão). Mas o acoplamento acaba aí.
Ou seja, é bem simples adaptar a classe para utilizar o componente em algum outro projeto.
Por fim…
Já estão completas as rotinas de trocar o password de um usuário da área admin, excluir contatos e excluir e-mails de subscrição.
E já é possível utilizar o formulário de “se inscrever” do site. Isso já está integrado com o painel de emails lá na área admin.

Ou seja, a parte administrativa está praticamente pronta, funcional e interagindo com o site. O painel de admin é quase uma espécie de “cms” bem simplesinho e o principal está feito.
Faltam umas 10 aulas para terminar o curso… Vamos ver o que virá pela frente. =]
MUITA coisa andou desde o último log!
Já temos o Crud completo nas áreas de Menus e Reservas, por exemplo.



Há um tratamento no formato da data em vários lugares do template. Pra isso estamos utilizando o Moment.js. É uma lib bem bacana. Já usei várias vezes em outros projetos.

Devo dizer que estas últimas aulas deram um salto no quesito “código inteligente“!
Houveram várias ocasiões onde eu via um código ou outro que dava pra melhorar e ficava “matutando” como fazer isso, mas algumas aulas depois eles já vinham com uma solução… que era ainda melhor!
Dentre tanto código inteligente, os que eu mais gostei neste período foram:
Adição de um método “save” no prototype dos formulários. Algo muito legal e bem pensado.

Foi abordado o conceito de componentização aplicado sem dependência de biblioteca ou framework externo. Algo bem interessante e abrange bastante o conceito de abstração de código para resolução de um problema específico.
Na classe que foi criada para utilização como componente, chamada no projeto de “HCodeGrid”, uma das coisas que mais gostei foi o método “fireEvents”.

Basicamente esta classe veio para resolver uma questão de duplicidade de código nos formulários. Ela abstrai uma rotina de eventos padrão para estes formulários do projeto, tais como os eventos dos botões de criar, editar e excluir, que tem funções bem parecidas nestes formulários.
Mas também oferece a opção de criação de eventos personalizados para serem utilizados de acordo com cada tela.
Também achei bem interessante a forma como o Crud foi desenvolvido. Ainda há algumas partes repetitivas mas acho que isso será refatorado mais adiante.
O projeto está caminhando para algo bem mais sólido agora e com código muito mais inteligente. Os caras estão levando bem a sério o conceito de DRY.
E eu, claro, estou adorando! =D