The document discusses software development practices and conventions, specifically around code quality and organization. It touches on topics like code formatting, complexity, comments, naming, and identifying "broken windows" or weaknesses that could degrade code quality over time if not addressed. The author advocates continuously improving practices by discussing options and making incremental changes.
32. public class Taxi {
public double cobra(double km, int minutos) {
if (horarioPadrao())
{
return precoBase(km, minutos);
} else
return precoBase(km, minutos) * extra;
}
}
33. public class Taxi {
public double cobra(double km, int minutos) {
if (horarioPadrao())
return precoBase(km, minutos);
else
return precoBase(km, minutos) * extra;
}
}
34. public class Taxi {
public double cobra(double Km, int minutos) {
if (horario_padrao())
return precoBase(Km, minutos);
else
return precoBase(Km, minutos) * EXTRA;
}
}
35. public class Taxi {
public double cobra(double km, int t) {
double valor = calcula(km, t);
if (maisCaro()) {
return valor * extra;
}
return valor;
}
}
36. public class Taxi {
public double cobra(double km,int minutos) {
if (horarioPadrao()) return precoBase(km,minutos);
else return precoBase(km,minutos)*extra;
}
}
43. public void atualiza(final List<Parcela> parcelasAAtualizar,
final Usuario usuario, List<Feriado> feriados) {
for (Parcela p : parcelasAAtualizar) {
if (old.isInicial() || auxiliar || financeiro) {
if (old.getConta() != null) {
//
}
if (p.getConta() != null) {
//
}
}
if (!old.isFinal()) {
if (auxiliar || financeiro) {
//
if(old.getPodeUsarNovosCamposDeImposto()) {
//
} else {
//
}
}
// goes on a long way...
44. public void atualiza(final List<Parcela> parcelasAAtualizar,
final Usuario usuario, List<Feriado> feriados) {
for (Parcela p : parcelasAAtualizar) {
if (old.isInicial() || auxiliar || financeiro) {
if (old.getConta() != null) {
//
}
if (p.getConta() != null) {
//
}
}
if (!old.isFinal()) {
if (auxiliar || financeiro) {
//
if(old.getPodeUsarNovosCamposDeImposto()) {
//
} else {
//
}
}
// goes on a long way...
Cyclomatic
complexity
45. public TurmaController(HorarioDao horarioDao,
TurmaDao turmaDao, SalaDao salaDao,
CursoDao cursoDao, Info info,
HttpServletResponse response, Result result,
EnhancedValidator enhancedValidator,
UsuarioDao usuarioDao,
InstrutorEmAulaDao instrutorEmAulaDao) {
this._________ = _________;
}
46. public TurmaController(HorarioDao horarioDao,
TurmaDao turmaDao, SalaDao salaDao,
CursoDao cursoDao, Info info,
HttpServletResponse response, Result result,
EnhancedValidator enhancedValidator,
UsuarioDao usuarioDao,
InstrutorEmAulaDao instrutorEmAulaDao) {
this._________ = _________;
}
[AE]fferent
coupling
47. public void generateRequestToken(CustomOAuthAccessor accessor) {
// generate oauth_token and oauth_secret
String consumer_key = accessor.getAccessor().consumer.getProperty("name");
// generate token and secret based on consumer_key
// for now use md5 of name + current time as token
String token_data = consumer_key + System.currentTimeMillis();
String token = scramble(token_data);
// creates secret accordingly
String secret_data = consumer_key + System.currentTimeMillis() + token;
String secret = scramble(secret_data);
accessor.setRequestToken(token);
accessor.setSecret(secret);
accessor.setAccessToken(null);
// add to the local cache
customAccessors.add(accessor);
}
48. public void generateRequestToken(CustomOAuthAccessor accessor) {
// generate oauth_token and oauth_secret
String consumer_key = accessor.getAccessor().consumer.getProperty("name");
// generate token and secret based on consumer_key
// for now use md5 of name + current time as token
String token_data = consumer_key + System.currentTimeMillis();
String token = scramble(token_data);
// creates secret accordingly
String secret_data = consumer_key + System.currentTimeMillis() + token;
String secret = scramble(secret_data);
accessor.setRequestToken(token);
accessor.setSecret(secret);
accessor.setAccessToken(null);
// add to the local cache
customAccessors.add(accessor);
}
Do not
comment
49. public void generateRequestToken(CustomOAuthAccessor accessor) {
// generate oauth_token and oauth_secret
String consumer_key = accessor.getAccessor().consumer.getProperty("name");
// generate token and secret based on consumer_key
// for now use md5 of name + current time as token
String token_data = consumer_key + System.currentTimeMillis();
String token = scramble(token_data);
// creates secret accordingly
String secret_data = consumer_key + System.currentTimeMillis() + token;
String secret = scramble(secret_data);
accessor.setRequestToken(token);
accessor.setSecret(secret);
accessor.setAccessToken(null);
// add to the local cache
customAccessors.add(accessor);
}
Do not
comment