![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 26.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Piszę już jakiś czas dość rozbudowany projekt (jak na świeżaka).
Z każdym dniem narasta ilość kodu (plików wszelkiej maści php, tpl, scss, jsony itd) i coraz trudniej mi to ogarnąć. Jak poradzić sobie z rozbudowaną strukturą bez stosowania wzorca MVC. Pytania bardziej szczegółowe: 1. Co z zapytaniami do bazy danych znajdujących się w różnych plikach, np. w klasach. Czy rozsądne jest posegregowanie zapytań na foldery np. GET/SET i wrzucenie tam funkcje z zapytaniami, które później będę includował do klasy? Gdzie trzymac takie zapytania? 2. Czy rozsądne jest rozbijanie długich klas na kilka plików. Muszę użyć danej funkcji w metodzie. Czy powinienem robić require/include do funkcji, czy najlepiej napisać nową w klasie? 3. Jak bardzo obciąża strone np 20 require? Wiem, że pliki js aby zmniejszyć obciążenie serwera kompresuje się i łączy w jeden plik. Jak jest z PHP? Ten post edytował AmbitnySwiezak 26.01.2015, 15:08:47 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jak poradzić sobie z rozbudowaną strukturą bez stosowania wzorca MVC. A dlaczego nie chcesz go stosować. Wzorce projektowe są po to żeby z nich korzystać i kod był bardziej przejrzysty dla ciebie i inych. 1. Co z zapytaniami do bazy danych znajdujących się w różnych plikach, np. w klasach. Czy rozsądne jest posegregowanie zapytań na foldery np. GET/SET i wrzucenie tam funkcje z zapytaniami, które później będę includował do klasy? Gdzie trzymac takie zapytania? Wszystko zależy od złożoności proejktu jeśli zpaytań jest nie wiele, i sama baza danych składa się z 2 - 5 tabel to lepeiej wszsytkie zapytania trzymać w jdenj klasie specjalnie do tego stworzonej. W przypadku większej ilość tabel jak i zapytań, lepeiej rozbijać sobie zapytania do poszczególnych tabel na oddzielne klasy(Modele); ale to wszystko według upodobań 2. Czy rozsądne jest rozbijanie długich klas na kilka plików. Muszę użyć danej funkcji w metodzie. Czy powinienem robić require/include do funkcji, czy najlepiej napisać nową w klasie? W klasach nie ma funckji. To są metody. Nie wiem jak wyobrażasz rozbicie sobie klasy na mneijsze pliki. Możesz korzystać z dziedziczenia, żeby tworzyć bardziej wyspecjalizowane klasy. Wtedy klasa bazowa jak i jej pochodne mogą okazać się krótsze. 3. Jak bardzo obciąża strone np 20 require? Wiem, że pliki js aby zmniejszyć obciążenie serwera kompresuje się i łączy w jeden plik. Jak jest z PHP? Zainstaluj sobie np. Xhprof i będziesz mógł śledzić obciążenie serwera. Ten post edytował grzes999 26.01.2015, 15:28:48 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 26.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
W klasach nie ma funckji. To są metody. Nie wiem jak wyobrażasz rozbicie sobie klasy na mneijsze pliki. Możesz korzystać z dziedziczenia, żeby tworzyć bardziej wyspecjalizowane klasy. Wtedy klasa bazowa jak i jej pochodne mogą okazać się krótsze. Wiem, że w klasie nie ma funkcji. Nie o to chodzi. przykład: Muszę użyć funkcji Y która jest używana w X różnych miejscach w projekcie. Ma występować (coś generować) zarówno w klasach jak i funkcjach. Zawsze mogę podać jako argument metody/konstruktora wynik działania funkcji. Niestety wiąże się to z tym, że w pliku centralnym (gdzie mam już include klasy) będę musiał też includować plik z funkcją Y, a chciałbym tego uniknąć. Ten post edytował AmbitnySwiezak 26.01.2015, 15:53:39 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wiem, że w klasie nie ma funkcji. Nie o to chodzi. przykład: Muszę użyć funkcji Y która jest używana w X różnych miejscach w projekcie. Ma występować (coś generować) zarówno w klasach jak i funkcjach. Zawsze mogę podać jako argument metody/konstruktora wynik działania funkcji. Niestety wiąże się to z tym, że w pliku centralnym (gdzie mam już include klasy) będę musiał też includować plik z funkcją Y, a chciałbym tego uniknąć. Jeżli wykorzystujesz daną metoda kilka razy w różnych miejsach to includujesz tyle razy ile jest potrzeba. Nie ma sensu pisania tej samej metody więcej niż raz. Chyba, że jest to metoda przeciażona(ale tego w PHP chyba jeszcze nie ma). Przy towrzeniu klas, metod musisz pomysleć czy czegoś nie da sie zrobić prościej, szybciej, lepiej. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
W klasach nie ma funckji. To są metody. Metody to też funkcje (IMG:style_emoticons/default/wink.gif) Tak więc Są funkcje w klasach (IMG:style_emoticons/default/wink.gif) Chyba że mi udowodnisz że jest inaczej. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Metody to też funkcje (IMG:style_emoticons/default/wink.gif) Tak więc Są funkcje w klasach (IMG:style_emoticons/default/wink.gif) Chyba że mi udowodnisz że jest inaczej. Nie chcę sie spierać; ale zawsze mi wałkowano, że w programowaniu obiektowym nie używa się funkcji tylko metod. Funkcja coś robi zazwyczaj; a metoda nie koniecznie np. metody abstrakcyjne |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 26.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(grzes999) W przypadku większej ilość tabel jak i zapytań, lepeiej rozbijać sobie zapytania do poszczególnych tabel na oddzielne klasy(Modele); Osobne klasy do samej obsługi zapytań? Jak mam np tabele Userzy, Testy, Wyniki, itd. - idzie do nich po kilknaście/kilkadziesiąt różnych zapytań. Zastosować do obsługi każdej tabeli osobną klasę? Jak robia Guru? Jest jakiś złoty srodek, architektura, czy wszystko jest głównie uzależnione od sytuacji. Cytat(grzes999) ..Przy towrzeniu klas, metod musisz pomysleć czy czegoś nie da sie zrobić prościej, szybciej, lepiej. Nie śpię, tylko myslę o tym (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Osobne klasy do samej obsługi zapytań? Jak mam np tabele Userzy, Testy, Wyniki, itd. - idzie do nich po kilknaście/kilkadziesiąt różnych zapytań. Zastosować do obsługi każdej tabeli osobną klasę? Jak robia Guru? Jest jakiś złoty srodek, architektura, czy wszystko jest głównie uzależnione od sytuacji. Przy korzystaniu z mapowania relacyjno-obiektowego dla każdej tabeli towrzysz klasę(Model) i masz tabelę odzwiercedloną w obiekcie. Innym plusem stosowania tego rozwiazania jest to, że wiesz, że zapytania do tabeli user masz tam i tylko tam nie musisz przeszukiwać tysieci linii kodu, żeby znaleść konkretne. Możesz też zrobić po jednej klasę do Selectów,Updatów,Insertów i w konstruktorze podawać nazwę tabeli, a w parametrach metod kolumny tabeli. Jest mnóstwo rozwiązań tego problemu po prostu musisz wybrać to ci ci odpowiada najbardziej. Ten post edytował grzes999 26.01.2015, 16:34:19 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 26.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Przeanalizuje. Dzięki
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 10:04 |