Bez poprawnej matury z informatyki nie będzie dobrych systemów publicznych

Miało być o czymś innym, ale będzie o maturze. Wczoraj była ta z informatyki. I było nie za dobrze… Generalnie można powiedzieć, że gównoburza i w ogóle, ale po pobraniu plików ze strony CKE chyba jednak nie do końca. Dane w plikach zawierają błędy, choć według oficjalnych założeń nie powinny. Wnioski Jeżeli państwo nie jest […]

Dobry, zły i brzydki, czyli kolejna wersja retro

Retrospektywa na koniec sprintu to punkt obowiązkowy, każdego porządnego zespołu korpoagilowego. Czym jest zespół korpoagilowy? Takie zespoły działają zazwyczaj w ekstremalnie nieprzyjaznym środowisku. Jeżeli dodatkowo są tylko częścią większego projektu prowadzonego według starego dobrego waterfalla to muszą radzić sobie z problemami, które w normalnej sytuacji nie istnieją. Dlatego, też uważam, że typowe „retro” nie jest […]

Czy da się pisać kod bez jawnego używania if?

Odpowiedź brzmi da się. To oczywiste. Mając do dyspozycji mechanizmy w rodzaju filter i map oraz przeciążając metody tak by to kompilator decydował co wywołać na podstawie typu można napisać kod bez użycia if. Takie pisanie kodu już kiedyś omawiałem. Tam skupiliśmy się na eliminacji else. Dziś pokażę gdzie warto pozbywać się if-ów i jak […]

Erlang/Elixir od czego zacząć?

Erlangiem interesuję się gdzieś od 2014 roku kiedy to na LambdaDays „zaraziłem się” tym językiem od Garretta Smitha i Jose Valima. Pierwszy pokazał wtedy, że pewne problemy na poziomie komunikacji z biznesem są niezależne od technologii. Jednocześnie dużo mówiąc o erlangu, którego uznawałem za specyficzną ciekawostkę. Drugi pokazał, że erlang posiada te cechy, które ma […]

Metryki, które sprzedają projekt

Problem z kodem polega na tym, że jest on stosunkowo słabo mierzalny. Co prawda mamy dostępne różne metryki, które pozwalają nam na opisanie kodu, ale nie wszystkie one są wystarczające dla biznesu. Powiedzmy to w prost – większość metryk, które stosujemy do pomiaru kodu nie ma wartości dla biznesu. Dlaczego? Cóż, odpowiem słowami pewnego managera […]

Refaktoryzacja – wydzielenie metody szablonowej

Jedna z najprostszych refaktoryzacji wprowadzających wzorzec projektowy do kodu. Wzorcem tym jest metoda szablonowa (template method), a refaktoryzacją wydzielenie metody (extract method). Czyli coś dla n00b-ów 😉 Od czego zaczynamy Poniżej przykładowy kod, który w tym przypadku sprawdza czy dane wyrażenie przyjmie obiekt danego typu Listing 1. Sytuacja wyjściowa public final class SearchHelper { private […]

Stało się to co miało się stać, czyli o left-pad

Kilka dni temu w świadku javascriptowym wybuchła „bomba”. Zaczęło się niewinnie, bo firma o nazwie Kik poprosiła Azera Koçulu, by raczył wycofać z repozytorium npm swój pakiet o nazwie Kik. Fakap 1 W czasach obecnych należy zastanowić się czy sławetny javascript drink name nie powinien być jakoś znormalizowany i tworząc aplikację nie powinieneś wystąpić o […]

S.O.L.I.D.ne programowanie – część 5, czyli z plebsem nie gadam

S.O.L.I.D.ne programowanie – część 0, czyli wstęp S.O.L.I.D.ne programowanie – część 1, czyli monogamia S.O.L.I.D.ne programowanie – część 2, czyli spoufalamy się S.O.L.I.D.ne programowanie – część 3, czyli podkładamy świnię S.O.L.I.D.ne programowanie – część 4, czyli apartheid Pomysł na codzienne pisanie na blogu ma pewne zalety. Na przykład można dokończyć coś co pisałem… 7 lat […]

Co, gdzie, kiedy – czyli przykład refaktoryzacji w kierunku FP.

Dziś na warsztat idzie przykład refaktoryzacji, który nazywam „Co, gdzie, kiedy”. Nazwa nie jest przypadkowa, ponieważ celem jest takie przekształcenie kodu imperatywnego by jak najmocniej odseparować od siebie trzy elementy, które są stałe przy pracy z kolekcjami. Co Pierwszy element to określenie co chcemy zrobić. Zazwyczaj chodzi o weryfikację jakiegoś warunku albo o dokonanie obliczeń […]

Utrzymanie wielu wersji API w obcym środowisku cz. II

Utrzymanie wielu wersji API w obcym środowisku cz. I W pierwszej części ogólnie omówiłem z jakiego rodzaju problemami możemy mieć do czynienia gdy mamy narzuconą infrastrukturę. W tej części omówię jak radzić sobie z tymi ograniczeniami w zależności od tego jakie restrykcje zostały nam narzucone. Na samym początku należy uzmysłowić sobie, że nie każda zmiana […]