Mariusz Prowaźnik

o programowaniu w Javie, Scali i Clojure.


Agile Software Development, Principles, Patterns and Practices - recenzja

"Agile Software Development, Principles, Patterns, and Practices " autorstwa Roberta C. Martina porusza wiele zagadnień związanych ze zwinnym tworzeniem oprogramowania, poczynając od wartości, które kryją się za manifestem agile, poprzez praktyki programowania ekstremalnego, po reguły projektowania i wzorce projektowe.

Spodobał mi się sposób w jaki ta książka jest skomponowana. Najpierw zapoznajemy się z czynnikami wpływającymi na powodzenie projektu i powszechnie napotykanymi trudnościami, potem z rozwiązaniami proponowanymi przez metodyki zwinne, które są krok po kroku uszczegóławiane. Takie podejście sprawia, że każdą zasadę zaproponowaną w książce łatwo odnieść do ogólnej idei i wiadomo jaki cel ma realizować. Mimo, że nie jest to dla mnie nowy temat, rozdziały o programowaniu ekstremalnym przeczytałem z dużym zainteresowaniem.

Już od pierwszych stron autor sugeruje, by używać jak najprostszych narzędzi, przechodząc do tych bardziej zaawansowanych dopiero, jak się okaże, że dotychczasowe są niewystarczające. By uniknąć niepotrzebnej złożoności, jednocześnie zachowując elastyczność systemu, potrzebne jest dobre zrozumienie zasad SOLID. Często są one opisywane na blogach, jednak dopiero umiejscowienie ich w kontekście pracy programisty, wzorców projektowych i poparcie wieloma przykładami, pozwala dobrze uchwycić ich istotę.

Wzorcom projektowym poświęcona jest spora część książki. Dwa duże studia przypadku pokazują proces refaktoryzacji kodu i wprowadzania wzorców, co ułatwia zrozumienie ich przeznaczenia, oraz kosztu ich zastosowania.

Podsumowując, mocną stroną tej książki jest przedstawienie różnych zasad i praktyk w tworzeniu oprogramowania, w taki sposób, że tworzą spójną całość. Dzięki temu, nawet osoba, która spotkała się z przedstawionymi zagadnieniami, wiele wyniesie z tej lektury, bo lepiej zrozumie jak te zagadnienia łączą się ze sobą, jak mogą współistnieć i wzmacniać swoje efekty.


Konfiguracja NetBeans IDE C/C++ i Cygwin

Niedawno postanowiłem odświeżyć nieco znajomość C/C++. Na co dzień programuję w Javie, więc postanowiłem wykorzystać NetBeans IDE. Przy okazji zamieszczam krótki tutorial opisujący konfigurację środowiska.

Potrzebne oprogramowanie:

Paczka instalacyjna NetBeans'a nie zawiera kompilatorów dla C/C++, dlatego trzeba się o nie zatroszczyć samemu (chyba, że używasz Linux'a - wtedy ten tutorial nie jest dla Ciebie). W tym celu instalujemy Cygwin'a. Dzięki niemu będziemy mogli użyć zestawu kompilatorów GCC.

Zatem do dzieła:

  1. Instalujemy Cygwina. W instalatorze wybieramy opcję "Install from Internet", oraz podajemy katalog instalacji (najlepiej by ścieżka nie zawierała spacji, bo podobno powoduje to problemy). Przechodzimy do wyboru pakietów, rozwijamy gałąź "Devel" i wybieramy:
    • gcc
    • gcc-core
    • gcc-g++
    • gdb
    • make
  2. Testujemy Cygwin'a Po zainstalowaniu uruchamiamy terminal Cygwin'a, tworzymy plik z prostym kodem:
    $echo "#include<stdio.h>
    int main(){
     printf(\"hello\");
    }" > hello.c
    
    kompilujemy:
    $ gcc hello.c -o hello.exe
    i uruchamiamy:
    $ ./hello.exe
  3. Dodajemy zmienne środowiskowe. Dodaj zmienną środowiskową CYGWIN_HOME ze ścieżką do katalogu Cygwina (np. C:/Cygwin), oraz edytuj zmienną PATH, dodając na końcu %CYGWIN_HOME%/bin;. W tym momencie powinno się dać kompilować pliki c spod konsoli windowsa:
    cd %CYGWIN_HOME%/home/%USERNAME%
    rm hello.exe
    gcc-3 hello.c -o hello.exe
    hello.exe
  4. Instalujemy NetBeans IDE. W tym momencie kompilatory powinny być wykryte automatycznie, można sprawdzić w Tools->Options->C++:
    Można stworzyć teraz nowy projekt i uruchomić: