Dalam pemahaman saya, arsitektur evolusioner bermuara pada membuat arsitektur mudah dimodifikasi. Sekarang arsitektur sering didefinisikan sebagai hal-hal yang harus Anda dapatkan sejak dini karena mereka akan sulit diubah nantinya.
Bagaimana ini cocok? Apakah ada perbedaan antara arsitektur evolusioner dan hanya meminimalkan jumlah arsitektur?
design
architecture
agile
architectural-patterns
Frank Puffer
sumber
sumber
Jawaban:
Intisari Neal Ford tentang Arsitektur Evolusi dapat ditemukan di sini.
Parafrase:
Dia melanjutkan untuk menggambarkan skenario arsitektur yang berbeda, dimulai dengan Big Ball of Mud, arsitektur berlapis, microkernels dan REST, dan memuncak dalam microservices, yang katanya memiliki n dimensi kemampuan evolusi (di mana n adalah sejumlah layanan microser berbeda).
Menurut Ford, arsitektur evolusi:
Anda dapat menganggap Arsitektur Evolusi sebagai meta-arsitektur, jika Anda suka; sebuah arsitektur arsitektur. Panduan yang menentukan prinsip-prinsip desain yang mempromosikan benda-benda casting di tanah daripada batu.
sumber
Ya, itu adalah kontradiksi jika Anda membuat segalanya mudah untuk berubah tanpa pandang bulu. Jika Anda harus menambahkan kode untuk membuat sesuatu "lebih mudah untuk diubah" (dengan "lebih mudah" didefinisikan dengan buruk, seperti di sini), maka Anda telah membuatnya lebih sulit untuk diubah, hanya karena Anda menambahkan kode. Di sisi lain, jika Anda tahu persis apa yang akan berubah, yang sangat tidak mungkin, kode tambahan tidak boleh dipandang sebagai kompleksitas yang tidak perlu.
Membuat hal-hal "mudah diubah" mungkin merupakan alasan utama mengapa banyak perangkat lunak modern menjadi begitu kembung dan sulit untuk diubah.
sumber