Skip to content

Instantly share code, notes, and snippets.

View marciojrtorres's full-sized avatar
🟢
All systems operational

Marcio Torres marciojrtorres

🟢
All systems operational
View GitHub Profile
@marciojrtorres
marciojrtorres / csharp_interfaces_nomes.cs
Created August 6, 2013 00:16
Padrões para nomes de interfaces
interface IPopulacao { // note o prefixo I, de interface
void contar();
}
@marciojrtorres
marciojrtorres / java_substantivos_verbos.java
Created August 6, 2013 00:15
Classes => Substantivos, Métodos => Verbos
class Aviao {
void decola() { ... }
void pousa() { ... }
}
@marciojrtorres
marciojrtorres / java_maus_bons_nomes.java
Created August 6, 2013 00:10
Sequência de maus e bons nomes
double vlrRef; // péssimo
double valorDeReferencia; // melhor
String dataNasc; // ruim
String dataDeNascimento; // melhor
int iu; // horrível
int identificacaoUnica; // melhor
ContratoUnico cu; // sem comentários
@marciojrtorres
marciojrtorres / java_nomes_semelhancas_diferencas.java
Created August 6, 2013 00:07
Nomes com semelhanças e diferenças claras podem facilitar a edição em IDE's com autocompletar
class Usuario {
// ...
List<Tarefa> getTarefasRecentes() { ... }
List<Tarefa> getTarefasEmAndamento() { ... }
List<Tarefa> getTarefasCanceladas() { ... }
// ...
}
@marciojrtorres
marciojrtorres / java_nomes_diferentes_dificultam.java
Created August 5, 2013 23:44
Nomes semelhantes dificultam o entendimento e nomes diferentes deixam claro as diferenças
class Usuario {
// ...
Historico getUltimoHistorico() { ... }
List<Historico> getTodosHistoricos() { ... }
// ...
}
@marciojrtorres
marciojrtorres / java_metodo_dificil_ler.java
Created August 5, 2013 23:39
Um método pequeno que pode ser difícil ou fácil de entender
public List<Conta> getCP() {
List<Conta> c1 = new ArrayList<Conta>();
for (Conta c2 : cs) if (c2.getTipo() == 2) c1.add(c2);
return c1;
}
@marciojrtorres
marciojrtorres / java_bons_nomes.java
Last active December 20, 2015 16:19
Nomes expressivos
// variável comentada: má opção
int d; // tempo decorrido em dias
// variável com nome pronunciável
int tempoDecorrido;
// adicionando informações extras à variável
@marciojrtorres
marciojrtorres / ruby_naming_conventions.rb
Created August 5, 2013 23:30
Padrão de nomes usado na linguagem Ruby
class Documento
attr_accessor :titulo, :conteudo ### declaração de atributos
### métodos escritos em minúsculas com underline e,
### quando boleanos, terminam com "?"
def sem_titulo?
return @titulo.nil? || @titulo.empty?
end
@marciojrtorres
marciojrtorres / java_javabean.java
Created August 5, 2013 23:29
Padrão JavaBean, uma classe de dados com getters e setters
class Endereco {
private String rua;
private int numero;
private boolean ativo;
public String getRua() { return rua; }
public void setRua(String rua) { this.rua = rua; }
public int getNumero() { return numero; }
@marciojrtorres
marciojrtorres / java_coinc_func.java
Last active December 20, 2015 16:19
Falando em coincidência, este código SEMPRE funciona?
public static void armazena(String texto) throws Exception {
FileWriter fw = new FileWriter("/tmp/app-temp.txt", true);
fw.write(s);
fw.flush();
fw.close();
}
public static String recupera() throws Exception {
BufferedReader br = new BufferedReader(new FileReader("/tmp/app-temp.txt"));
String linha = null;