[:id]Framework vs Library[:]

[:id]

Saat kita melakukan sesuatu pengembangan, Pasti Anda sering tersandung pada kata-kata seperti “Framework” dan “Library”. Tapi tahukah apa maksudnya dan apa yang seharusnya Anda ketahui tentang kedua hal itu? Pada catatan ini akan menunjukkan pro dan kontra dari masing-masing asas tersebut dan sebuah deskripsi di mana kasus yang harus Anda pilih. Catatan ini juga akan menunjukkan perbedaan cara penggunaan di antara keduanya. Sebagai contohnya akan menggunakan Symfony, yang sebagian merupakan framework dan sebagian library.

Library

Library digambarkan sebagai “sekumpulan implementasi dari tingkah laku, yang ditulis dalam bahasa pemrograman, memiliki antarmuka yang jelas saat perilaku itu dipanggil.”

Prinsip

Untuk memahami library kita perlu mengulas ke awal mula dari library. Salah satu masalah terbesar saat itu adalah betapa rumitnya kode itu. Karena aplikasi harus ditulis secara keseluruhan, Saat terjadi peningkatan sistem pengkodean, jumlah bug mengalami peningkatan drastis. Pada tahun 1959 JOVIAL memperkenalkan sebuah cara untuk membagi aplikasi menjadi beberapa bagian yang lebih kecil. Solusi baru menjadi dasar untuk apa yang sekarang kita ketahui sebagai Library.

Sebagai Contoh

Misalkan kita ingin menggunakan database. Di PHP cukup sederhana. Yang perlu kita lakukan hanyalah terhubung ke database, siapkan pertanyaan yang ingin kita tanyakan dan dapatkan jawabannya.

Cukup sedikit kerja, bukan? Dan sekarang bayangkan bahwa Anda harus melakukan 5 versi kode untuk berbagai database. Maka akan menjadi sangat berantakan.

Dengan library kita tidak hanya mengurangi ukuran kode dari 20 baris menjadi hanya 12, namun pada saat yang sama mengizinkan database lain untuk digunakan. Mengapa hal ini begitu kuat? Karena library PDO secara internal menggunakan library yang berbeda, yaitu…  berarti bahwa ketika Anda menulis blog Anda tidak perlu khawatir tentang penyelesaian alamat database ke IP atau mencegah SQL injection. Sehingga Anda dapat membuat blog yang sedang Anda kerjakan – hanya “melakukan satu hal dan melakukannya dengan baik”. Itulah kekuatan library.

Kekurangan

Library juga memiliki kekurangan. Ada dua isu utama yang bisa Anda ikuti. Pertama disebut propagasi bug, kedua yakni keterbatasan library.

Propagasi Bug

Mari kita asumsikan kita sedang mengerjakan sebuah library yang akan digunakan untuk menghitung jarak peta – saya akan menyebutnya B. Hal ini membutuhkan library perhitungan seperti penambahan, pengurangan, perkalian dan pembagian – bisa disebut A. Seseorang juga menggunakan library saya di situs mereka, yang ditandai sebagai C. Dalam skenario ini website C bergantung pada library B yang bergantung pada library A.

Nah, apa jadinya kalau library A punya bug? Bisa kita asumsikan bahwa dalam hal penambahan, yakni 1 + 3 = 5,  4 + 4 = 9, dan seterusnya. Ini berakibat di library B akan menunjukkan jarak yang salah, Otomatis situs C juga salah. Apa yang dijelaskan di sini adalah propagasi bug – bug yang bergantung akan menyebabkan bug ketergantungan.

Sekarang kita asumsikan untuk memperbaiki masalah itu dengan memodifikasi library B agar selalu mengurangi 1 setelah perhitungan. Tapi setelah beberapa waktu patch untuk library A keluar yang memperbaiki masalah tersebut. Sekarang library kita adalah sumber masalah karena kita tidak perlu mengurangkan 1. Hal ini disebut propagasi bug derivatif .

Semakin lama rantai ketergantungan, semakin besar masalahnya. Beberapa perpustakaan di jalan dapat memiliki workarounds untuk bug di dependensi mereka, yang akan menyebabkan bug baru dan menyebarkannya ke saluran.

Framework

Framework digambarkan sebagai  abstraksi, di mana perangkat lunak yang menyediakan fungsionalitas generik dapat diubah secara selektif berdasarkan penggunaan kode penulisan.

Prinsip

Hal pertama yang harus kita lakukan adalah memikirkan arti “abstraksi”. Nah, dalam pemrograman itu menggambarkan sesuatu yang setengah jadi, maka masih perlu pengembangan lanjut untuk penggunanya. Selain itu yang perlu diperhatikan tentang “abstraksi” adalah bahwa hal tersebut sudah berisi informasi tentang celah apa yang harus mereka isi.

Hal kedua yang harus kita perhatikan tentang framework bahwa ia sering menggabungkan antara library dan “package”. Setiap framework memiliki nama sendiri untuk itu. Di Laravel mereka menyebutnya “packages”, kalau Symfony “bundles”, dalam kerangka lain mereka mungkin memiliki nama yang berbeda. Cara termudah untuk memahami package adalah membayangkannya sebagai reversed library, di mana API disediakan bukan oleh library, namun dengan framework. Hal ini memiliki beberapa konsekuensi:

  • setiap package harus langsung bekerja dalam framework tertentu,
  • Package yang dibuat untuk satu framework tidak bisa digunakan dalam framework lain,
  • Package sering terikat pada versi framework tertentu, karena package API sama persis dengan framework API

Keuntungan

Salah satu manfaat terbesar framework adalah kemudahan membuat kode.

Source : https://rifqifai.com/framework-vs-library-perbedaan-dalam-pengembangan-web/

[:]

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *