FULLSTACK API – Ou o que aprendi com o MEAN.

Muito se ouve falar de API’s, e termos como API First, ou Offline API. É um conceito muito bacana, do qual não vou entrar em detalhes aqui pois basta você pesquisar um pouco e achará centenas de artigos falando sobre isso, em Portuguêsem Inglês, ou qualquer outra língua. Não só porque tem muito material já disponível, mas porque esse material disponível já descreve muito bem sobre isso, então eu só quero detalhar um pouco do que eu aprendi, sabendo que talvez não acrescentará em nada, mas pode ajudar quem esteja começando, assim como eu.

Eu sou uma pessoa que estuda pouco, porém sobre muitas coisas, e só entro em mais detalhes quando preciso. Então muita gente me acha inteligente, mas sou apenas curioso, e foi assim que, há um tempo atrás eu precisei/quis aprender NodeJS e AngularJS. Foi quando eu descobri a STACK (conjunto de tecnologias para se desenvolver determinada solução) MEAN (MongoDB, ExpressJS, AngularJS e NodeJS).

Esse termo (MEAN) é muito conhecido, basta você “googlar” e verás. Mas o que está por trás dessa ideia, eu (e creio que todo mundo que estudou o MEAN) descobri rapidinho: trabalhar com API. Mas que diabos é trabalhar com API? Também não vou entrar em detalhes, mas basicamente, nesse contexto que estamos inseridos, ao trabalhar com API, você cria um conjunto de rotinas/funções/métodos padrão, e isso vai ser o núcleo (core) do seu sistema. A partir de então, você desenvolve um elo entre o usuário e o core do seu sistema, esse elo é chamado de Cliente. Se sua API está online (de novo, no contexto desse artigo, presumiremos que sim), então você pode fazer vários tipos de clientes para acessá-la, como, cliente web, para Android, iOS, para Windows, Linux etc.

api first

Esse negócio de se trabalhar com API começou com grandes softwares. Eu vi, pela primeira vez, em redes sociais, como Twitter e Facebook. Isso foi testado e aprovado por programadores, que foram passando essa experiência ao longo dos anos e hoje em dia é uma tendência altíssima trabalhar dessa forma. Sendo assim, vamos somente recapitular, alguns benefícios de se construir o seu software no formato API:

  • Multiplataforma: também pode ser entendido como generalismo. É muito mais fácil criar uma versão de seu software para uma outra plataforma, pois o core do seu software já está pronto, de forma genérica, basta criar o cliente na plataforma desejada, para conversar com ele.
  • Consistência: Existe um padrão, único, no seu software, e todos os objetos e a arquitetura do seu software já estão bem definidos.
  • Modularidade: É muito mais fácil dividir seu software em módulos, ou em níveis de acesso, e distribuir essa divisão entre os clientes, pois você praticamente alterará somente um lugar

Voltando ao MEAN, você acha facilmente artigos para aprender essas tecnologias, eu particularmente gosto desse artigo da Caelum. Mas se você parar para pensar, o que é o MEAN?

  1. Um banco de dados (MongoDB)
  2. Uma biblioteca para obtenção, tratamento, roteamento etc, das requisições dos clientes (ExpressJS)
  3. Uma biblioteca para se construir seu cliente, nesse caso, web (AngularJS)
  4. Um servidor web (NodeJS)

Então porque o MEAN ficou tão famoso? Pelo fato de que, ao se trabalhar com qualquer uma dessas tecnologias, você só precisa ter conhecimento JavaScript, pois tudo o que mencionei é baseado nessa linguagem. Mas para trabalhar com API, não necessariamente você precisa pegar uma STACK pronta, você pode adaptar o que você já está acostumado à ideia de API.

Pensando nisso, eu peguei as tecnologias mais comuns (LAMP – Linux, Apache, MySQL e PHP) e adaptei à ideia de API. Transcrevendo a ideia do MEAN, o Apache preenche o item 4, o PHP preenche o item 2, o MySQL preenche o item 1 e o item 3 pode ser preenchido por qualquer biblioteca cliente que você quiser, inclusive o próprio AngularJS. Então meu MEAN virou um MPAA (MySQLPHPAngularJS, Apache).

Nessa ideia, eu criei uma webapp que faz a mesma coisa que o exemplo do artigo da Caelum, e disponibilizei para qualquer um poder estudar e aprimorar a ideia. Segue os links:

  1. Exemplo de aplicativo usando MEAN;
  2. Exemplo de aplicativo usando MPAA;

Espero que esses links possam ajudá-lo nos seus estudos.

 

Sencha: ExtJS 6 Beta Lançado

extjs6-beta-vitrine

“One framework to rule them all devices

Megalomania a parte o framework unificado (sencha touch e ExtJS desktopé uma das principais novidades da nova versão 6 do Framework JavaScript da Sencha o ExtJS, outros destaques que podem ser citados é o Sencha Pivot Grid que é um add-on para criar ferramentas analíticas e o Sencha JetBrains Plugins que deixará o desenvolvimento mais produtivo seguindo a tendência “Mudial” de abandonar o eclipse :'(, ou melhor, tentando ser menos polarizado e guardar o meu recalque de ter sido beta tester do plugin para eclipse … seguindo a tendência de empresas como o google que adotou o Android Studio (IntelliJ IDEA like)  como IDE oficial em detrimento ao plugin do eclipse, e agora heim? Ficou super isento não é verdade!?

Já tínhamos alguns sinais de que o frameworks iriam ser unificados em algum momento, sinais esses como:

  • A influência que o Sencha Touch no Arquitetura do ExtJS 4
  • As novidades que apareceram no lançamento do ExtJS 5 como características responsivas e temas otimizados para dispositivos de toque.
  • e também um breve desaquecimento das novidades do Sencha Touch depois da versão 2.3

Sendo assim é o que a comunidade de desenvolvedores Sencha Touch e ou ExtJS esperava como uma evolução natural da ferramenta e mesmo sabendo que são focos diferentes veio bem a calhar em um ambiente pós apocalíptico do mobilegeddon.

Eu tinha solicitado o acesso antecipado antes de sair o beta público e com os testes que fiz o framework me deixou realmente empolgado com essa nova versão, é claro que por se tratar de uma versão beta deve ser utilizada com moderação, sendo assim muita calma nessa hora e pense muitas vezes antes de usa-lo em seu ambiente de produção.

A listagem das demais melhorias e onde fazer o download da nova versão podem ser encontradas no link que segue:

Links

Front in BH 2014: Eu Fui!!!

Resumo Frontin BH

Obs: este artigo pode ser lido em inglês em: https://medium.com/@sheldonled/frontin-bh-2014-66b5a1178b28

Já tem um certo tempo que estou focando meus estudos em tecnologias front-end, e nada melhor que eventos/conferências/workshops/etc para nos manter atualizados. Quase não estou saindo da terra do pequi para me aventurar em eventos, e percebo que estou fazendo uma média de 1 evento por ano.

Em 2013 fui ao TDC SP (trilha de UX/Front-end), e aprendi muita coisa legal. Pude levar minha esposa, e pude rever meu amigo e sócio deste blog, Relson. Esse ano foi a vez de ir para Belo Horizonte, prestigiar o magnífico FrontinBH. Foi a primeira vez que eu e minha amada fomos para BH, e deu pra curtir bastante esse fim de semana.

Planejamento ft. Ansiedade

Confirmei minha ida aproximadamente um mês antes do evento, porém só na sexta-feira que antecedeu o evento pude confirmar como e com quem eu iria. Convidei alguns amigos para ir ao evento, verifiquei a possibilidade de ir com alguns parentes, mas no fim fomos minha esposa e eu.

Chegamos em BH poucos minutos antes do evento, e ela ficou comigo no início, depois eu a levei ao hotel para descansar enquanto eu enfrentava chuva e a demora do metrô para chegar novamente ao Teatro Ney Soares e perder o início da palestra sobre TrackingJS. Fiquei um pouco perdido na cidade no começo do dia mas após umas caminhadas e com ajuda do GPS eu consegui ir e vir mais tranquilamente.

O Evento

Fiquei admirado com o evento. Ao mesmo tempo que eu estava em um auditório lotado, com centenas de pessoas que eu não conhecia, eu me vi ao lado de grandes mentes, pessoas que estão puxando a web pra frente ‘trocadilho alerts’, pude trocar idéias com pessoas que eu costumava ver no youtube, e tudo isso contribuiu bastante para minha experiência.

O evento nos deixou momentos alegres, como os momentos: “Livraria” e “Oxenti”, e o autor do primeiro pode me dar dicas bem legais sobre o mercado internacional e como treinar Inglês sozinho 🙂 Ele (Michael Lancaster) foi responsável por apresentar à platéia o Node Webkit, uma plataforma de desenvolvimento nativo usando tecnologias conhecidas por nós web developers.

A abertura do evento foi feita pelo incrível Bernard De Luna, uma pessoa já conhecida pelos seus projetos sexys, e a primeira palestra foi sobre frameworks de testes de UI, dos quais, os que mais me chamaram atenção foram: Jasmine, Qunit, Mocha, Buster e Karma. Outra palestra interessantíssima foi a dos caras da RC Comunicação sobre o workflow de desenvolvimento web (Design ?Implementação). Nessa palestra, destacou-se o poder do Webflow.

Como eu disse acima, perdi algumas palestras, pois fui almoçar próximo ao hotel, fazer check-in e guardar minhas coisas. Cheguei no meio da palestra sobre TrackingJS, um framework incrível que possibilita reconhecimento de cor, de face e outras. Perguntei ao Zeno Rocha, na hora do lanche, se eles começaram a desenvolver isso com algum objetivo em mente, e ele me respondeu: “Não, e isso nem tem nada a ver com o nosso trabalho (na Liferay). A gente teve a ideia e começou a fazer”.

Falando em lanche, estava tudo muito bom 😀 e eu pude conhecer pessoalmente, como citei acima, caras que eu só via nas redes sociais. Conversei um pouco com Yamil Asusta, que palestrou sobre o incrível Browserify, uma ferramenta que permite trazer modulos do npm para o browser. Conversei também com o Felquis, sobre várias coisas, principalmente sobre meet ups e workshops.

No final da tarde tivemos as meninas do Github, falando sobre o  e o Mathias Bynens falando sobre Unicode no JavaScript. Dentre outras coisas que tiveram no evento e eu não citei aqui, só gostaria de terminar esse post com o principal conselho que ouvi no evento: “Agarre os desafios, só assim você vai crescer”.

Ansioso para o FrontinBH 2015 =)