Inne - Програмування

25
Eлектронна книга

Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych

Harry Percival, Bob Gregory

Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych Python zyskuje coraz większą popularność i jest wykorzystywany do tworzenia bardzo różnych aplikacji, jednak projektowanie dużych, niezawodnych systemów w tym języku bywa wyzwaniem. Rozwijanie złożonych systemów o wysokiej jakości wymaga zastosowania odpowiedniej architektury. Trudno w Pythonie stosować takie wysokopoziomowe wzorce projektowe jak architektura sześciokątna, architektura oparta na zdarzeniach czy wzorce zalecane dla projektowania dziedzinowego (DDD). Sytuacji nie poprawia również to, że klasyczna literatura dotycząca metod zarządzania złożonością aplikacji zawiera przykłady kodu napisanego w Javie lub C#. Programiści Pythona często więc uznają takie książki za mało przydatne w swojej pracy. Ten praktyczny przewodnik przybliży projektantom pracującym w Pythonie sprawdzone wzorce architektury, które ułatwiają zapanowanie nad złożonością aplikacji i pozwalają najlepiej wykorzystać zestawy testów. Prezentację poszczególnych wzorców architektury oparto na przykładowej, stopniowo rozbudowywanej aplikacji. Podejście to pozwoliło na pokazanie zalet metodyki TDD. Z kolei w rozdziałach poświęconych modelowaniu dziedzinowemu zwrócono uwagę na unikanie jakichkolwiek zależności zewnętrznych przy równoczesnym zapewnieniu integralności danych. Wśród ciekawszych koncepcji warto wskazać wykorzystywanie zdarzeń w roli wzorca integracji usług w architekturze mikrousługowej. Niejako przy okazji zaprezentowano praktyczne strony stosowania kilku frameworków i technologii Pythona, między innymi Flask, SQLAlchemy, pytest, Docker i Redis. W tej książce między innymi: modelowanie dziedzinowe i stosowanie wzorców DDD jednostki, obiekty wartości i agregaty w architekturze domenowej tworzenie modeli bez zbędnych zależności zdarzenia, polecenia i szyna wiadomości wzorce architektury zdarzeniowej i mikrousług reaktywnych Architektura nowoczesnych aplikacji w Pythonie: rozwiązania dla poważnych systemów!

26
Eлектронна книга

Architektura ewolucyjna. Projektowanie oprogramowania i wsparcie zmian

Neal Ford, Rebecca Parsons, Patrick Kua

Przez długi czas uważano, że architektura oprogramowania powinna powstać przed rozpoczęciem pisania kodu i pozostać niezmieniona aż do zakończenia projektu. Pojawienie się zwinnych metod tworzenia oprogramowania spowodowało, że taką koncepcję zaczęto podawać w wątpliwość. Niektórzy nawet kwestionowali potrzebę tworzenia architektury, gdyż utrudniała reakcję na zmiany wymagań. Istnieje jednak inne podejście do architektury, zgodnie z którym jest ona ściśle powiązana z fazą programowania i dynamicznie odpowiada na zmiany pojawiające się podczas tworzenia kodu. W ten sposób architektura ewolucyjna, pomimo nieprzewidywalności zmian, zapewnia rozwój projektu we właściwym kierunku. Dzięki tej książce architekci oprogramowania zapoznają się z nowym podejściem do powiązań architektury z czasem. Przekonają się też, że tworzenie architektury ewolucyjnej sprowadza się do trzech głównych zagadnień: funkcji dopasowania, zmian przyrostowych i prawidłowego sprzęgania. W tej książce uwzględniono analizę każdego z tych aspektów, ukazano też mechanizm budowania architektury wspierającej ciągłe zmiany. Szczegółowo wyjaśniono zasady wprowadzania pętli informacji zwrotnej pozwalających całemu zespołowi na spójne rozwijanie systemu w zgodzie z zasadą ciągłego dostarczania. Pokazano metody monitorowania stanu architektury. Sporo uwagi poświęcono problemom danych długowiecznych - jest to często pomijane zagadnienie. W tej książce: Funkcje dopasowania w architekturze Zmiany przyrostowe wprowadzane za pomocą projektowania i operacji Sprzężenie architektury i wprowadzanie zmian bez utraty stabilności systemu Dane ewolucyjne oraz zmiany wymogów i architektury w miarę upływu czasu Budowanie architektur ewolucyjnych Praktyczne wdrażanie architektury ewolucyjnej w korporacji Architektura korporacyjna: wysoka sztuka projektowania!

27
Eлектронна книга

Architektura ewolucyjna. Projektowanie oprogramowania i wsparcie zmian. Wydanie II

Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage

Jeszcze kilka lat temu koncepcja ewoluowania architektury była uznawana za zbyt odważną. Uważano, że architektura powinna pozostawać elementem niezmiennym w czasie. Jednak rzeczywistość udowadnia, że systemy muszą ewoluować, aby spełniać wymogi użytkowników i odzwierciedlać zmiany w dynamicznym środowisku tworzenia oprogramowania. Innymi słowy, konieczne się staje budowanie architektur ewolucyjnych. Dzięki tej książce dowiesz się, w jaki sposób uczynić architekturę oprogramowania wystarczająco plastyczną, aby mogła odzwierciedlać zachodzące zmiany biznesowe i technologiczne. W nowym wydaniu rozbudowano pojęcia zmiany kierowanej i przyrostowej, a także przedstawiono najnowsze techniki dotyczące funkcji dopasowania, automatycznego zarządzania architekturą i danych ewolucyjnych. Zaprezentowano praktyki inżynieryjne umożliwiające ewoluowanie systemów oprogramowania, jak również podejścia strukturalne, w tym zasady projektowe, które ułatwiają zarządzanie tą ewolucją. Opisano ponadto, w jaki sposób zasady i praktyki architektury ewolucyjnej wiążą się z różnymi elementami procesu tworzenia oprogramowania. Naucz się postrzegać architekturę systemową jako plastyczny wyzwalacz. Sam Newman, architekt, autor książki Budowanie mikrousług Najciekawsze zagadnienia: mechanika architektury ewolucyjnej zarządzanie projektami oprogramowania i ich ewolucją style architektoniczne i zasady projektowania sprzęganie i wieloużywalność łączenie praktyk inżynieryjnych z kwestiami strukturalnymi Poznaj techniki umożliwiające tworzenie architektur oprogramowania na tyle zwinnych, aby dotrzymywały kroku ciągłym zmianom. Mark Richards, developertoarchitect.com

28
Eлектронна книга

Architektura informacji w serwisach internetowych i nie tylko. Wydanie IV

Louis Rosenfeld, Peter Morville, Jorge Arango

W świecie, w którym potężne ilości informacji bombardują ludzi ze wszystkich stron, organizacje stają przed bardzo poważnym wyzwaniem: muszą znaleźć sposób, aby dotrzeć ze swoim przekazem do odbiorcy, zyskać jego uwagę i spowodować, aby zrozumiał i zapamiętał prezentowane treści. Dodatkowym problemem jest różnorodność kanałów interakcji oraz urządzeń — utrzymanie zrozumiałości i spójności przekazu staje się jeszcze trudniejsze. W takim świecie znajomość zasad projektowania architektury informacji staje się nieodzowna. Niniejsza książka jest przeznaczona dla wszystkich osób zaangażowanych w proces projektowania najróżniejszych przekazów informacji, szczególnie serwisów internetowych. Architektura informacji jest tu traktowana jako zbiór narzędzi i technik do obsługi trudnych problemów. Można tu znaleźć uniwersalne i ponadczasowe zasady organizacji informacji, narzędzia i techniki, które zdały próbę czasu i nie zależą od konkretnych technologii czy producentów. Dzięki praktycznemu podejściu ta książka przyda się każdemu, kto odpowiada za zdefiniowanie sposobu działania produktów interaktywnych. W tej książce znajdziesz: przegląd zagadnień dotyczących architektury informacji opis komponentów architektury informacji i powiązań między nimi metodykę organizacji witryn, systemy nawigacji, wyszukiwania i etykietowania stron opis metod poprawy komfortu użytkownika serwisu wskazówki dotyczące metodologii definiowania kierunku i zakresu architektury informacyjnej Architektura informacji — sztuka, która uczyni informację prawdziwie użyteczną! Louis Rosenfeld — odegrał znaczącą rolę w organizowaniu pierwszych trzech konferencji poświęconych architekturze informacji. Bierze aktywny udział w różnych konferencjach poświęconych projektowaniu w środowiskach sieciowych. Peter Morville — jest twórcą podstaw wiedzy o architekturze informacji i wykładowcą na Uniwersytecie Michigan. Często zabiera głos na różnych międzynarodowych konferencjach. Jorge Arango — jest architektem informacji z ogromnym doświadczeniem w projektowaniu produktów cyfrowych i usług, prezesem Information Architecture Institute i redaktorem naczelnym magazynu „Boxes and Arrows”.

29
Eлектронна книга

Architektura oprogramowania w praktyce. Wydanie IV

Len Bass, Paul Clements, Rick Kazman

To kompletny, praktyczny i sprawdzony przewodnik po tworzeniu architektury nowoczesnego oprogramowania, w pełni zaktualizowany o nowe materiały poświęcone rozwiązaniom mobilnym, chmurze, zarządzaniu energią, podejściu DevOps, przetwarzaniu kwantowemu i innym zagadnieniom. Zaktualizowana o 11 nowych rozdziałów książka Architektura oprogramowania w praktyce, wydanie czwarte dokładnie wyjaśnia, czym jest architektura oprogramowania, dlaczego ma ona znaczenie, a także jak ją projektować, tworzyć, analizować i modyfikować oraz jak nią zarządzać w zdyscyplinowany i skuteczny sposób. Trzech poważanych architektów oprogramowania omawia cały cykl życia, prezentując praktyczne wskazówki, metody stosowane przez ekspertów i sprawdzone modele przydatne w każdym projekcie niezależnie od poziomu jego złożoności. Dowiesz się, jak za pomocą architektury radzić sobie z coraz większymi wymaganiami i systemami oraz wyższym poziomem abstrakcji, a także jak uzyskiwać emergentne atrybuty jakościowe, gdy systemy są dynamicznie łączone na nowe sposoby. W tym podręczniku znajdziesz informacje na temat optymalizowania za pomocą architektury najważniejszych atrybutów jakościowych (w tym wydajności, modyfikowalności, zabezpieczeń, dostępności, współdziałania, testowalności, użyteczności, łatwości wdrażania itd.), co pomoże Ci zrozumieć, jak zarządzać istniejącymi architekturami, dopracowywać je, przekształcać w celu rozwiązywania nowych problemów i tworzyć architektury wielokrotnego użytku, które stają się strategicznymi aktywami biznesowymi. Zobacz, jak architektura wpływa na środowisko techniczne, cykle życia projektów, profile biznesowe i Twoją pracę, a także jak te czynniki wpływają na architekturę. Wykorzystaj sprawdzone wzorce, interfejsy i praktyki do optymalizowania jakości za pomocą architektury. Twórz architekturę z myślą o rozwiązaniach mobilnych, chmurze, uczeniu maszynowym i przetwarzaniu kwantowym. Projektuj systemy pod kątem coraz ważniejszych atrybutów takich jak wydajność energetyczna i bezpieczeństwo. Skaluj systemy, odkrywając czynniki istotne architektonicznie, stosując podejście DevOps i potoki wdrażania oraz zarządzając długiem architektonicznym. Poznaj rolę architektury w organizacji, co pozwoli Ci tworzyć bardziej wartościowe rozwiązania.

30
Eлектронна книга

Artificial Intelligence for IoT Cookbook. Over 70 recipes for building AI solutions for smart homes, industrial IoT, and smart cities

Michael Roshak

Artificial intelligence (AI) is rapidly finding practical applications across a wide variety of industry verticals, and the Internet of Things (IoT) is one of them. Developers are looking for ways to make IoT devices smarter and to make users’ lives easier. With this AI cookbook, you’ll be able to implement smart analytics using IoT data to gain insights, predict outcomes, and make informed decisions, along with covering advanced AI techniques that facilitate analytics and learning in various IoT applications.Using a recipe-based approach, the book will take you through essential processes such as data collection, data analysis, modeling, statistics and monitoring, and deployment. You’ll use real-life datasets from smart homes, industrial IoT, and smart devices to train and evaluate simple to complex models and make predictions using trained models. Later chapters will take you through the key challenges faced while implementing machine learning, deep learning, and other AI techniques, such as natural language processing (NLP), computer vision, and embedded machine learning for building smart IoT systems. In addition to this, you’ll learn how to deploy models and improve their performance with ease.By the end of this book, you’ll be able to package and deploy end-to-end AI apps and apply best practice solutions to common IoT problems.

31
Eлектронна книга

ASP.NET Core 2 and Vue.js. Full Stack Web Development with Vue, Vuex, and ASP.NET Core 2.0

Stuart Ratcliffe

This book will walk you through the process of developing an e-commerce application from start to finish, utilizing an ASP.NET Core web API and Vue.js Single-Page Application (SPA) frontend.We will build the application using a featureslice approach, whereby in each chapter we will add the required frontend and backend changes to complete an entire feature. In the early chapters, we’ll keep things fairly simple to get you started, but by the end of the book, you’ll be utilizing some advanced concepts, such as server-side rendering and continuous integration and deployment. You will learn how to set up and configure a modern development environment for building ASP.NET Core web APIs and Vue.js SPA frontends.You will also learn about how ASP.NET Core differs from its predecessors, and how we can utilize those changes to our benefit. Finally, you will learn the fundamentals of building modern frontend applications using Vue.js, as well as some of the more advanced concepts, which can help make you more productive in your own applications in the future.

32
Eлектронна книга

ASP.NET Core 2 High Performance. Learn the secrets of developing high performance web applications using C# and ASP.NET Core 2 on Windows, Mac, and Linux - Second Edition

James Singleton

The ASP.NET Core 2 framework is used to develop high-performance and cross-platform web applications. It is built on .NET Core 2 and includes significantly more framework APIs than version 1.This book addresses high-level performance improvement techniques. It starts by showing you how to locate and measure problems and then shows you how to solve some of the most common ones. Next, it shows you how to get started with ASP.NET Core 2 on Windows, Mac, Linux, and with Docker containers.The book illustrates what problems can occur as latency increases when deploying to a cloud infrastructure. It also shows you how to optimize C# code and choose the best data structures for the job. It covers new features in C# 6 and 7, along with parallel programming and distributed architectures.By the end of this book, you will be fixing latency issues and optimizing performance problems, but you will also know how this affects the complexity and maintenance of your application. Finally, we will explore a few highly advanced techniques for further optimization.