Czym jest SOLID? - Standardowe Pytania Rekrutacyjne

preview_player
Показать описание
👉 DARMOWE SZKOLENIE ONLINE - Jak Zostać Programistą OD ZERA:
👉 Zapisz się na newsletter i dostawaj powiadomienia o nowych odcinkach:
👉 Obserwuj mnie na Instagramie:

Drugie pytanie z serii #StandardowePytaniaRekrutacyjne.
Czym jest #SOLID?
Zapraszam na krótki opis wszystkich zasadach SOLID:
- Single Responsibility Principle (Zasada Pojedynczej Odpowiedzialności)
- Open/Close Principle (Zasada Otwarte/Zamknięte)
- Liskov Substitution Principle (Zasada Podstawienia Liskov)
- Interface Segregation Principle (Zasada Segregacji Interfejsów)
- Dependency Inversion Principle (Zasada Odwróconej Odpowiedzialności)

Wszystkie zasady zaprezentowane razem z przykładami w kodzie!

Obejrzyj i zwiększ swoje szanse na zmianę pracy.


Obiecana strona o Wujku Bobie:
Odcinek 002 - 09.12.2019

Рекомендации по теме
Комментарии
Автор

Wspaniały materiał! Przeczytałem już z 5 artykułów nt. SOLID i dopiero te przykłady i wyjaśnienia pozwoliły mi to zrozumieć. Tłumaczenie SOLIDa bez przykładów jest pomyłką.

michag.
Автор

2:05 Single Responsibility
4:55 Open / Close
7:32 Liskov Substitution
10:45 Interface Segregation
12:35 Dependency Inversion

skajlet
Автор

W filmie jest błąd. Jeżeli chodzi o zasadę L Liskov. 8:25 "Pod klasę pochodną można było podstawić klasę bazową." (??) Zakładając, że moja klasa, w której dziedziczę po klasie X dodaję nową metodę np: make(). To kiedy przy wywołaniu tej metody podstawię obiekt klasy bazowej program się wysypie i nie jest to złamanie tej zasady. Zasada brzmi odwrotnie. Pod obiekt bazowy mogę podstawić klasę dziedziczącą, nie odwrotnie. Taka zasada nie miałaby sensu bo wychodziłoby, że klasy dziedziczące nie mogą wprowadzać żadnych nowości w swoim ciele.

"Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów."

kubaleman
Автор

Dobrze omówione na przykładach. Ja, który nie mam dużo narazie wspólnego z C# - bo dopiero zaczynam - byłem wstanie mniej więcej załapać temat. Tylko jedyne co rozprasza to za głośna muzyka w tle.

weed
Автор

Co za energia xd Spoko za effort (ok), daję like :)

Mrpiegu
Автор

Hint na przyszłość (bo już chyba za późno by poprawić teraźniejszy materiał), to podkład muzyczny jest za głośny w stosunku do głosu. Musiałem słuchać z wytężoną uwagę, żeby miejscami zrozumieć. Jeśli będziesz więcej nagrywał, to mikrofon pojemnościowy lub przynajmniej krawatowy byłby super, bo słychać echo specyficzne dla pomieszczenia. A poza tym to w końcu zrozumiałem o co chodzi z Liskov Substitution. Mam wrażenie, zę wcześniej człowiek uczył się na pamięć tych głupich definicji, których nikt na 100% nie rozumie ;)

airwaves
Автор

jutro mam rozmowe akurat, pewnie zapamietam to trzy po trzy ale na farta sobie obejrzałem xD

SZTUKAHARDKORU
Автор

Masz klasę Post jej jedyną odpowiedzialnością jest dodawanie postów - ma metodę CreatePost(), a gdzie byś umieścił metody EditPost, ewentualnie DeletePost ?
Czy jakbyś umieścił je w klasie Post, to było by już złamanie zasady pojedynczej odpowiedzialności, czy jeszcze nie ?

mariuszwieczorek
Автор

fajnie wytłumaczone ale niestety drażni mnie głośna muzyka w tle w porównaniu do głosu...

MrDyska
Автор

Muzyka potrzebna uważam jest ok. To nie techno, można się skupić jednakże można nieco sciszyc. Zainwestuj w lepszy mikrofon. Material rzetelny.Kokejne propozycje:omów wzorce ale tylko te które się obecnie korzysta. Dinozaury możesz jedynie wymienić. Dodatkowo omów z czasem dobre praktyki.W co warto zainwestować w jakie kierunki programowania?Czy WPF, czy MVC czy może inne technologie.

StudioVisionArt
Автор

Czy w zasadzie Open-Close zadeklarowanie metody klasy bazowej jako virtual samo w sobie nie jest modyfikowaniem istniejącej klasy, a zatem złamaniem zasady? Czy jednak taka deklaracja jest traktowana jako rozszerzenie, bo chyba poza tym, że dopiszemy virtual i można po tym dziedziczyć (i nadpisywać w klasie potomnej), to nic się nie zmienia?
Extension Methods też są przykładem stosowania tej zasady? Jakie są jeszcze inne rozszerzenia?
Szkoda, że tylko po jednym prostym przykładzie podałeś. :P

niemaszglowy
Автор

Przykład z SPR: logowanie błędu. Przeniesiono logowanie do oddzielnej klasy- metody. Ta metoda log robi dwie rzeczy, loguje poprzez db.logerror oraz i zapisuje content exceptiona do pliku metoda writealltext. Czy to nie jest właśnie złamanie zasady srp?

mateuszorlicki
Автор

Mnie ciekawi temat przekazywania danych z bazy danych poprzez schemat xml do np. raportu DevExpress-owego, gdzie wtedy nie mamy DataSource a mamy DataSourceSchema. Był mega problem dla mnie znalezieniem czegokolwiek. Do tej pory wiem tylko, że jest w designerze DataSourceSchema = i mogę podejrzeć kolumny we właściwościach, a skąd to się tam wzięło, jak to jest przekazywane to nie mam pojęcia.

shayama
Автор

czy w przypadku SRP dodanie np. read/edit zaburzyłoby już tą zasadę?

tomeczekziomeczek
Автор

Masz koszulkę założoną na lewą stronę? ;)

cwnbrce
Автор

Dobry materiał ale strasznie cicho nagrany. Musiałem na słuchawkach odtwarzać.

angrysegin
welcome to shbcf.ru