Temat: A ja się dziwię programistom, przepraszam Was...
Na wstępie - nie masz nic przeciwko siekaniu postów? Bo lubię ustosunkowywać się do konkretnych wypowiedzi, a widzę, że nie wszyscy to podzielają :)
Jarek Żeliński:
Adrian Olszewski:ile kilometrów długości będzie miało to zapytanie i jak długo będzie trwało jego wykonanie?
Dla wprawnego programisty nie jest to żaden problem.
oczywiście, chodzi o koszt
Nie przesadzajmy, minuty. Pewnie, że można zliczać wszystkie minuty, ale co z palaczami, piciem kawy, czy gapieniem się w okno, gdy brak weny twórczej :)
Czasem o wiele większym kosztem jest research nowego komponentu, technologii, sposobu rozwiązania problemu, gdzie programista napisał zapytanie w 20 minut, ale nad jakimś zagadnieniem informatycznym siedział dwa dni. To są realne czasy.
i tu jest pewien atut, rozebrane na "klocki" projekty obiektowe i ich implementacja to ślicznie sformatowany tekst, z podziałem na akapity i rozdziały, zapytanie SQL do znormalizowanej bazy to jakby z tego tekstu usunąć całe formatowanie i podział na akapity i rozdziały...
Kwestia gustu, podejścia... może jestem trochę zboczony, bo dość swobodnie czytam zapytania. O ile ktoś rozsądnie ponazywał tabele i kolumny. Ale zagadnienie nazewnictwa jest istotne także w programowaniu i są odpowiednie szkoły.
Jak długo? Bardzo szybko, jeśli umie się pisać zapytania, korzystać z planów zapytań, a zwłaszcza, jeśli było się obecnym przy tworzeniu schematu bazy i można było wskazywać na możliwości kompromisów.
no coś dużo tych wymagań :)
Oj, jak bym popatrzył na wymagania a propos OOP :P A tak fajnie się siada do okna dialogowego, w którym pod OnClick podpina się wypełnianie gridów danymi ;) Nie zastanawiałeś się kiedyś (to tak na marginesie), jak bardzo Twoja świadomość tych zagadnień sprawia, że nie dostrzegasz, ile problemu mogą sprawiać innym? :) Ja to kiedyś zrobiłem i chociaż nie jestem żadnym "rasowym obiektowcem" (uczę się i mam dobre chęci :) ), rozmowa z kilkoma programistami była dla nas obu bardzo męcząca.
No to właśnie tak samo jest z pisaniem w SQLu. Dla "nas" (tzn. korzystających z niego regularnie i do bardziej złożonych celów, niż znalezienie pracownika starszego niż 30 lat i mieszkającego w Kutnie) nie są to jakieś szczególne wymagania. Programista musi znać kupę różnych zagadnień, włącznie z debugowaniem wielowątkowych aplikacji (co nie jest trywialne) czy pisaniem takiego HTMLa, żeby go rozumiało jak najwięcej przeglądarek. Jak ktoś pisze zapytania do bazy, to logiczne, że musi posiadać pewien zakres wiedzy. I jak siada do "automagicznego" ORMa, to też musi wiedzieć, jak go dostroić, żeby działał nie gorzej, niż normalny SQL.
I w dodatku, dzięki modelowi relacyjnemu dokładnie wiem, co zrobi silnik.
czyli co?
Wg planu zapytania i ustawień silnika - do jakich table się odwołuje, ile razy, co łączy, czy pamięta wyniki, czy w wyrażeniu SELECT (AVG(x)-X)/STDEV(x)* za każdym razem liczy agregaty, czy sobie je odkłada na boku i ponownie wykorzystuje i tak dalej i tak dalej.
czasami taniej jest zmienić samochód na nowszy niż używać starego który pali 20litrów/100km, ale to trzeba policzyć....
No pewnie, że masz rację, ale czasem są "naciski" i "okoliczności". Oraz współpraca z tym, co już jest od 15 lat i chwilowo jeszcze być musi... Czyli szara rzeczywistość.
oczywiście, dlatego ja zawsze podkreślam: pisze o systemach biznesowych...
No tak, ale dyskusje dobrze jest uogólniać, by jak najwięcej dobrych praktyk przenosić na jak najszersze obszary :) I wszyscy tutaj korzystamy z tego, że Tobie się chce rozbierać te tematy na części pierwsze i edukować nas (i za to Ci wielkie dzięki, bo takie korepetycje kosztują drogo). A my patrzymy, ile damy rady z tego zastosować do różnych "bagienek", czasem z bardzo różnych dziedzin i o różnych uwarunkowaniach, w których czasem siedzimy...
--------------------
* a czemu nie użyto tam zmiennych, np.
SET @srednia = wylicz średnią
SET @odch_std = wylicz odch. std
SELECT (@srednia - x)/@odch_std ?
Bo np. okienko do definiowania raportów SQL wstępnie przeprocesowuje kod i nie rozumie składni definiowania zmiennych... smutne, ale prawdziwe :)
Adrian Olszewski edytował(a) ten post dnia 07.07.11 o godzinie 14:52