[Android] Niech Activity nie implementuje widoku (film!)

Jedną z najpopularniejszych rekomendacji dla programistów Androida jest zasada, która w ogólności mówi: oddzielaj elementy widoku od logiki aplikacji, a implementowana jest najczęściej poprzez wzorce MVC, MVP czy MVVM.

Wśród argumentów stojących za tą rekomendacją, najmocniejsze są dwa:

  1. kiedy logika jest w klasie pozbawionej elementów widoku, łatwiej jest ją testować
  2. im więcej kodu wyciągniemy z klas typu *Activity czy *Fragment, tym mniejsza jest szansa, że złamiemy zasadę pojedynczej odpowiedzialności

Zgadzam się, oczywiście z każdym z nich. Mam jednak wrażenie, że ten drugi nie jest do końca rozumiany. Uważam, że duża część programistów, którzy stosują wspomniane dobre praktyki, nie stawia sobie pytania: czy rzeczywiście zrobiłem wszystko żeby nie złamać SRP?

Czytaj dalej

Sprawdzanie czy mamy konflikt w Gicie

Praca z Gitem jest bardzo przyjemna… aż do chwili kiedy pojawiają się konflikty.

Jest kilka zasad, które umożliwiają ich ograniczanie do minimum, między innymi:

  • dziel zadania na mniejsze
  • komituj często
  • stosuj narzędzia do statycznej analizy kodu

A w tym poście opiszę jeszcze jedno narzędzie, które pomoże nam ich liczbę zmniejszyć!

Czytaj dalej

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

[MoodOfTheSong] 8. AWS

W jednym z ostatnich postów opisałem w jaki sposób znacznie przyspieszyłem działanie skryptu obliczającego cechy nagrań dźwiękowych.
Wyniki nie były jednak na tyle zadowalające, aby umożliwić wygodną pracę nad systemem na moim komputerze. Zamiast jednak wydawać ogromne pieniądze na sprzęt, który przetworzy dane trochę szybciej, postanowiłem wydać niewiele pieniędzy na infrastrukturę, która przetworzy dane o wiele szybciej – chmurę obliczeniową Amazon Web Services.

Czytaj dalej