SOFTWARE ENGINEERING

Fitur Toggle, Teknik Untuk Memodifikasi Sistem Tanpa Mengubah Kode.

hello | 17 MAY 2020
Fitur Toggles (sering juga disebut sebagai Fitur Flag) adalah teknik ampuh yang memungkinkan setip orang dalam tim untuk dapat memodifikasi perilaku sebuah sistem applikasi tanpa mengubah kode dasarnya. Terbagi dalam berbagai kategori penggunaan dan sangat penting untuk kita bisa memilih tempat yang tepat untuk dapat menerapkan fiture toggles.

Fiture Toggles digunakan ketika kode yang ada sudah rumit, dan kita diharuskan menambah fitur baru di tengah-tengah kode tersebut, dengan menggunakan Fitur Toggles kita dapat lebih mudah mengatur perubahan dari setiap kode yang kita buat dan mematikan kode tersebut ketika terdapat perubahan atau perbaikan pada bisnis prosesnya.

Terdapat beberapa kasus dimana Fiture Toggles akan sangat membantu dalam Pengembangan atau Pembuatan sebuah applikasi, Selain Itu Fitur Toggles juga sering di sebut Fitur Flags, Fitur Bits, atau Fitur Flippers.

Buat Apa Fitur Toggles ?

Bayangkan jika di dalam tim anda sedang mengerjakan sebuah project yang sudah masuk masa production, lalu user meminta berbagai fitur baru yang harus mengubah sistem yang sudah ada dan di saat yang sama orang di dalam tim anda sedang melakukan perbaikan di dalam kode yang sama dengan yang anda kerjakan.
                          
Dalam kondisi tersebut fitur baru yang akan anda kerjakan diharuskan untuk tidak mempengaruhi kode yang sudah ada, agar tidak mengganggu basis kode yang sedang di lakukan perbaikan anda di tuntut untuk membuat berbagai percabangan sehingga kemungkinan akan terdapat berbagai conflict dan membuat pelacakan error menjadi lebih sulit dan rumit.

Untuk menghidari berbagai percabangan tersebut kita bisa membuat sebuah fiture toggles dengan membuat variabel true atau false, lalu kita bisa membuat sebuah fungsi baru yang akan berjalan jika fitur toggles di aktifkan.

Contoh myFeature dengan JavaScript ES2015 :

  function myFeature(){
    var useNewAlgorithm = false;
    // useNewAlgorithm = true; // UNCOMMENT IF YOU ARE WORKING ON THE NEW SR ALGORITHM
  
    if( useNewAlgorithm ){
      return enhancedMyFeature();
    }else{
      return oldFashionedMyFeature();
    }
  }
  
  function oldFashionedMyFeature(){
    // current implementation lives here
  }
  
  function enhancedMyFeature(){
    // TODO: implement better SR algorithm
  }


Dengan menggunakan fiture toggles ini kita bisa mengubah proses untuk menggunakan kode yang baru atau  tetap menggunakan kode yang sudah ada.


Membuat Fitur Toggles Menjadi Lebih Dinamis

Setelah kita mengetahui dasar proses dari cara kerja fitur toogles, sekarang kita bisa melanjutkan dengan membuatnya lebih dinamis sehingga kita tidak perlu melakukan comment/uncomment di dalam sebuah kode.

function myFeature(){
  if( featureIsEnabled("use-new-SR-algorithm") ){
    return enhancedMyFeature();
  }else{
    return oldFashionedMyFeature();
  }
}


Sekarang kita bisa menggunakan fungsi featureIsEnable(), fungsi ini berguna untuk mengontrol secara dinamis alur kode mana yang digunakan, terdapat berbagai macam cara untuk mengimplementasikan toggles routes ini, dimulai dengan menyimpan nya secara sederhana di dalam memory atau dengan mengguakan UI di dalam applikasi untuk mengaktifkan nya.

Contoh cara kerja menggunakan Fitur Toggles di dalam memory :
function createToggleRouter(featureConfig){
  return {
    setFeature(featureName,isEnabled){
      featureConfig[featureName] = isEnabled;
    },
    featureIsEnabled(featureName){
      return featureConfig[featureName];
    }
  };
}


Dengan fungsi toggle route ini kita bisa melakukan setting dan mengontrol fungsi alur kode yang mana yang akan digunakan.

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 

You may also like

BUSINESS

Peran manager dalam organisasi “Agile” – The Chapter, Tribe, and Squad Leader

hello | 17 MAY 2020

NEWS

Wellcode.io – SAIC Capital; Melihat Lanskap Perkembangan Teknologi di Indonesia

hello | 17 MAY 2020

NEWS

Wellcode.io – Twist Code; Mengembangkan Teknologi untuk Meningkatkan Daya Saing Sektor Industri

hello | 17 MAY 2020