segunda-feira, 30 de setembro de 2019

SIngle Responsability Principle em Java


#engenhariadesoftware #projetoOO #métricas #LCOM4 #java
LCOM 4 é uma métrica sobre coesão de métodos de uma classe, servindo para identificarmos classes suspeitas de violação do princípio SRP (Single Responsability Principle): http://www.obomprogramador.com/2014/03/lack-of-cohesion-in-methods-4-lcom4.html

sexta-feira, 27 de setembro de 2019

Pipeline de deep learning


#ia #deeplearning #pipeline #keras #tensorflow #scikitlearn #python
Quer aprender o fluxo de um trabalho de Deep Learning (pipeline)? Preparação, construção, avaliação e predição? Simples? Leia esse meu tutorial, lá no DataLearningHub: https://github.com/cleuton/datascience/tree/master/keras

terça-feira, 24 de setembro de 2019

Java em gotas: Lambda 101


#java #functionalprogramming #lambda

Continuando como nosso tutorial de Stream API e Lambda, vamos ver os fundamentos de programação funcional em Java, com dois exemplos bem simples: https://www.mycompiler.io/view/8vFJbvQ e
https://www.mycompiler.io/view/4wL0H3B


Frontend reativo com backend em microsserviços


#frontend #backend #web #rest #microsserviços #javascript #react #redux #flask #python Só no meu blog: "reactdontpanic.com" você encontra isso!
Aprenda a criar uma app simples, porém completa, usando React + Redux + Redux-form + Flask(python). Frontend reativo com backend em microsserviços http://reactdontpanic.com/redux_form/

Java Stream API: Porque você precisa evoluir

Imagem: Oracle (https://www.oracle.com/technetwork/pt/articles/java/processamento-streams-java-se-8-2763688-ptb.html)

#java #stream #engenhariadesoftware
Você ainda vive naquele mundinho cheio de "for" e "if"? Precisa aderia à programação funcional, e a Stream API é o primeiro passo.
Criei um tutorial simples sobre Lambda e Stream API em Java para você. Veja só o Gist

https://gist.github.com/cleuton/3572ac7502357dd7f71bc7418d05974d


sábado, 21 de setembro de 2019

Comunicação inter-serviços com gRPC



#softwareengineering #engenhariadesoftware #microservices #communication #grpc
Como dois microsserviços se comunicam? Ou melhor por que se comunicariam? De acordo com o excelente site de Chris Richardson (https://microservices.io/patterns/communication-style/rpi.html) temos dois estilos de comunicação: Síncrono e Assíncrono (via mensageria).
Mensageria, utilizando filas de mensagens ou eventos, é a melhor maneira para implementar padrões como SAGA (https://microservices.io/patterns/data/saga.html) ou CQRS (https://microservices.io/patterns/data/cqrs.html), porém, se o sistema é pequeno ou você tiver restrições orçamentárias para alocar mais nós (como o broker), então a comunicação direta é a melhor opção. E, neste caso, em vez de usar REST/JSON, use um mecanismo mais formal e eficiente, como Apache gRPC, por exemplo.
Neste artigo, mostro como implementar um serviço simples em Python e consumi-lo usando Python ou Java, confira meu repositório: https://github.com/cleuton/InterServiceCommunication


sábado, 14 de setembro de 2019