goto wcale nie jest takie złe

Chyba każdy z nas na początku nauki programowania usłyszał „najważniejszą zasadę pisania dobrego kodu”: nigdy nie używaj instrukcji goto. Uczenie młodych programistów, że unikanie goto to najważniejsza rzecz podczas programowania niesie ze sobą jedną dość poważną konsekwencję.

Chodzi o powszechne używanie dużo gorszych rozwiązań.

Czytaj dalej

Testy jednostkowe – czyli dlaczego łamanie prawa Demeter boli

Tak jak niedawno zapowiadałem, przerobiłem kod aplikacji na styku klas DataBase i TaskList. W skrócie: teraz cały kod związany z odczytem zadań z bazy jest w tej pierwszej. TaskList więc nie posiada już metody tasks, a podczas wywołania na nim showOn, dzieje się tylko tyle:

@Override
public void showOn(final TaskListView view) {
  for (ITask task : dataBase.getTasks()) {
    task.showOn(view);
  }
}

No i… okazało się, że wciąż robi za dużo. Ale o tym za więcej chwilę.

Czytaj dalej

Aplikacja jest eksperymentem

Dzisiaj przedstawię Wam jedno z głównych założeń aplikacji o której na tym blogu piszę.

Kto nie programuje obiektowo?

Pisałem już o unikaniu getterów. Chcę żebyście wiedzieli, że jest to częścią filozofii, którą ostatnio jestem zafascynowany: programowania obiektowego. O co chodzi? Przecież dzisiaj wszyscy programują obiektowo! Hm… no właśnie nie do końca. W moim przekonaniu, zdecydowana większość powstającego na świecie kodu, pomimo użycia obiektowych języków: Javy, C#, JavaScriptu itd., nie jest w 100% obiektowa; jest hybrydą obiektowości i programowania proceduralnego.

Czytaj dalej