Archive for the ‘Best Practices’ Category

Czego o programowaniu może nauczyć nas Gordon Ramsay?

Podczas tegorocznej Confitury, Piotr Modzelewski stara się na chwilę zrzucić mentalne kajdany unikalności, jakie umiemy zakładać sobie w codziennej pracy i spogląda na nasz zawód w nieco innym świetle. Razem z publicznością stara się odpowiedzieć na pytanie: czy możemy uczyć się od innych, o wiele starszych profesji? Czy tylko my zmagamy się z terminami releasu i wymaganiami jakości? Uncle Bob nie raz porównuje programistę do księgowego; co wyniknie kiedy porówna się go do pracownika restauracji? Zapraszam do obejrzenia prezentacji.
Read the rest of this entry »

Git Ready! Workflows Webinar from Atlassian

W ubiegłym tygodniu Atlassian zorganizował webinarium na temat gita. Prowadzącym był Nicola Paolucci – speaker na tegorocznym Atlassian Summit. Poniżej zamieszczam nagranie:
Read the rest of this entry »

Git Flow – narzędzie do integracji VCS z procesem wytwarzania oprogramowania

O systemie Git pisałem już kilka razy. Dziś pora na Git Flow, czyli nakładkę na Gita, która umożliwia pełną integrację z procesem wytwarzania (i życia) oprogramowania. Narzędzie dostarcza zbiór komend ułatwiających zarządzanie branchami, które wpisują się w workflow i cykl życia oprogramowania. W skrócie, pomysł polega na tym, by podzielić repozytorium na kilka gałęzi: Read the rest of this entry »

Design Patterns in modern JVM Languages

Dobrze znane nam Design Patterns traktują o wzorcach projektowych w kontekście OOP. Venkat Subramaniam pokazuje kilka wzorców zorientowanych na języki dynamiczne i funkcyjne. Wzorce te korzystają z domknięć (closures) oraz z kilku feature’ów funkcyjnego stylu programowania.
Read the rest of this entry »

Robert C. Martin – Craftsmanship and Policy

Czym jest profesja zwana Software Developer? Co znaczy być profesjonalistą w tej dziedzinie? Dlaczego wciąż – mimo postępu technologicznego (Assembler -> C -> OO) oraz rozwoju mentalnego (Design Patterns, Agile, XP, SOLID) – programiści obwiniani są przez „biznes” za opóźnianie projektów?
Read the rest of this entry »

Testing and Refactoring Legacy Code

Na tegorocznym GeeCONie Sandro Mancuso pokazał (kodując na żywo!), jak radzić sobie z legacy code, jak krok po kroku – dopisując testy – poprawić jakość zastanego kodu.
Read the rest of this entry »

Lazy Loading nie ma sensu?

W najnowszym artykule z serii Receptury projektowe – niezbędnik początkującego architekta, Sławek Sobótka traktuje o mapowaniu relacyjno-obiektowym prawdziwych obiektów na kanwie DDD i JPA. Udowadnia 3 tezy:

  • Lazy Loading nie ma sensu,
  • Mapowanie @OneToMany z wykorzystaniem tabeli linkującej (domyślne zachowanie hibernate) nie ma sensu,
  • Blokowanie Optymistyczne oparte jedynie na @Version nie ma sensu

Artykuł tradycyjnie dostępny jest za darmo w wersji pdf na stronie Autora.

Zarządzenie złożonością przez trójpodział logiki – Open/closed principle w praktyce

Open/closed Principle to jedna z zasad SOLID.

Kod powinien być otwarty na rozbudowę jak kwiat lotosu o świcie i zamknięty na zmiany jak kwiat lotosu o zmierzchu

Jednak jak w praktyce zastosować tą zasadę? Czy aplikuje się ona jedynie na poziomie Object Oriented Design czy również na poziomie architektury aplikacyjnej?
Read the rest of this entry »

4C – Zwinne podejście do odkrywania i dokumentowania architektury

W kwietniowym wydaniu magazynu Programista ukazała się trzecia część artykułu z cyklu Receptury projektowe – niezbędnik początkującego architekta. Tym razem Sławek Sobótka odpowiada na pytanie: W jaki sposób dokumentować architekturę systemu?
Read the rest of this entry »

Mock czy Stub? Command-query Separation prawdę ci powie

W lutym pisałem o Czterech smakach odwracania (i utraty) kontroli – pierwszym artykule z cyklu Receptury projektowe – niezbędnik początkującego architekta. Dziś zachęcam do lektury drugiej części pt. Mock czy Stub? Command-query Separation prawdę ci powie.
Read the rest of this entry »