sábado, 24 de junho de 2017

Sails.js - Eis o motivo que optei por esse Servidor

Chegou no momento da minha vida que resolvi fazer um trabalho de pesquisa (significa que não estava fazendo nada para melhorar sua carreira e resolvi ver o que o mundo podia me oferecer, não confunda isso com trabalho de faculdade) sobre um Servidor (padrão Node.js) que poderia me prover serviços. Depois de algum tempo optei pelo Sails.js.

Cheguei nesse resultado após ficar tendencioso entre quatro servidores (cortei a extensão js para simplificar): Express, Restify, Hapi e Sails (por favor não entenda que os outros são ruins apenas não me adaptei a eles). Agora não tinha mais escolha o máximo que poderia fazer era um teste de campo com cada um e ver qual deles me atendia.

A lista abaixo de prós e contras representam as observações que tive sobre cada um deles, não é uma regra geral ou uma opinião formada pelo mundo.

Express

Prós:
  • Bom ponto de partida
  • Baixa curva de aprendizado
  • Próximo ao padrão Node.js para Web Middleware
  • Totalmente customizável
  • Alvo no navegador e template
Contras:
  • Todos os endpoints devem ser criados manualmente
  • Sem padrão ou prescrição, tipo DIY (Do it yourself - Faça você mesmo)

Restify

Prós:
  • Boa estabilidade
  • DTrace automático e suporte para todo handlers ou plataformas
  • Construído em throding
  • Suporte SPDY*
  • Estrita API com total controle sobre as interações HTTP
  • Visibilidade dentro das características da App
Contras:
  • Todos os endpoints devem ser criados manualmente
  • Sem padrão ou prescrição, tipo DIY
  • Pouca documentação

Hapi

Prós:
  • Suportado pelo Labs Walmart
  • Controle granular
  • Detalhada referencia da API com suporte para geração da documentação
  • Significantemente mais funcional para construção de Web Servers
  • Pseuda prescrição com abordagem para configuração cêntrica
  • Caching, Autenticação e validação de dados
  • Bom conjunto de Plugins, com base em arquitetura escalável 
  • Boa construção de blocos, mas deixa para você seis próprios dispositivos para padrões de projeto
Contras:
  • Esconde módulos específicos
  • Todos os endpoints devem ser criados manualmente

Sails

Prós:
  • MVC - possibilidade de fazer Visão e Serviços em um só lugar
  • Rápido desenvolvimento RESTful API
  • Convenção sobre a configuração (estende o Express)
  • Construído sobre modelos de uso (ORM)
  • Suporte a RPC, Web e Mobile SDK
  • Conectores de dados
  • Totalmente configurado quando necessário.
  • Extensa documentação
  • Suporte comercial e fulltime ao projeto (Loopback)
  • Serviços Mobile (Push, Geo, Storage, Sync, Offline, File, Device, User)
  • Autenticação, validação e autorização
  • Endpoints são criados através de geração automática
Contras:
  • Alta curva de aprendizado
  • Deve obrigatoriamente seguir o modelo prescrito (fiquei na dúvida se colocava isso como um pró ou contra)
Não escolhi o Sails.js por ter poucos contras (inclusive você pode encontrar muito mais coisas contras), foi o servidor que mais rápido me adaptei e o que atendeu as minhas necessidades. Recomendo que ao escolher um Servidor reduza sua lista a um número aceitável e teste cada um deles vendo o que melhor lhe atende. Nunca parta de opiniões formadas.

Deseja aprender mais sobre o Sails.js? Baixe aqui uma apostila gratuita que criei.

Obrigado e até a próxima
Fernando Anselmo

* SPDY (pronunciado speedy) é um protocolo de rede desenvolvido principalmente pela Google para transporte de dados pela internet. Apesar de não ser atualmente um protocolo padrão, o grupo que está desenvolvendo o SPDY está trabalhando em direção a uma padronização cuja última versão é o spdy/4 (Wikipédia).

domingo, 4 de junho de 2017

Kotlin - Apenas alguns dados

Kotlin foi criada pela JetBrains, uma empresa conhecida pela criação de ferramentas de desenvolvimento para profissionais. Em agosto de 2011, a JetBrains publicou uma postagem no blog, porque precisava criar uma nova linguagem e explicando os motivos de sua criação. Veja os principais pontos:

 
  • Para aumentar sua produtividade: Na época, a equipe JetBrains escrevia suas IDEs baseados em IntelliJ quase que inteiramente em Java e isso demorava muito tempo para compilar com o javac. Seu desejo era aumentar a produtividade ao mudar para um idioma mais expressivo. 
  • Para impulsionar as vendas da IntelliJ IDEA: Queriam que suas estruturas e ferramentas de desenvolvimento empresarial para a Kotlin fossem parte da IntelliJ IDEA Ultimate (versão comercial) aumentando suas vendas. 
  • Dirigir os negócios da empresa mantendo sua confiança: JetBrains é confiável por muitos desenvolvedores profissionais. Era necessário impulsionar os negócios da empresa e atrair mais pessoas para sua abordagem de desenvolvimento de ferramentas, aumentando a consciência da comunidade sobre JetBrains e mantendo a confiança. 
E quais são as características dessa nova linguagem:


  1. Código aberto: Kotlin é distribuído sob a Licença Apache, Versão 2.0. O Kompiler (compilador Kotlin), o plugin IntelliJ IDEA, os aprimoramentos nas bibliotecas básicas de Java e as ferramentas de compilação são de código aberto. 
  2. Interoperabilidade com Java e Android:  É 100% interoperável com Java e Android. Isso significa que todo o seu código Java / Android atual funciona perfeitamente com o Kotlin. Além disso, permite compilar para módulos JavaScript. 
  3. Concisa e expressiva: A estimativa aproximada indica que é possível eliminar as linhas de código em aproximadamente 40% (em comparação com o Java). Meios expressivos, é fácil escrever código que humanos e compiladores podem entender facilmente. 
  4. Fácil de aprender: A linguagem puxou o que existia de bom em Java, Scala, Groovy, C#, JavaScript e Gosu. Aprender Kotlin é fácil ao conhecer alguma dessas linguagens de programação. É mais fácil de aprender se conhece Java. 
  5. Fácil de usar: A Kotlin é desenvolvida pela JetBrains, uma empresa conhecida pela criação de ferramentas de desenvolvimento para profissionais. É possível escolher qualquer IDE para executar o Kotlin ou criá-lo a partir da linha de comando. 
  6. Segura: Destina-se a eliminar perigos de referências nulas do código (uma grande dor de cabeça em Java). Além disso, é estaticamente digitado, o que dá capacidade para capturar mais erros em tempo de execução (tipo seguro). 

Simples comparativo

Apenas para questões de análise compararemos alguns blocos de códigos em linguagem Java e o similar escrito em Kotlin.

1. Saída da Informação
// Java
System.out.print("Hello World");
System.out.println("Hello World");

// Kotlin
print("Hello World")
println("Hello World")
2. Criação de Variáveis
// Java
String frase = "Hello World";
final String frase = "Hello World";

// Kotlin
var frase = "Hello World"
val frase = "Hello World"

// Kotlin Opcionalmene
var frase: String = "Hello World"
val frase: String = "Hello World"
3. Objetos nulos
// Java
String frase;
frase = null;
if (frase != null) {
  int length = frase.length();
}

// Kotlin
var frase : String?
frase = null
frase?.let {
  val length = frase.length
}
4. Concatenação de Strings
// Java
String frase1 = "Hello";
String frase2 = "World";
String mens = "A frase é: " + frase1 + " " + frase2;

// Kotlin
val frase1 = "Hello"
val frase2 = "World"
val mens = "A frase é: $frase1 $frase2"
5. Comparação do Objeto e sua Classe
// Java
if (object instanceof Car) {
  Car car = (Car) object;
}

// Kotlin
if (object is Car) {
  var car = object as Car
}

Esse artigo foram apenas alguns dados do que vem a ser essa nova linguagem de programação é como é possível utilizá-la a fim de obter alguns benefícios, ficou interessado? Então acompanhe a série de vídeos que estou lançando a cada semana no meu canal do YouTube sobre o Kotlin.

Obrigado e até a próxima
Fernando Anselmo