Prostota - Edsger Dijkstra

Prostota jest wielką zaletą

Prostota jest wielką zaletą, ale wymaga ciężkiej pracy, aby ją osiągnąć, i edukacji, aby ją docenić. Co gorsza, złożoność lepiej się sprzedaje.”

Edsger Dijkstra


Niedawno Boiling Frongs wypuścili nowe, fajne nagranie.

Sentencja jest zwięzła i gdyby się nad nią dłużej zastanowić, niesie za sobą olbrzymią ilość treści. Cała prelekcja jest bardzo dobra, a niżej linkuję do fragmentu który szczególnie mi się spodobał.

Boiling Frogs 2021 Jacek Lempart – Realizuj projekty oparte na pasji

If you’re good at the debugger it means you spent a lot of time debugging. I don’t want you to be good at the debugger.

Robert C. Martin

Mózg rządzi, czyli poziomy abstrakcji cz. 2

Kilka lat temu natrafiłem na bardzo ciekawy tekst na temat poziomów abstrakcji w komputerze. Dzisiaj przeczytałem równie ciekawy tekst na temat poziomów abstrakcji w postrzeganiu świata przez mózg człowieka.

Rzeczywistość kontra percepcja.

Continue reading →

SMARTER czyli definicja celu według Prince2

„Prince 2” pozwolił mi trochę inaczej spojrzeć na definiowanie i osiąganie celów. Metodyka ta w swojej definicji dokonuje jasnego rozróżnienia między CELEM, a KORZYŚCIAMI związanymi z osiąganiem danego celu.

Uważam, że wielu z nas często popełnia ten błąd, że zamiast wyznaczać sobie cel, który będziemy osiągać wyznaczamy sobie korzyść jaką chcemy mieć. Łatwo się domyśleć, że od samego chcenia jakiejś korzyści ona sama się nie pojawi. Należy najpierw osiągnąć cel, w wyniku, którego odetniemy kupony z korzyściami.

Continue reading →

Poziomy abstrakcji

Kilka lat temu, ucząc się programowania w języku C++, natknąłem się na ten tekst.

„Komputery są jedynie urządzeniami elektronicznymi. Nie mają pojęcia o oknach czy menu, nie znają programów ani instrukcji, a nawet nie wiedzą nic o zerach i jedynkach. W rzeczywistości jedyne zmiany, jakie zauważają, to zmiany napięcia mierzonego w odpowiednich punktach układów elektronicznych. Nawet to jest dla nich pewną abstrakcją: w rzeczywistości elektryczność jest tylko wygodną intelektualną koncepcją dla zaprezentowania działania cząstek subatomowych, które z kolei są abstrakcją dla czegoś innego.”

„C++ dla każdego” Jesse Liberty

 

Szybciej, wolniej, wolniej

Poniższy fragment książki jest brutalną prawdą, esencją strasznej zarazy panującej w firmach, która z zimną krwią wyniszcza wszystko, co jej stanie na drodze.

Systematyczne lekceważenie planowania i projektowania prowadzi do rozwoju w cyklu „szybciej, wolniej, wolniej”.

Wygląda to mniej więcej tak:

  1. Błyskawicznie dostarczasz wersję 1.0, pisząc cały kod na kolanie.
  2. Budujesz wersję 2.0, na bieżąco rozwiązując problemy stwarzane przez uciążliwy bałagan w kodzie.
  3. Wraz z kolejnymi wersjami rozwiązywanie problemów ze starym kodem „na bieżąco” sprawia, że bałaganu przybywa, a praca staje się coraz wolniejsza. Wyrzyscy stopniowo tracą wiarę w system, programistów i całą sytuację, w której się znaleźli.
  4. Gdzieś w okolicach wersji 4.0 zdajesz sobie sprawę, że nie wygrasz. Zaczynasz rozważać opcję przepisania systemu od podstaw.

„Refaktoryzacja do wzorców projektowych” Joshua Kerievsky

Continue reading →

Znajomość wzorców projektowych

„Jeżeli nie znasz wzorców, prawdopodobieństwo stworzenia wielkiego, wspaniałego projektu jest na pewno mniejsze. Wzorce projektowe mają uchwycić pewną mądrość. Korzystanie z zasobów mądrości jest zawsze pożyteczne.”

„{…}, wzorzec jest jednocześnie rzeczą, która pojawia się w świecie rzeczywistym, i regułą, która mówi nam, jak stworzyć taką rzecz. Jej zaprojektowanie i zbudowanie należy do nas. Jest to zarówno proces, jak i rzecz; zarówno opis rzeczy, która żyje własnym życiem, jak i opis procesu, który prowadzi do jej powstania.”

„Refaktoryzacja do wzorców projektowych” Joshua Kerievsky