Inne - Programowanie
SOA. Koncepcje, technologie i projektowanie
Thomas Erl
Czasy, kiedy użytkownicy otrzymywali zamknięte produkty, zapakowane w pudełko z nośnikiem i instrukcją, przemijają. Świat IT zmierza w kierunku SOA (ang. Service-Oriented Architecture). Producenci chcą nam sprzedawać wiele usług, które potrafią komunikować się między sobą i dostarczać użytkownikom wymierne korzyści. To podejście pozwala lepiej zarządzać procesem wytwarzania usługi, łatwiej wprowadzać zmiany i aktualizacje oraz elastyczniej rozliczać się z klientami. Od tej drogi nie ma już odwrotu - SOA to przyszłość branży IT! Ta książka to świetne źródło informacji na ten temat. W trakcie lektury poznasz podstawy i założenia tej architektury oraz dowiesz się, jakie narzędzia wykorzystać, żeby wytworzyć produkt spełniający zasady SOA. Książka ta jest bogata w analizy przypadków oraz przykłady z życia, które pozwolą Ci przekonać się, jak bardzo architektura ukierunkowana na usługi jest przydatna przy rozwiązywaniu codziennych problemów. SOA jest tworem żywym, który cały czas ewoluuje - wymaga to kontroli organizacji oraz ustalenia pewnych standardów, czyli określenia, jak takie usługi mają wyglądać. W trakcie lektury dowiesz się, kto sprawuje nad tym pieczę oraz jakie są kierunki rozwoju SOA. Książka ta będzie biblią każdego projektanta i dewelopera usług sieciowych. Nie możesz minąć jej obojętnie! Dzięki tej książce dowiesz się: jak SOA zmienia świat IT dlaczego warto wykorzystać SOA w Twoim projekcie jak projektować usługi sieciowe jak zapewnić bezpieczeństwo usługom w SOA Przekonaj się, jak SOA może zmienić Twój świat!
Joseph Ingeno
The Software Architect’s Handbook is a comprehensive guide to help developers, architects, and senior programmers advance their career in the software architecture domain. This book takes you through all the important concepts, right from design principles to different considerations at various stages of your career in software architecture. The book begins by covering the fundamentals, benefits, and purpose of software architecture. You will discover how software architecture relates to an organization, followed by identifying its significant quality attributes. Once you have covered the basics, you will explore design patterns, best practices, and paradigms for efficient software development.The book discusses which factors you need to consider for performance and security enhancements. You will learn to write documentation for your architectures and make appropriate decisions when considering DevOps. In addition to this, you will explore how to design legacy applications before understanding how to create software architectures that evolve as the market, business requirements, frameworks, tools, and best practices change over time.By the end of this book, you will not only have studied software architecture concepts but also built the soft skills necessary to grow in this field.
Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja
Sandro Mancuso
Coraz więcej mówi się o dobrych praktykach programistycznych, a mimo to wciąż zdarzają się przypadki wydania nieudanego produktu. Istnieje wiele przyczyn tego stanu rzeczy, np. postrzeganie procesu tworzenia oprogramowania jako linii produkcyjnej, brak właściwego zarządzania projektami, a także brak wypracowanych metod rekrutacji specjalistów i kierowania zespołem. Rozwój metodyk zwinnego programowania poprawił sytuację, lecz problem niskiej jakości samych projektów nie zniknął. Książka ta proponuje czysto rzemieślnicze podejście do pracy programisty. Idea ta, znana jako software craftsmanship, zakłada kompletną zmianę sposobu myślenia o programowaniu. Priorytetami stają się tu profesjonalizm, techniczna perfekcja i zadowolenie klienta, a osiąga się to, stosując pewne praktyki programistyczne, które zaczerpnięto m.in. z metodyk programowania ekstremalnego, zwinnego i odchudzonego. Autor, który jest współzałożycielem największej organizacji deweloperów-rzemieślników, dzieli się swoją wiedzą i doświadczeniem poprzez inspirujące przykłady i praktyczne rady. Okazuje się, że dzięki tej postawie zespół może osiągnąć najwyższy poziom technicznej doskonałości tworzonych projektów. Jest to książka o peofesjonalizmie programowania. Nie tylko o profesjonalizmie programisty, ale również o całej organizacji tworzenia oprogramowania Jest to książka o mistrzostwie w programowaniu. Na jej stronach autor przedstawia plan, srategię, podejścia i reguły, które mogą pomóc każdemu programiście, każdemu zespołowi programistów i każdej organizacji wytwarzającej oprogramowanie w wyrwaniu się z grzęzawiska mierności i we wkroczeniu na ścieżkę profesjonalizmu, jak również w zapewnieniu większej wydajności oraz poczucia dumy z tego, co się robi. / ze wstępu, Robert C. Martin Z książki dowiesz się: w jaki sposób podejście rzemieślnicze zwiększa jakość tworzonego oprogramowania i obsługi klientów, kiedy i jak mówić klientowi nie oraz jak proponować rozwiązania zastępcze, dlaczego dobrym deweloperom zdarza się pisać zły kod i jak można temu zapobiegać, jak być pragmatykiem — a nie dogmatykiem — w kwestii stosowania praktyk i narzędzi, w jaki sposób zatrudniać deweloperów-rzemieślników, jak nimi kierować, jak zaszczepić w zespole prawdziwy kult uczenia się, jak wprowadzać zmiany techniczne. Programuj profesjonalnie — liczą się pragmatyzm, perfekcja i cel! Sandro Mancuso programuje od dziecka. Pracował w wielu różnych firmach, również w korporacjach międzynarodowych i bankach inwestycyjnych. Jest zwolennikiem idei programowania mistrzowskiego i ekstremalnego. W październiku 2013 roku został współzałożycielem firmy konsultingowej o nazwie Codurance, w której za podstawę działania przyjęto zasady i wartości software craftsmanship. Mancuso jako cel zawodowy przyjął sobie podnoszenie jakości branży informatycznej przez pomaganie deweloperom w doskonaleniu rzemiosła programistycznego. Często bierze udział w konferencjach informatycznych w różnych miejscach świata.
Specyfikacja na przykładach. Poznaj zwinne metody pracy i dostarczaj właściwe oprogramowanie
Gojko Adzic
Skutecznie zbieraj wymagania! Dokładne poznanie wymagań klienta to klucz do w pełni wydajnej aplikacji. Jest niezbędne, by sprostać oczekiwaniom jej przyszłych użytkowników. Metoda SBE (skrót od ang. specification by example) zachęca do zwinnego (agile) podejścia do tego tematu, dzięki czemu zebranie wymagań będzie przebiegało zdecydowanie sprawniej. Ta książka rozwieje wszystkie Twoje wątpliwości! Poznasz kluczowe wzorce procesu oraz nauczysz się wprowadzać w nich zmiany. Podejście SBE wymaga zmiany kultury pracy zespołu. Nie jest to zadanie łatwe, dlatego znajdziesz tu najlepsze praktyki stosowane w tej sytuacji. Ostatnie rozdziały książki zostały poświęcone omówieniu przykładów z życia wziętych, a dotyczących najczęściej spotykanych problemów. To szczególnie cenne informacje, które pozwolą Ci wybrać najlepsze sposoby uniknięcia typowych błędów. Książka ta jest obowiązkową lekturą dla wszystkich twórców oprogramowania! Dzięki tej książce: poznasz zalety SBE dowiesz się, dlaczego wspólne specyfikowanie jest tak istotne nauczysz się definiować cel z uwzględnieniem wzorców zmienisz kulturę pracy Twojego zespołu skutecznie wprowadzisz SBE w Twojej organizacji Poznaj zalety SBE!
Specyfikacja oprogramowania. Inżynieria wymagań. Wydanie III
Karl Wiegers, Joy Beatty
Twórz oprogramowanie skrojone pod wymagania klientów! Zebranie i opracowanie wymagań dotyczących tworzonego oprogramowania to jeden z fundamentów udanego projektu. Znajomość zakresu prac jest kluczową informacją dla wszystkich osób prowadzących projekt oraz bezcennym źródłem wiedzy dla deweloperów tworzących kod. Brzmi prosto, ale wcale tak nie jest! Identyfikacja interesariuszy, dokumentacja wymagań, określanie ich wartości biznesowej - to tylko niektóre z wyzwań stojących przed analitykami i ich zespołami! Sięgnij po tę książkę, by uniknąć typowych problemów i pułapek. W kolejnych rozdziałach znajdziesz kluczowe informacje na temat wymagań dotyczących oprogramowania, roli analityka biznesowego oraz dobrych praktyk w inżynierii wymagań. Część II tej książki została poświęcona opracowywaniu wymagań. Dowiedz się, jak określać wymagania biznesowe, rozmawiać z użytkownikami oraz dokumentować i walidować wymagania. W prawdziwym świecie spotkasz się z różnymi typami projektów. W zależności od ich charakteru trzeba będzie na bieżąco dostosowywać poznane techniki. Projekty zwinne, projekty systemów wbudowanych, automatyzacja procesów biznesowych to tylko część z omawianych obszarów. Książka ta jest klasycznym podręcznikiem, obowiązkową lekturą każdego analityka oraz osób odpowiedzialnych za wymagania. Dzięki tej książce: nauczysz się identyfikować interesariuszy oraz rozmawiać z klientami poznasz dobre praktyki w inżynierii wymagań zrozumiesz zadania analityka biznesowego ograniczysz ryzyko dzięki prototypowaniu poznasz projekty różnego typu zrozumiesz proces zarządzania wymaganiami Lektura obowiązkowa każdego analityka i osób odpowiedzialnych za wymagania!
Dinesh Rajput
Design patterns help speed up the development process by offering well tested and proven solutions to common problems. These patterns coupled with the Spring framework offer tremendous improvements in the development process.The book begins with an overview of Spring Framework 5.0 and design patterns. You will understand the Dependency Injection pattern, which is the main principle behind the decoupling process that Spring performs, thus making it easier to manage your code. You will learn how GoF patterns can be used in Application Design. You will then learn to use Proxy patterns in Aspect Oriented Programming and remoting. Moving on, you will understand the JDBC template patterns and their use in abstracting database access. Then, you will be introduced to MVC patterns to build Reactive web applications. Finally, you will move on to more advanced topics such as Reactive streams and Concurrency.At the end of this book, you will be well equipped to develop efficient enterprise applications using Spring 5 with common design patterns
Claudio Eduardo de Oliveira
With growing demands, organizations are looking for systems that are robust and scalable. Therefore, the Spring Framework has become the most popular framework for Java development. It not only simplifies software development but also improves developer productivity. This book covers effective ways to develop robust applications in Java using Spring.The book has three parts, where each one covers the building of a comprehensive project in Java and Spring. In the first part, you will construct a CMS Portal using Spring's support for building REST APIs. You will also learn to integrate these APIs with AngularJS and later develop this application in a reactive fashion using Project Reactor, Spring WebFlux, and Spring Data. In the second part, you’ll understand how to build a messaging application, which will consume the Twitter API and perform filtering and transformations. Here, you will also learn about server-sent events and explore Spring’s support for Kotlin, which makes application development quick and efficient. In the last part, you will build a real microservice application using the most important techniques and patterns such as service discovery, circuit breakers, security, data streams, monitoring, and a lot more from this architectural style.By the end of the book, you will be confident about using Spring to build your applications.
Alex Antonov
The Spring framework provides great flexibility for Java development, which also results in tedious configuration work. Spring Boot addresses the configuration difficulties of Spring and makes it easy to create standalone, production-grade Spring-based applications.This practical guide makes the existing development process more efficient. Spring Boot Cookbook 2.0 Second Edition smartly combines all the skills and expertise to efficiently develop, test, deploy, and monitor applications using Spring Boot on premise and in the cloud. We start with an overview of the important Spring Boot features you will learn to create a web application for a RESTful service. Learn to fine-tune the behavior of a web application by learning about custom routes and asset paths and how to modify routing patterns. Address the requirements of a complex enterprise application and cover the creation of custom Spring Boot starters.This book also includes examples of the new and improved facilities available to create various kinds of tests introduced in Spring Boot 1.4 and 2.0, and gain insights into Spring Boot DevTools. Explore the basics of Spring Boot Cloud modules and various Cloud starters to make applications in “Cloud Native” and take advantage of Service Discovery and Circuit Breakers.
Craig Walls
Spring jest frameworkiem ułatwiającym tworzenie nowoczesnych aplikacji w Javie. To narzędzie, które dynamicznie się rozwija i z każdym nowym wydaniem zapewnia programistom kolejne, ekscytujące możliwości. Piąta wersja Springa okazała się krokiem milowym. Obecnie projektanci mogą tworzyć mikrousługi, korzystać z funkcji programowania reaktywnego i doskonalić budowanie aplikacji zgodnie z modelem MVC. Dzięki pełnej integracji Springa ze Spring Boot nawet najbardziej złożone projekty wymagają minimalnej ilości kodu konfiguracyjnego. W efekcie tworzone aplikacje internetowe są w większym stopniu skalowalne i efektywniejsze w wykorzystywaniu wątków. To kolejne, uzupełnione i zaktualizowane wydanie przewodnika po frameworku Spring. Książka jest napisana w zwięzłym, przejrzystym i jasnym stylu, dzięki czemu szybko zrozumiesz zasady pracy ze Springiem i zbudujesz nowoczesną aplikację internetową współpracującą z bazą danych. Pokazano tu techniki programowania reaktywnego, pisania mikrousług, wykrywania usług, wyjaśniono również pracę z API RESTful i zasady wdrażania aplikacji. Nauczysz się też stosować najlepsze praktyki programowania w Springu. Książka jest znakomitą pomocą dla programistów Javy, którzy dopiero zaczynają pracę z tym frameworkiem, a także dla tych, którzy chcą opanować nowe rozwiązania oferowane przez kolejne wersje ekosystemu Springa. W tej książce między innymi: solidne wprowadzenie do frameworków Spring i Spring Boot integracja aplikacji Springa z innymi aplikacjami programowanie reaktywne w tworzeniu aplikacji internetowych tworzenie mikrousług i praca ze Spring Cloud wdrażanie aplikacji w środowisku produkcyjnym i korzystanie ze Spring Boot Admin Nowoczesna aplikacja w Javie? Sprawdź Springa!
Spring. Wstęp do programowania aplikacji
Paweł Kamiński
Poznaj jeden z najpopularniejszych frameworków do projektowania aplikacji w Javie Spring należy do rodziny frameworków Javy. Jego pierwsza edycja ujrzała światło dzienne w 2002 roku i od razu spotkał się z pozytywnym odbiorem programistów. Spring Framework zyskał uznanie i popularność, ponieważ działa na zasadzie lekkiego szablonu, umożliwiającego dużą dowolność, jeśli chodzi o wybór modelu programowania. W efekcie za jego pomocą można tworzyć szerokie spektrum aplikacji - od niewielkich i prostych po potężne i bardzo skomplikowane. To książka skierowana do programistów - przede wszystkim tych, którzy tworzą aplikacje internetowe i chcieliby zacząć pracować ze Spring Frameworkiem. Teorię ograniczono w niej do niezbędnego minimum, a główny nacisk położono na aspekty praktyczne, by Czytelnik po lekturze mógł swobodnie sam stworzyć aplikację internetową. Z książki dowiesz się między innymi: Jak zbudowany jest Spring Framework Czym się różni klasyczny Spring od Spring Boota Które elementy frameworka trzeba poznać, by zacząć projektować aplikacje Jakiego rodzaju projekty można zrealizować przy użyciu Spring Frameworka
Sterowanie programowalne. Od mikrokontrolera do sterownika PLC
Witold Krieser
Urządzenia elektryczne pod Twoją kontrolą Sterowanie jest procesem, w którym sygnały wejściowe odpowiednio oddziaływują na wyjścia – zgodnie z regułami sterowania, czyli odpowiednimi algorytmami. Owe algorytmy można realizować na wiele różnych sposobów, m.in. przez bramki logiczne i układy mikrokontrolerów, z czym wiąże się pojęcie sterowników swobodnie programowalnych PLC. Na nich właśnie skupia się autor niniejszej książki. Poradnik zapozna Cię m.in. z podstawami programowania w języku LD. Podpowie też kilka ciekawych projektów programów w tym języku. Znajdziesz tu ogólny opis technik sterowania – w szczególności sterowania programowalnego. Przydać może Ci się także zawarta w książce dokumentacja programów na sterowniki PLC w języku LD, stanowiąca listę przyporządkowań i schemat podłączeń elektrycznych do sterownika. UWAGA – ta książka stanowi świetne uzupełnienie wiedzy dla uczniów kształcących się w zawodach elektryk, technik elektryk, mechatronik, technik mechatronik i technik automatyk!
Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących
James Cutajar
Aby aplikacje mogły spełniać oczekiwania dotyczące wydajności i szybkości działania, programista musi orientować się w typowych problemach z wykonywaniem kodu i wiedzieć, które techniki sprawdzą się w danej sytuacji. W tym celu powinien biegle posługiwać się algorytmami i strukturami danych. Wiedza ta umożliwia rozpoznawanie typowych zagrożeń i wybór najlepszych rozwiązań. Warto pamiętać, że w przypadku większości codziennych problemów z kodem istnieją już wypróbowane rozwiązania. Znajomość tych zagadnień jest niezwykle ważna dla każdego inżyniera oprogramowania. To książka przeznaczona dla programistów, którzy chcą w praktyczny sposób posługiwać się popularnymi algorytmami i strukturami danych, zrozumieć ich działanie i skuteczniej poprawiać wydajność swojego kodu w Javie. Przedstawiono tu narzędzia przydatne w pracy z algorytmami i w tworzeniu efektywnych aplikacji. Opisano praktyczne aspekty złożoności algorytmów. Omówiono algorytmy sortowania oraz inne popularne wzorce programowania, a także takie struktury danych jak drzewa binarne, tablice z haszowaniem i grafy. Następnie zaprezentowano koncepcje bardziej zaawansowane, wśród nich paradygmaty projektowania algorytmów i teorię grafów. W tej książce między innymi: definiowanie algorytmu i złożoność algorytmiczna struktury danych i ich implementacje algorytmy sortowania i wyszukiwania wzorca w tekście paradygmaty projektowania algorytmów grafy i sposoby ich reprezentacji w programach komputerowych grafy jako moduły do budowy złożonych algorytmów Algorytm i struktura danych: tak działa optymalny kod!
A B Vijay Kumar
GraalVM is a universal virtual machine that allows programmers to compile and run applications written in both JVM and non-JVM languages. It improves the performance and efficiency of applications, making it an ideal companion for cloud-native or microservices-based applications.This book is a hands-on guide, with step-by-step instructions on how to work with GraalVM. Starting with a quick introduction to the GraalVM architecture and how things work under the hood, you'll discover the performance benefits of running your Java applications on GraalVM. You'll then learn how to create native images and understand how AOT (ahead-of-time) can improve application performance significantly. The book covers examples of building polyglot applications that will help you explore the interoperability between languages running on the same VM. You'll also see how you can use the Truffle framework to implement any language of your choice to run optimally on GraalVM.By the end of this book, you'll not only have learned how GraalVM is beneficial in cloud-native and microservices development but also how to leverage its capabilities to create high-performing polyglot applications.
Gaston C. Hillar
Swift has quickly become one of the most-liked languages and developers’ de-facto choice when building applications that target iOS and macOS. In the new version, the Swift team wants to take its adoption to the next level by making it available for new platforms and audiences.This book introduces the object-oriented paradigm and its implementation in the Swift 3 programming language to help you understand how real-world objects can become part of fundamental reusable elements in the code. This book is developed with XCode 8.x and covers all the enhancements included in Swift 3.0. In addition, we teach you to run most of the examples with the Swift REPL available on macOS and Linux, and with a Web-based Swift sandbox developed by IBM capable of running on any web browser, including Windows and mobile devices.You will organize data in blueprints that generate instances. You’ll work with examples so you understand how to encapsulate and hide data by working with properties and access control. Then, you’ll get to grips with complex scenarios where you use instances that belong to more than one blueprint. You’ll discover the power of contract programming and parametric polymorphism. You’ll combine generic code with inheritance and multiple inheritance. Later, you’ll see how to combine functional programming with object-oriented programming and find out how to refactor your existing code for easy maintenance.
Dr. Fatih Nayebi
Swift is a multi-paradigm programming language enabling you to tackle different problems in various ways. Understanding each paradigm and knowing when and how to utilize and combine them can lead to a better code base. Functional programming (FP) is an important paradigm that empowers us with declarative development and makes applications more suitable for testing, as well as performant and elegant. This book aims to simplify the FP paradigms, making them easily understandable and usable, by showing you how to solve many of your day-to-day development problems using Swift FP.It starts with the basics of FP, and you will go through all the core concepts of Swift and the building blocks of FP. You will also go through important aspects, such as function composition and currying, custom operator definition, monads, functors, applicative functors,memoization, lenses, algebraic data types, type erasure, functional data structures, functional reactive programming (FRP), and protocol-oriented programming(POP). You will then learn to combine those techniques to develop a fully functional iOS application from scratch
Swift od podstaw. Praktyczny przewodnik
Paweł Pasternak
Dołącz do programistów języka Swift! Zrozum konstrukcje i składnię Swifta Poznaj środowisko Xcode od podszewki Naucz się korzystać z kontrolek Pisz testy jednostkowe Firma Apple od lat z powodzeniem i świetnym wyczuciem potrzeb klientów działa na rynku elektroniki użytkowej. Pracujący w niej inżynierowie projektują produkty oryginalne, funkcjonalne i wyprzedzające swoją epokę. Ważną składową tego sukcesu jest wysokiej jakości oprogramowanie, które można tworzyć wyłącznie za pomocą wydajnych, wygodnych w użyciu i nowoczesnych narzędzi programistycznych. Przewodnik ten poświęcono językowi Swift, który jest podstawą oprogramowania współpracującego z macOS, iOS, watchOS oraz tvOS. Od chwili wprowadzenia na rynek w 2014 roku Swift doczekał się już trzeciej wersji i powoli wypiera królujący niepodzielnie od lat Objective-C. Jeśli chcesz poznać najnowszą wersję języka Swift oraz środowisko programistyczne Xcode, sięgnij po tę książkę! Opanujesz dzięki niej przejrzystą składnię Swifta, typy danych oraz sposoby deklarowania stałych i zmiennych. Dowiesz się, jak tworzyć instrukcje warunkowe i pętle, jak korzystać z operatorów, funkcji, tablic, słowników, krotek i klas. Poznasz elementy interfejsu użytkownika, nauczysz się zarządzać danymi w swoich aplikacjach i posługiwać się komentarzami. Zrozumiesz także, jak działają narzędzia oferowane przez środowisko Xcode, i zyskasz wiedzę o podstawach pisania testów jednostkowych. Czas na naukę! Podstawowe informacje o języku Swift i środowisku programistycznym Xcode Korzystanie z Playground i wyświetlanie danych na ekranie Proste typy danych oraz używanie zmiennych i stałych Korzystanie z operatorów i tworzenie funkcji Używanie instrukcji warunkowych i różnych rodzajów pętli Posługiwanie się złożonymi typami danych i możliwości obiektowe Korzystanie z kontrolek, obsługa akcji i delegacji Zapisywanie i odczytywanie danych przy użyciu CoreData Tworzenie komentarzy i pisanie testów jednostkowych Wkrocz w świat programowania na platformy Apple!