Moduł galerii, koncepcja OOP

0

Cześć, jestem w trakcie prac nad pewną stroną - bardziej w ramach ćwiczeń i doskonalenia umiejętności i zastanawiam się nad pewnym rozwiązaniem.
Na wstępie chciałbym od razu zaznaczyć, że jest to bardziej problem koncepcyjny niż stricte programistyczny (nie chodzi o kod ;) )

Mam moduł odpowiadający za galerię zdjęć, który posiada swój własny kontroler, model oraz widoki. Skoro jest to galeria zdjęć - to do takiej galerii trzeba umożliwić dodawanie zdjęć, żaden problem - jednakże, skoro zdjęcia wysyłane są na serwer to można by przy okazji zrobić moduł odpowiadający za administrację wszystkimi wysłanymi obrazkami (czy to zdjęcia do galerii, czy też inne grafiki, wykorzystywane w artykułach).

Pozornie żaden problem jednakże zastanawiam się czy taka koncepcja jest słuszna. No bo moduł - nazwijmy go roboczo - "images" będzie mógł sobie działać niezależnie od istnienia (czy też nieistnienia) modułu "gallery", natomiast moduł galerii zdjęć będzie już zależny od modułu "obrazków". A co gdybym np. nie potrzebował tego całego modułu do zarządzania obrazkami? Moduł galerii staje się bez niego bezużyteczny, zaś pisanie oddzielnego systemu do administracji zdjęciami z galerii oraz wszystkimi innymi obrazkami jest trochę bezsensowne.

Co Wy o tym sądzicie?

0

Myślę, że ten moduł images powinien zajmować się tworzeniem minuturek itp, a galeria powinna działać z i bez miniaturek. Takie moje zdanie :P

1

Ja nie rozumiem przedstawionego problemu. Utknąłem na poczatku 3. akapitu, a chciałbym pomóc.

0

Hej, chodzi o niezależność klas względem siebie. W przytoczonym przykładzie moduł "gallery" jest uzależniony od modułu "images". A z tego co mi się wydaje, po to buduje się aplikacje obiektowo, żeby jej składowe elementy mogły działać niezależnie od istnienia innych. Chociaż, może i przytoczony przykład nie jest do końca trafny? Bo przecież, galeria składa się z obrazków więc to logiczne, że bez nich działać nie będzie. A skoro obsługa "obrazków" znajduje się w module "images" to chyba ten moduł musi być jednak powiązany jakoś z tą galerią. Może się troszkę zapędziłem w budowaniu "najsłuszniejszej" koncepcji ;)

0

Tak o to mniej więcej chodzi. W skrócie w module galerii miałbym funkcję odpowiedzialną za dodawanie zdjęć tj. upload na serwer, odpowiednia obróbka itp. Załóżmy, że po jakimś czasie jednak chciałbym dodać sobie ten moduł do obsługi obrazków (nie związany de facto z galerią), i doszłoby do zdublowania części funkcji tj. znowu miałbym osobny upload, obróbka itp. Ale szczerze chyba za dużo kombinuję i zostaję jednak przy wersji - moduł "imges" odpowiedzialny za upload, obróbkę itp, a moduł "gallery" po prostu będzie wykorzystywał część potrzebnych mu funkcji z modułu "images", dodatkowo mając swoje własne niezwiązane już z uploadem i obróbką. Myślę, że takie rozwiązanie będzie najprostsze. Na usprawiedliwienie swoich kombinacji mam tylko to, że nie mogę się póki co pochwalić jakimiś dużymi projektami, więc i doświadczenie nie jest imponujące, dlatego pytam, bo wiem, że znajdują się tutaj ludzie, którzy pracowali już przy niejednym dużym projekcie i takie rzeczy są dla nich oczywiste ;)

0

Przede wszystkim rozpisz sobie przypadki użycia, następnie przemyśl kod pod względem dobrze zaprojektowanej hermetyzacji klas (umożliwi Ci to późniejszą konserwację kodu w relatywnie krótkim czasie zamiast przerabiania 3/4 kodu na nowo). Trochę interfejsów, klas abstrakcyjnych i można będzie posiadać rozwiązanie łatwe w utrzymaniu.

0

Według mnie galery nie powinno być używane do wgrywania zdjęć (nie tym zajmuje się galeria) tylko do części logicznej wyświetlania obrazków (np. paginacja). Natomiast images do tworzenia miniaturek, tworzenia ich na serwerze, sprawdzania czy są dobre itd.
Dzięki temu przy usunięciu images galery i tak będzie działać.

0

Paginacja to osobny temat - mam od tego inną klasę, która jest uniwersalna i działa dla galerii, newsów, czy do czegokolwiek gdzie potrzebna będzie jest mi paginacja.

//Edit

Jest jeszcze jedna sprawa - cały czas zastanawiam się czy zacząć wykorzystywać jakiś większy framework typu Zend, czy Symfony. Z jednej strony to duże ułatwienie i przypuszczam, możliwość zyskania większych umiejętności pisania dobrego kodu, oraz zapoznanie się z tokiem myślenia i koncepcjami programistów, którzy stworzyli już coś na prawdę dużego. Z drugiej jednak strony, uważam, że jest to zbyt duże pójście na łatwiznę i gdy zrobię jakiś projekt oparty o fw, ciężko mi nawet będzie powiedzieć, że to mój projekt.
No bo jaki to mój projekt skoro większą część roboty robi fw napisany przez kogoś innego?

Jak tu znaleźć kompromis?

0

Osobiście polecam Yii, Pisząc ze wsparciem frameworka dużo zyskujesz - poznajesz technologie, koncepcje i sposób podejścia do problemu. Osobiście widzę to tak, masz moduł do uploadu czegokolwiek i w tym różne opcje, a moduł galerii korzysta z jego danych. To nie jest nic strasznego że moduł galerii będzie zależny od uploadu gdyż upload ma bardzo szerokie zastosowanie i nie jest skomplikowany a można go wykorzystać w innych modułach takich jak galeria filmów, muzyki czy newsów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1