Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Database Abstraction Layer do oceny
Forum PHP.pl > Inne > Oceny
q.michal
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.
nospor
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.
Pyton_000
- 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.
kayman
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
com
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
q.michal
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?
nospor
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?
q.michal
Chodzilo mi bardziej o rozbicie klasy na 2 czesci.
nospor
W celu ze powodu? I na jakie znowu dwie czesci?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.