Skip to content

bgasparotto

Null Object

Null Object Design Pattern logo

Null Object é um design pattern comportamental baseado em herança que cria representações válidas de objetos null em um sistema, de modo a evitar que se retorne um null quando um objeto é esperado, por consequência, gerando null checks para evitar que exceções NullPointerException sejam lançadas e comportamentos inesperados sejam apresentados.

Introdução

É comum escrever métodos que retornem null em situações onde a informação requisitada não está presente ou algumas condições não são atendidas para executar um determinado trecho de código. Entretanto, as vezes este tipo de comportamento é mal documentado e acaba pegando outros desenvolvedores de surpresa quando estes decidem utilizar uma API, além disso, isto pode forçar tais desenvolvedores a escreverem inúmeros null checks a fim de evitar exceções de runtime.

De qualquer modo, o código da aplicação pode se tornar pouco coeso e pouco limpo, pois agora aquele trecho de código também precisa lidar com as situações onde um null é possível, tendo assim que tomar decisões que inicialmente não seriam de sua responsabilidade.

O design pattern Null Object vem para trabalhar neste problema, de um modo que basicamente, ao invés de simplesmente retornar um null onde um objeto da classe Foo era esperado, ele retorna um objeto que é subclasse de Foo em um estado válido para ser utilizado em tempo de execução, aderindo ao contrato de Foo.

Read More »Null Object

Null Object

Null Object Design Pattern logo

Null Object is a behavioural design pattern based on inheritance which creates a valid representation of null objects in a system, in order to avoid returning null objects, on which respective null checks would be needed to prevent NullPointerException and unexpected behaviour of the application objects.

Introduction

It’s common to write methods that return null in situations where the requested information is not present or some conditions are not met in order to execute some chunk of code. However, sometimes this behaviour is poorly documented so it takes the developers using a given API by surprise, moreover, it can force that said developers to write lots of null checks to avoid runtime exceptions.

On either way, the application code might end up with a lack of cohesion and not clean at all, because now this chunk of code has to deal with a “null possible situation” and take decisions that would not be supposed to be taken by itself.

The Null Object design pattern comes to work on this problem, basically, instead of returning null where an object of class Foo was expected, one could return an object of a subclass of Foo in a basic valid state but at the same time, adhering to Foo‘s contract.

Read More »Null Object

Habilitar o acesso remoto no MySQL

Esse tutorial irá mostrar como habilitar o acesso remoto no MySQL, de modo que ele aceite conexões a partir de uma rede ao invés de somente conexões locais.

O Problema

Um MySQL recém instalado possui o acesso remoto desabiitado por padrão por motivos de segurança, entretanto, o acesso pode ser habilitado em apenas alguns passos.
É importante mencionar que a solução a seguir foi testada no CentOS 7.2, mas é bem provável que também funciona em outras versões e/ou distribuições do Linux.
Iremos diretamente para a solução para fazer com que seu MySQL fique disponível para ser acessado remotamente, mas você irá encontrar uma explicação detalhada no final deste tutorial.

Read More »Habilitar o acesso remoto no MySQL

Enable MySQL Remote Access

This tutorial will show how to enable MySQL remote access in order to make it accept connections from the network instead of just local connections.

The Problem

A fresh MySQL installation has its remote access disabled by default for security reasons, however, it can be enabled by taking a few simple steps.
It is important to mention that the following solution was tested against CentOS 7.2, but it’s very likely to work on other Linux versions and/or distributions.
I am going straight to the solution to make your MySQL avaiable for remote access, but you can find a detailed explanation at the end of this post.

Read More »Enable MySQL Remote Access

Start, Stop e Restart Wildfly

Wildfly logo

Se sua memória é como a minha, daquelas que gostam de pregar peças em você, então este é o seu tutorial! Abaixo você verá os três comandos mais importantes para iniciar (start), parar (stop) e reiniciar (restart) o Wildfly e demais releases do JBoss. Além disso, veremos um comando extra para iniciá-lo em modo domain.

Read More »Start, Stop e Restart Wildfly