Selama beberapa tahun terakhir, sejumlah penulis ... telah mempresentasikan pola-pola yang menjadi ciri arsitektur perangkat lunak tingkat tinggi ... Dalam dunia yang ideal, setiap sistem akan menjadi contoh dari satu atau lebih pola-pola tingkat tinggi tersebut. Namun, ini tidak benar. Arsitektur yang sebenarnya mendominasi dalam praktiknya belum dibahas: BALL BIG MUD .
SEBUAH BUD LUMPUR BESAR terstruktur secara serampangan, luas, ceroboh, selotip dan kawat pengikat, hutan kode spageti. Kita semua pernah melihatnya. Sistem-sistem ini menunjukkan tanda-tanda pertumbuhan tidak diatur yang tidak salah, dan perbaikan yang berulang dan bijaksana. Informasi dibagikan secara acak di antara elemen-elemen yang jauh dari sistem, seringkali ke titik di mana hampir semua informasi penting menjadi global atau digandakan. Struktur keseluruhan sistem mungkin tidak pernah didefinisikan dengan baik. Jika ya, itu mungkin telah terkikis tanpa bisa dikenali. Programmer dengan sedikit kepekaan arsitektur menghindari quagmir ini. Hanya mereka yang tidak peduli tentang arsitektur, dan, mungkin, merasa nyaman dengan kelambanan tugas sehari-hari menambal lubang di dalam tanggul yang gagal ini, yang puas bekerja pada sistem seperti itu ...
Mengapa sistem menjadi BALL OF MUD BIG? Terkadang, sistem besar dan jelek muncul dari THROWAWAY CODE . KODE THROWAWAY adalah kode cepat dan kotor yang dimaksudkan untuk digunakan hanya sekali dan kemudian dibuang. Namun, kode seperti itu sering mengambil kehidupan sendiri, meskipun struktur kasual dan dokumentasi yang buruk atau tidak ada. Berhasil, jadi mengapa memperbaikinya? Ketika masalah terkait muncul, cara tercepat untuk mengatasinya mungkin dengan memodifikasi kode kerja ini, daripada merancang program umum yang tepat dari awal. Seiring berjalannya waktu, program pembuangan yang sederhana menghasilkan BUD LUMPUR BESAR.
Bahkan sistem dengan arsitektur yang didefinisikan dengan baik rentan terhadap erosi struktural. Serangan tanpa henti untuk mengubah persyaratan yang menarik sistem yang berhasil dapat secara bertahap merusak strukturnya. Sistem yang dulunya rapi menjadi ditumbuhi seiring PERTUMBUHAN PIECEMEAL secara bertahap memungkinkan elemen sistem terkapar secara tak terkendali.
Jika penyebaran seperti itu terus berlanjut, struktur sistem dapat menjadi sangat dikompromikan sehingga harus ditinggalkan. Seperti halnya lingkungan yang membusuk, spiral ke bawah pun terjadi. Karena sistem menjadi semakin sulit untuk dipahami, pemeliharaan menjadi lebih mahal, dan semakin sulit. Pemrogram yang baik menolak untuk bekerja di sana. Investor menarik modal mereka. Namun, seperti halnya lingkungan, ada cara untuk menghindari, dan bahkan membalikkan, penurunan semacam ini. Seperti halnya hal lain di alam semesta, menangkal kekuatan entropis membutuhkan investasi energi. Gentrifikasi perangkat lunak tidak terkecuali. Cara untuk menangkap entropi dalam perangkat lunak adalah dengan mengubahnya. Komitmen berkelanjutan untuk refactoring dapat menjaga sistem dari mereda menjadi BALL BESAR DARI ...
- ... Salah satu musuh lumpur paling efektif adalah sinar matahari. Menundukkan kode berbelit-belit ke panah pengawasan dapat mengatur panggung untuk refactoring, perbaikan, dan rehabilitasi. Ulasan kode adalah salah satu mekanisme yang dapat digunakan untuk mengekspos kode ke siang hari.