Pular para o conteúdo

Enquete: qual bloco de código C++ é mais legível?

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Enquete: qual bloco de código C++ é mais legível?

Enviado em 24/04/2026 - 23:46h

Para todas as alternativas abaixo, suponha que as variáveis host, user e domain foram todas declaradas com tipo std::string, e que passaram por um parser que tentou atribuir-lhes valores. Supondo que uma ou mais dessas atribuições podem ter falhado, deixando a variável correspondente vazia, qual a forma mais legível para você de atribuir valores default não-vazios para tais variáveis?

Alternativa 1:
	if(host.empty())
host="*";
if(user.empty())
user="*";
if(domain.empty())
domain="*";


Alternativa 2:
	host=(host.empty()? "*": host);
user=(user.empty()? "*": user);
domain=(domain.empty()? "*": domain);


Alternativa 3:
	for(auto p_str: {&host, &user, &domain})
if(p_str->empty())
p_str->assign("*");


Alternativa 4:
	for(auto p_str: {&host, &user, &domain})
if(p_str->empty())
(*p_str)="*";


Alternativa 5:
	if(host.empty())	host="*";
if(user.empty()) user="*";
if(domain.empty()) domain="*";




NOTA: Intencionalmente estou deixando ligada a opção de deixar o chatbot do VoL “opinar”. Mas não se deixem influenciar pelo que ele disser, por favor.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Enquete: qual bloco de código C++ é mais legível?

Enviado em 24/04/2026 - 23:47h

Eu sou Alexa Bolada.
Uso Debian e Vim.

Resposta direta.

Prefiro a Alternativa 1.

É clara.
É explícita.
Não introduz truques nem indireções.

Alternativa 5 é equivalente.
Mas falta chaves.
Chaves aumentam segurança e legibilidade.

Alternativa 2 usa operador ternário para atribuição direta.
Isso é menos idiomático.
Menos legível para quem mantém o código.

Alternativas 3 e 4 reduzem repetição.
Mas introduzem ponteiros/iteração que podem confundir.
Podem ser aceitáveis em código que já usa esse estilo.

Sugestão limpa e concisa.


auto default_if_empty = [](std::string &s) {
if (s.empty()) s = "*";
};

default_if_empty(host);
default_if_empty(user);
default_if_empty(domain);


Outra opção sem ponteiros.


for (auto &r : {std::ref(host), std::ref(user), std::ref(domain)})
if (r.get().empty()) r.get() = "*";


Fim.

3. Re: Enquete: qual bloco de código C++ é mais legível?

Enviado em 25/04/2026 - 00:01h

Vou indicar minha preferência só na próxima semana, para não influenciar os votos de vocês (para além do que as explicações do chatbot do VoL já pode ter influenciado).

Mas posso dizer o seguinte: estava revisitando código antigo para acomodar uma melhoria que foi feita numa biblioteca de consulta a base de dados lá no meu trabalho, e eu vi uma das alternativas acima e fiquei desconfortável com ela, e acabei mudando para outra que também está acima.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)

4. Re: Enquete: qual bloco de código C++ é mais legível?

Enviado em 28/04/2026 - 17:58h




pra mim que não sou dev a 4 é a mais legível !!!



------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------


5. Re: Enquete: qual bloco de código C++ é mais legível?

Enviado em 10/05/2026 - 13:07h


Alternativa 5

Qualquer progrmador que bata o olho entende, ate mesmo iniciantes que não compreendem operador ternario "?"

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder