![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 23.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Wiem, że jest już jeden temat o tym samym zagadnieniu, lecz dyskusja tam jest według mnie bez sensu. Do rzeczy: piszę aktualnie dość zaawansowaną grę i chciałbym, żeby była jak najbardziej elastyczna. W grze jest kilka ras (każda ma inne ceny budynków, produkcję itp... ) oraz niektóre parametry są zależne od pory roku (jak na przykład produkcja). Wydaje się, że wystarczy zastosować dekorator, lecz sprawa jest trochę bardziej skomplikowana. Różne pory roku w mniejszym lub większym stopniu modyfikują parametry u różnych ras. Na chwilę obecną było mnóstwo różnych klas w stylu WinterCarthageBakery, SpringCarthageBakery... więc w finalnej wersji wyszłoby mi ponad 600 klas co jest niedopuszczalne i nieelastyczne. Kolejnym pomysłem było coś takiego: Każda klasa budynku dla danej rasy dziedziczyłaby po jakiejś klasie abstrakcyjnej w której zaimplementowany byłby mechanizm wyboru odpowiedniej zmiennej z danymi (tzn. czy zimową czy może letnią tablicę z kosztami). W ten sposób ograniczyłbym liczbę klas do ok. 150, lecz rozwiązanie znowu nie jest zbyt elastyczne. Może macie jakiś propozycje, jak zbudować elastyczniejszy system? Może trzymać ceny w bazie danych i cache'ować tylko te dla danej pory roku? Czekam na wszystkie opinie na ten temat. Ten post edytował KOMPsognat 10.02.2007, 19:34:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hehe, a powiedz mi jaka jest roznica miedyz wykonaniem na 500 serwerach svn up... a uzyciem jakiegos skryptu bashowego ktory sciagnie tobie plik PHP z instalacja nowej wersji, ktory sam bedzie wiedzial jak zmigorwac caly system do nowej wersji. Czasem roznice w plikach, a czasem w bazie? A tak plik z update sciagasz sobie, z konsoli jest uruchamiany powiedzmy w nocy. Sciaga skrypt SQL, wykonuje go w transakcji + zmienia pliki kodu (Tu mozna uzyc np: svn up) i po ptakach...
Trzymanie wszystkiego w plikach textowych - uwierz mi, ze to sie nie uda. Po to wymyslil ktos baze danych, zeby tam skladowac potrzebne inforamcje, a nie rozrzucac je po katalogach na dysku w formacie plikow textowych... Cache powiedzmy moze sie odswiezac co jakis czas... np: Po takim update moze automatycznie cache byc kasowane. @KG-: Nie udostepniasz bazy na zewnatrz... Logujesz sie po ssh, wykonujesz komende i tyle. Zawsze mozesz przemycic do kodu gry jakas akcje odpowiedzialna za update systemu. Cron co dzien w nocy laczy sie z twoim serwerem, sciaga definicjie xml'a, sprawdza czy jest nowsza wersja - JEST. Sciaga paczke, unzipuje, wykonuje komendy sql, wgrywa nowe pliki, uruchamia pliki php odpowiedzialne np: za skonwertowanie starej bazy do nowego formatu, przeprowadza testy jednostkowe, i jesli jest wszystko ok, to konczy proces. Masz 500 serwerow - bo o takiej skali zaczoles mowic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) to ulatwi proces jeszcze bardziej niz zalogowac sie 500 razy i zrobic svn up... Ten post edytował Ace 1.03.2007, 13:44:05 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 09:17 |