Articles of design

Complexo REST / Recursos Compostos / Aninhados

Estou tentando entender melhor a maneira de abordar conceitos em uma API baseada em REST. Recursos simples que não contêm outros resources não são problema. Onde eu estou correndo em dificuldade são os resources complexos. Por exemplo, eu tenho um recurso para o ComicBook. ComicBook tem todos os tipos de propriedades como autor, número de […]

Design de software JavaFX

Em um aplicativo JavaFX, javafx.application.Application deve ter uma subclass e o método herdado launch (), embora seja público, deve ser chamado de dentro dessa class derivada, caso contrário, uma exceção é lançada. O método launch () usa então a reflection para instanciar a class derivada, dificultando a configuração de valores para os membros da class […]

Existe um design de database de endereços comuns para todos os endereços do mundo?

Eu sou um programador e, para ser honesto, não conheço as estruturas de endereços de rua do mundo, como no meu país está estruturado 🙂 então qual é o melhor e mais comum projeto de database para armazenar endereços de ruas? Deve ser tão simples de usar, rápido para consultar e dynamic para armazenar todos […]

Está retornando null design ruim?

Eu ouvi algumas vozes dizendo que a verificação de um valor nulo retornado de methods é um design ruim. Eu gostaria de ouvir algumas razões para isso. pseudo-código: variable x = object.method() if (x is null) do something

MongoDB vs. Cassandra

Estou avaliando qual pode ser a melhor opção de migration. Atualmente, estou em um MySQL particionado (partição horizontal), com a maioria dos meus dados armazenados em blobs JSON. Eu não tenho nenhuma consulta SQL complexa (já migrada depois que particionei meu database). Neste momento, parece que tanto MongoDB quanto Cassandra seriam opções possíveis. Minha situação: […]

A derivação do quadrado do retângulo é uma violação do Princípio de Substituição de Liskov?

Eu sou novo para projetar e aprender os princípios de design. Diz que derivar quadrados do retângulo é um exemplo clássico de violação do Princípio de Substituição de Liskov. Se for esse o caso, qual deve ser o design correto?

Se você sempre codificar para interfaces em Java

Eu entendo os princípios de Codificação para Interfaces – para separar a implementação da interface e para permitir que as implementações da interface sejam trocadas para dentro e para fora. Devo codificar interfaces para cada aula que escrevo ou é exagero ? Eu não quero dobrar o número de arquivos de origem em um projeto, […]

Por que uma matriz não é atribuível a Iterable?

com o Java5 podemos escrever: Foo[] foos = … for (Foo foo : foos) ou apenas usando um Iterable no loop for. Isso é muito útil. No entanto, você não pode escrever um método genérico para iterável assim: public void bar(Iterable foos) { .. } e chamando-o com uma matriz, uma vez que não é […]

Instrução de retorno ausente em um método não-vazio compila

Eu encontrei uma situação em que um método não-vazio está faltando uma declaração de retorno e o código ainda compila. Eu sei que as instruções após o loop while são inacessíveis (código morto) e nunca seriam executadas. Mas por que o compilador nem sequer avisa sobre o retorno de algo? Ou por que uma linguagem […]

Qual é a diferença entre agregação, composição e dependência?

Qual é a diferença entre agregação, composição e dependência?