wzorce projektowe

0

Witam,

Piszę pracę magisterską na temat wzorców projektowych. Żeby nie było za łatwo, nie wystarczy żebym przedstawiła wzorce opisane przez Gang of Four, muszę dołożyć rozdział trochę bardziej analityczny. Miałaby to być krytyczna analiza (np. które z wzorców są już przestarzałe) oraz jakieś rozwinięcia (tak jk np. dla Visitora powstało rozwinięcie Dynamic Visitor). O ile podstawy są łatwe do znalezienia w książkach i w necie, o tyle zupełnie nie wiem gdzie szukać materiałów dotyczących tej trudniejszej części. Może ktoś z was ma pojęcie na ten temat?
Z góry dzięki za pomoc :)

0

o_O przepraszam a gdzie w tej pracy jest "twoja" część? Bo mam wrażenie że chcesz po prostu przepisać całą treść skądś a to chyba chodzi właśnie o to żebyś to ty taką analizę przeprowadziła.
Ale oczywiście warto powoływać sie na juz przeprowadzone wcześniej analizy. Proponuje zacząć szukać tutaj:
http://scholar.google.pl/

Sporo ciekawych informacji można też znaleźć na różnych konferencjach.

0

Zajęłam się tematem bo pisząc pracę chciałam się czegoś nauczyć, na razie moje pojęcie o wzorcach projektowych jest bardzo elementarne. To że piszę pracę magisterską nie znaczy że aspiruję do roli eksperta, bo nim nie jestem. Jeśli nie mam wiedzy praktycznej na temat wzorców projektowych, to jak mam przeprowadzić analizę? Po to piszę post na forum żeby otrzymać wskazówki, nie proszę nikogo o pisanie pracy za mnie. Pisanie magisterki to zajęcie studentów (czyli tych co się uczą) a nie profesorów (czyli tych którzy już wszystko wiedzą).

Konkretnie - chodzi mi o rozwinięcia wzorców jakie znacie, może artykuły dotyczące tematu, wasze własne doświadczenia. Cokolwiek, co pomogłoby mi ugryźć temat.

0

Kobieto - wzorce projektowe jest to bardzo ambitny i wymagający temat. Ja mam nadzieję, iż wybrałaś go w pełni świadomie..... oby tak było
Piszesz że nie jesteś ekspertką - z takim nastawieniem jeszcze długo nią nie zostaniesz. Google naprawdę nie gryzie ;)
Skoro narzekasz na brak wiedzy praktycznej, to powiem Ci, że 1) analiza jest z założenia teoretyczna, 2) w pracy mgr ciężko jest zawrzeć praktykę (no chyba że robisz mgr. inż), 3) to właśnie od Ciebie oczekuje się, że w swojej pracy wykonasz ładną analizę teorii problemu.
No a przede wszystkim obrałaś złą kolejność - najpierw się naucz ile się da o wzorcach, a dopiero później zabierz się za pisanie pracy.

0

Ok, skoro część "użyj google" (hej, serio? nie wpadłam na to) oraz "no kochana zabierasz się za to źle/masz złe założenia/jesteś leniwa/jesteś głupia" mamy już za sobą, to może jakieś konkretne odpowiedzi?
Panowie, jeśli nie macie do powiedzenia nic mądrego w temacie, to uwagi dotyczące tego jak się pisze pracę magisterską zostawcie dla siebie. Zbieranie rzetelnych informacji jest chyba podstawowym elementem nauki do której mnie tak gorąco zachęcacie, więc proszę, możecie się wykazać i przekazać biednej, zagubionej na forum programistów niuni jakieś przydatne informacje.

0

@katiusha a jesteś pewna że teza którą próbujesz przepchnąć ma pokrycie w rzeczywistości? Bo z tego co ja wiem to wzorce nadal są stosowane i żadnej rewolucji w tym zakresie nie było. Niektóre stały się rzadziej używane bo technologia na to pozwoliła (np. Dependency Injection zastąpiło w wielu miejscach Singleton i ServiceLocator, bo powstały złożone kontenery IoC) ale nie znaczy to ze nagle zniknęły czy okazały się "błędne". Dlatego może trudno ci znaleźć informacje do "twojej analizy"...
Obawiam się że jedyne źródła które będą traktowały o tym problemie to będą zupełnie nie-cytowalne rzeczy typu blogi i wykłady na konferencjach programistycznych.

Patrzyłaś na link który ci podałem? To jest "zwykłe" google tylko wyszukiwarka prac naukowych i od niej powinnaś zacząć swoje poszukiwania materiałów do pracy.
Nie sposób nie zgodzić się z kolegą @pixelplus w kwestii kolejności kroków jakie powinnaś podjąć w trakcie pisania pracy. Najpierw musisz poczytać sporo na temat wzorców i analiz już wykonanych a potem zająć się dopiero pisaniem kiedy będziesz już "trochę ekspertem" w tej dziedzinie. W drugą stronę nie bardzo da sie to zrobić.

Zapytam retorycznie - "Ile publikacji naukowych na ten temat już przeczytałaś?". Bo rozumiesz chyba ze opis wzorców na wikipedii i GOF book to trochę mało...

Pierwsza ciekawa publikacje które google-scholar mi podrzuca:

@book{kuhlemann2007design,
title={Design patterns revisited},
author={Kuhlemann, Martin},
year={2007},
publisher={Univ., Fak. f{"u}r Informatik}
}

0

Dzięki za kilka konkretniejszych informacji oraz za link, skorzystałam i będę korzystać.
Teza którą "próbuję przepchnąć" to sugestia mojego promotora, ale co on tam wie, to z pewnością niekompetentny bęcwał. Myślę że chodziło mu właśnie o to że "Niektóre stały się rzadziej używane".

Jestem ciekawa jak Wy zabralibyście się za autorską analizę problemu? Bo z tego co czytam, poza odpytywaniem mnie na ile jestem kompetentna i poważna (przepraszam, to forum na którym zadajemy pytania czy bractwo ważniaków gardzące maluczkimi? dajcie spokój, to trochę żenujące), powinnam się zabrać za pracę jak już wszystko będę wiedzieć, ergo- jak się nauczę. A staram się nauczyć pytając was właśnie o źródła wiedzy. Rozumiem że ta prosta logika umyka wam w trakcie tej publicznej hłosty, ale spoko, nie chowam urazy, nadal czekam na poważne odpowiedzi.

0

ale co on tam wie, to z pewnością niekompetentny bęcwał

Gdyby był kompetentny w dziedzinie inżynierii oprogramowania to nie wykładałby na uczelni za 5k miesięcznie tylko pracował w jakiejś firmie za 15 czy 20 ;) (Swoją drogą dziwię się że na 5 roku wierzysz jeszcze w to że wykładowcy na uczelni prezentują jakiś poziom merytoryczny. Zgaduje że wynika to z faktu że masz zapewne 0 doświadczenia zawodowego. Jak tylko to nadrobisz to odkryjesz w jakim byłaś błędzie) Ale ja nie o tym chciałem...

Jestem ciekawa jak Wy zabralibyście się za autorską analizę problemu?

Ja widzę dwa możliwe podejścia w tym względzie:

  1. Analiza konkretnego przypadku - wymyślenie sobie jakiegoś przykładowego systemu a następnie zaimplementowanie jego fragmentów w oparciu o różne wzorce i analiza uzyskanych rozwiązań zgodnie z pewnymi przyjętymi kryteriami. Kryteria mogą być różne - podatność na modyfikacje, ilość kodu, związanie z konkretną technologią lub jego brak etc.
    Zobacz sobie ten wykład:
  2. Analiza istniejących systemów open-source pod kątem stosowanych w nich wzorców. Nie wymagałoby to implementowania niczego, ale może być dość skomplikowane i czasochłonne bo wymaga analizy dużej ilości kodu.
0

Chyba powinnam zmienić nick na bezbronna_16, byłoby łatwiej mnie rozszyfrować. Źle zgadujesz. A swojego wykładowcę mimo wszystko cenię, idąc tropem który wskazałeś wyszłoby na to że wszyscy doktorzy i profesorowie to banda gamoni. Skoro tak to po co czytać te ich wszystkie "publikacje naukowe"? ;)

Moja praca ma obowiązkową część praktyczną, więc implementacji nie uniknę, analizy zastosowania też nie, ale nie to jest problemem. Problemem są rzeczy niestandardowe - takie jak analiza tego co jest przestarzałe a co nie (do czego punktem wyjściowym jest wiedza wynikająca z praktyki w stosowaniu), czy np. informacje o rozwinięciach wzorców (które się zna jak się je stosuje - ja nie stosuję więc nie znam. A że nie znam, to pytam).

0

Myślę, że wszystko, co miało być napisane w tym temacie, zostało napisane, a robi się tylko niepotrzebny flame. Zamykam wątek.

0

Moim zdaniem, wybrałaś sobie zbyt ogólny temat, ale już trudno.
Wzorce projektowe, to nie tylko GoF. Oprócz tego dochodzą takie zagadnienia, jak: SOLID, cohesion, coupling, granulity (fine/coarse grained code), dziedziczenie, kompozycja, etc.
Wymienione elementy dotyczą tylko wzorców związanych ze strukturą kodu. Oprócz tego, dochodzą też wzorce związane ze strukturą programów, tj. chociażby koncepcje typu Domain Driven Design. Ponadto, istnieją też wzorce architektoniczne związane ze strukturą aplikacji i systemów informatycznych. Operują one na wyższym poziomie abstrakcji, niż wzorce GoF. Martin Fowler napisał o tym książkę: Patterns of Enterprise Application Architecture. Sam bym sobie takiego tematu nie wybrał, ponieważ jest zbyt szeroki, mało konkretny i zbyt ogólnikowy.

Niemniej jednak, jeśli miałbym napisać pracę na ten temat, to podzieliłbym ją na następujące główne części :

  1. Wprowadzenie
  2. Zasady tworzenia dobrego kodu (zagadnienia wymienione w pierwszej części mojej wypowiedzi)
  3. Wzorce GoF
  4. Wzorce architektoniczne
  5. Praktyczne zastosowanie wzorców projektowych na przykładzie... (tutaj wymyśl sobie jakiś projekt)
  6. Podsumowanie
1

Fakt, to temat - rzeka. We wprowadzeniu chcę zawęzić ten temat, sprecyzować którym wycinkiem tak szerokiego zagadnienia będę się w pracy zajmować, ale może wydzielenie osobnego rozdziału i zmniejszenie udziału wzorców GoF w zawartości pracy będzie lepszym rozwiązaniem.
Wielkie dzięki za sugestię.

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