
dziki
- 754wpisów
- 1716komentarzy
Co tu tak śmierdzi?
Zaloguj się aby komentować
Byłem u dentysty, było zatruwanie zęba. Boli mnie mimo znieczulenia. Boję się co będzie jak znieczulenie puści. Idę umierać.
Zaloguj się aby komentować
Zaloguj się aby komentować
Tomek @RJ45 wrzucił ładną piosenkę opartą o śpiew w duecie i gitarku, i mi się przypomniał pewien cover
Zaloguj się aby komentować
Jakiś czas temu postanowiłem utworzyć playlistę 20 moich ulubionych kawałków. Haczyk był jeden - ZERO ekstremalnego metalu. Efekt taki o
Zaloguj się aby komentować
Dlaczego samochody są złe, czyli po jakiego grzyba tutoriale robią nam wodę z mózgu?
W końcu się zmotywowałem, a poniżej efekt
Jeśli ktoś z Was uczył się jakiegoś obiektowego języka programowania to mógł się przed chwilą uśmiechnąć pod nosem. Samochody. Wszędzie te samochody. Oczywiście, samochody posiadają markę, kolor, silnik. To już musi brzmieć znajomo. Ale od początku.
Obiekt. Podstawowa jednostka czasu i przestrzeni w obiektowych językach programowania. A może to jednak klasa jest tą jednostką? Prawda jest taka że w przypadku obiektów i klas nie ma dylematu kury i jajka - tu wszystko jest jasne. Klasa jest "projektem" obiektu, a obiekt instancją klasy. I choć w Javie wszystko dziedziczy po klasie Object, to jednak nie ma obiektu bez klasy.
Część z Was już wie, a część z Was zaraz się dowie, że klasa będąc "projektem" obiektu, jego definicją, w swoim najprostszym ujęciu może posiadać pola oraz metody. Pola służą do przechowywania danych, z kolei metody, w dużym uproszczeniu, coś z tymi danymi przechowywanymi w polach robią.
No ale dziki! Co z tymi samochodami, bo się niecierpliwimy!
Już odpowiadam. Jeśli ktoś miał okazję robić jakiś tutorial z Javy albo uczestniczył w bootcampie to prawie na sto procent widział public class Samochod. Taki Samochod miał pola: private String kolor, private String marka i obowiązkowo private Silnik silnik. Posiada też metody. I tu się zaczyna cały problem jaki widzę. Bo czy logicznym z punktu widzenia początkującego programisty jest to że Samochod posiada metody uruchom() czy zahamuj()? Ano tak. A czy z perspektywy programowania obiektowego ma to sens? Ano nie. Paradoksalnie, często w tutorialu samochód jest jeszcze dalej eksploatowany, i w pewnym momencie służy do wytłumaczenia czym jest odwrócenie zależności, i wtedy (najczęściej) jest to zrobione poprawnie. Ale o tym kiedy indziej.
To co z tym samochodem jest nie tak że jest on złym przykładem? Bo samochód sam w sobie jest tworem zbyt skomplikowanym żeby móc go opisać za pomocą jednej klasy która będzie zawierała absolutnie wszystkie jego elementy składowe, metody, enumeracje, i co tylko sobie można jeszcze tam wyobrazić.
Dlaczego nikt nie używa jako przykładu czegoś prostszego? Weźmy takiego buta. But ma kolor, but ma markę, składa się z kilku różnych materiałów które zostały użyte do jego produkcji, ma sznurówki, rzepy czy zamek. No but. Chyba każdy z Was widział kiedyś buta.
Jedyne metody jakie może mieć nasz but to tak zwane gettery i settery - metody które służą do ustawiania wartości pól. Przykładowo - but ma kolor, więc setterem do ustawienia koloru będzie setColor() a getterem do pobrania wartości koloru będzie getColor(). Bez żadnych skomplikowanych powiązań między wewnętrznymi elementami buta. Jest on też doskonałym przykładem do tego by pokazać kilka rodzajów pól jakie może mieć klasa. Kolor - ciąg znaków, rozmiar - wartość liczbowa, sposób wiązania - enumeracja (sznurówki, rzepy, zamek), a rodzaj materiału może być osobnym obiektem o nazwie Material, który będzie miał w środku przykładowo rodzaj materiału i wartość prawda/fałsz odnosząca się do jego nieprzemakalności. Proste? Proste.
But nie będzie miał metod takich jak załóż() czy zawiąż() - bo każdy chyba się zgodzi że but się sam nie zakłada ani sam się nie zawiązuje (no dobra, wiem że istnieją Nike Adapt :P) - wiadomym jest że za zakładanie buta odpowiedzialny jest inny obiekt - Człowiek.
Odpowiedzialność to też ważne słowo w programowaniu obiektowym. Dziś rozpisywać się o tym nie będę, ale chciałem napomknąć jedynie że w programowaniu obiektowym mamy wprowadzony zestaw założeń opisywany skrótem SOLID - gdzie rozwinięciem pierwszej literki jest "Single responsibility principle" mówiąca o tym że klasa powinna mieć tylko jedną odpowiedzialność. W przypadku klas służących do przechowywania danych - tą odpowiedzialnością jest... przechowywanie danych. Ot, niespodzianka. Umieszczanie metody uruchom() w klasie Samochód łamie tę zasadę. "Czepiasz się, dziki" - ano czepiam się, bo osobiście uważam że złym pomysłem jest rozpoczynanie uczenia innych ludzi programowania od zrobienia tego na złym przykładzie.
Uff. Przebrnąłem. Jeśli doczytaliście aż do tego miejsca to dajcie znać jak bardzo powinienem przestać pisać o programowaniu

@dziki kurde, wreszcie wpis o programowaniu który zrozumiałem w pełni, super! A co do samochodu to ja spotkałem się również często z psem, bądź innym zwierzęciem
@Admiral psy i inne zwierzęta to częsty przykład, tylko używany do wyjaśniania takich zagadnień jak dziedziczenie czy polimorfizm
@dziki to jest podstawowy błąd - "obiekt" tylko z getterami i setterami ma z OOP tyle wspólnego, co nieużywanie System.out.println z FP
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Zapraszam - niby działa... https://www.twitch.tv/pafnucy_gompka/
Zaloguj się aby komentować
Walczę ostro z transmisją, tnie mi tak okrutnie ze masakra. Walczę dalej. Spróbuję teraz OBSa...
Zaloguj się aby komentować
Jeśli mi nic planów nie przekreśli to dziś wieczorem stream z Diablo 2 LoD. Gra od "zera", skelemancer, 1.14d, bez modów, slow play. https://www.twitch.tv/pafnucy_gompka
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Dziś tylko jedno, ale za to od razu cały album. Nie mam siły na więcej. Płyta która jest w moim ścisłym top 5 wydawnictw z 2020 roku. Riff jest tu potężny i się ściele gęsto.
Zaloguj się aby komentować
@dziki no i to się chwali! U mnie w tle jakieś Troskliwe misie xD
Uwielbiam ścieżkę z Diabła 2. Nawet kiedyś ripowalem (takie były czasy) by móc słuchać w czasie kodowania.
Zdarzyło mi się kiedyś usłyszeć fragment w audycji telewizyjnej na Discovery, aż przyjemniej się oglądało
@dziki Ciągle lecę na moim Spotify Sanah. Nie wiem, dla mnie płyta majsztertyx jeśli chodzi o produkcję, choć dużo sztuczek od producenta Billie Eilish + sama Sanah nadużywa Millenial Whoopa. Ale może dlatego tak mi się podoba.
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Ostatni numer na dziś, ale dla mnie wyjątkowy. Za podkłady i skrecze odpowiedzialny w projekcie Scoffers był mój kumpel z lat licealnych, DJ Mr K. Niestety ze względu na perturbacje osobowe oraz machlojki ze strony pewnej osoby której wymieniać nie ma sensu - projekt odszedł od swojej triphopowej natury w stronę żywego instrumentarium i bardziej funkowo-popowe klimaty.
Scoffers - Boys. Polecam.
Zaloguj się aby komentować
Bądź mną
Jesteś już stary i od ciągłej pracy przy komputerze zaczynają boleć Cię łokcie
Zwykłe klawiatury "ergonomiczne" są dla Ciebie do d⁎⁎y
Odkryj że na ergonomikach od Della i Microsoftu świat się nie kończy
Ergodox EZ
ogurwa.jpg
za⁎⁎⁎⁎sta
Spójrz na cenę
Dostań zawału
Zamiast zawału dostałeś wylewu
Zdecyduj się na zakup
Ehehe, można zamówić wersję bez literek
Weź wersję bez literek, będziesz bardziej l33t h4x0r xDDD
W końcu nadszedł ten dzień
Klawiaturę dostarcza Ci kurier
Pojarany podłącz ją do komputera
Nie bądź w stanie w żaden sposób poprawnie wpisać na niej swojego hasła do systemu
Non-profit
Z dedykacją dla @lubieplackijohn
P.S. Wiem, mam syf na biurku xD

Zaloguj się aby komentować







