Remover condiçoes alinhadas por cláusulas guardadas. Dado o seguinte código para enviar um email, temos muitas condiçoes alinhadas:
async function sendEmailCampaign(campaign) {
if (!campaign.sent) {
const recipients = await repository.getRecipients(campaign.id);
if (hasEmailQuota(recipients.length)) {
for (const recipient of recipients) {
if (lisBouncedRecipient(recipient)) {
if (isAllowedRecipient(recipient)) {
await send(campaign, recipient);
}
}
}
}
}
}
Para melhorar a legibilidade podemos usar cláusulas guardadas. A ideia é que paremos/demos um break o quanto antes no código:
async function sendEmailCampaign(campaign) {
if (campaign.sent) return;
const recipients = await repository.getRecipients(campaign.id);
if (!hasEmailQuota(recipients.length)) return;
for (const recipient of recipients) {
if (!lisBouncedRecipient(recipient)) continue;
if (isAllowedRecipient(recipient)) {
await send(campaign, recipient);
}
}
}