![]() |
![]() |
![]()
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: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
20 modulów, to nie jest jakiś specjalny problem. Problem by był gdyby twoja aplikacja takich modułów miała kilkaset. No i tak, jest to kosztowne dla php, ale są to wciąż tak małe wartości, że np takie symfony które ma około 2000 klas/interfejsów w wersji standard vendors, o ile bez opcache chodzi to ślamazarnie, tak z opcache, chodzi w miarę przyzwoicie. Kolejną sprawą są również wersje php, sam ostatnio na jednym projekcie zobaczyłem różnicę między php 5.3 a php 5.5. Zysk wydajności nawet bez opcache był ogromny. Ale nie każdy projekt pozwala na uruchomienie na php 5.5. Więc nie staraj się na siłę szukać optymalizacji po stronie aplikacji (zmniejszenie ilości klas/interfejsów, żeby zyskać o 50kb i 10ms szybszą aplikacje), ale też zwróć uwagę na środowisko w którym uruchamiasz aplikację.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 12:46 |