Nawigacja

SOLID dla adeptów programowania – podsumowanie warsztatów

Ten post podsumowuje warsztaty przeprowadzone na Uniwersytecie Wrocławskim dla studentów pragnących powiązać swoją przyszłość z IT. W warsztatach wzięło udział 10 osób, dzięki czemu uczestnicy mogli dopytać się o interesujące ich szczegóły pracy programisty oraz dostać kilka cennych rad dotyczących rozwoju w tym zawodzie. Mimo, że temat był trudny to jednak bardzo cenny w kontekście rozpoczynania swojej przygody z programowaniem.

SOLID to zestaw zasad zaproponowanych przez Roberta C. „Uncle Bob” Martina, opisujący pięć podstawowych założeń programowania obiektowego. Ich znajomość pozwala na etapie projektowania aplikacji uniknąć dużej części błędów, które znacząco utrudnią jej rozwój w przyszłości. Warto znać i stosować je już w momencie, gdy realizujemy proste projekty – czy to na uczelnię czy dla samego siebie. Wyrobienie sobie dobrych praktyk programistycznych zapunktuje w przyszłości.

Jeśli temat Cię zainteresował zachęcamy do śledzenia naszego profilu na Facebooku gdzie będziemy publikować informacje o kolejnych warsztatach i szkoleniach: http://fb.com/RSTKariera

Link do prezentacji:http://slides.com/tomaszbanasiak/from-stupid-to-solid-code-in-modern-examples#/

Link do PDF-a, który możesz wydrukować i przywiesić sobie koło biurka aby móc regularnie przypominać sobie te podstawowe zasady: https://goo.gl/hX4jTw

Chcesz więcej w tym temacie? Polecamy linki:

 

 

DDD w praktyce, cz.1: Value Objects w PHP

DDD to bardzo nośne słowo w kontekście PHP. O ile sama technika nie jest specyficzna dla języka (to raczej sposób rozumowania oraz reprezentacji potrzeb biznesowych w kodzie) o tyle specyficzne są już implementacje pewnych struktur typowych dla DDD.

W tym artykule chcę się skupić na jednym z najbardziej przydatnych elementów w DDD – Value Object. VO możemy rozumieć jako zaawansowaną zmienną, gdyż reprezentuje jakąś wartość. W PHP mamy dostępne kilka bazowych typów zmiennych, przy czym reprezentują one głównie najprostsze typy: numer (Integer), ciąg znaków (String), tablicę (Array) itp.

Przypadki testowe. Planowanie przebiegu testów.

Każdy, kto choć trochę interesował się tematem testowania oprogramowania, słyszał o takich pojęciach jak przypadek testowy, warunek testowy czy scenariusz testowy. Co właściwie kryje się pod tymi pojęciami? W tym artykule postaram się jak najprecyzyjniej opisać wymienione zagadnienia.

PRZYPADEK TESTOWY

Jest to zbiór danych wejściowych, wstępnych warunków, kroków wykonania i oczekiwanych rezultatów. Przypadki testowe opracowywane są w określonym celu lub dla warunków testowych.

Zgłaszanie błędów – wskazówki jak robić to dobrze.

Zastanawialiście się kiedykolwiek czym jest zgłoszenie błędu? W mojej głowie widnieje on jako raport ze śledztwa. W kodzie znajduje się błąd, a Ty podczas rutynowej kontroli odkryłeś jego kryjówkę. Teraz Sherlocku musisz wytłumaczyć Watsonowi kto i dlaczego morduje funkcjonalności Waszego produktu.

Do it sherlock

Pytanie pierwsze: Kim jest odbiorca zgłoszenia i dlaczego chce mieć informacje o błędach?

Gdy trwoga, to do loga. Kilka słów o monitoringu.

oddball-security-signs-5_10760038
Monitoring aplikacji jest absolutnie niezbędny, by wiedzieć czy jest ona dostępna dla użytkowników. Nie każdy jednak wie, że z wnikliwej obserwacji płynie też masa innych korzyści: jesteśmy w stanie minimalizować czasy niedostępności, optymalizować działanie aplikacji, przewidywać nadchodzące problemy, reagować na problemy użytkowników zanim oni je zgłoszą.

Dla nas, testerów, monitoring jest nieprzebranym morzem informacji na temat zachowania użytkowników. Z monitoringu możemu uzyskać informacje na temat faktycznego ruchu, pod którym działa nasza aplikacja by następnie dopiero z informacjami o tym ruchu przystępować do testów wydajnościowych. Wspomoże nas on w odpowiedzeniu na pytania:

  • Czy nowe funkcjonalności nie wprowadzaja nowych błędów?
  • Czy naprawa błędu faktycznie spowodowała jego usunięcie, a nie tylko ukrycie?

Testerskie kawały

Testerzy powoli rosną w siłę w świecie IT. Mamy już swoje konferencje, specjalizacje, certyfikaty, szkolenia, miejsce w zespole… Ale mamy też swoje żarty. Poniżej kilka przykładów na poprawę dnia:

There are different types of testing. Some of them are:
AGRESSION TESTING: If this doesn’t work, I’m gonna kill somebody.
CONFESSION TESTING: Okay, Okay, I did program that bug.
DEPRESSION TESTING: If this doesn’t work, I’m gonna kill myself.

Wzrok pod ochroną

Kiedy myślimy o „podstawowych narzędziach pracy programisty” mamy na myśli kompilatory, IDE, komputery i monitory. Często zapominamy o narzędziach nam najbliższych – takich jak np. wzrok. Jest to tak podstawowe narzędzie, a tak często pomijane przy rozpatrywaniu zdrowego środowiska pracy. Specyfika branży powoduje, że jako programiści pracują w większości ludzie młodzi, których teoretycznie problemy ze wzrokiem jeszcze nie dotyczą. Jeszcze, bo obserwując brak kultury dbania o wzrok niestety jestem przekonany, że wiele osób w późniejszym wieku borykać się będzie z bólami głowy, zaburzeniami widzenia czy nawet poważniejszymi schorzeniami. Trzeba również pamiętać, że choroba oczu może nas trwale zdyskwalifikować z życia zawodowego – zarówno w IT jak i w wielu innych branżach.

PHPStorm od kuchni

Od jakiegoś czasu coraz więcej programistów/osób piszących w PHP w firmie korzysta z JetBrainsowego PHPStorm. To potężne narzędzie ma pełno różnych feature’ów/pluginów, a o istnieniu wielu z nich często nie zdajemy sobie sprawy. Chcąc wymienić się wiedzą o nich, wypiszę o tych, z których często i regularnie korzystam i zachęcam do dopisywania kolejnych.

Przegląd wtyczek do przeglądarek internetowych wspierających testowanie aplikacji

Aplikacje webowe od lat rosną w siłę jako alternatywa dla twardych aplikacji desktopowych. Pomimo swych licznych zalet dostarczany klientom skompilowany software posiada również istotne wady jak np. konieczny proces instalacji, utrudniona aktualizacja i podgrywanie poprawek, prowadzona u klienta polityka bezpieczeństwa często uniemożliwiająca odpowiednie wykorzystanie aplikacji itp. itd. Aplikacje uruchamiane w oknie przeglądarki skutecznie powyższy problemy eliminują pozwalając skoncentrować się na aspektach funkcjonalnych a całą obsługę pozostawić developerom przeglądarek lub administratorom systemu, który świadczy daną usługę.

Sam język JavaScript znacząco podniósł swoją rangę ewoluując od języka podmieniającego obrazki na stronach do potężnego narzędzia stanowiącego obecnie fundament połączeń z serwerami (AJAX), oraz – w ogóle – fundament aplikacji.

Stąd nowe możliwości zarówno dla programistów jak i testerów. Liczba dostępnych narzędzi wspomagających testowanie aplikacji webowych rośnie praktycznie z każdym miesiącem. Przeglądarki dostarczane są nam z już wbudowanym wsparciem a zasoby internetu kuszą licznymi wtyczkami i dodatkami.