![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 2 Dołączył: 2.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałbym się podzielić z wami swoimi wątpliwościami na temat nauki OOP. Otóż mam solidne podstawy (bardzo solidne) – 2 lata klepania strukturalnie programów, CMS-ów itp. dla pewnej firmy z Ostrowa Wielkopolskiego (z grzeczności nie będę wymieniał z nazwy). Co prawda wszystkie te projekty z powodzeniem działają do dzisiaj (trzeba było trochę o nie zadbać ale myślę że to normalka). Problem w tym że po takim czasie zauważam w tych wszystkich stronach że to niesamowity szajs. Dziś (tzn. w niedalekiej przyszłości) przyjdzie mi napisać coś swojego (co mógłbym sprzedać). Oczywiście jako że ja swoją osobą będę te(n) produkt(y) reprezentował, zacząłem zgłębiać tajniki OOP (co prawda już wiele razy wcześniej miałem styczność z obiektami ale tym razem szukałem czegoś konkretnego – na tyle kompleksowego aby utworzyć już dosyć stabilną, szybką, niezawodną i przenośną aplikację). Przejdę do konkretów. Otóż mija już czwarty tydzień moich poszukiwań (dziesiątki przeczytanych kartek, dzisiątki //jeśli nie steki// przejrzanych stron www, dziesiątki przeczytanych wątków na forum (BTW pozdrawiam wszystkich stałych bywalców – ostatnio śnią mi się Wasze nicki po nocach (IMG:style_emoticons/default/smile.gif) ). I tu pojawia się mój problem ponieważ dobrze rozumiem ideę OOP znam jego zalety, dostrzegam je. Trapi mnie natomiast ilość informacji. PDO, ORM-y, MVC, Adaptery, Singeltony, Strategy, SOLID, DI, PoEAA etc, etc... Jako że jestem raczej perfekcjonistą (poprzednie projekty wynikały raczej z niewiedzy niż braku chęci ) //powiem szczerze że miałem ochotę kilka razy nieźle popoprawiać te starocie ale kto mi za to zapłaci …// dlatego zastanawiam się czy jest sens i czy w ogóle możliwe jest (na)pisanie od samego początku „idealnego” kodu (napisałem w cudzysłowie ponieważ w głębi duszy czuję że taki kod nie istnieje – zawsze znajdzie się coś szybszego (IMG:style_emoticons/default/smile.gif) ). W końcu trzeba szlifować dobre nawyki tyle tylko że napisanie prostego kodu nie sprawia żadnego problemu (nawet gdy w grę wejdą bazy danych) ale ile na takich prostych metodach można ciągnąć? Czy znowu mam klepać podstawy OOP przez rok czy dwa? Jak to u was wyglądało? Bo troszkę czuję że ten czas spędzony na programowaniu strukturalnym był stracony (co prawda wrył mi się cały język dokumentnie w mózg ale co z tego)? Wiem że są Frameworki. Ale czy sens jest uczyć się Frameworka skoro dopiero po jego nauczeniu się będę wiedział czy mi się przyda. A jeśli nie to co? Uczyć się kolejnego? Przepraszam Was za ten wyczerpujący wywód i że straciliście kilka minut życia na czytanie tego. Pozdrawiam. Dawid. Wracam do pisania …. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czy znowu mam klepać podstawy OOP przez rok czy dwa? Jak to u was wyglądało? Osobiście uważam, że pisanie obiektowe jest czymś, co przychodzi naturalnie. Najpierw zaczynasz używać pojedynczych obiektów, później samych obiektów, następnie zaczynasz rozumieć różnicę pomiędzy obiektami brzegowymi (interfejs), obiektami sterującymi (to co jest pomiędzy corem, a interfejsem), a encjami, zaczynasz dostrzegać sens stosowania tego podziału. Później zauważasz taki cudowny twór jakim jest klasa abstrakcyjna i wszystko staje się prostsze. Później poznajesz interfejs i pomimo bolesnych początków, dostrzegasz coraz więcej plusów z jego stosowania. No i są jeszcze wzorce. Mimo boleści, które towarzyszą zrozumieniu tego wszystkiego, po jakimś czasie dostrzegasz, że było warto i nie potrafisz pojąć, jak mogłeś napisać chociaż linijkę kodu bez tego wszystkiego:) Cytat Ale czy sens jest uczyć się Frameworka skoro dopiero po jego nauczeniu się będę wiedział czy mi się przyda. Przejrzyj oferty pracy, a będziesz wiedział, który ci się przyda:) Cytat ja chętnie doradzę pisanie własnego MVC. [...] wyraźnie napisałeś "jestem raczej perfekcjonistą" to odradzam uczenia się framework'a. identyczny, a nawet lepszy (bardziej optymalny) kod można uzyskać pisząc od podstaw (choć trwa to dojść długo). [...] no i najważniejsze - nie przejmuj się, że niektórzy mówią "po co wynajdywać koło od nowa". Pisanie własnego FW ma sens tylko i wyłącznie wtedy, jeżeli ma sens:P Chodzi mi o to, że pisanie FW, to mnóstwo rzeczy, które nie mają żadnego związku z pisaną aplikacją np. jeżeli chcesz system do zarządzania danymi klientów, to na czym się skupiasz? Na tym jak obsługiwać routing, pliki językowe, połączenie z bazą, architekturę (MVC, MVP etc.)? Czy raczej nie marnujesz na to czasu i piszesz, to na czym ci zależy? Jeżeli piszesz aplikacje internetowe, to jest tyle rzeczy do zrobienia, że naprawdę warto się odciążyć i skorzystać z gotowego FW i ORM'a. Jasne, że własny FW może być wydajniejszy (jeżeli jest dobrze napisany), ale tak jak pisałem wyżej, takie zabiegi mają sens tylko wtedy, gdy jest to potrzebne. Prędkość twojego internetu też może być szybsza, bo możesz poprowadzić własny światłowód, ale decydujesz się używać tego, co jest, bo połączenie, które masz jest wystarczające:) Cytat Pisanie własnego MVC.pewnie, tylko że trzeba umieć chodzić aby zacząć biegać. Według mnie dobrym ćwiczeniem jest przerobienie wzorców projektowych. Przerobienie wzorców jak najbardziej, ale to naprawdę polecam zostawić na koniec, bo w trakcie uczenia się OOP i poprawnego jego stosowania mimowolnie napotkasz kilka i łatwiej ci później będzie je zrozumieć. A poza tym wzorce trzeba ugryźć wielokrotnie żeby tak naprawdę je zrozumieć. Nie wystarczy przeczytać definicji z wikipedii. Cytat Śmiać mi się trochę chcę, [...] jak wszyscy piszą MVC, MVC i MVC. Rozumiem że można mieć różne wyobrażenia na temat danego wzorca, ale sorry, mnie ta nachalność MVC i wrzucania tego wszędzie gdzie się da, zwyczajnie odrzuca. Więc moja rada jest taka, żebyś się nie sugerował tym wzorcem, a wybrał taki jaki będzie odpowiadał twojej wizji/idei. MVC, to nie tylko wzorzec projektowy, a architektura, a co za tym idzie, dużo cięższa jest jego pełna implementacja. W PHP nie do spotkania. MVC, HMVC, MVP itp. czy to ważne? Moim zdaniem dużo istotniejszy jest podział obiektów na sterujące, brzegowe i encje, bo to ten podział to kwestia, która później ułatwia zrozumienie logiki, jej rozbudowę bądź zmianę. Ten post edytował bastard13 24.08.2011, 23:57:58 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 03:05 |