Framework Design Guidelines Bagian 03 – Progressive Framework 8 Mei 2008
Posted by firstyuyu in Prinsip Dasar.trackback
Membuat sebuah framework yang ditujukan untuk berbagai tipe developer, skenario, serta bahasa pemrograman sangatlah sulit dan membutuhkan sumber daya yang tidak sedikit. Biasanya, vendor pembuat framework akan menawarkan beberapa produk berbeda yang ditujukan secara khusus untuk suatu kalangan developer atau skenario yang spesifik. Misalnya Microsoft membuat Visual Basic yang menawarkan kemudahan dan kesederhanaan programming model untuk skenario yang tidak terlalu kompleks. Selain itu, Microsoft juga menawarkan Win32 library yang dioptimasi untuk kekuatan serta fleksibilitas walaupun untuk itu harus mengorbankan kemudahan penggunaan. Microsoft juga menawarkan framework seperti MFC dan ATL yang juga ditujukan untuk kalangan developer tertentu.
Pembagian framework seperti ini mempunyai satu kekurangan utama, yaitu ketika seorang developer merasa bahwa frameworknya tidak bisa lagi mengakomodasi masalah yang dihadapi sehingga dia harus berpindah ke framework yang lain. Pada saat ini, seorang developer akan dituntut untuk belajar sesuatu yang mungkin sama sekali baru karena sering, antara framework yang satu dengan framework yang lain sangat berbeda programming modelnya.
Hal ini bisa kita lihat pada era sebelum .NET. Seorang VB programmer, ketika ia akan melakukan skenario yang lebih kompleks, maka ia harus berpindah menggunakan MFC. Programming model MFC sendiri sangat berbeda dengan VB. Hal ini membuat seorang developer seolah-olah harus menembus sebuah “tembok” yang membatasi antara VB dengan MFC. Dengan kata lain, untuk berpindah ke MFC, seorang VB developer harus memulai sebuah proses belajar yang baru. Apa yang dia ketahui tentang VB sebelumnya bisa dikatakan tidak terpakai lagi di MFC.
Dari sini bisa kita katakan bahwa framework VB dan MFC bukanlan framework yang progressive karena pengetahuan sebelumnya tidak bisa digunakan untuk mempelajari hal yang baru. Framework yang tidak progressive ini diilustrasikan pada gambar berikut:

Sementara itu, membuat sebuah framework yang bisa mengakomodasi kebutuan barbagai macam tipe developer bukanlah hal yang mudah, namun juga bukan sesuatu yang tidak mungkin. Untuk bisa seperti ini, maka sebuah framework harus progressive, yaitu menganut asas low barrier to entry (mudah dipelajari meskipun oleh orang yang baru pertama kali memakai) dan allow knowledge transfer (apa yang telah diketahui tetap bisa digunakan di bagian manapun dari framework tersebut). Framework yang progressive akan membuat kurva belajar kita lebih landai. Tidak ada “tembok” yang harus ditembus ketika kita berpindah dari skenario yang sederhana menuju ke skenario yang lebih kompleks, seperti tampak pada gambar berikut:

Microsoft, melalui teknologi .NET-nya telah menghilangkan “tembok” yang di masa lalu menjadi penghalang bagi developer VB dan MFC. Dengan menggunakan .NET, programming model untuk skenario yang sederhana hingga yang kompleks relatif sama sehingga apa yang telah dipelajari developer sebelumnya akan tetap terpakai seiring dengan proses menuju skenario yang lebih kompleks.
Namun yang harus kita ingat adalah bahwa komunitas developer sangat luas. Ada sangat banyak tipe developer, mulai dari pekerja kantor yang membuat macro di Microsoft Office hingga developer hardcore yang membuat low-level device driver. Sebuah framework, jika harus mengakomodasi semua tipe developer tadi tentu saja tidak akan bisa. Tujuan dari framework yang progressive adalah agar ia bisa digunakan oleh berbagai tipe developer tapi tidak semuanya. Tentu saja, developer yang berada di luar cakupan tersebut akan membutuhkan framework yang sangat khusus.

Komentar»
No comments yet — be the first.