Programowanie
Koncepcja Domain-Driven Design. Dostosowywanie architektury aplikacji do strategii biznesowej
Vlad Khononov
Domain-driven design, czyli projektowanie dziedzinowe, w skrócie DDD, jest zbiorem praktyk tworzenia architektury oprogramowania z uwzględnieniem dziedziny biznesu i jej problemów. W ten sposób logika biznesowa staje się sercem aplikacji. Wielu architektów jednak nie radzi sobie ze złożonością tworzonego oprogramowania. Nauczenie się zasad i wzorców DDD, przyswojenie technik dekompozycji dużego systemu, modelowania i projektowania integracji komponentów jest sposobem na zbudowanie systemu w pełni zgodnego z potrzebami i celami biznesowymi. Ta książka zawiera opis podstawowych wzorców, zasad i praktyk przydatnych podczas analizy dziedzin biznesowych, ułatwiających zrozumienie ich strategii i dostosowanie architektury do potrzeb biznesu, aby umożliwić zbudowanie solidnej implementacji logiki biznesowej. Omówiono tu narzędzia i techniki podejmowania decyzji projektowych, a także istotniejsze wzorce projektowe. Dużo uwagi poświęcono kodowi i różnym sposobom implementacji logiki biznesowej systemu. Opisano również techniki i strategie stosowania DDD w rzeczywistych projektach. Ciekawym elementem jest zaprezentowanie związków projektowania dziedzinowego z innymi ważnymi metodologiami i wzorcami.\ W książce między innymi: analiza dziedziny biznesowej firmy w kontekście architektury systemu strategiczne i taktyczne narzędzia DDD budowa wspólnego rozumienia dziedzin biznesowych dekompozycja systemu na konteksty ograniczone koordynacja pracy wielu zespołów stopniowe wdrażanie technik DDD do projektów typu brownfield DDD: praktyczny sposób na rozwiązanie problemów biznesowych!
Koncepcja Domain-Driven Design. Dostosowywanie architektury aplikacji do strategii biznesowej
Vlad Khononov
Domain-driven design, czyli projektowanie dziedzinowe, w skrócie DDD, jest zbiorem praktyk tworzenia architektury oprogramowania z uwzględnieniem dziedziny biznesu i jej problemów. W ten sposób logika biznesowa staje się sercem aplikacji. Wielu architektów jednak nie radzi sobie ze złożonością tworzonego oprogramowania. Nauczenie się zasad i wzorców DDD, przyswojenie technik dekompozycji dużego systemu, modelowania i projektowania integracji komponentów jest sposobem na zbudowanie systemu w pełni zgodnego z potrzebami i celami biznesowymi. Ta książka zawiera opis podstawowych wzorców, zasad i praktyk przydatnych podczas analizy dziedzin biznesowych, ułatwiających zrozumienie ich strategii i dostosowanie architektury do potrzeb biznesu, aby umożliwić zbudowanie solidnej implementacji logiki biznesowej. Omówiono tu narzędzia i techniki podejmowania decyzji projektowych, a także istotniejsze wzorce projektowe. Dużo uwagi poświęcono kodowi i różnym sposobom implementacji logiki biznesowej systemu. Opisano również techniki i strategie stosowania DDD w rzeczywistych projektach. Ciekawym elementem jest zaprezentowanie związków projektowania dziedzinowego z innymi ważnymi metodologiami i wzorcami.\ W książce między innymi: analiza dziedziny biznesowej firmy w kontekście architektury systemu strategiczne i taktyczne narzędzia DDD budowa wspólnego rozumienia dziedzin biznesowych dekompozycja systemu na konteksty ograniczone koordynacja pracy wielu zespołów stopniowe wdrażanie technik DDD do projektów typu brownfield DDD: praktyczny sposób na rozwiązanie problemów biznesowych!
Kontenery. Bezpieczne wdrożenia. Podstawowe koncepcje i technologie
Liz Rice
Imponująca możliwość skalowania oraz odporność na awarie skłania organizacje do uruchamiania swoich aplikacji w natywnych środowiskach chmury. Technologia kontenerów i orkiestracji stała się ostatnio bardzo modna. Jednak nawet tak nowoczesne systemy nie są wolne od zagrożeń. Aby zapewnić wdrożeniom kontenerowym najwyższy możliwy poziom bezpieczeństwa, trzeba zrozumieć mechanizmy działania kontenerów. Jako że powstają one przez połączenie różnych funkcji jądra systemu Linux, zapewnienie bezpieczeństwa kontenera oznacza zastosowanie wielu mechanizmów wykorzystywanych w komputerze gospodarza działającego pod kontrolą systemu operacyjnego Linux. Ta książka jest przeznaczona dla programistów, menedżerów i specjalistów do spraw bezpieczeństwa odpowiedzialnych za systemy kontenerowe. Dzięki niej zrozumiesz, co się dzieje podczas uruchamiania aplikacji w kontenerach i jak działają różne mechanizmy zapewnienia bezpieczeństwa. Przyswoisz kluczowe koncepcje, które ułatwią Ci ocenę ryzyka dla konkretnego systemu. Dowiesz się, jak w bezpieczny sposób tworzyć obrazy kontenerów, i zrozumiesz znaczenie poprawnej izolacji kontenerów. Zapoznasz się z podstawami korzystania z kluczy i certyfikatów służących do identyfikacji i nawiązywania bezpiecznych połączeń sieciowych między kontenerami. Nauczysz się korzystać z narzędzi do zapewniania bezpieczeństwa i unikania ataków. Dodatkowo zaprezentowany tu materiał został bogato zilustrowany gotowymi do przetestowania fragmentami kodu. Najciekawsze zagadnienia ujęte w książce: mechanizmy ataków na wdrożenia oparte na kontenerach koncepcje systemu Linux istotne dla wdrożeń kontenerowych sposoby zabezpieczania kontenerów: najlepsze praktyki błędy w konfiguracji i luki w zabezpieczeniach kontenera bezpieczeństwo połączeń między kontenerami narzędzia do zapewnienia bezpieczeństwa System oparty na kontenerach. Jak dobrze jest zabezpieczony?
Konteneryzacja z wykorzystaniem Dockera. Podstawy
Piotr Chudzik
Twórz, testuj i wdrażaj: konteneryzacja na Twoich zasadach Pierwsza była wirtualizacja: oprogramowanie symuluje istnienie zasobów logicznych korzystających z zasobów fizycznych. Po niej przyszła konteneryzacja, polegająca na tworzeniu obrazów - kopii danych - zawierających wszystkie pliki potrzebne do uruchomienia danej aplikacji. Środowiska produkcyjne z obu korzystają równolegle, ale to konteneryzacja stała się swojego rodzaju rewolucją w sektorze IT. Pozwoliła bowiem na sprawniejsze wdrażanie mikroserwisów, a także na optymalizację kosztów działania wielu aplikacji. Jeśli dotąd nie nadarzyła się okazja, by zgłębić temat, zrób to jak najszybciej, ponieważ umiejętność konteneryzacji jest obecnie wymagana na bardzo wielu stanowiskach, od programistów i inżynierów danych po specjalistów DevOps i administratorów. Korzystając z tej książki, zapoznasz się z Dockerem - najpopularniejszym narzędziem do konteneryzacji. Podczas pracy z naszym poradnikiem między innymi: Zbudujesz swój pierwszy kontener Nauczysz się zarządzać jego zawartością Stworzysz sieć kontenerów Dowiesz się, czym jest Dockerfile Opanujesz podstawy Docker Compose
Kontrola wersji z systemem Git. Narzędzia i techniki programistów. Wydanie II
Jon Loeliger, Matthew McCullough
Systemy kontroli wersji przechodzą ciągłą ewolucję. Jeszcze niedawno popularny był system CVS, który został wyparty przez SVN. Ostatnie lata to inwazja rozproszonych systemów kontroli wersji z Gitem na czele. Git pozwala każdemu programiście na posiadanie prywatnego repozytorium i korzystanie z jego dobrodziejstw bez wpływu na inne repozytoria. Jesteś ciekaw, jakie jeszcze zalety ma Git? Jeżeli tak, trafiłeś na idealną książkę, dzięki której błyskawicznie wkroczysz w świat Gita. Na początek krok po kroku przejdziesz przez proces instalacji, a następnie dostosujesz środowisko do swoich potrzeb. W kolejnych rozdziałach poznasz dostępne polecenia oraz nauczysz się zarządzać plikami. Ponadto przekonasz się, jak łatwo można stworzyć odgałęzienia kodu oraz przeglądać różnice pomiędzy wersjami pliku. Git posiada zaawansowane narzędzia do łączenia kodu - będziesz mógł je dogłębnie poznać. Na koniec przeczytasz o zaawansowanych możliwościach systemu Git, takich jak współpraca z SVN. Ta książka jest doskonałym podręcznikiem dla każdego początkującego użytkownika systemu Git, zaawansowani również znajdą tu sporo przydatnych informacji. Wykorzystaj potencjał Gita! Dzięki tej książce: odkryjesz rozproszone systemy kontroli wersji poznasz ich zalety zainstalujesz i skonfigurujesz system Git poznasz system kontroli wersji Git Wykorzystaj potencjał systemu kontroli wersji Git!
Prem Ponuthorai, Jon Loeliger
Jeśli pracujesz w zespole i prowadzisz złożone projekty, dobrze wiesz, czym się kończy brak zarządzania wersjami. Dzięki Gitowi możesz zapomnieć o tych problemach. Ten niezawodny rozproszony system kontroli wersji cechuje się szybkością i skalowalnością, zapewnia bogatą kolekcję zestawów poleceń, jest też zoptymalizowany pod kątem operacji lokalnych. Aby docenić Gita, musisz jedynie nabrać wprawy, pewności siebie ― i dobrze go poznać. Ta książka, napisana z myślą o inżynierach oprogramowania, jest trzecim, gruntownie zaktualizowanym wydaniem praktycznego przewodnika, który szybko przeprowadzi Cię od podstaw aż do zaawansowanych technik pracy z Gitem. Po zapoznaniu się z filozofią systemu i jego najważniejszymi funkcjami płynnie przejdziesz do takich zagadnień jak modyfikowanie drzew, korzystanie z dziennika odwołań i schowka. Znajdziesz tu również kilka przydatnych scenariuszy projektowych i sporo ciekawych wskazówek i porad. W efekcie nauczysz się korzystać z elastyczności Gita i w praktyczny sposób zarządzać procesem tworzenia kodu z zastosowaniem wielu różnych metod. W książce: rozproszone systemy kontroli wersji typowe zastosowania Gita i jego podstawowe funkcje metody zarządzania scaleniami, konfliktami, poprawkami i różnicami zaawansowane techniki, takie jak zmiana bazy i haki korzystanie z serwisu GitHub Autorzy książki przechodzą w niej stopniowo od najbardziej podstawowych zagadnień ze świata systemu Git do zaawansowanych zastosowań. Jeff King, projektant oprogramowania open source Bądź na bieżąco, kontroluj wersje projektu!
Kosymulacja. Elastyczne projektowanie i symulacja wielodomenowa
Artur Wodołażski
Poznaj kosymulację od podstaw Podstawowe pojęcia i definicje Praktyczna realizacja kosymulacji Oprogramowanie kosymulacyjne Dane są obecnie zbierane, przetwarzane i analizowane dosłownie na każdym kroku, a otrzymane wyniki i płynące z nich wnioski oddziałują na każdy aspekt naszego życia. Modelowanie i symulacja to nieodzowne etapy projektowania wszelkiego rodzaju produktów i urządzeń przemysłowych. Pojazdy, budynki, konsumencki sprzęt elektroniczny, lecz także instalacje technologiczne, konstrukcje inżynierskie i specjalistyczna aparatura - wszystko to jest opracowywane i ulepszane właśnie dzięki symulacjom, a prototypy nowych urządzeń powstają i są testowane znacznie szybciej przy użyciu narzędzi cyfrowych. Kosymulacja to zaawansowana technologia umożliwiająca jednoczesną symulację wielu zjawisk w różnych podsystemach dzięki wykorzystaniu specjalistycznych pakietów oprogramowania. Znajduje zastosowanie w wielodziedzinowych, wieloskalowych symulacjach, w których łączy się różnego rodzaju domeny (mechaniczną, hydrauliczną, termiczną i elektryczną). Z tego powodu kosymulacja jest szczególnie często używana w roli narzędzia w badaniach naukowych w przemyśle motoryzacyjnym, lotniczym i medycznym, a więc w branżach o największym potencjale rozwoju. Książka jest przeznaczona dla osób pragnących poznać podstawy kosymulacji i usystematyzować wiedzę w tym zakresie. Ze względu na interdyscyplinarność narzędzia adresatami publikacji są przede wszystkim pracownicy IT, pracownicy akademiccy, studenci kierunków automatyka i robotyka czy informatyka. Skorzystają z niej również osoby pracujące w przemyśle, zajmujące się na co dzień projektowaniem, modelowaniem lub symulacją, a szczególnie projektanci-konstruktorzy wykonujący symulacje na poziomie całego systemu. Wprowadzenie do zagadnienia kosymulacji Wzorce komunikacyjne i sprzężenia układów Realizacja kosymulacji w praktyce Oprogramowanie stosowane w kosymulacji Praktyczne zadania wraz z rozwiązaniami Stosuj kosymulację w praktyce
Ashish Belagali, Akshay Chordiya, Hardik Trivedi
Kotlin is a powerful language that has applications in a wide variety of fields. It is a concise, safe, interoperable, and tool-friendly language. The Android team has also announced first-class support for Kotlin, which is an added boost to the language. Kotlin’s growth is fueled through carefully designed business and technology benefits.The collection of projects demonstrates the versatility of the language and enables you to build standalone applications on your own. You’ll build comprehensive applications using the various features of Kotlin. Scale, performance, and high availability lie at the heart of the projects, and the lessons learned throughout this book.You’ll learn how to build a social media aggregator app that will help you efficiently track various feeds, develop a geospatial webservice with Kotlin and Spring Boot, build responsive web applications with Kotlin, build a REST API for a news feed reader, and build a server-side chat application with Kotlin.It also covers the various libraries and frameworks used in the projects. Through the course of building applications, you’ll not only get to grips with the various features of Kotlin, but you’ll also discover how to design and prototype professional-grade applications.
Ashish Belagali, Akshay Chordiya, Hardik Trivedi
Kotlin is a powerful language that has applications in a wide variety of fields. It is a concise, safe, interoperable, and tool-friendly language. The Android team has also announced first-class support for Kotlin, which is an added boost to the language. Kotlin’s growth is fueled through carefully designed business and technology benefits.The collection of projects demonstrates the versatility of the language and enables you to build standalone applications on your own. You’ll build comprehensive applications using the various features of Kotlin. Scale, performance, and high availability lie at the heart of the projects, and the lessons learned throughout this book.You’ll learn how to build a social media aggregator app that will help you efficiently track various feeds, develop a geospatial webservice with Kotlin and Spring Boot, build responsive web applications with Kotlin, build a REST API for a news feed reader, and build a server-side chat application with Kotlin.It also covers the various libraries and frameworks used in the projects. Through the course of building applications, you’ll not only get to grips with the various features of Kotlin, but you’ll also discover how to design and prototype professional-grade applications.
Alexey Soshin
This book shows you how easy it can be to implement traditional design patterns in the modern multi-paradigm Kotlin programming language, and takes you through the new patterns and paradigms that have emerged.This second edition is updated to cover the changes introduced from Kotlin 1.2 up to 1.5 and focuses more on the idiomatic usage of coroutines, which have become a stable language feature. You'll begin by learning about the practical aspects of smarter coding in Kotlin, as well as understanding basic Kotlin syntax and the impact of design patterns on your code.The book also provides an in-depth explanation of the classical design patterns, such as Creational, Structural, and Behavioral families, before moving on to functional programming. You'll go through reactive and concurrent patterns, and finally, get to grips with coroutines and structured concurrency to write performant, extensible, and maintainable code.By the end of this Kotlin book, you'll have explored the latest trends in architecture and design patterns for microservices. You’ll also understand the tradeoffs when choosing between different architectures and make informed decisions.