Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Database Abstraction Layer do oceny, DBAL, PDO
q.michal
post 18.04.2016, 19:46:32
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 1
Dołączył: 24.12.2013

Ostrzeżenie: (0%)
-----


Hej,

Tym razem do oceny mam klase zapewniajaca dostep do baz danych. Kod dostepny jest pod adresem: http://wklej.org/hash/ae8995ddf21/
Jak zwykle z niecierpliwoscia wyczekuje krytyki wink.gif

Pozdrawiam serdecznie.
Go to the top of the page
+Quote Post
nospor
post 19.04.2016, 10:41:01
Post #2





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




namespace Framework\Platform;
Jak na moj gust to zbyt ogolnikowe i moze sie zdarzyc ze ktos jeszcze wpadl na podobna genialna nazwe i nagle bedzie zonk.

Czemu wlasciwosci so private a metody protected?

Nie uzywaj singletona. Teraz to jest "passe" wink.gif

Nie blokuj nam wyjatkow bazy. To ze ty ich nie uzywasz, nie znaczy ze inni nie. Wyjatki to teraz standard a ty je nam wylaczasz.

Nie zmuszaj nas do pobierania danych tylko jako FETCH_ASSOC. Od czasu do czasu NUMERIC jest bardziej wskazane.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 19.04.2016, 10:53:47
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


- brakuje fluent interface
- fetch... 98% kodu to duplikacja.
- ustawiasz na sztywne wszystkie opcje ale przy fetch nie dajesz możliwości zmian co czyni te metody bezuzytecznymi.

Ogólnie nie widzę sensu tej klasy. Same ograniczenia.
Go to the top of the page
+Quote Post
kayman
post 19.04.2016, 12:04:00
Post #4





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 19.04.2016, 11:41:01 ) *
Nie uzywaj singletona. Teraz to jest "passe" wink.gif


abstrahując od tematu -> może ktoś mnie oświecić jaka zbrodnię popełnia singleton? smile.gif
Go to the top of the page
+Quote Post
com
post 19.04.2016, 20:59:25
Post #5





Grupa: Zarejestrowani
Postów: 3 033
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


nospor ten namespace to raczej wynika z tego iż to jest fragment jakiegoś większego systemu, bo kolega już się chwalił kilkoma innymi rozwiązaniami, które jakby złożyć to zapewne tworzą jedną całość, ale fakt mało twórczy biggrin.gif

Mnie razi bardzo i źle się czyta kod w takiej konwencji jak została przyjęta.

Cytat
abstrahując od tematu -> może ktoś mnie oświecić jaka zbrodnię popełnia singleton?


- global
- trudno testowalny
- w przypadku gdy chcemy wykorzystać jakiś fragment systemu, może wymagać od nas wyjęcie z jednego potem pól aplikacji, a potrzebowaliśmy tylko jedną funkcjonalność dla nowego systemu itp
Go to the top of the page
+Quote Post
q.michal
post 22.04.2016, 21:30:36
Post #6





Grupa: Zarejestrowani
Postów: 111
Pomógł: 1
Dołączył: 24.12.2013

Ostrzeżenie: (0%)
-----


Poprawilem to na co pozwolil mi czas, tj:

* metody sa private
* nie wymuszam FETCH_ASSOC

Reszta zajme sie jak bedzie troche wiecej czasu - http://wklej.org/hash/9ad80953845/




Znalazlem chwile aby usprawnic DBAL (http://wklej.org/hash/ca1ae75911a/)
Co prawda nie poprawilem jeszcze wszystkiego na co zwrociliscie moja uwage, ale to co do tej pory zaprezentowalem przeszlo mala metamorfoze wink.gif
Calosc podzielilem przede wszystkim na 3 klasy, dzieki czemu dane mozna pobrac na 2 sposoby:

  1. $dbal->setQuery('SELECT 1');
  2. $dbal->fetchAllRows()

lub
  1. $results = $dbal->setQuery('SELECT 1');
  2. $results->fetchAllRows()


Metoda fetchAllRows oraz inne zdefiniowane w klasie Common przyjmuja teraz opcjonalny parametr pozwalajacy na zmiane sposobu w jaki zwracane sa dane.
Co sadzicie o tej zmianie?

Ten post edytował q.michal 22.04.2016, 21:30:55
Go to the top of the page
+Quote Post
nospor
post 24.04.2016, 19:31:44
Post #7





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Cytat
Metoda fetchAllRows oraz inne zdefiniowane w klasie Common przyjmuja teraz opcjonalny parametr pozwalajacy na zmiane sposobu w jaki zwracane sa dane.
Co sadzicie o tej zmianie?
No to miedzy innymi kazalismy ci wlasnie poprawic, wiec co niby mamy myslec?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
q.michal
post 24.04.2016, 19:46:26
Post #8





Grupa: Zarejestrowani
Postów: 111
Pomógł: 1
Dołączył: 24.12.2013

Ostrzeżenie: (0%)
-----


Chodzilo mi bardziej o rozbicie klasy na 2 czesci.
Go to the top of the page
+Quote Post
nospor
post 24.04.2016, 19:53:30
Post #9





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




W celu ze powodu? I na jakie znowu dwie czesci?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 02:30