Inne - Programowanie
Skuteczny Rust. 35 konkretnych sposobów na ulepszenie kodu w języku Rust
David Drysdale
Popularność Rusta rośnie ze względu na jego cechy, takie jak bezpieczeństwo pamięci, bezpieczeństwo typów oraz bezpieczeństwo wątków. Jednak te same elementy sprawiają, że nauka Rusta stanowi wyzwanie nawet dla doświadczonych programistów. Ten praktyczny poradnik pomoże przejść do pisania idiomatycznego języka Rust. W efekcie będziemy mogli w pełni korzystać z systemu typów Rusta, gwarancji bezpieczeństwa oraz rozwijającego się ekosystemu. Adresatami tej książki są inżynierowie oprogramowania mający doświadczenie z istniejącym kompilowanym językiem lub borykający się z przekształceniem podstawowego zrozumienia składni Rusta w działające programy. Książka ta skupia się na koncepcyjnych różnicach między Rustem a innymi kompilowanymi językami i podaje konkretne zalecenia, łatwe do zastosowania przez programistów. Autor sprawi, że zamiast kiepskiego tłumaczenia z C++, wkrótce będziecie biegle pisać programy w języku Rust. Książka ta pomoże: - zrozumieć struktury podstawowego systemu typów Rusta; - nauczyć się idiomów Rusta służących do obsługi błędów, iteracji i innych elementów; - odkryć, jak działa ekosystem skrzynek Rusta; - wykorzystywać system typów Rusta do przedstawienia własnego projektu; - wygrywać pojedynki z funkcją borrow checker; - tworzyć rozbudowany projekt, w pełni wykorzystujący ekosystem narzędzi Rusta. David Drysdale jest inżynierem oprogramowania w firmie Google, który pracuje w języku Rust od 2019 roku, przede wszystkim w obszarze zabezpieczeń. Kierował pracami nad przepisaniem sprzętowego podsystemu kryptograficznego Androida na język Rust i jest autorem portu Rusta dla biblioteki kryptograficznej Tink. Pracował także w C/C++ i Go oraz nad tak zróżnicowanymi projektami jak jądro Linuksa i mobilne aplikacje wideokonferencji. "Skuteczny Rust to znakomity zbiór praktycznej wiedzy o języku, wykraczający poza podstawę. Porady zawarte w tej książce pomogą wam w osiągnięciu poziomu pewnego siebie i gruntownie wykształconego użytkownika Rusta". - Carol Nichols Współautorka książki The Rust Programming Language "Skuteczny Rust zagłębia się w większość zaleceń, które daję ludziom na temat sposobów ulepszania ich projektów. Jest to świetne źródło do podnoszenia swoich kwalifikacji w języku Rust". - Pietro Albini Były członek zespołu Rust Core
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.