Polecane artykuły

Podsumowanie Metod skutecznego uczenia się

przez | 7 lutego, 2020

Podsumowanie Zakończyłem przerabianie książki Włam się do mózgu – Radek Kotarski (*). W tym poście przypomnę je wszystkie. Metoda Ciekawskiego dziecka — Metoda Ciekawskiego dziecka polega na zadawaniu pytań wyjaśniających sens informacji do zapamiętania oraz samodzielne poszukiwanie tej odpowiedzi (m.in. w materiałach do nauki). Metoda Terminatora — Metoda Terminatora polega na zamienianiu zdobywanej wiedzy w działanie — stosowanie jak najszybciej wiedzy w praktyce. Metoda Testu zderzeniowego — Metoda Testu zderzeniowego polega na praktycznym przetestowaniu (np. testem… Czytaj dalej »

Ćwiczenia z SOLID — Kata

przez | 15 lutego, 2020

Dzisiaj będę ćwiczył zasady SOLID poprzez robienie Kata. Wybrałem bardzo popularną formę kata: Kalkulator napisów. Czym jest kata? Kata Kata to podstawowy ruch. Jest to japońskie słowo, które oznacza konkretne sekwencje ruchów (walki). Ich regularne powtarzanie pozwala ćwiczyć się do perfekcji w danej technice. W programowaniu pod hasłem Kata określa się zbiór konkretnych czynności stosowanych do ćwiczenia się w programowaniu. Jedno kata polega… Czytaj dalej »

Podsumowanie połowy projektu: Poznaj zasady SOLID i OOP

przez | 14 lutego, 2020

Za mną pierwsza połowa mojego 30-dniowego mini projektu: Poznaj Zasady SOLID i OOP. Idzie dobrze, wszystkie zadania, które miałem do dzisiaj zrobić, zostały wykonane. Jednego dnia nie udało mi się popracować nad tym projektem, ale na szczęście kolejnego dnia mogłem to nadrobić. W ramach tego projektu: Odświeżyłem sobie zasady SOLID. Przećwiczyłem zasady SOLID w praktyce (programując). Napisałem posty z zadami solid, moimi praktycznymi przykładami (kilka również przetłumaczyłem na angielski).… Czytaj dalej »

Ćwiczenia z SOLID

przez | 13 lutego, 2020

SOLID Zasady SOLID są podstawowymi dobrymi praktykami w programowaniu obiektowym. Warto jest nie tylko znać zasady SOLID, ale również je ćwiczyć. Przypomnijmy sobie jeszcze raz wszystkie zasady SOLID. Następnie przedstawię Ci sposoby, jak ćwiczyć zasady SOLID. Single responsibility principle – Zasada jednej odpowiedzialności Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia. Open/closed… Czytaj dalej »

CI jak Ćwiczenia Dependency Inversion Principle, czyli Zasada odwrócenia zależności

przez | 12 lutego, 2020

Dependency inversion principle — Zasada odwróconej zależności Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji. Jak wykorzystywać w praktyce DIP? Twórzmy dużo abstrakcyjnych bytów. Każda klasa niech implementuje interfejs lub dziedziczy po klasie abstrakcyjnej. Tworząc oprogramowanie, możemy najpierw stworzyć tylko interfejsy, a dopiero później je zaimplementować. Pomocne w spełnieniu tej zasady jest przestrzeganie tych reguł: Każda zmienna w klasie jest referencja do abstrakcji. Wszystkie klasy dziedziczą… Czytaj dalej »

CI jak Ćwiczenia Interface segregation principle, czyli Zasady segregacji interfejsów

przez | 11 lutego, 2020

Interface segregation principle – Zasada segregacji interfejsów Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny. Jak wykorzystywać w praktyce ISP? Należy rozdzielać interfejsy na mniejsze i przyłożyć się do projektowania abstrakcyjnych elementów w aplikacji. Za granicę podziału najlepiej wybierać jest miejsce, które pozwala wydzielić obszary zgodne z zasadą pojedynczej odpowiedzialności. Każdy obszar powinien mieć jeden powód do zmiany. Powinien zmniejszać zależności i zwiększać… Czytaj dalej »

CL jak Ćwiczenia Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov

przez | 10 lutego, 2020

Liskov substitution principle – Zasada podstawienia Liskov Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną. Jak wykorzystywać w praktyce LSP? Należy dobrze zastanowić się przed skorzystaniem z dziedziczenia. Zazwyczaj lepszą opcją jest użycie kompozycji. Warto jest również zrobić proste eksperymenty: próbować podstawić w klasach korzystających z naszego drzewa klas, wszystkie klasy potomne oraz klasę bazową i zobaczyć, czy nadal… Czytaj dalej »

CO jak Ćwiczenia Open/closed principle, czyli Zasada otwarte-zamknięte

przez | 10 lutego, 2020

Open/closed principle – Zasada otwarte-zamknięte Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje. Jak wykorzystywać w praktyce OCP? Warto jest stosować interfejsy oraz operować na abstrakcji, a nie uzależniać się od szczegółów implementacyjnych. Trudności związane z OCP Ciężko jest czasami zdecydować, co jest szczegółem implementacyjnym oraz w którą stronę będzie rozszerzała się nasza aplikacja. Przykład Ćwiczenia tej metody wykonałem na bardzo prostym przykładzie. Mamy kalkulator, który ma… Czytaj dalej »

CS jak Ćwiczenia Single responsibility principle, czyli zasada jednej odpowiedzialności

przez | 8 lutego, 2020

Single responsibility principle — Zasada jednej odpowiedzialności Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia. Jak wykorzystywać w praktyce SRP? Łącz w jedno kod, który ma ten sam jeden powód do zmiany. Rozdzielaj od siebie kod, który ma wiele powodów do zmiany. Trudności związane z SRP Z zasadą jednej odpowiedzialności związane są pewne trudności: Nie jest zdefiniowane, czym jest… Czytaj dalej »

D jak Dependency Inversion Principle, czyli Zasada odwrócenia zależności

przez | 7 lutego, 2020

Dependency Inversion Principle — Zasada odwrócenia zależności Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych i detali, lecz zależność powinna wynikać z abstrakcji. Wszystkie wysokopoziomowe moduły powinny być związane z niskopoziomowymi za pomocą abstrakcji. Abstrakcje nie powinny zależeć od detali, lecz to detale powinny być zależne od abstrakcji. Pomocne w spełnieniu tej zasady jest przestrzeganie tych reguł: Każda zmienna w klasie jest referencja do abstrakcji. Wszystkie klasy dziedziczą po abstrakcji. Żadna klasy potomna nie przesłania metod… Czytaj dalej »

I jak Interface segregation principle, czyli Zasada segregacji interfejsów

przez | 11 lutego, 2020

Interface segregation principle — Zasada segregacji interfejsów Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny. Celem zasady segregacji interfejsów jest wyzbycie się z oprogramowania interfejsów, które odpowiadają za robienie wielu rzeczy. Źle zaprojektowane interfejsy mają tendencje do rozrastania się do zbyt wielkich rozmiarów, stają się one przez to  niespójne. Klasy, które je implementują, muszą implementować metody, których nie powinny. Zależne są one od metod,… Czytaj dalej »

L jak Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov

przez | 7 lutego, 2020

Liskov Substitution Principle — zasada podstawień Barbary Liskov Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną. W miejsce klasy bazowej można podstawić dowolną klasę pochodną, a oprogramowanie będzie nadal dobrze działało. Wymagana jest pełna zgodność interfejsu oraz metod. Projektując hierarchię klas, należy zrobić to tak, aby każda klasa pochodna mogła wykorzystywać wszystkie metody klasy bazowej bez konieczności ich przesłaniania. Metody… Czytaj dalej »

My robimy to inaczej! Opowieść o tym, jak organizacje powstają i upadają, by móc odrodzić się na nowo – J. Kotter, H. Rathgeber

przez | 7 lutego, 2020

Przeczytałem ostatnio kolejną książkę. W tym wpisie dzielę się informacjami, które w niej znalazłem oraz które wdrożyłem w swoim życiu. Staram się z każdej książki wdrażać minimum jedną rzecz. Wdrożyłem: Staram się patrzeć na problemy, jak na wyzwania, okazje i szanse. Notatki: Proces tworzenia organizacji łączącej zwinność oraz zarządzanie Twórz poczucie pilności. Buduj koalicję pilotującą. Kształtuj wizję strategiczną i inicjatywy. Werbuj armię wolontariuszy. Umożliwiaj działanie… Czytaj dalej »

O jak Open-closed principle, czyli zasada otwarte/zamknięte

przez | 7 lutego, 2020

Open-closed principle — Zasada otwarte/zamknięte Każdy składnik oprogramowania powinien być otwarty na rozszerzenia i zamknięty na modyfikacje. Dotyka ona dwóch zagadnień: Zagadnienie otwarte — Składniki powinny być stworzone w sposób umożliwiający łatwe rozszerzenie ich zachowania. Zmiana ich zachowania nie wymaga zmiany istniejącego kodu, lecz dopisanie nowego. Zagadnienie zamknięte — Modyfikacja zachowania nie powinna wiązać się ze zmianą już istniejącego kodu. Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów. Do jej… Czytaj dalej »

S jak Single responsibility principle, czyli zasada jednej odpowiedzialności

przez | 7 lutego, 2020

Single responsibility principle — Zasada jednej odpowiedzialności Każda klasa powinna mieć tylko jeden powód do zmiany. Zgodnie z tą zasadą, każda klasa powinna: Tylko jeden cel istnienia. Tylko jedną odpowiedzialność. Tylko jedno zadanie do wykonania. Tylko jeden powód do modyfikacji. Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów. Zalety Czytelniejszy kod. Łatwiejsze do zrozumienia. Brak klas-bogów — klas, które robią wszystko (albo bardzo dużo) i są zmieniane przy prawie każdej… Czytaj dalej »

SOLID

przez | 7 lutego, 2020

SOLID SOLID jest podstawowym pojęciem w programowaniu obiektowym. Został przedstawiony przez Roberta C. Martina, który zebrał 5 zasad w skrót SOLID. Jest to akronim 5 zasad dobrego programowania obiektowego: Single responsibility principle – Zasada jednej odpowiedzialności. Open/closed principle – Zasada otwarte-zamknięte. Liskov substitution principle – Zasada podstawienia Liskov. Interface segregation principle – Zasada segregacji interfejsów. Dependency inversion principle – Zasada… Czytaj dalej »

Początek projektu: Poznaj zasady SOLID i OOP

przez | 7 lutego, 2020

Część! Cele i ramy czasowe Rozpoczynam dziś nowy mini projekt. Codziennie przez najbliższy miesiąc będę poświęcał na ten projekt 1 godzinę. Jego celem jest poprawienie swojej znajomości zasad SOLID i OOP, czyli podstaw związanych z dobrym programowaniem w jakimkolwiek języku obiektowym. Dlaczego 1 miesiąc? Dlaczego 1 godzina dziennie? Słyszałem, że wystarczy przez 3 miesiące poświęcać danej tematyce 20 minut dziennie, czyli poświęcić 90… Czytaj dalej »

Mini kurs: Nauka nowoczesnego uczenia się – Zapisz się!

przez | 7 lutego, 2020

Cześć, zapraszam Cię do zapisania się na mini kurs Nauki nowoczesnego uczenia się. W grudniu 2019 roku zdecydowałem się, że chcę poprawić swoje umiejętności uczenia się. Wziąłem więc książki do ręki i codziennie przez 30 dni pracowałem z nimi. W ramach mojej nauki napisałem posty na blogu oraz przygotowałem kilka testów, które pomagają zapamiętać zdobywaną wiedzę. Wszystkie te testy i posty zebrałem w jednym miejscu. W prezentowanym Tobie mini kursie Nauki… Czytaj dalej »

Jak nie przegapić najnowyszych wpisów? Zapisz się na newsletter

przez | 7 lutego, 2020

Cześć, uruchomiłem newsletter. Zapisz się na niego wypełniając poniższy formularz. Nic nie tracisz. A co zyskujesz? Sprawdź! Otrzymuj najświeższe informacje Chcesz otrzymywać najświeższe informacje? Podaj swój adres e-mail i zapisz się! W każdej chwili możesz wypisać się z tego newslettera. Postaram się dawać Ci jak najwięcej wartości! 🙂 Moją politykę prywatności znajdziesz tutaj:  Polityka prywatności Możesz zapisać się również na poniższe kursy: Newsletter Mini… Czytaj dalej »

Podsumowanie projektu: Nauka nowoczesnego uczenia się

przez | 7 lutego, 2020

Dzisiaj zakończyłem mój pierwszy mini projekt. Pora zatem na podsumowanie. Cel projektu Poprawienie umiejętności uczenia się — cel został osiągnięty. Świadczą o tym zaliczone testy: Poznałem kilka technik, zwiększyłem moją świadomość w tym obszarze, znalazłem trochę materiałów, które kiedyś wykorzystam, aby pogłębić moją wiedzę w tej dziedzinie (np. https://www.coursera.org/learn/learning-how-to-learn). Trójkąt projektu Projekt składa się z trzech elementów (wg teorii trójką projektu): czas, pieniądze i zakres. Omawiam je poniżej. Budżet Budżet… Czytaj dalej »

Feedly

przez | 7 lutego, 2020

Feedly to czytnik rss — program umożliwiający śledzenie blogów i czytanie tylko nowych postów. Używam go codziennie. Możesz do niego dodać wszystkie blogi, na których chcesz regularnie czytać nowe posty. Robisz to w łatwy sposób: Dodajesz blogi do śledzenia. Przeglądasz tylko nowe i jeszcze nieprzeczytane posty (skrót: przycisk j na klawiaturze — następny post, przycisk k — poprzedni post). Zapisujesz ciekawe posty do przeczytania później (przycisk s) lub otwierasz je w nowej zakładce. W ustawieniach Feedly warto… Czytaj dalej »