Wszystkie klasy powinny być finalne bo dziedziczenie jest złe. W najlepszym przypadku niczego nie upraszcza, a w najgorszym prowadzi do sterowania skaczącego po kodzie jak pijany zając.
  • Odpowiedz
Fajnie. 15 lat temu twierdzono że finał to zło, bo uniemożliwia dziedziczenia, teraz się to zmieniło i zmieniać się będzie.
Ogólnie, pisz jak ci wygodnie i twojemu zespołowi, bo czasami powstają potworki w stylu "bo taka była filozofia na najlepszy późniejszy rozwój, a tego jednego co ja rozumiał już nie ma".
Offtop: używacie interfejsów, a abstract? Czy też umarło?
  • Odpowiedz
#ddd #oop #java #programowanie #hexagonalnaarchitektura

Jak mam se domenę, obiekty o znaczeniu biznesowym, które coś se robią, bez używania zewnętrznych rzeczy i mam adaptery, które potrafią np. przekonwertować obiekt domenowy do xml albo na dto albo wyciągnąć obiekt domenowy z bazy to teraz jak to połączyć? Prawidłowe będzie gdy:
stworzę se service, który będzie używał obiektów domenowych i adapterów (zdefiniowanych jako abstrakcji)?
a.....e - #ddd #oop #java #programowanie #hexagonalnaarchitektura

Jak mam se domenę,...

źródło: l7knijwaobb51

Pobierz
  • 32
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@aczutuse: Jeśli w twoim przypadku umieścisz DTO w web, który jest częścią infrastruktury, to w jaki sposób serwis aplikacyjny który nie powinien mieć referencji do komponentów będących częścią warstwy infrastruktury będzie na nich operował? Nie możesz mieć sytuacji w której pakiet web ma referencję do application i jednoczesnie application ma referencję do web.

Jeśli serwis operuje na DTO i jednocześnie jest wywoływany w kontrolerze to DTO muszą siedzieć w
  • Odpowiedz
@aczutuse: Infra bo to jest szczegół implementacyjny. Dziś używasz wbudowanych Springowych komponentów, a jutro możesz chcieć użyć dedykowanej zewnętrznej biblioteki, a po jutrze będziesz chciał odpalać job-a poza procesem aplikacji żeby mieć pewność, że jak padnie aplikacja to job będzie sobie dalej działał.

Co do osobnego pakietu to zależy od skali i struktury projektu. Ja preferuję mieć osobne pakiety. Czyli mam pakiet z adapterami do bazy danych, pakiet z adapterami
  • Odpowiedz
Singleton fajnie działał do momentu autoryzacji bo w momencie kiedy kończy się request to autoryzacja przepada w p---u


@seba_thc666: To użyj jakiegoś storage, np. Redisa czy nawet bazy danych do przechowywania tokenu.
  • Odpowiedz
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
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

To co wkleiłeś to jest demo na najniższym poziomie dla kogoś kto kompletnie nie wie z czym się je. Jak zaczynasz rozumieć OOP to zaczynasz widzieć schematy podczas swojego kodowania gdzie coś można opakować w klasę, która ma jakieś swoje responsibility i idzie to z automatu podczas pisania. Jak się zaczynasz bawić jako student to nie załapiesz ot tak od razu. Krytykowanie OOP, bo coś tam na studiach było i nie zrozumiałeś
  • Odpowiedz
Jak nazwać Interface A, który mówi że obiekt, który go rozszerza jest w stanie przetworzyć Interface B?

Na przykład: mam klasę C z pakietu 3th party, która na podstawie danych z tablicy renderuje formularz opcji. Mój framework podnosi abstrakcję wyżej i zamiast tablicy operuje na interfejsach. Dlatego Powstała klasa D, która dziedziczy po klasie 3th party C i zamiast tablicy z parametrami przyjmuje interfejs A. Interfejs A jest uniwersalnym interfejsem zawierającym konfigurację formularza i chcę go teraz używać jako danych wejściowych nie tylko dla klasy D, ale także dla kilku innych klas 3th party.
Będę miał zatem klasę D, E i F, które są w stanie przetworzyć interfejs A. Skoro już są 3 klasy więc wypadałoby nadaćim jakiś wspólny interfejs B, który by mówił, że "Potrafię przetworzyć jako dane wejściowe interfejs A". Jak nazwać taki interfejs?

Pytanie też, czy nie przekombinowuję i czy to nie jest sztuka dla sztuki?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@czlowiek_z_lisciem_na_glowie:

Klasy D, E, F, to są adaptery, i zgodnie z praktyką composition over inheritance, nie powinieneś rozszerzać klas 3rd party, tylko klasa 3rd party jest zależnością adaptera.

Interfejs B, który będzie implementowany przez D,E,F, powinien nazywać się od tego, co reprezentuje. "Przetwarzanie A", to mało konkretna informacja, więc ciężko powiedzieć jak dokładnie ma się
  • Odpowiedz
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
teddybear69 - Powiem Wam szczerze, zacząłem się bawić w tą całą obiektówkę i jakoś ni...

źródło: comment_1619703751VzwuH0BF5Kd1xrzu5S6mxf.jpg

Pobierz
  • 80
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@teddybear69: Ktoś Ci coś źle powiedział. Programowanie obiektowe nie ma na celu odwzorowania świata naturalnego. OOP ma zapewnić enaksupację, dziedziczenie, polimorfizm i abstrakcje.
  • Odpowiedz
Z racji że potężnemu juniorowi 3k nie przystoi nie potrafić klas to klepie sobie w pracy nowy projekt, mianowicie bibliotekę powtarzalnych funkcji żeby nie pisać ich za każdym razem na nowo czy kopiować.

Stworzyłem sobie w main.py klasę Library, w środku funkcję redminelogin biorącą argumenty address i apikey. Jak w drugim pliku odnieść się do funkcji z main.py? #python #programowanieobiektowe #oop #redmine
NewEpisode - Z racji że potężnemu juniorowi 3k nie przystoi nie potrafić klas to klep...

źródło: comment_1619166422yu88oQYGdAdJoh4upTrEY8.jpg

Pobierz
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak w drugim pliku odnieść się do funkcji z main.py?


@NewEpisode: ale wiesz że w tym przypadku to "main.py" mogłaby być miejscem gdzie wołasz funkcje a nie je importujesz po innych plikach?
  • Odpowiedz
@przepyszna_frytka: no wlasnie, tak jak powiedzialem: pojęcie OOP jest rozmyte. Dla mnie OOP to mocne połączenie danych i funkcji, które są fundamentem prawie każdego języka np. Golang czy Python. Dla wykładowców OOP to często dziedziczenie i duża liczna wzorców projektowych
  • Odpowiedz
Simula 67 uznawana jest za pierwszy obiektowy język programowania. To właśnie w Simuli po raz pierwszy pojawiły się klasy, dziedziczenie czy funkcje wirtualne. Jeśli chcecie dowiedzieć się nieco więcej o tym języku, zachęcam do lektury najnowszego artykułu na PolyDev.PL - Simula – narodziny programowania obiektowego.

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #informatyka #oop #simula #historiainformatyki
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

1.Jest jakaś zasada, dobra praktyka, żeby w #javascript #oop pobierać elementy strony tylko w jednej, głównej klasie, która ma obsługiwać interfejs aplikacji? Czy mogę deklarować zmienne zawierające elementy DOM w różnych klasach w zależności od potrzeby? Na przykład mam klasę dedykowaną tagom (tablica tagów, dodawanie i usuwanie tagów, wyszukiwanie za pomocą tagów) i wygodniej byłoby mi pobrać diva.tags-list już w tej klasie i dodawać do niego spany.tag. Wydaje mi się, że dzięki temu klasa byłaby bardziej samodzielna, skoro prawie wszystko, co potrzebne, by w niej siedziało. A może lepiej klasie z tagami zostawić tylko operowanie na tablicy, na podstawie której inna klasa będzie "renderować" diva ze spanami? A może przekazywać diva jako parametr do innej klasy?

2. Chciałbym mieć pewność, w którą stronę wysyłać dane, tj. które lepiej:
A: klasa dziecko wysyła zmienną (return metody) do rodzica i rodzic ją wykorzystuje,
B: rodzic przekazuje zmienną dziecku (jako parametr) i dziecko zmienną wykorzystuje.

  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

żeby w #javascript #oop pobierać elementy strony tylko w jednej, głównej klasie, która ma obsługiwać interfejs aplikacji?


@lunaexoriens: nie rozumiem o co Ci chodzi, co masz na myśli pisząc "pobierać"?

I dlaczego przyczepiłeś się tego oop? W zasadzie jeżeli można uniknąć tworzenia klas powinno się tego nie robić. Nie próbuj pisać w js tak jakbyś pisał w Javie albo
  • Odpowiedz
@lunaexoriens: > Trzymać wszystkie w jednej klasie czy w zależności od potrzeb?

@lunaexoriens: możesz po prostu trzymać je w jakimś obiekcie, nie ma potrzeby tworzenia do tego klasy. Generalnie powinno się używać najprostszych metod.

A co do obiektówki, to po prostu chcę ją lepiej zrozumieć, zawsze przydatna umiejętność.

JS wspiera też programowanie funkcyjne i to raczej ono jest kluczem do pisania dobrego kodu w JS. Klasycznie rozumiane programowanie obiektowe i JS się nie lubią. I często idiomatyczne rozwiązanie problemu w JS będzie inne niż np. w Javie, dlatego jeżeli chcesz tylko zrozumieć programowanie obiektowe to są do
  • Odpowiedz
Cześć,
znalazłby się tutaj jakiś dobry człowiek umiejący w jave, który byłby wstanie sprawdzić dlaczego mój win condition w grze Kółko i krzyżyk nie działa ?

#programista15k #java #swing #oop
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach