GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Boa pratica, código limpo

java
programação
Tags: #<Tag:0x00007ff79048af28> #<Tag:0x00007ff79048ad98>

#1

Pessoal, estou em um projeto e temos muitos trechos de código como esse:

if (obj1 == null || obj2 == null ){...}

Em alguns casos os blocos if tem mais informações ficando um pouco poluído, levando em consideração que no momento um refactor da lógica não pode ser feito, vale a pena criar método como o seguinte?

    boolean isNull(Object o){
    return o == null;
}

if (isNull(obj1)  || isNull(obj2) ){...}

#2

Dependendo do caso você pode usar o bloco try catch. As vezes o codigo tende a ficar mais poluido levando em consideração a performance. Nem todo codigo bonitinho e toda logica curta e’ necessariamente eficiente.


#3

Isso não é uma boa prática, NullPointerException nunca deve ser esperada / capturada, deve ser tratada pra que nunca aconteça. Você deve capturar regras de negócio e não erros de programador.

Vale sim, o código fica mais limpo. Porém melhor ainda, no meu ponto de vista, é usar o Optional (do Java 8, ou do Google guava, caso o projeto seja < java 8), onde todo objeto é “wrappado” pelo Optional, e voce pode verificar com Optional.isEmpty


#4

Isso não é uma boa prática, NullPointerException nunca deve ser
esperada / capturada, deve ser tratada pra que nunca aconteça. Você deve
capturar regras de negócio e não erros de programador.

Na teoria ne’ !!!, na pratica você precisa conviver com erros de terceiros. Imagina você usar uma classe e ela dispara uma exception.
Pode acontecer coisas inesperadas, quando ta’ rodando um codigo que você julga limpo. exemplo : falhas na JVM, falhas de memoria, overflow de divisão e por ai vai …

NullPointerException deve ser sempre esperado e devidamente tratado


#5

Concordo que deve ser esperado e tratado, mas com ifs e nao try catch


#6

Concordo que deve ser esperado e tratado, mas com ifs e nao try catch

Imagina um metodo que vc chama 1000 classes de terceiros, seriam 1000 ifs, o codigo vai ficar mais poluido que 1 (um) unico try catch, ou talvez um par deles.


#7

“Imagina um metodo que vc chama 1000 classes”

Amigão, se tua classe tá chamando outras 1000, coisa errada já tem, antes de vc colocar seu try com certeza :slight_smile:


#8

“Imagina um metodo que vc chama 1000 classes”

Amigão, se tua classe tá chamando outras 1000, coisa errada já tem, antes de vc colocar seu try com certeza

Que e’ amigão, você faz parte do movimento anti try catch ?:grinning:


#9

Nem um pouco, como já disse, se tua classe está chamando outras 1000, a coisa já está errada, antes de vc colocar try, if, while, break, e quantas outras palavras reservadas a mais.
Se tu quer dar exemplos de uso, de exemplos coniventes.


#10

Ah vc tá coando mosquitos e engolindo camelos. O importante e’ saber que try catch pra casos de exception e’ estremamente eficiente.

Alem de não gostar de try catch, quer limitar a quantidade de classes que minha classe pode chamar ?

Melhor vc procurar um psicologo dos bytes !!!


#11

Estamos falando de código limpo e boas práticas amigo, por isso ele disse que tem algo errado. Concordo com ele, se sua classe está chamando outras 1000 está mto acoplado e pouco coeso


#12

Estamos falando de código limpo e boas práticas amigo, por isso ele
disse que tem algo errado. Concordo com ele, se sua classe está chamando
outras 1000 está mto acoplado e pouco coeso

Penso que vc nunca desenvolveu sistemas grandes.
Chamar 1000 classes não e’ nada.
Onde eu escrevi classe imagina sua classe principal extendendo Application e dentro dela existem 100 classes e cada classe chama 10 classes. No final serão 1000 ifs desnecessarios, que especie de codigo limpo e’ esse que vc segue ?


#13

OMG, se é isso que vc está se referindo, então pior ainda, vc deve colocar try catch pra nullpointerexpcetion em tudo, já que não confia em código terceiro assim. Imagina se usar Spring então


#14

OMG, se é isso que vc está se referindo, então pior ainda, vc deve
colocar try catch pra nullpointerexpcetion em tudo, já que não confia em
código terceiro assim. Imagina se usar Spring então

Vai com esse seu discurso de usar ifs no lugar de try catch, la’ pra turma da oracle, os caras vão demorar uma semana pra se recuperar de tanta dor de garganta de tanto rir.


#15

Se não leu o livro “Effective Java, second edition” recomendo a leitura


#16

Se não leu o livro “Effective Java, second edition” recomendo a leitura

E eu recomendo você para de colar na faculdade. E esvaziar essa sua mente cheia de teoria.


#17

"quer limitar a quantidade de classes que minha classe pode chamar ?"
Limitar não, mas tem uns conceitos em programação que são importantes.
Orientação a objetos, Design patterns, inclusive os criadores daqui (guj), caelum, alura, casa do código pegam bastante no pé em relação a isso, mas provavelmente tu não deve saber.

"Penso que vc nunca desenvolveu sistemas grandes. "
Pô cara, porque tu não muda teu nick ? de j-menezes para developer-sistemas-grandes-legados ?
E se o cara nunca desenvolveu ? tu sabe a idade ? tu sabe oq ele faz ?

E antes um cara da oracle, que alguém que só escreve em blog né, e escreve merda ainda por cima.


#18

"quer limitar a quantidade de classes que minha classe pode chamar ?"
Limitar não, mas tem uns conceitos em programação que são importantes.
Orientação a objetos, Design patterns, inclusive os criadores daqui (guj), caelum, alura, casa do código pegam bastante no pé em relação a isso, mas provavelmente tu não deve saber.

"Penso que vc nunca desenvolveu sistemas grandes. "
Pô cara, porque tu não muda teu nick ? de j-menezes para developer-sistemas-grandes-legados ?
E se o cara nunca desenvolveu ? tu sabe a idade ? tu sabe oq ele faz ?

E antes um cara da oracle, que alguém que só escreve em blog né, e escreve merda ainda por cima

Merda quem escreve e’ vocẽ !!!. Você sim devia mudar seu nome de igomes pra “igomes-nunca-desenvolveu-nada-de-verdade”.


#19

vou mudar, e colocar amo-try-catch-forever


#20

Muda pra que desejar e usa da forma que convir, alias isso e’ problema seu e não meu.