Fusebox

**Fusebox** adalah suatu metodologi untuk pengembangan aplikasi web. Fusebox telah diciptakan untuk menyederhanakan aplikasi web dengan membaginya ke dalam banyak bagian. Fusebox telah diberi nama dan dirancang sedemikian rupa. Gagasannya adalah, jika suatu bagian dari Fusebox aktif berhenti, aplikasi lainnya tetap dapat bekerja. Fusebox awalnya diciptakan untuk Cold Fusion tetapi kemudian dikembangkan ke PHP.

## Uraian lanjut
Fusebox telah dirancang untuk menyederhanakan aplikasi web dalam banyak cara. Dengan Fusebox, aplikasi web kompleks menjadi mudah untuk mengubah, mudah untuk memahami, mudah untuk mengatur dan mudah untuk memperbaiki. Sebagai contoh, katakanlah seseorang mempunyai suatu usaha dengan website milik sendiri. Dan seseorang tersebut sedang meninggalkan usahanya ke orang lain dan tidak sempat menjelaskan bagaimana website tersebut bekerja. Dengan Fusebox, seseorang dengan secara relatif yang tidak memiliki pengetahuan tentang aplikasi tersebut dapat duduk dan menggambarkannya hanya dalam hitungan menit. Hal ini tentunya menghemat banyak waktu.

## FLIP
Untuk melakukan percepatan dalam pembuatan ataupun melakukan perubahan terhadap suatu aplikasi Fusebox menggunakan metode FLIP (Fusebox Lifecycle Process) sebagai dasar *project management* pembuatan aplikasi yang hasil akhirnya menggunakan framework fusebox sebagai framework aplikasi berbasis web yang menggunakan php sebagai bahasa pemrogramannya.

Lebih Lanjut penjelasan mengenai FLIP adalah manajemen proyek melalui pendekatan *planning, architecting, coding* dan *testing* pada aplikasi fusebox. FliP dibuat untuk menghambat sampai 70% kesalahan yang umumnya dilakukan pada saat membuat aplikasi. Salah satu mantra FliP yang sangat mendasar adalah “Client tidak dapat memberi tahu anda apa yang mereka inginkan untuk membuat sampai mereka sendiri yang melihatnya”.Bila mereka tahu secara pasti apa yang mereka inginkan dari awal, tentunya mereka tidak membutuhkan arsitek perangkat lunak. Mereka akan berpikir keras apa yang mereka inginkan, tetapi kebanyakan tidak akan melakukan hal itu. Bila anda menunggu sampai aplikasi dicoding untuk kemudian diperlihatkan, kebutuhan akan perubahan oleh pelanggan akan menjadi lebih sulit dan menambah biaya untuk implementasi. Atas dasar pemikiran tersebut, FliP fokus pada kesepakatan kebutuhan aplikasi sebelum coding dimulai.

### Fase FLIP
FliP terdiri dari beberapa fase antara lain:
* **Wifeframing**
Wireframe adalah pembuatan kerangka sederhana sebagai bagian pembuatan aplikasi. Wireframe tanpa grafik, dan hanya fokus pada menampilkan Alur aplikasi dan proses bisnis apa yang akan dilihat oleh *client*.
* **Design Templates**
Pada langkah ini, kerangka visual interface dibuat.
* **Prototype dengan Catatan untuk Developer**
Menggunakan wireframe sebagai peta alur aplikasi, dan menggunakan Design Template sebagai basis user interface, prototype dibuat. Prototype terdiri dari HTML statis; tanpa code program yang sudah ditulis. Hal ini memudahkan perubahan pada prototype. Client dapat melihat prototype dan mengisikan komentar maupun pertanyaan pada Catatan Developer (DevNotes), diskusi sederhana pada sebuah forum untuk setiap halaman prototype. Berdasarkan komentar-komentar ini, prototype diperbaiki sampai pelanggan puas terhadap prototype yang menggambarkan aplikasi yang akan mereka buat. Pada point ini, prototype akan dibekukan untuk mengurangi perubahan di masa yang akan datang. Tujuan tersebut agar hal tersebut menjadi final bagaimana sebuah kode aplikasi akan terlihat dan berfungsi. Beberapa orang menyebutnya “Front end” Prototype, saat ini faktanya Prototype FliP menjadi “Front end” aplikasi final.
* **Arsitektur & Fusedocs**
Saat prototype selesai, arsitek menurunkan aplikasi tersebut ke dalam circuit, fuseaction dan fuses. Fase ini sebagai referensi dalam membuat bagan dokumen.
* **Coding**
Menggunakan Fusedoc, programmer menulis setiap file fuse kedalam spesifikasi pada setiap fusedoc.
* **Test**
Melakukan pengetesan pada setiap file fuse. Yang akan dilakukan secara berulang pada sebuah file fuse dan digunakan untuk konfirmasi pada fungsi fuse dengan menyediakan variabel.

## Pranala luar
* www.fusebox.org