Selain jawaban yang diterima, saya ingin menyebutkan contoh lain untuk masalah lintas sektoral: jauh. Katakanlah saya hanya ingin memanggil komponen lain dalam ekosistem saya secara lokal seolah-olah mereka sedang berjalan dalam proses. Mungkin dalam beberapa kasus mereka bahkan melakukannya. Tapi sekarang saya ingin menjalankan layanan saya yang didistribusikan di cloud atau cluster. Mengapa saya harus peduli dengan aspek ini sebagai pengembang aplikasi? Suatu aspek dapat menangani mencari tahu siapa yang harus dihubungi dan bagaimana, menserialisasi data yang dikirim jika perlu dan membuat panggilan jarak jauh. Jika semuanya berjalan dalam proses, aspek tersebut hanya akan meneruskan panggilan lokal. Di sisi callee, aspek tersebut akan deserialisasi data, melakukan panggilan lokal dan mengembalikan hasilnya.
Sekarang izinkan saya memberi tahu Anda sedikit cerita tentang hal-hal "sepele" seperti keluaran log: Beberapa minggu yang lalu saya memperbaiki basis kode yang kompleks, tetapi tidak terlalu besar (sekitar 250 ribu baris kode) untuk klien. Dalam beberapa ratus kelas, satu jenis kerangka kerja logging digunakan, di beberapa ratus lainnya. Lalu ada beberapa ribu barisSystem.out.println(*)
di mana seharusnya ada keluaran log. Jadi saya akhirnya memperbaiki ribuan baris kode yang tersebar di seluruh basis kode. Untungnya saya bisa menggunakan beberapa trik pintar di IntelliJ IDEA (pencarian & penggantian struktural) untuk mempercepat seluruh tindakan, tapi bukankah itu sepele! Tentu, pencatatan debug yang sangat bergantung pada konteks akan selalu terjadi dalam badan metode, tetapi banyak jenis pencatatan penting seperti pelacakan panggilan metode (bahkan secara hierarki dengan keluaran yang diindentasi dengan baik), pencatatan kedua pengecualian yang ditangani atau tidak tertangani, audit pengguna (pencatatan panggilan ke metode terbatas berdasarkan peran pengguna) dan seterusnya dapat dengan mudah diimplementasikan dalam aspek tanpa mereka mencemari kode sumber. Pengembang aplikasi sehari-hari tidak perlu memikirkannya atau bahkan melihat panggilan logger tersebar di seluruh basis kode.
Saya dapat memberikan penjelasan serupa untuk masalah lintas sektoral lainnya. Menjaga kode tetap bersih dan bebas dari hamburan dan kekusutan IMO adalah masalah profesionalisme, bukan opsional. Last but not least itu membuat kode dapat dibaca, dipelihara, dapat dipulihkan. Amin.