![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam,
wykonałem taką klasę do obsługi DB:
Każda tabela z bazy danych musi być reprezentowana, przez jedną klasę, dziedziczącą po powyższej klasie. Przykładowo:
Jak oceniacie powyższy kod? Proszę o surowe i konstruktywne opinie: co poprawić, co polepszyć, co usunąć? Pozdrawiam (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie powinno być echo w metodach klasy. Bo jeśli bym chciał to wykorzystać to po co ktoś ma patrzyć jakie zapytanie zostało wykonane?
Co się stanie jak ilość kolumn będzie inna niż rzeczywista ilość? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ad. 1: to jest wersja robocza i dlatego to echo tam jest (IMG:style_emoticons/default/smile.gif)
Ad. 2: no to powiedzmy, że dodam do kontruktora (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 29 Dołączył: 3.04.2010 Ostrzeżenie: (20%) ![]() ![]() |
Kawałek kodu nr 1. - Sztywno ustawiane dane do połączenia. Kawałek kodu nr 2. - zmienna $find tutaj nie ma sensu. Można to zapisać również tak:
Czasami definiujesz niepotrzebne zmienne, nie używasz przestrzeni nazw (na początku się tak nie wydaje, ale są bardzo przydatne, poczytaj też o PSR-0), nazwy klas zaczyna się zazwyczaj dużą literą. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Klasa napisana jest beznadziejnie z punktu projektowania obiektowego. Mieszasz funkcjonalności, próbując wszystko wrzucić do jednego wora, dodatkowo robisz trywialne błędy związane z algorytmami, co już zauważyli koledzy wyżej. Dodatkowo, w kodzie nawet nie raczysz sprawdzić czy zapytanie w ogóle się wykonało. Powiedz mi: dlaczego uważasz, że klasa do obsługi baz danych powinna jednocześnie:
- Zarządzać konfiguracją połączenia - Zarządzać wykonywaniem zapytań - Zarządzać składaniem zapytań SELECT To są trzy różne rzeczy. Do pierwszej masz system konfiguracji, do drugiej - PDO już wbudowane w PHP, zostaje Ci trzecie. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie będę powtarzał Zyxa, dodam tylko od siebie, że kod jest mało czytelny... Spacje wokół operatorów, klamerka otwierająca w nowej linii, puste linie rozdzielające poszczególne części metody, podzielenie długich linii na dwie, a przede wszystkim komentarze — to na prawdę nie boli, a niesamowicie podnosi czytelność kodu. Podczas pisania może nie zauważysz wielkiej różnicy, ale jak przyjdzie Ci edytować ten kod za pół roku to będziesz żałował (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin ![]() |
Dobrze ze się chwalisz czym napisałeś i doceniam Twoją odwagę gdyż to środowisko do negacji jest pierwsze. Co nie oznacza że powyższe posty są nieprawidłowe, negatywne same w sobie. Ja piszę o ogólnym zachowaniu użytkowników forum.
Zatem poczytaj negatywne uwagi i wyciągnij wnioski ważne abyś sie nie poddawał lecz rozwijał dalej. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 11 Dołączył: 1.01.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziękuję za opinie, komentarze oraz rady (IMG:style_emoticons/default/smile.gif)
Dokonałem drobnych zmian i teraz konstruktor wygląda tak:
@Zyx: Cytat - Zarządzać konfiguracją połączenia Jak widzisz dane konfiguracyjne przeniosłem do pliki .ini - oto Tobie chodziło, czy nie? Jeżeli nie, to jeśli możesz napisz jak powinno to wyglądać. Jeśli chodzi Ci o PDO, to zrezygnowałem z niego, ponieważ pisząc tą klasę miałem tylko w intencji potrenować OOP i nic więcej (IMG:style_emoticons/default/smile.gif) @.radex Cytat kod jest mało czytelny... Spacje wokół operatorów, klamerka otwierająca w nowej linii, puste linie rozdzielające poszczególne części metody, podzielenie długich linii na dwie, a przede wszystkim komentarze Co do tych pustych linii i komentarzy to się z Tobą zgodzę. Ciągle nadużywam tego pierwszego, a zapominam o tym drugim. Ale odnośnie wymienionych dwóch pozostałych cech - tak się nauczyłem pisać i tak jest mi wygodnie (IMG:style_emoticons/default/tongue.gif) Widzę, że od ponad doby nikt się nie odezwał, więc to już wszystkie niezgodności, które odkryliście? Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 02:36 |