Semua orang tahu bahwa pengembang baru menulis fungsi yang panjang. Ketika Anda maju, Anda menjadi lebih baik dalam memecahkan kode Anda menjadi potongan-potongan kecil dan pengalaman mengajarkan Anda nilai melakukannya.
Masukkan SQL. Ya, cara berpikir SQL tentang kode berbeda dengan cara berpikir prosedural tentang kode, tetapi prinsip ini tampaknya sama berlaku.
Katakanlah saya memiliki kueri yang berbentuk:
select * from subQuery1 inner join subQuerry2 left join subquerry3 left join join subQuery4
Menggunakan beberapa ID atau tanggal dll.
Subquery itu sendiri kompleks dan mungkin berisi subquery sendiri. Dalam konteks pemrograman lain saya tidak akan berpikir bahwa logika untuk subqueries 1-4 kompleks sesuai dengan permintaan orang tua saya yang bergabung dengan mereka semua. Tampaknya sangat mudah bahwa subqueries tersebut harus didefinisikan sebagai view, sama seperti mereka akan berfungsi jika saya menulis kode prosedural.
Jadi mengapa bukan praktik yang biasa? Mengapa orang begitu sering menulis query SQL monolitik panjang ini? Mengapa SQL tidak mendorong penggunaan tampilan yang luas seperti pemrograman prosedural mendorong penggunaan fungsi yang luas. (Dalam banyak lingkungan perusahaan, membuat tampilan bahkan bukan sesuatu yang mudah dilakukan. Ada permintaan dan persetujuan yang diperlukan. Bayangkan jika jenis programmer lain harus mengirimkan permintaan setiap kali mereka membuat fungsi!)
Saya telah memikirkan tiga kemungkinan jawaban:
Ini sudah umum dan saya bekerja dengan orang yang tidak berpengalaman
Pemrogram berpengalaman tidak menulis SQL kompleks karena mereka lebih suka menyelesaikan masalah pemrosesan data dengan kode prosedural
Sesuatu yang lain