Maj 27 2016

C# i Mac OS

Zawodowo, od około roku, mam okazję zajmować się nie tylko programowaniem w Javie, ale również w C#. Do tej pory wystarczało mi zdobywanie wiedzy podczas pracy w projekcie, doczytywanie z neta tego czego nie wiem, czy dopytywanie osób, które mają większe doświadczenie ode mnie.

Jakiś czas temu stwierdziłem, że fajnie by było również móc pokodować sobie trochę w domu.  Szczególnie zaczęło mi zależeć na tym teraz, gdy czytam książkę Stephen Cleariego – Concurrency in C# Cookbook – i wygodnie by mi było móc przy okazji czytania wklepać sobie trochę kodu do IDE i zobaczyć jak się zachowa.

Niby praca z C# to nie jest to jakiś serious business – instalujemy .Net Framework, Visual Studio i jazda. Tak się jednak składa, że na co dzień nie używam Windowsa – co prawda zawsze można sobie postawić maszynę wirtualną, ale to jednak nie to samo, co praca na natywnym systemie.

Okazuje się, że na dzień dzisiejszy  używanie C# bez .Net Framework nie jest już problemem. Możemy zainstalować sobie na Maku Mono . Mamy też IDE Mono Developer, które wydaje się całkiem sensownym edytorem.

Także jak widać, jak się chce – to się da 😉

Kwi 22 2015

Dev Crowd 2015 – wrażenia

Osiemnastego kwietnia odbyła się siódma już edycja szczecińskiego DevCrowdu. Siedemnaście wystąpień, po raz pierwszy w trzech ścieżkach i ponad dwustu słuchaczy – DevCrowd z roku na rok ma się coraz lepiej. W tym poście chciałbym się podzielić moimi wrażeniami z tej imprezy. Read More >>

Mar 23 2015

Call by value, call by name

W języku Java argumenty do metod przekazywane są techniką call by value. Język Scala pozwala dodatkowo na zastosowanie metody call by name. W jaki sposób działa call by name? Co nam daje? W jaki sposób użyc tej techniki w Scali? Czy w Javie możemy uzyskać podobny efekt a jeśli tak to w jakis sposób? Na te pytania postaram się odpowiedzieć w poniższym artykule.

Read More >>

Kwi 27 2014

Vagrant czyli jak łatwo stworzyć przenośne środowisko dla programisty

Zaczynamy nowy projekt. Przyda się jakiś serwer. Trzeba by go jakoś fajnie skonfigurować. Baza danych? Również jest potrzebna. Może jakieś dodatkowe narzędzia z którymi będzie współpracować nasza aplikacja? Może trzeba stworzyć jakieś skrypy instalacyjne? Jak je przetestować? Odpalać lokalnie? Dużo roboty. To może jakaś maszyna wirtualna? Będzie szybciej, ale tyko trochę. Inny przykład – bug na środowisku produkcyjnym. Ale u mnie działa. Musi być jakaś różnica między konfiguracją tu i na produkcji. Czy wszystkie wersje tooli, serwerów i zdeployowanych aplikacji są takie same? Koszmar. Jak widać problemów związanych z utrzymaniem środowiska programistycznego jest sporo. Czy istnieje jakieś narzędzie, które może nam pomóc? Tak, nazywa się Vagrant. Read More >>

Kwi 15 2014

DevCrowd 2014 – wrażenia

Wczoraj, 12 kwietnia odbyła się kolejna edycja szczecińskiej konferencji DevCrowd. Ogólnie rzecz biorąc uważam ją za bardzo udaną. Prawie każda prezentacja na której byłem podobała mi się. W tym wpisie chciałbym się podzielić kilkoma moimi refleksjami. Dotyczyć będą one przede wszystkim prezentacji, które najbardziej mi się podobały.

Read More >>

Mar 12 2014

Cyclomatic Complexity

Dzisiaj chciałbym opisać krótko jedną z, moim zdaniem, bardziej wartościowych metryk, które wylicza nam Sonar – Cyclomatic Complexity. Read More >>

Mar 10 2014

JPA. Czas na ugruntowanie wiedzy

Moją wiedzę z gatunku JPA uważam za raczej podstawową. Jednym z moich założeń na ten rok jest zmiana tego stanu rzeczy i możliwie szczegółowe poznanie tego jednego z najbardziej podstawowych api Javy EE. Read More >>

Mar 3 2014

Jak wygodniej uruchamiać testy jednostkowe

W jaki sposób odpalacie swoje testy jednostkowe? Po przez menu „Run” 😉 ? Jeżeli uważacie, że to najlepszy sposób odpalania testów na świecie, to chyba niewiele wiecie o odpalaniu testów i świecie. Istnieje dużo wygodniejsze rozwiązanie. Read More >>

Lut 23 2014

Oprogramowanie szyte na miarę.

Jakiś czas temu wpadła mi w oko książka Michała Bartyzela “Oprogramowanie szyte na miarę. Jak rozmawiać z klientem, który nie wie, czego chce”.  Zdarza mi się przeglądać blog Michała i uważam, że jest to osoba znająca się na tematach o których mówi i z tego właśnie powodu zdecydowałem się sięgnąć po tą pozycję. Wiarygodność autora była dla mnie o tyle ważna, że książka o której mowa dotyka zagadnień związanych z pracą analityka o której nie mam zbyt dużego pojęcia.  Read More >>

Lut 13 2014

Metryka LCOM4

Zasady SOLID  to zbiór pomocnych wskazówek dotyczących  projektowania klas zgodnych z kanonami Object Oriented. Pierwsza z nich (Single Responsibility Principle), mówi nam o tym, że każda klasa powinna mieć jedną, jasno zdefiniowaną odpowiedzialność.

Istnieje metryka, która powstała z zamysłem umożliwienia automatycznej oceny klas pod kątem ich spójności (co w pewnym sensie można utożsamiać z SRP). Nazwya się Lack of Cohesion in Methods. Zaprojektowanie jej nie było jednak łatwe – ewoluowała ona przez lata. Dziś skupię się na jej wersji znanej jako LCOM4, która to jest wykorzystywana w narzędziu Sonar. Read More >>