Wszyscy wiedzą, że nowi programiści piszą długie funkcje. W miarę postępów coraz lepiej radzisz sobie z dzieleniem kodu na mniejsze części, a doświadczenie uczy Cię, jak to robić.
Wpisz SQL. Tak, SQLowe myślenie o kodzie różni się od proceduralnego myślenia o kodzie, ale ta zasada wydaje się równie odpowiednia.
Powiedzmy, że mam zapytanie w postaci:
select * from subQuery1 inner join subQuerry2 left join subquerry3 left join join subQuery4
Używanie niektórych identyfikatorów lub dat itp.
Te podkwerendy same w sobie są złożone i mogą zawierać własne podkwerendy. W żadnym innym kontekście programowania nie sądzę, że logika dla skomplikowanych zapytań 1-4 należy do mojego zapytania nadrzędnego, które łączy je wszystkie. Wydaje się to tak proste, że te podzapytania powinny być zdefiniowane jako widoki, tak jak byłyby funkcjami, gdybym pisał kod proceduralny.
Dlaczego więc nie jest to powszechna praktyka? Dlaczego ludzie tak często piszą te długie monolityczne zapytania SQL? Dlaczego SQL nie zachęca do szerokiego użycia widoku, tak jak programowanie proceduralne zachęca do szerokiego użycia funkcji. (W wielu środowiskach korporacyjnych tworzenie widoków nie jest nawet łatwym zadaniem. Wymagane są żądania i zatwierdzenia. Wyobraź sobie, że inni programiści musieli składać żądania za każdym razem, gdy tworzyli funkcję!)
Pomyślałem o trzech możliwych odpowiedziach:
Jest to już powszechne i pracuję z niedoświadczonymi ludźmi
Doświadczeni programiści nie piszą złożonego SQL, ponieważ wolą rozwiązywać problemy związane z przetwarzaniem twardych danych za pomocą kodu proceduralnego
Coś innego