sobota, 11 kwietnia 2015

Recenzja - "Adaptive Code via C# - Agile coding with design patterns and SOLID principles" -> Gary McLead Hall

Na tą książkę zwróciłem uwagę, dzięki pytaniu K.Cebuli na naszej grupie na portalu www.facebook.com. To był chyba grudzień 2014r. i akurat amazon.com miał promocję na tą książkę. Recenzje miała dobre, wydawcę również (Microsoft), a tytuł brzmiał zachęcająco. Kupiłem więc tą książkę w formie ebooka, załadowałem na mojego kindla i w wolnym czasie ją sobie "trawiłem".

Cóż mogę napisać o samej książce?
Pierwszy rozdział, to głównie Agile oraz szczegółowe omówienie metodologii SCRUM. Przy okazji wspomniane jest też jak ważną rolę odgrywają w "zwinnym podejściu" takie elementy jak zależności, interfejsy oraz testy jednostkowe. 

W tym rozdziale autor opisał też, dlaczego powinniśmy unikać pewnych elementów języka, takich jak m.in. extension method czy używanie słówka "new". 
Porównał to do używania korzystania z dżwigu (skyhook) oraz windy (lift). Obie mogą posłużyć do wejścia na dach budynku, jednak windy są dużo bezpieczniejsze i dużo lepiej sprawdzają się "długoterminowo".

Drugi rozdział, to szczegółowe omówienie zasad SOLID. Tutaj autorowi należą się dodatkowe podziękowania, z uwagi na bardzo dobre tłumaczenie tematu oraz wplecenie w te rozdziały wzorców projektowych. Autor wspomniał o GoF, o tym, że przez lata pewne wzorce stały się kanonem, a inne antywzorcami i... wszystko demonstruje na przykładach. Bardzo dobra robota.

Trzeci rozdział, to próba połączenia dwóch pierwszych rozdziałów na przykładzie niewielkiego zespołu oraz przykładowego zadania. Mamy tutaj rozmowy projektowe, szacowanie kosztów oraz... samo kodowanie ;-)

Napisałem po krótce, o czym jest ta książka, ale... teraz najważniejsze pytanie. Czy warto? Osobiście uważam że tak. Uważam, że ta książka jest bardzo dobra, zarówno pod względem technicznym, jak i samego sposobu jej napisania. Uważam również, że każdy szanujący się developer powinien ja przeczytać (a przynajmniej prawie cały 1 i cały drugi rozdział). Dodatkowo uważam, że książka GoF jest już na tyle stara i ciężko napisana (trudno się ją czyta), że... powinna odejść do lamusa i to właśnie "Adaptive Code via C# - Agile coding with design patterns and SOLID principles" powinna zająć jej miejsce.

czwartek, 2 kwietnia 2015

AML - Listy Sankcyjne

AML (Anti-Money Laundering), zwane potocznie przeciwdziałaniem praniu brudnych pieniędzy, ale... również i wspieraniu terroryzmu, są to działania, mające na celu wykrycie i odpowiednie zaraportowanie podejrzanych transakcji, a nast. ich zablokowanie, włącznie z zamrożeniem konta osob podejrzanych.

Wymogi stosowania AML w spółkach finansowych nakładają stosowne organy, takie jak np. KNF, Komisja Europejska czy Departament Skarbu USA.

Te podmioty, publikują m.in. listy os. podejrzanych. Na takich listach znajduja się znani dyktatorzy, organizacje terrorystyczne, ale ost., po aneksji Krymu również przedstawiciele Rosjiego parlamentu zaangażowani w wojnę na Ukrainie.

Te listy, zwane listami sankcyjnymi, publikowane są w różnych formatach, np. XML. W związku z powyższym, zrobiłem jednolity parser kilku list do postaci obiektowej, przy okazji udostępniając część kodów źródłowych na githubie, aby ułatwić innym walkę z terroryzmem.

Listy sankcyjne, które zostały ograne w aplikacji to:
  • Consolidated list of persons, groups and entities subject to EU financial sanctions
  • Specially Designated Nationals List (SDN)
  • Foreign Sanctions Evaders (FSE)
  • Palestinian Legislative Council (PLC) List 

Projekt postanowiłem umieścić na githubie, zarówno pod moim profilem (link), jak i pod egidą .Net Developers Poland. Jeżeli ktoś ma ochotę do rozwijania tego projektu, to zdecydowanie zapraszam.

Linki: