stary_kon
#programowanie #programista15k #python
Ma ktoś jakiś dobry sposób na nauczenie się obiektówki? Wszystkie te przykłady ze zwierzątkami, pieskami i kotkami przerabiałem, ale to są tylko podstawy, a w prawdziwym kodzie dużo więcej się dzieje. Po prostu w głowie coś nie może mi przeskoczyć na ten sposób myślenia.
Od wieków pisałem proceduralnie i nigdy obiektówka nie była mi potrzebna (poza pojedynczymi przypadkami, gdzie udało się to obejść). Jak już mam Cos w tym grzebać, to jakoś sobie radzę, ale wiem, że w pełni tego nie rozumiem i potrzebuje dużo czasu by ogarnąć kod.
  • Najlepsze
  • Wszystkie komentarze
some_ONE
zakładając że teorię znasz, to może jakieś API w django zrób? Samo django też się może kiedyś przydać, a przy okazji będziesz miał sporo zabawy z OOP.


@croppz: Jak chce się nauczyć obiektówki to przydałby się jakiś projekt gdzie rzeczywiście będzie miał jakąś bardziej skomplikowaną logikę niż CRUD.

Z api w Django i jakimś crudem to się najprawdopodobniej co najwyżej nauczy pisać kod proceduralny z wykorzystaniem obiektów. A to ma
Krolik
Krolik
@stary_kon: no i w sumie gdzie tu problem? Pisz proceduralnie, klasy traktuj jak struktury danych, a funkcje bardzo silnie związane z jakąś jedną strukturą umieszczaj jako metody w klasie. Dziedziczenia unikaj jak ognia, jedynie naucz się interfejsów bo są przydatne tam gdzie chcesz mieć więcej niż jedną implementacje jakiegoś zachowania. Dostaniesz w ten sposób kod lepszy i łatwiejszy w utrzymaniu niż większość kodu OOP pisanego w czasach hajpu na OOP
croppz
@stary_kon: Nie bój się też zaglądać do źródeł, popatrz trochę w kod paczek z których korzystasz. Sporo się można z tego nauczyć.
croppz
A to ma się do "prawdziwej" obiektówki tak jak pisanie funkcji do programowania funkcyjnego


@some_ONE: ładnie ujęte, ale tak czy inaczej jest to IMO jakiś początek. Zrobi sobie na start obiektowego cruda, potem może zacząć do tego dodawać endpointy z jakąś ambitniejszą logiką. Jak się rzuci od razu na głęboką wodę, to pewnie nawet nie będzie za bardzo wiedział od czego zacząć. ( ͡° ͜ʖ ͡°)
M.....f
M.....f
@stary_kon: Ja bym po prostu pisał kod i pakował wszystko w obiekty zachowując SRP. Poza tym korzystaj głównie z agregacji. Dziedziczenie i polimorfizm używaj tylko wtedy, gdy samo nasuwa ci się na myśl i nieużycie tych technik byłoby błędem.
Gdy zdobędziesz już trochę obycia zapoznaj się ze wzorcami projektowymi, spróbuj aplikować je w projektach jeżeli mają sens. A dalej po prostu rozkminiaj, czytaj kod innych i nie pisz obiektowo kiedy
stary_kon
stary_kon Autor
1
Więc technicznie to żadna filozofia. A przydaje się to do utrzymania większego porządku w kodzie, by każdy nie mógł z każdym, tylko by po bożemu mieć jakaś kontrole nad tym kto za co odpowiada.


@avr250: Ja tam nie zauważyłem większego porządku w kodzie. Raczej każdy stosuje jakieś wytrychy i sztuczki. Do tego dodajemy wielodziedziczenie i jak się zagłębiam w te struktury, to po pewnym czasie przestaję się orientować co się
croppz
@stary_kon: zakładając że teorię znasz, to może jakieś API w django zrób? Samo django też się może kiedyś przydać, a przy okazji będziesz miał sporo zabawy z OOP.
stary_kon
stary_kon Autor
0
@croppz: no właśnie niby znam, ale tak na prawdę nie znam. Nie jestem w stanie połączyć kropek i zrozumieć tego końca.
croppz
@stary_kon: przeczytałeś == znasz. Właściwe zrozumienie to osobna sprawa, przychodzi z czasem. ¯\_(ツ)_/¯
stary_kon
stary_kon Autor
0
@croppz: No właśnie chodzi o to, że może i znam, ale nie rozumiem. Co czytam kod, to wydaje się on odmienny od tego co wydawało mi się, że rozumiem. I tak już jest ok kilku lat. Nie potrzebuję obiektówki na codzień, ale od wielkiego dzwona muszę się w to zagłębić, no i jest tego jakby coraz więcej.
stary_kon
stary_kon Autor
0
@Malkof: Dzięki za tipy. Niestety w moich projektach nie mam obiektówki, tylko nieraz musze coś podłubać, albo dopisać w narzędziach z których korzystam. Jako, że ze mnie już stary koń, to po godzinach raczej rodzina niż kodowanie.
n0c0Mpr3h3nD
Xirate
@stary_kon: Zmuś się do paru projektów w Javie. Obiektówka wchodzi szybciutko z tym językiem
m.....h
m.....h
@stary_kon: Szczerze to po prostu spróbuj tak jak rozumiesz napisać jakiś program. W pewnym momencie zobaczysz, że coś się nie klei, zrobisz jeszcze raz. I tak powolutku będzie się w głowie ustawiało, aż nie kliknie.
Generalnie po prostu rób to źle do momentu, aż nie zrobisz dobrze.
some_ONE
ale tak czy inaczej jest to IMO jakiś początek. Zrobi sobie na start obiektowego cruda, potem może zacząć do tego dodawać endpointy z jakąś ambitniejszą logiką.


@croppz: No pewnie, tak tylko się wtrąciłem, bo często panuje przekonanie, że napisanie kilku klas to już programowanie obiektowe. Chociaż czy istnieje jakaś jedna precyzyjna definicja obiektówki to też nie wiem ( ͡° ͜ʖ ͡°)

Przy czym ja sam jestem
RapIArbuzy
RapIArbuzy
RapIArbuzy
  • adult
0
Treść przeznaczona dla osób powyżej 18 roku życia...
avr250
@stary_kon: > Po prostu w głowie coś nie może mi przeskoczyć na ten sposób myślenia.

Od wieków pisałem proceduralnie i nigdy obiektówka nie była mi potrzebna


@stary_kon: W programowaniu strukturalnym po prostu tworzysz funkcje, które przyjmują jako argument strukturę(obiekt). W programowaniu obiektowym zamiast tego na obiekcie wywołujesz metodę, co właśnie można przyrównać do wywalania funkcji, która przyjmuje jako jeden z argumentów referencje do tego obiektu.

Więc technicznie to
stary_kon
stary_kon Autor
0
@mutencath: @Krolik: Postanowiłem popisać gry w pygame. Tam przynajmniej widac obiekty i może to mi ułatwi :D
Krolik
Krolik
A przydaje się to do utrzymania większego porządku w kodzie, by każdy nie mógł z każdym, tylko by po bożemu mieć jakaś kontrole nad tym kto za co odpowiada.


@avr250: Szczerze to nie widzę związku.

Co za różnica czy