Seguindo a linha do @andrebmarinho, não, comentários não são boas práticas e só demonstram uma coisa: o código não está bom o suficiente (confuso, complexo, verboso, etc).
Seguindo a linha do mesmo livro citado pelo caro forista, onde o autor é veemente na afirmação de que código bom é auto explicativo.
Porém, isso nos leva a outro ponto: como codificar bem e criar bons códigos? Experiência, meu caro.
Em tempo: para que serve um comentário?
/* Esta classe representa todas as canetas */
public class Caneta{}
Ora, ora, temos um Cheroque Rolmes aqui…
//Este método é responsável pela soma de dois valores numéricos quaisquer e retorna um valor float
public float somar(float n1, float n2) {}
Cheroque em ação de novo
Compreende?
Ou
/* Pelo amor de Deus (se for ateu, pelo amor de Steve Wozniak) não mexa nesse código. Só funciona assim e só desse jeito */
Ou então
/* Este método recebe o código e quantidade de itens do produto, recupera seus dados,
* isola seu valor, calcula o valor do subtotal e processa os juros incidentes sobre o
* mesmo, com base nos tributos pis, cofins e iof, de acordo com a posição do sol e da lua,
* quando do nascimento da era de aquário e do humor do presidente da Ferroviária */
Entende o que quero dizer?
Um comentário só serve para ser óbvio ou tentar explicar algo inexplicável.