![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Otóż, zastanawia mnie taka rzecz, mamy aplikację, w której stosujemy pewnego rodzaju moduły. Moduł składa się z jednego pliku PHP, w którym jest klasa. Klasa ta dziedziczy po ogólnej klasie (załóżmy: Module) oraz implementuje interfejs (ModuleInterface). Dziedziczy, by móc korzystać z dobrodziejstw aplikacji, na której działa, a implementuje, by każdy moduł posiadał jedno wspólne API, by aplikacja wiedziała, jak je uruchomić (moduły).
Teraz pytanie: Jeśli w aplikacji, modułów mamy przykładowo 20 (każdy z nich może być też wielokrotnie konkretyzowany), to czy za każdym razem sprawdzać, czy dany moduł implementuje dany interfejs oraz czy dziedziczy po danej klasie? Sprawdzanie za każdym razem kolejnej klasy będzie sprawiać obciążenie, w tym wypadku niepotrzebne (IMO). Jeśli programista nie użyje dziedziczenia, to sam zauważy, że coś mu nie działa, więc "podepnie" klasę do innej (w tym przypadku Module). A jeśli nie zaimplementuje interfejsu... no cóż, najprawdopodobniej wyskoczy błąd PHP, że nie ma takiej metody - jeśli defacto jej nie doda do klasy. Jak bardzo należy trzymać się wydajności aplikacji, na rzecz sprawdzania tego typu rzeczy. I nie chodzi mi tylko o moduły, ale praktycznie każdą rzecz, która powinna posiadać dziedziczenie lub implementować jakiś interfejs. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 56 Dołączył: 3.06.2010 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
Jak bardzo należy trzymać się wydajności aplikacji, na rzecz sprawdzania tego typu rzeczy. I nie chodzi mi tylko o moduły, ale praktycznie każdą rzecz, która powinna posiadać dziedziczenie lub implementować jakiś interfejs. Aplikacja powinna działać przede wszystkim stabilnie. Zastanów się czy klient doceni jej wydajność, jeśli co chwilę coś nie będzie działało i rzucało błędami? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Aplikacja powinna działać przede wszystkim stabilnie. Zastanów się czy klient doceni jej wydajność, jeśli co chwilę coś nie będzie działało i rzucało błędami? Klient docenia szybkość działania aplikacji, a błędy zdarzają się jak zawsze, przy produkcie, który jest stale rozwijany, ale są to błędy przeważnie na poziomie GUI czy danego kontrolera, niż tak bardzo systemowe. Cytat 1. Dziedziczenie praktycznie nigdy nie powinno być wykorzystywane do sprawdzania API danej klasy - od tego są właśnie interfejsy, tylko na nich powinieneś się skupić. To rozumiem, nie korzystam z dziedziczenia w tym sensie. Są one po to, by każdy z modułów posiadał dokładnie ten sam zestaw metod, chciałem ujednolicić zarządzanie danymi. Nie mówię, że to dobre rozwiązanie, ale znakomicie się sprawdza. Cytat 2. Masz jakiś faktyczny problem z wydajnością w tym aspekcie? Przedwczesna optymalizacja często dostarcza jedynie niepotrzebnych problemów. Nie sprawdzałem jeszcze jak bardzo obciążenie to generuje, ale tak, szukam rozwiązań, które mogę zastosować by przyśpieszyć aplikację. @by_ikar - Niestety, nie mogę liczyć na jednolite serwery u wszystkich klientów. Gdybym tak zrobił to miałbym ich bardzo mało. Aplikacja działa z PHP 5.3.10+, więc na większości serwerów dzisiejszych w miarę przyzwoicie, ale ja wiem, że zawsze jest coś co można przyśpieszyć, polepszyć. Właśnie tego szukam i dlatego ten temat. Chciałbym po prostu poznać zdanie ludzi, którzy są bardziej doświadczeni w tym temacie. Mimo, że ktoś wie dużo, zawsze jest jakiś temat, na który wie się mało - stąd na przykład to moje pytanie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 12:47 |