Executando verificação de segurança...
14

Dicas para melhorar seu código C#

Bom dia! Gostaria de sugerir algumas dicas e mudanças sobre código C#. São boas práticas universais e sempre devem ser seguidas à todo custo, SEMPRE.

Vamos lá!

Nunca use classes.

Sempre opte por usar uma estrutura ao invés de usar uma classe. Faz mais sentido usar o nome "estrutura" pra abrigar várias coisas ao invés de classe. E o nome fica mais bonito também.

// ❌ ruim
class CarroModel 
{
    public int Id;
    public string Modelo;
}

// ✅ correto
struct CarroModel 
{
    public int Id;
    public string Modelo;
}

Nunca use o nome do tipo pra criar um tipo

Isso é muito ruim. Cria um código repetitivo e desnecessário. Use var sempre que possível.

// ❌ horrível
CarroModel carro = new CarroModel();

// ✅ sintaxe aprovada por bill gates
var carro = new CarroModel();

Não use interfaces

Não é legal. Essa ideologia de interfaces só traz mais tempo para seu valioso desenvolvimento. Use tipos dinâmicos sempre que possível.

// ❌ deprimente
interface ICarro
{
    public void Ligar();
}

class CarroModel : ICarro
{
    public int Id;
    public string Modelo;
    
    public void Ligar() { ... }
}

// ✅ forma correta
class CarroModel
{
    public int Id;
    public string Modelo;
    
    public void Ligar() { ... }
}

dynamic x = new CarroModel();
x.Ligar();

Traga suspense ao seu código

É sempre interessante deixar o ambiente de seu time com um clima de suspense para que vocês trabalhem juntos em desvendarem mistérios.

// ❌ chato, já sabe o que faz
bool carroAndando = carro.Ligado && carro.Velocidade > 0;

// ✅ cria um suspense interessante
var x = carro.Ligado && carro.Velocidade > 0;

Essas são minhas dicas para você seguir um desenvolvimento EXTREME Go Horse com C#. Claro que se você for inteligente irá saber que é ironia. Esse post também é uma crítica inversa para você não cometer esses erros muito básicos mas que várias pessoas cometem.

7

Legal, entendi, mas vou dar um pouco mais de contexto.

struct são ótimas, e por padrão eu penso em usá-las. Mas grande parte dos tipos acabo usando class. A primeira é mais eficiente em certo cenário, mas é menos poderosa, e tem muitos casos que precisa desse poder. Se a estrutura for muito grande (não é o caso do exemplo, está quase no limite) e tiver que ficar passando o objeto para todo lado será bem menos eficiente. A semãntica de uso é diferente. Se a pessoa não entender bem, de fato a classe é mais fácil de usar.

Tem casos que precisa usar o tipo explicitamente. Tem casos que fica mais legível. O exemplo é um bom uso, mas não tem mal fazer de outra forma. Na verdade minha recomendação atual está sendo fazer o oposto.

CarroModel carro = new();

Curto, legível, linear com os vários casos que o var não funciona e mesma eficiência.

Interfaces são extremamente úteis, e realmente dynamic é de uso extremamente pontual (caso contrário C# é a linguagem errada para a tarefa ou o design está errado). Mas tem gente que abusa delas, em alguns casos porque querem seguir SOLID a todo custo, sem contexto e sem entender bem os princípios, ou seja, não adota por necessidade, adota por modinha.

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Obrigado pelos complementos.

A crítica sobre estruturas é exatamente isso: para quem não sabe o que é, como funciona e quer sair usando por aí. É interessante aprender o conceito de tipo-por-referência e então tipo-por-valor, e entender como eles se relacionam com código de referências, nullables, instâncias e outras coisinhas interessantes que faz um ser bem diferente do outro.

E de facto, eu quase sempre evito usar dynamic, salvo em casos que preciso lidar com tipos genéricos que não compartilham uma abstração comum.

1
1
-4
4

A dica do suspense me quebrou! kkkkkkkkk
Poderia ter uma dica de drama também com uma logica muito complexa pra sempre ter o drama na hora de tentar localizar um bug!

3
2
1
1

seria interesante se você explicasse o por quÊ de cada um como nesse

Nunca use o nome do tipo pra criar um tipo
Isso é muito ruim. Cria um código repetitivo e desnecessário. Use var sempre que possível.

// ❌ horrível
CarroModel carro = new CarroModel();

// ✅ sintaxe aprovada por bill gates
var carro = new CarroModel();

E por quÊ o bill gates aprova essa sintaxe?

1
1
1
1

Não sou dev C# e manjo nadinha dessa linguagem, mas esta publicação ficou demais hahahaha entendi bem a ironia e com certeza essa é uma excelente forma de aprender também!!! Claro, é um pontapé inicial para a pessoa sair pesquisando o jeito certo de fazer. Gostei da ideia e da baita publicação!

1

Nesse último semestre, meu professor de programação avançada pede muito que usemos boas técnicas de programação ao construir código. Torna o código universalmente entendível.
Parabéms pelo post!!!

1