Wpis z mikrobloga

Powiem Wam szczerze, zacząłem się bawić w tą całą obiektówkę i jakoś nie widzę skąd ten hype? Patrzę jak to w c# jest zrobione. Po co na siłę udawać, że części kodu mają odpowiedniki w świecie materialnym? Tylko komplikuje kod i proste rzeczy nagle robi się dwa razy dłużej. Ktoś faktycznie używa komercyjnie takich wynalazków?

#programowanie #programista15k #gorzkiezale #dotnet #oop #pytaniedoeksperta
E.....o - Powiem Wam szczerze, zacząłem się bawić w tą całą obiektówkę i jakoś nie wi...

źródło: csharp

Pobierz
  • 39
@ElTalento: hype? technologia z zeszlej wiosny czy jak? XD

w OOP nawet średnio chodzi o przedstawianie rzeczywistości w kodzie, bardziej o segregację odpowiedzialności, o tym niestety na wejściu do programowania nikt nie powie

kwestie analogii do rzeczywistości to mała część układanki i bardziej smaczek
@mag_zbc: ja rozumiem doskonale czym jest enkapsulacja, dopytuje bo kazdy program oop tak wyglada


@ElTalento: Nie każdy. Już twoja w tym rola, żeby tego mechanizmu odpowiednio używać i czerpać z niego korzyści.
Do tego enkapsulacja / ukrywanie implementacji to nie tylko ukrywanie składowych klas, ale także całych klas w pakietach, oraz modułach. Nawet całe podsystemy wystawiają API i nie znasz ich szczegółów.

Na tym niższym poziomie abstrakcji obczaj sobie implementację
Programowanie obiektowe to taka teoria żeby dało się jakoś studentów uczyć.
Teraz masz: Car, CarTO, CarEntity i wszystkie odmiany przez integrację na Vehicle, Mobile itp. wraz całym inwentarzem maperów.

Każdy teraz programuje w "Find Usages" i testy regresji :)
@ElTalento: w OOP nie chodzi o to, że to jest najlepszy sposób pisania kodu. W OOP chodzi o to, że dla zwykłego klepacza kodu jest to coś co jest najłatwiejsze do zrozumienia. Stąd ogromny sukces popularności. Te kody musi ktoś utrzymywać, a w momencie, w którym łatwo coś odnieść do rzeczywistości to próg wejścia jest zdecydowanie niższy.
@ElTalento: problem z obiektówką jest taki, że przez swoją popularność wielu nowicjuszy jest przekonanych, że to święty graal programowania i wszystko zawsze i wszędzie powinno być pisane w OOP, a to tak nie działa. I przez to przeświadczenie, wielu używa obiektówki tam, gdzie jest to kompletnie zbędne i niepotrzebnie komplikuje życie i dodatkowo taka osoba jeszcze wmawia innym, że tak właśnie ma być. A wcale tak ma nie być, bo do
bardziej o segregację odpowiedzialności


@oski94: Segregację odpowiedzialności możesz mieć nawet w kodzie czysto proceduralnym czy funkcyjnym. Każda procedura / funkcja jest odpowiedzialna za coś innego. Nie potrzebujesz do tego OOP.

@eloar:

nie. enkapsulacja czyli ukrycie szczegółów implementacji wewnątrz klasy czy metody o sprecyzowanym interfejsie.


Ukrywanie szczegółów implementacji za interfejsem masz w programowaniu modularnym / proceduralnym / strukturalnym / funkcyjnym itp. Sygnatura procedury / funkcji to interfejs. Szczegóły masz w implementacji
@Krolik: nigdzie nie pisałem, że pojęcie enkapsulacji jest wyjątkowe dla obiektowości. Objaśniałem jedynie co to pojęcie oznacza i podałem przykład

wyprzedzając: nie twierdziłem też nigdzie, że OOP jest najlepszym czy choćby dobrym paradygmatem programowania.

Ciekawostka: da się pisać obiektowo w ASM ( ͡º ͜ʖ͡º)
@eloar: problem w tym, że przedstawiono to tak jakby była to jakaś szczególna nowa jakość wnoszona przez OOP. Gdy tymczasem OOP wniosło jedynie... dziedziczenie, które okazało się w sumie szkodliwą koncepcją i od którego się odchodzi, bo kompozycja struktur danych praktycznie zawsze jest lepsza. Całą resztę (abstrakcja, enkapsulacja, polimorfizm) można mieć bez OOP i bez klas i często są prostsze bez OOP.

Piszę teraz coś w Javie, po roku pisania w