Wybór odpowiedniej architektury projektu często zależy od późniejszej szybkości jego ulepszania/wprowadzania zmian, unowocześniania itd. Pytanie tylko jak zaprojektować odpowiednią architekturę i rozwiązać podstawowe problemy takie jak:
1) System plików i katalogów - tzn jaką należy zaproponować strukturę katalogów ? Katalog główny aplikacji, gdzie trzymać piki JS, CSS, HTML i inne ? Czy dobrym rozwiązaniem jest wyodrębnienie katalogu src, w którym znajdować się będą poszczególne katalogi zawierające pliki JS, CSS, HTML itd. Jak oddzielić od siebie poszczególne aspekty projektu ? Czyli kod html od kodu php, odrębną sekcję obsługującą ajaxy itd itp ... czyli ogólnie - struktura katalogowa i co gdzie trzymać ?
2) Podział na moduły - tzn jak podzielić odpowiednie części projektowanego portalu ? Przykładowo mamy jakiś system, a w nim panel użytkownika i zakładki na których są sekcje rownież podzielone na zakładki ... i na jednej z zakładek mamy formularz, który też jest podzielony na sekcje

3) Zarządzanie danymi - tzn gdzie trzymać dane wpisywane przez użytkownika i w jaki prosty sposób zarządzać nimi i zależnościami pomiędzy nimi [może pliki XML ?]. Przykładowo, użytkownik wpisuje na pierwszej zakładce jakąś wartość od której zależy układ następnych zakładek (przykładowo na pierwszej zakładce są dane ogólne klienta gdzie wybieramy "nowy klient sklepu" lub "klient sklepu od XX miesięcy" -> jeśli wybierzemy klient sklepu od XX miesięcy, na drugiej zakładce zestaw danych będzie inny). Jak tym łatwo zarządzać i gdzie przechowywać dane, które aktualnie user wypełnia [bo przecież nie w sesji ? to potworne marnotradztwo]. Słyszałem o takim pojęciu jak PostBack, gdzie dane bodajże są wysyłane Ajaxem, sprawdzana jest ich poprawność w czasie rzeczywistym i cały czas jest zachowany STAN aplikacji. Czyli kolejne pytanie - co gdzie i jak ?
4) Wzorce projektowe i frameworki - słyszałem o MVC ale nie mam pojęcia z czym to się je ? Próbowałem instalować Symfony ale podczas generowania projektu z konsoli "symfony generate:project nazwa_projektu" otrzymuje komunikat "A project named nazwa_projektu already exists in this directory.". Nie mam pojęcia za co się zabrać i jak ?
5) Elegancki i przejrzysty kod - tu jest temat morze


6) Właściwe korzystanie z dobrodziejstw - czyli kiedy używać sesje a kiedy nie ? Jakich rozwiązań się wytrzegać ? Co najbardziej spowalnia działanie ? Jakiego rodzaju instrukcji starać się unikać ? W jakim środowisku najlepiej to robić [może Eclipse] ? Czy tworzenie bazy i uzupełnienie jej przykładowymi danymi pozostawić w plikach sql ? Do tej pory robiłem to ręcznie w PHPMyAdmin. Czy korzystać z Subversion [Np tortoise lub subclipse do eclipsa] ? Te i inne problemy opiszcie prosze tutaj.
Pozdrawiam
Domin