Guard Clauses, Jurus jitu menghindari penggunaan nested if yang berlebihan.

Seorang programmer terkadang hanya fokus menulis sebuah kode yang dapat menyelesaikan sebuah masalah, tapi semakin banyak kode yang ditulis seperti itu maka akan semakin rumit kode yang di hasilkan, akhirnya kode tersebut harus di refactor atau ditulis ulang untuk memperbaiki alur proses agar lebih simple, lebih cepat dan dapat mudah untuk di debug ketika error serta agar lebih cepat untuk di kembangkan jika ada tambahan fitur.


Hal kecil seperti kondisi if else yang rumit dan bercabang akan sangat menyulitkan dalam pengembangan applikasi ke depan nya serta menyulitkan programmer lain juga untuk memahami alur kode tersebut, maka untuk dapat menyelesaikan hal itu terdapat banyak hal yang harus programmer perhatikan ketika menulis sebuah fungsi atau methods, mulai dari penamaan yang tepat, fungsi-fungsi yang kecil dan fokus mengerjakan satu hal, serta dapat memisahkan object, class dan fungsi dengan benar dan pada tempatnya.


Guard Clauses adalah salah satu cara simple untuk memperbaiki kondisi percabangan di mana sebuah fungsi kecil akan mengembalikan sebuah objek atau pesan error jika terdapat kondisi yang salah atau tidak valid, setelah semua kondisi sesuai dengan apa yang kita inginkan kita bisa menjalankan fungsi utama, tapi setelah itu kita harus membuat pernyataan di kode pemanggil fungsi tersebut jika terdapat kondisi yang tidak valid. Dengan memutar logika dengan mengembalikan hal yang false atau tidak valid ini dapat membuat kode menjadi lebih simple dan dapat menghindari banyak kondisi if else yang terlalu dalam.


Contoh fungsi yang tidak memakai Guad clauses :

  function getPayAmount() {
  let result;
  if (isDead)
    result = deadAmount();
  else {
    if (isSeparated)
      result = separatedAmount();
    else {
      if (isRetired)
        result = retiredAmount();
      else
        result = normalPayAmount();
    }
  }
  return result;
}


lalu ini salah satu contoh penerapan code dengan guard clauses :


function getPayAmount() {
  if (isDead) return deadAmount();
  if (isSeparated) return separatedAmount();
  if (isRetired) return retiredAmount();
  return normalPayAmount();
}


Dengan membalik logika dan alur proses di mana sebuah kondisi tidak harus selalu true dan membuang kondisi else kita dapat membuat kode yang banyak dan rumit menjadi lebih simple dan mudah untuk di baca.


Di wellcode.io kita telah menerapkan hal ini di setiap kode, fungsi, project dan applikasi yang sedang kita kembangkan, salah satunya pinterusaha.ai, friendly business platform for MSME's


Wellcode.io Team

Leading high-tech Indonesia Startup Digital - which serves the community with revolutionary products, system development, and information technology infrastructure