Najlepšie Java knihy pre pokročilých a expertov (2023) – 2. časť

Len nedávno sme predstavili niekoľko Java kníh pre pokročilých a expertov v 1. časti, ktoré považujeme za najlepšie, a už vtedy sme vedeli, že nie všetky sa zmestia do nášho prvého výberu. Bola by veľká škoda neodporúčať ďalších pár knižných titulov našim Java nadšencom, preto sme sa rozhodli pokračovať aj v ďalšej časti.

Zatiaľ čo prvá časť priniesla výborné knihy, ktoré sa viac zameriavajú na zvládnutie programovacieho jazyka Java na expertnej úrovni ako takého a umožňujú ti nahliadnuť do všetkých jej zákutí s pomocou renomovaných a Java komunitou uznávaných autorov, dnes sa budeme venovať literatúre, ktorá ponúka hlbší pohľad do pokročilých konceptov, optimalizácie a riešení, ktoré posúvajú schopnosti v Jave zase o level vyššie. Či už sú to témy ako vývoj pomocou testov, Spring, písanie čistého kódu, refaktoring, alebo využitie multithreading programovania v praxi, čaká ťa objavovanie ďalších skvostných diel.

Test-Driven Java Development (2. vydanie)

Táto kniha ťa naučí koncepty testom riadeného vývoja v Jave, aby si mohol vytvárať čistý, udržiavateľný a robustný kód. Preskúmaj najobľúbenejšie nástroje a frameworky TDD a staň sa zdatnejším pri vytváraní aplikácií. Vytváraj aplikácie s lepším dizajnom kódu, menším počtom chýb a vyšším pokrytím testov, čo ti umožní rýchlejšie ich uviesť na trh.

Testom riadený vývoj (TDD) je vývojový prístup, ktorý sa opiera o procedúru test-first. Tá kladie dôraz na napísanie testu pred napísaním potrebného kódu a následné prerobenie a optimalizovanie kódu. Benefit vykonávania TDD v kombinácií s Javou, jedným z najpopulárnejších programovacích jazykov, je zlepšiť produktivitu programátorov, udržateľnosť či výkonnosť kódu a rozvíjať hlbšie pochopenie jazyka ako aj jeho efektívneho využívania.

Počnúc základmi TDD a pochopením, prečo je jeho používanie prospešné, táto kniha ťa prevedie od prvých krokov TDD v Jave, kým si nebudeš dostatočne sebaistý, aby si si osvojil túto prax vo svojej každodennej rutine. Kniha ťa najskôr prevedie nastavením nástrojov, frameworkov a prostredia, ktoré potrebuješ a ponoríš sa tak priamo do praktických cvičení s cieľom zvládnuť jeden postup, nástroj alebo framework za radom. Dozvieš sa o procedúre Red-Green-Refactor, pilieri, na ktorom sú založené všetky ostatné postupy TDD, či o tom, ako písať unit testy a ako ich používať ako spustiteľnú dokumentáciu. V tejto knihe tiež zistíš, ako navrhovať jednoduchý a ľahko udržiavateľný kód, pracovať s mockami (mocks), využiješ vývoj riadený správaním, zrefaktoruješ zastaralý kód a naučíš sa pomocou prepínačov funkcií publikovať čiastočne dokončenú funkciu do produkcie. Túto knihu dokončíš s hlbokým pochopením metodiky vývoja riadeného testami a s istotou, že ju aj reálne použiješ na programovanie aplikácií pomocou Java.

Ak si už skúsený vývojár Java a chceš implementovať metódy programovania systémov a aplikácií efektívnejšie, potom je kniha Test-Driven Java Development (2. vydanie) určená práve tebe.

Test-Driven Java Development

Test Driven: Practical TDD and Acceptance TDD for Java Developers

Pri testami riadenom vývoji najskôr napíšeš spustiteľný test toho, čo musí tvoj aplikačný kód robiť. Až potom napíšeš samotný kód a pomocou fungujúceho testu, ktorý ťa motivuje, zlepšíš dizajn svoju kódu. Pri vývoji riadenom akceptačným testom (ATDD) používaš rovnakú techniku na implementáciu funkcií produktu, pričom ťažíš z iteratívneho vývoja, rýchlych cyklov spätnej väzby a lepšie definovaných požiadaviek. TDD, jeho podporné nástroje a techniky vedú k rýchlejšiemu vývoju a lepšiemu softvéru.

Kniha Test Driven prináša pod jeden obal praktické techniky TDD získané z niekoľkoročných skúseností komunity. V prostredí Java a Java EE skúma techniky a spôsob myslenia TDD a ATDD pomocou príkladov. Starostlivo používa vybrané príklady na ilustráciu nástrojov TDD a návrhových vzorov, nie abstraktne, ale konkrétne v kontexte technológií, s ktorými sa stretávame pri práci. Je prístupný nielen začiatočníkom TDD ale aj a starším TDD, ponúka efektívne aj menej známe techniky. K dispozícii je aj celý kód z knihy.

Test Driven: Practical TDD and Acceptance TDD for Java Developers

Spring in Action (6. vydanie)

Šieste vydanie Spring in Action je komplexný sprievodca základnými funkciami aplikácie Spring, ktoré sú všetky vysvetlené v úžasnom a jasnom štýle Craiga Wallsa. Krok za krokom vytvoríš kompletnú webovú aplikáciu podporovanú databázou, a tak si postupne osvojíš Spring. Toto nové vydanie zahŕňa základy Springu ako aj nové funkcie, ako sú reaktívne toky, integrácia Kubernetes a RSocket. Či už si nováčikom v Springu alebo veteránom, urobíš si z tohto klasického bestselleru svoju bibliu.

Spring je vyžadovaná znalosť pre vývojárov Java. Pýtaš sa prečo? Tento výkonný framework eliminuje veľa zdĺhavých konfigurácií a opakujúcich sa úloh kódovania, vďaka čomu je ľahké vytvoriť softvér pre firemnú sféru v produkčnej kvalite. Najnovšie aktualizácie prinášajú výrazné zvýšenie produktivity pre mikroslužby, reaktívny vývoj a ďalšie moderné návrhy aplikácií. Niet divu, že viac ako polovica všetkých vývojárov Java používa Spring.

V priebehu rokov pomohla Spring in Action desiatkam tisíc vývojárov pomocou technológie Spring výrazne zvýšiť produktivitu. Toto nové vydanie klasického bestselleru pokrýva všetky nové funkcie Spring 5.3 a Spring Boot 2.4 spolu s príkladmi reaktívneho programovania, Spring Security for REST Services a vnášania reaktivity do tvojich databáz. Nájdeš tu aj najnovšie osvedčené postupy Spring vrátane Spring Boot pre nastavenie a konfiguráciu aplikácií.

Spring in Action

Clean Code: A Handbook of Agile Software Craftsmanship

Aj zlý kód môže fungovať. Ak však kód nie je čistý, môže vývojovú organizáciu zraziť na kolená. Každý rok sa stratí nespočetné množstvo hodín a značné zdroje kvôli zle napísanému kódu. Ale nemusí to tak byť.

Známy softvérový expert Robert C. Martin predstavuje revolučnú paradigmu s Clean Code: A Handbook of Agile Software Craftsmanship. Martin, ktorý pomohol sprístupniť agilné princípy z praktického pohľadu desiatkam tisíc programátorov, sa spojil so svojimi kolegami z Object Mentor, aby prepracovali svoj najlepší agilný postup čistenia kódu „za behu“ do knihy, ktorá čitateľovi vštiepi hodnoty softvérového remeselníka a urobí z neho lepšieho programátora – ale iba ak na tom bude pracovať.

Aký druh práce budeš vykonávať? Budeš čítať kód – veľa kódu. A budeš vyzvaný, aby si popremýšľal o tom, čo je na danom kóde správne a čo je na ňom naopak zlé. Ešte dôležitejšie je, že budeš vyzvaný, aby si prehodnotil svoje profesionálne hodnoty a svoj záväzok k svojej profesii.

Čistý kód je rozdelený do troch častí. Prvý popisuje princípy, vzory a praktiky písania čistého kódu. Druhá časť pozostáva z niekoľkých prípadových štúdií s narastajúcou komplexnosťou. Každá prípadová štúdia je cvičením na čistenie kódu – transformáciu kódovej základne, ktorá má nejaké problémy, na takú, ktorá je správna a efektívna. Treťou časťou je prínos: jedna kapitola obsahujúca zoznam heuristiky a problematických miest v kóde zhromaždených pri tvorbe prípadových štúdií. Výsledkom je vedomostná báza, ktorá popisuje spôsob, akým myslíme, keď píšeme, čítame a čistíme kód.

Táto kniha je nevyhnutná pre každého vývojára, softvérového inžiniera, projektového manažéra, vedúceho tímu alebo systémového analytika so záujmom o tvorbu lepšieho kódu.

Clean Code: A Handbook of Agile Software Craftsmanship

Refactoring: Improving the Design of Existing Code (2. vydanie)

Už viac ako dvadsať rokov sa skúsení programátori na celom svete spoliehajú na Refactoring Martina Fowlera, aby zlepšili dizajn existujúceho kódu a zlepšili údržbu softvéru, ako aj zjednodušili pochopenie existujúceho kódu.

Toto netrpezlivo očakávané nové vydanie bolo plne aktualizované, aby odrážalo zásadné zmeny v programovom prostredí. Refactoring, druhé vydanie, obsahuje aktualizovaný katalóg techník refaktoringu a obsahuje príklady kódu JavaScript, ako aj nové funkčné príklady, ktoré demonštrujú refaktorovanie bez tried.

Rovnako ako originál, aj toto vydanie vysvetľuje, čo je refaktoring, prečo by si mal refaktorovať, ako rozpoznať kód, ktorý potrebuje refactoring a ako to vlastne úspešne aplikovať, bez ohľadu na to, aký jazyk používaš.

Každý blázon dokáže napísať kód, ktorému počítač rozumie. Dobrí programátori píšu kód, ktorému rozumejú ľudia.“ –M. Fowler (1999)

Refactoring: Improving the Design of Existing Code

Functional Programming in Java: Harness the Power of Streams and Lambda Expressions (2. vydanie)

Predstav si, že píšeš kód Java, ktorý je veľmi expresívny, stručný, ľahko čitateľný a editovateľný a má zníženú zložitosť. S možnosťami funkcionálneho programovania v Jave to nie je fantázia. Táto kniha ťa prevedie od známeho imperatívneho štýlu cez praktické aspekty funkcionálneho programovania pomocou množstva príkladov. Aplikuj techniky, ktoré sa postupne naučíš, na premenu veľmi zložitého imperatívneho kódu na elegantný a ľahko pochopiteľný funkčný kód. Toto vydanie, aktualizované na najnovšiu verziu Java, má štyri nové kapitoly o riešení chýb, refaktoringu na funkčný štýl, transformácii údajov a idiómoch funkčného programovania.

Nebojuj s obmedzeniami imperatívneho štýlu, namiesto toho sa nauč kombinovať objektovo orientované programovanie s funkčným štýlom, aby si znížil zložitosť kódu. Využi funkcie funkčného programovania Java na vytváranie aplikácií, v ktorých program odhalí svoje zámery a tvoj tím môže rýchlo pochopiť a upraviť kód tak, aby zodpovedal meniacim sa biznis požiadavkám. Odomkni silu java lambda výrazov a Streams API a premeň často písaný špagetový kód na veľmi stručný, výrazný, elegantný a udržiavateľný kód. Pozri sa, ako streamy uľahčujú náročnú úlohu paralelizácie kódu ako preradenie páky v aute, keď je potrebná vyššia rýchlosť.

Aplikuj návrhové vzory postavené na výrazoch lambda, bezpečne spravuj prideľovanie zdrojov, nauč sa transformovať údaje do rôznych foriem a to všetko pri rešpektovaní nemennosti a poskytovaní bezpečnosti vlákien na využitie oneskoreného (lazy) vyhodnocovania pre efektivitu a paralelné vykonávanie pre výkon. Prekonaj základy, preskúmaj idiómy na písanie funkčných programov. Nauč sa myslieť funkčne prerobením starého kódu do funkčného štýlu. A ak tvoj kód uviazne v problémoch, nauč sa správne zaobchádzať s chybami funkčným spôsobom.

Neutápaj sa v teórii, namiesto toho sa nauč praktické techniky funkčného programovania na vytvorenie špičkového kódu v Jave.

Functional Programming in Java

Java Concurrency in Practice

Vlákna sú základnou súčasťou platformy Java. Keďže sa viacjadrové procesory už stali normou, efektívne využívanie paralelne bežiaceho kódu sa stáva nevyhnutným pre vytváranie vysokovýkonných aplikácií. Java SE 5 a 6 boli obrovským krokom vpred vo vývoji súbežných aplikácií s vylepšeniami Java Virtual Machine na podporu vysokovýkonných, vysoko škálovateľných súbežných tried a bohatej sady nových stavebných blokov súbežnosti. V Java Concurrency in Practice tvorcovia týchto nových vlastností vysvetľujú nielen to, ako fungujú a ako ich používať, ale aj motiváciu a vzory dizajnu.

Vývoj, testovanie a ladenie programov s viacerými vláknami však môže byť stále veľmi ťažké. Je až príliš jednoduché vytvárať súbežné programy, ktoré vyzerajú, že fungujú, ale zlyhajú, keď na tom najviac záleží: v produkcii, pri veľkom zaťažení. Java Concurrency in Practice vyzbrojuje čitateľov teoretickými základmi a konkrétnymi technikami na vytváranie spoľahlivých, škálovateľných a udržiavateľných súbežných aplikácií. Namiesto jednoduchého ponúkania inventára súbežných rozhraní API a mechanizmov poskytuje pravidlá návrhu, vzory a mentálne modely, ktoré uľahčujú vytváranie súbežných programov, ktoré sú správne a výkonné.

Java Concurrency in Practice

Ak máš svoje obľúbené vývojárske knihy, ktoré veľkou mierou ovplyvnili tvoju kariéru Java programátora a bol si sklamaný, že sa neobjavili v našom seriáli, neváhaj nám o nich napísať.

Ak hľadáš prácu, pozri si naše firemné benefity a reaguj na voľné pracovné miesta.

O autorovi

Jozef Wagner

Java Developer Senior

Viac ako 10 rokov programujem v Jave, momentálne pracujem v msg life Slovakia ako Java programátor senior a pomáham zákazníkom implementovať ich požiadavky do poistného softvéru Life Factory. Vo voľnom čase si rád oddýchnem v lese, prípadne si zahrám nejakú dobrú počítačovú hru.

Daj nám o sebe vedieť