Nowy cykl – #BeEffective – Statyczne metody fabryczne zamiast konstruktorów

Dość późno w mojej karierze dotarłem do książki, którą każdy middev powinien przeczytać, bo dopiero teraz. Ten tytuł to oczywiście Java. Efektywne programowanie od Joshuy Blocha. Tym samym otwieram cykl #BeEffective, w którym omawiać będę kolejne lekcje tego podręcznika. W końcu, jak stoi w przedmowie tejże książki – na podstawie tej książki możesz zaprojektować własny kurs. Czytaj dalej Nowy cykl – #BeEffective – Statyczne metody fabryczne zamiast konstruktorów

Czy na pewno tu nie będzie nulla?

java.lang.NullPointerException. Każdy go zna, każdy uwielbia, a debugując enterprisową aplikację (napisaną oczywiście przez kogoś innego, my byśmy takiego błędu nie popełnili!), natrafiwszy na taki zapis w logach można dostać białej gorączki. I niby każdy wie, że powinno się stosować null-checki w newralgicznych miejscach. Tak samo jak każdy wie, że jakby co to są Opszonale. A i tak w tym jednym jedynym miejscu ani null-checka ani typu Optional nie będzie, bo przecież tam i tak nie będzie nulla. Zapraszam do lektury. Czytaj dalej Czy na pewno tu nie będzie nulla?

Kurs Springa – część 3 – Wprowadzanie danych inicjalnych do aplikacji

Każda aplikacja webowa potrzebuje danych, żeby przynajmniej działać. Bez danych użytkownika nie będzie można przecież przetestować logowania, edycji, czy wyświetlania tychże. Kroki do uzyskania są dwa – sumienne wklepywanie danych po każdorazowym uruchomieniu aplikacji (rejestracja, dodawanie np. faktur, innych użytkowników, ról systemowych etc.), lub dodanie do aplikacji danych inicjalnych, danych testowych. Czytaj dalej Kurs Springa – część 3 – Wprowadzanie danych inicjalnych do aplikacji

Zmiany w interfejsach dzięki Javie 8

Java 8 przyniosła wiele nowości. Według wielu, po wersji 5 języka, była to najbardziej rewolucyjna aktualizacja. I choć od wprowadzenia tejże minęło już kilka ładnych lat – wciąż wiele osób gubi się próbując zapanować nad niektórymi zmianami. Dziś na tapet wezmę zmiany w interfejsach, które pojawiły się wraz z aktualizacją Javy z 2014 roku. Czytaj dalej Zmiany w interfejsach dzięki Javie 8

Kurs Springa – część 2 – adnotacje JPA i baza danych.

Wiemy już jak rozpocząć projekt za pomocą Spring Initializr, teraz zajmiemy się bazą danych i standardem JPA. JPA (Java Persistence API) to tak zwany standard ORM, czyli mapowania obiektowo – relacyjnego (object – relational mapping). Mapowanie to jest sposobem odwzorowania struktury obiektowego systemu na relacyjną bazę danych. Polega to na tym, że w relacyjnej bazie danych mamy tabele, które są ze sobą powiązane kluczami (połączenia takie nazywane są relacjami), natomiast w systemie obiektowym – są to obiekty ze swoimi polami.

Czytaj dalej Kurs Springa – część 2 – adnotacje JPA i baza danych.

Kurs Springa – część 1 – Spring Initializr

Tym wpisem rozpoczynam całą serię tekstów, które można określić jako Kurs Springa. Na pierwszy ogień idzie konfiguracja Springowego projektu za pomocą Spring Initializr.

Czytaj dalej Kurs Springa – część 1 – Spring Initializr

Klasy abstrakcyjne i interfejsy – czy są potrzebne?

Klasy abstrakcyjne i interfejsy to jedna z podstaw programowania obiektowego. Prawidłowe się nimi posługiwanie odróżnia dobrego programistę od zwykłego klepacza kodu. Jest to też powód, dla którego często pytania o tę dziedzinę padają na rozmowach kwalifikacyjnych. Co nam dają te konstrukcje?

Czytaj dalej Klasy abstrakcyjne i interfejsy – czy są potrzebne?

Kolekcje w Javie, czym się od siebie różnią?

Kolekcje są strukturami danych zorientowanymi na przechowywanie obiektów. Kolekcje w Javie dzielą się na listy, mapy i zbiory. Mimo tego, że tablice także służą do przechowywania elementów, to pod nazwą kolekcje uznaje się te struktury, które implementują (pośrednio) interfejs java.util.Collection lub java.util.Map. Można zatem założyć, że kolekcje to struktury nie tylko przechowujące obiekty, ale także udostępniające mechanizmy pozwalające na wstawianie, pobieranie, przeglądanie, czy usuwanie z nich obiektów. Przejrzymy interfejsy java.util.Collection oraz java.util.Map wraz z różnicami między ich implementacjami.

Czytaj dalej Kolekcje w Javie, czym się od siebie różnią?

Solidny suchy buziak – czyli jak to jest z tym Clean Codem?

Na początku kariery każdy z programistów chce jak najwięcej pisać. Znamy oczywiście okrojone zasady pisania czytelnego kodu: nazywać zmienne opisowo, używać wcięć, korzystać z już napisanego kodu, zamiast tworzyć go na nowo. Jest to zrozumiałe – na początku drogi najbardziej zależy nam na tym, aby zadanie, które przed nami postawiono zostało wykonane, a nowa funkcjonalność – po prostu działała. Podczas dodawania kolejnych funkcjonalności, w kodzie pojawia się coraz więcej błędów, niedbałych ifów i metod rozciągających się na wiele linii, z niewyobrażalną ilością wcięć. Zderzenie z rzeczywistością powinno przyjść dość szybko, przy czym, moim zdaniem, im szybciej – tym lepiej. Im szybciej bowiem przyswoimy sobie tych kilka zasad clean code – tym szybciej zaczniemy pisać kod wysokiej jakości. W tym wpisie chciałbym poruszyć trzy podstawowe mnemoniki dotyczące programowania obiektowego w dobrym stylu: SOLID, KISS, oraz DRY.

Czytaj dalej Solidny suchy buziak – czyli jak to jest z tym Clean Codem?