iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0

減少巢狀結構

if (user_result == SUCCESS) {
   if (permission_result != SUCCESS) {
       reply.WriteError("error reading permissions");
       relpy.Done();
       return;
   }
   reply.WriteErrors("");
} else {
   reply.WriteErrors(user_result);
}
reply.Done;

用盡早返回函數消除巢狀結構

if (user_result != SUCCESS) {
    reply.WriteErrors(user_result);
    reply.Done;
    return;
}
if (permission_result != SUCCESS) {
    reply.WriteError("error reading permissions");
    relpy.Done();
    return;
}
reply.WriteErrors("");
reply.Done;

消除迴圈中的巢狀結構

儘早返回這個技巧不是萬靈丹,例如:

for (int i=0; i < results.size() ; i++) {
    if (result[i] != NULL) {
        non_null_count++;
        if (result[i] ->name !=""){
           cout << "Considering candidate ..." << endl;
           
        }
    }
}

在迴圈內與儘早返回相當的技巧是continue:

for (int i=0; i < results.size() ; i++) {
    if (result[i] = NULL) continue;
    non_null_count++;
    
    if (result[i] ->name == "") continue;
    cout << "Considering candidate ..." << endl;
    ...
}

Reference

  • <<易讀程式之美學-提升程式碼可讀性的簡單法則 >>(The Art of Readable Code)

上一篇
提供控制流程可讀性--2
下一篇
分解巨大表示式--1
系列文
易讀程式之美學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言