konto usunięte

Temat: Jak programować obiektowo?

Jakiś czas temu zdecydowałem się na napisanie serii artykułów na temat programowania obiektowego. Powodem takiej decyzji był fakt, że w sieci można znaleźć wiele tutoriali pokazujących, jak się buduje struktury obiektowe (klasy, interfejsy, abstrakcje), ale jest niewiele na temat tego, w jaki sposób podejmowane są decyzje podczas ich konstruowania i wyboru konkretnego rozwiązania.

Chciałem trochę przybliżyć temat i mam nadzieję, że mi się udało.
Wczoraj opublikowałem ostatni wpis, a link poniżej to pewnego rodzaju spis treści.
Jeżeli ktoś miałby czas i ochotę, to polecam.
Za wszelkie ewentualne uwagi i komentarze z góry dziękuję.

Jak programować obiektowo

konto usunięte

Temat: Jak programować obiektowo?

Sebastian Malaca:
Jakiś czas temu zdecydowałem się na napisanie serii artykułów na temat programowania obiektowego. Powodem takiej decyzji był fakt, że w sieci można znaleźć wiele tutoriali pokazujących, jak się buduje struktury obiektowe (klasy, interfejsy, abstrakcje), ale jest niewiele na temat tego, w jaki sposób podejmowane są decyzje podczas ich konstruowania i wyboru konkretnego rozwiązania.

Chciałem trochę przybliżyć temat i mam nadzieję, że mi się udało.
Wczoraj opublikowałem ostatni wpis, a link poniżej to pewnego rodzaju spis treści.
Jeżeli ktoś miałby czas i ochotę, to polecam.
Za wszelkie ewentualne uwagi i komentarze z góry dziękuję.

Jak programować obiektowo

Myślę że podstawowym problemem tutoriali tego typu jest natłuczenie terminów których początkujący może nie znać lub po prostu się ich nie osłuchał i w ten sposób wszystko mu się miesza co skutkuje marnymi wynikami.
To samo obserwowałem na uczelni. Czasami kilka słów wyjaśnień z mojej strony na jakimś głupim, ale praktycznym przykładzie więcej dawało niż 1,5 godziny mamrotania prowadzącego z programowania.
Ten rzucał terminami których 95% sali usłyszała pierwszy raz i właściwie nic im nie wchodziło.

Dorzućmy do tego jeszcze fakt że sporo osób tak jak ja, zanim zacznie coś robić chciało by wiedzieć DLACZEGO powinno coś robić. Ja nigdy nie potrafiłem się wyuczyć na blachę czegokolwiek ale jeżeli to zrozumiałem (tzn wiedziałem dlaczego to robię i gdzie mi się to przyda) to nauka była bardzo szybka i skuteczna.

Dlatego sam napisałem 2 krótkie artykuły dla dziennika DI na temat programowania obiektowego. Dzisiaj napisał bym to deczko inaczej i niektórym aspektom poświęcił więcej miejsca no ale wtedy walczyłem z objętością (DI nie pozwala na długie teksty - większość tego co mają to 0,5 - 1 strona gdzie moje miały kilka).

Część pierwsza http://di.com.pl/porady/35024,0,PHP_Programowanie_obie...

Część druga
http://di.com.pl/porady/36200,0,PHP_Programowanie_obie...

Troszkę naiwnie i prosto to pisane ale o dziwo podobało się ludziom. No i sporo rzeczy pominąłem z uwagi na ograniczenia jakich musiałem się trzymać. A nie chciałem tematu bardziej rozdrabniać.Dariusz Półtorak edytował(a) ten post dnia 01.06.12 o godzinie 11:21
Wojciech Soczyński

Wojciech Soczyński Programista
eksplorator -
blog.wsoczynski.pl

Temat: Jak programować obiektowo?

Sebastian Malaca:
Jakiś czas temu zdecydowałem się na napisanie serii artykułów na temat programowania obiektowego. Powodem takiej decyzji był fakt, że w sieci można znaleźć wiele tutoriali pokazujących, jak się buduje struktury obiektowe (klasy, interfejsy, abstrakcje), ale jest niewiele na temat tego, w jaki sposób podejmowane są decyzje podczas ich konstruowania i wyboru konkretnego rozwiązania.

Chciałem trochę przybliżyć temat i mam nadzieję, że mi się udało.
Wczoraj opublikowałem ostatni wpis, a link poniżej to pewnego rodzaju spis treści.
Jeżeli ktoś miałby czas i ochotę, to polecam.
Za wszelkie ewentualne uwagi i komentarze z góry dziękuję.

Jak programować obiektowo
Kiedyś mieliśmy dyskusje o getterach/setterach w ramach twojego zalinkowanego artykułu: moja odpowiedź http://blog.wsoczynski.pl/2012/03/19/the-context/

konto usunięte

Temat: Jak programować obiektowo?

Mnie zawsze dziwiło czemu ludzie pchają tyle kodu, przykładów i specyficznego słownictwa w takie tutoriale, poradniki.

Nie ma znaczenia czy używasz finali, abstraktycjnych klas i interfejsów jeżeli to co powstaje jest kompletnym bezsensem a poszczególne elementy są "bo tak trzeba".

Obiektówka to idea, paradygmat - do wyjaśnienia po co interfejsy, do czego służą klasy abstrakcyjne i jak tego wszystkiego używać nie jest potrzebna tona kodu a jedynie pomysł i sposób.

konto usunięte

Temat: Jak programować obiektowo?

Zasadnicza sprawa, do użycia obiektów w kodach źródłowych należy zabierać się dopiero po dokładnym poznaniu klasy i wykorzystania jej właściwości oraz metod. Nie ma sensu za bardzo wnikać w implementację algorytmów w klasie jeżeli nie jest to konieczne. Ogólnie do dokumentacji klas dołącza się przykłady więc na tym można również sie opierać. To dokładnie tak samo, jakby zabrać się do tworzenia www nie znając wcześniej funkcji edytora.
Tomasz Kaczanowski

Tomasz Kaczanowski Ot, programista

Temat: Jak programować obiektowo?

Dariusz Rorat:
Zasadnicza sprawa, do użycia obiektów w kodach źródłowych należy zabierać się dopiero po dokładnym poznaniu klasy i wykorzystania jej właściwości oraz metod.

Tylko należy jeszcze uzmysłowić niektórym, że użycie obiektów i klas nie oznacza, że programuje się obiektowo... Ba, nawet odwrotnie, można w językach takich jak C pisać obiektowo...

konto usunięte

Temat: Jak programować obiektowo?

Dariusz Półtorak:
Myślę że podstawowym problemem tutoriali tego typu jest natłuczenie terminów których
początkujący może nie znać [...]
Tomasz Kaczanowski:
Tylko należy jeszcze uzmysłowić niektórym, że użycie obiektów i klas nie oznacza, że programuje się obiektowo [...]
"W teorii teoria i praktyka są tym samym, w praktyce nie zawsze" :)
Dariusz Półtorak:
Dorzućmy do tego jeszcze fakt że sporo osób tak jak ja, zanim zacznie coś robić chciało by
wiedzieć DLACZEGO powinno coś robić.
I o tym jakże istotnym DLACZEGO starałem się pisać:)
Wojciech Soczyński:
Kiedyś mieliśmy dyskusje o getterach/setterach w ramach twojego zalinkowanego artykułu: moja odpowiedź http://blog.wsoczynski.pl/2012/03/19/the-context/

Czytałem. Bardzo mi się podoba:)
Cóż mogę powiedzieć, warto korzystać z takiego sposobu kontrolowania dostępu. Jednak wydaje mi się, że wymaga on już pewnego myślenia obiektowego.
Dla programista, który zaczyna dopiero przygodę z OOP to mogą być zbyt głębokie wody.
Michał Wachowski:
Nie ma znaczenia czy używasz finali, abstraktycjnych klas i interfejsów jeżeli to co powstaje jest kompletnym bezsensem [...]
Dokładnie. Jednak większość rzeczy, na które można się natknąć w internecie, to niestety zaprezentowanie słów kluczowych, demonstracja w jaki sposób stworzyć klasę, żeby kod się nie wysypał itp. itd.
A programowanie obiektowe bez umiejętności obiektowego myślenia jest bezwartościowe.Sebastian Malaca edytował(a) ten post dnia 01.06.12 o godzinie 12:53

konto usunięte

Temat: Jak programować obiektowo?

Sebastian Malaca:
Klasa abstrakcyjna różni się od zwykłej klasy tym,
że nie można utworzyć jej instancji
aha. To żeś wytłumaczył ;)

W sumie mam wrażenie, że piszesz za bardzo "dla zaawansowanych", specjalistycznym językiem, bardziej wprowadzającym w konkretne zastosowania klas w PHP, aniżeli w samą ogólną ideę obiektowości. Tzn. wpadłeś w ten sam ton, którego chciałeś uniknąć.
Sebastian Malaca:
w sieci można znaleźć wiele tutoriali pokazujących, jak się buduje struktury obiektowe (klasy, interfejsy, abstrakcje), ale jest niewiele na temat tego, w jaki sposób podejmowane są decyzje podczas ich konstruowania i wyboru konkretnego rozwiązania.
No właśnie.

Chociaż merytorycznie wydaje mi się to poprawne, tylko właśnie - nie sądzę czy ktokolwiek początkujący z tego cokolwiek zrozumie, bo rzucasz od razu użytkownika tekstu na głęboką wodę.

konto usunięte

Temat: Jak programować obiektowo?

Dariusz, ludek z czerwoną glacą rządzi :D

konto usunięte

Temat: Jak programować obiektowo?

Piotr L.:
Dariusz, ludek z czerwoną glacą rządzi :D

Całe 2 min w gimpie :P Poznać po gradiencie głowy :P

konto usunięte

Temat: Jak programować obiektowo?

Łukasz Lityński:
W sumie mam wrażenie, że piszesz za bardzo "dla zaawansowanych", specjalistycznym językiem, bardziej wprowadzającym w konkretne zastosowania klas w PHP, aniżeli w samą ogólną ideę obiektowości. [...] nie sądzę czy ktokolwiek początkujący z tego cokolwiek zrozumie, bo rzucasz od razu użytkownika tekstu na głęboką wodę.
Cóż mogę napisać ... starałem się aby całość była napisana w jak najprostszy sposób i zrozumiała dla jak największej ilości osób:)

A prawda jest taka (opieram się na własnym doświadczeniu), że niestety nie tylko początkujący programiści mają problem z OOP. Dlatego też chciałem umieścić podstawowe (w moim odczuciu) rzeczy dotyczące programowania obiektowego w jednym miejscu, aby je jakoś zgrupować.

Może rzeczywiście czasami jest tam 'za dużo' (chociaż zazwyczaj nie wszystko na dany temat), to starałem się to przedstawić w sposób spójny, aby cały proces decyzyjny był jasny i zrozumiały. I nawet jeżeli ktoś po przeczytaniu artykułu nie będzie widział zastosowania dla wszystkiego, co zostało przedstawione, to przynajmniej będzie świadomy istnienia pewnych rozwiązań.

Następna dyskusja:

JAk skopiowac PLIKI z jedne...




Wyślij zaproszenie do