Uruchomiłem aplikację w Google App Engine zaraz po jej pojawieniu się, aby pobawić się technologią i pracować nad projektem zwierzaka, o którym myślałem od dawna, ale nigdy nie udało mi się rozpocząć. Rezultatem jest BowlSK . Jednak wraz z rozwojem i dodawaniem nowych funkcji porządkowanie stało się naprawdę trudne - głównie ze względu na fakt, że jest to mój pierwszy projekt w Pythonie i nie wiedziałem o nim nic, dopóki nie zacząłem pracować.
Co ja mam:
- Poziom główny zawiera:
- wszystkie pliki .py (nie wiedziałem, jak sprawić, by pakiety działały)
- wszystkie szablony .html dla stron głównych
- Podkatalogi:
- osobne foldery na css, images, js itp.
- foldery zawierające szablony .html dla adresów URL typu subdirecty
Przykład:
http://www.bowlsk.com/ mapuje na HomePage (pakiet domyślny), szablon pod adresem „index.html”
http://www.bowlsk.com/games/view-series.html?series=7130 mapuje na ViewSeriesPage (ponownie pakiet domyślny), szablon w „games / view-series.html”
To jest paskudne. Jak przeprowadzić restrukturyzację? Miałem 2 pomysły:
Główny folder zawierający: appdef, indexes, main.py?
- Podfolder na kod. Czy to musi być moja pierwsza paczka?
- Podfolder na szablony. Heirarchia folderów będzie odpowiadać hierarchii pakietów
- Indywidualne podfoldery dla css, obrazów, js itp.
Główny folder zawierający appdef, indeksy, main.py?
- Podfolder na kod + szablony. W ten sposób mam klasę handlera tuż obok szablonu, ponieważ na tym etapie dodam wiele funkcji, więc modyfikacje jednej oznaczają modyfikacje drugiej. Ponownie, czy nazwa tego folderu musi być pierwszą nazwą pakietu dla moich zajęć? Chciałbym, aby folder był „src”, ale nie chcę, aby moje klasy to „src.WhthingPage”
Czy istnieje najlepsza praktyka? Mając Django 1.0 na horyzoncie, czy jest coś, co mogę teraz zrobić, aby poprawić moją zdolność do integracji z nim, gdy stanie się on oficjalnym silnikiem szablonów GAE? Zacząłbym po prostu wypróbowywać te rzeczy i zobaczyć, co wydaje się lepsze, ale obsługa refaktoryzacji pyDev nie wydaje się zbyt dobrze radzić sobie z przenoszeniem pakietów, więc prawdopodobnie nietrywialnym zadaniem będzie ponowne uruchomienie tego wszystkiego.