Techniki programowania
W kategorii Techniki programowania znajdziecie książki dobrane pod względem merytorycznym zarówno dla amatorów jak i profesjonalistów z dziedziny programowania.
Dowiecie się jak poprawnie napisać i udokumentować własny kod oraz przeczytacie o najskuteczniejszych metodach refaktoryzacji czyli w jaki sposób poprawiać i optymalizować kod napisany przez innych programistów. Poznacie sposoby optymalizacji algorytmów, analizy złożoności, kompresji danych czy elementy algorytmiki grafów. Zaznajomicie się nie tylko z najlepszymi wzorcami w wytwarzaniu oprogramowania ale także nauczycie się rozpoznawać najczęstsze błędy i czyhające na Was pułapki.
Sztuka kodowania. Sekrety wielkich programistów
Peter Seibel
Zajrzyj bezkarnie programiście przez ramię! Czym naprawdę jest programowanie? Jak swoją przygodę rozpoczynali wielcy tej branży? Czy istnieje bezbłędny program? Programiści to tajemnicze osoby, które potrafią zmusić komputery do wykonywania karkołomnych zadań, wymyślanych przez zwykłych użytkowników. Spędzają cały dzień przed komputerem, a ich świat to monitor, klawiatura i hektolitry kawy. Czy to prawda? Na to pytanie odpowiada książka, którą trzymasz w rękach. Dzięki niej spojrzysz na ten zawód z zupełnie innego punktu widzenia. Jej autor przeprowadza wywiady z najbardziej rozpoznawalnymi osobami z tej branży. Mówią one o swoich pierwszych krokach w świecie programowania, opowiadają, jak nauczyły się swojego pierwszego języka oraz jak widzą tę gałąź wiedzy w przyszłości. Czym naprawdę jest programowanie? Rzemiosłem, sztuką, a może nauką? Te pytania stawia autor we wprowadzeniu i ma nadzieję, że wypowiedzi jego gości choć trochę zbliżą go do znalezienia odpowiedzi. Ta unikalna książka pozwoli Ci poznać bliżej wybitne osoby, od lat związane z informatyką. Anegdoty, ciekawe opowieści, wiele przykładów to tylko niektóre z proponowanych przez nią atrakcji. Zagłębiając się w kolejne wypowiedzi, przekonasz się, jak często przypadek decyduje o sukcesie lub porażce. W trakcie lektury będziesz mieć okazję zapoznać się z wypowiedziami takich sław, jak: Jamie Zawinski — wybitny programista Lisp, pracujący przy pierwszych wersjach przeglądarki Netscape Brad Fitzpatrick — najmłodsza osoba w gronie, programista "od zawsze" Douglas Crockford — starszy architekt JavaScript w Yahoo!; pomysłodawca formatu JSON Brendan Eich — twórca języka JavaScript Joshua Bloch — szef Java Architect w Google; w trakcie pracy w Sun Microsystem był kierownikiem zespołu projektującego i implementującego Java Collections Framework Joe Armstrong — autor języka programowania Erlang Simon Peyton Jones — rozpoczął projekt, którego efektem było powstanie języka Haskell Peter Norvig — dyrektor działu badań w Google, wcześniej pracujący dla NASA Guy Steele — znawca języków; Cobol, Fortran, PDP-10, Java, Haskell to tylko niektóre z jego repertuaru Dan Ingalls — współtwórca języka Smalltalk L. Peter Deutsch — programista od końca lat pięćdziesiątych; zaczynał w wieku jedenastu lat Ken Thompson — współtwórca systemu UNIX Fran Allen — przez czterdzieści pięć lat pracował dla firmy IBM; instruktor języka Fortran Bernie Cosell — współautor oprogramowania wykorzystywanego w pierwszych węzłach sieci ARPANET Donald Knuth — autor jedynego najprawdopodobniej bezbłędnego programu — TeX Poznaj tajemny świat programistów, hakerów i wybitnych specjalistów!
Tablice informatyczne. Wzorce projektowe
Daniel Krasnokucki
Wzorce projektowe bez tajemnic! Odkryj najlepsze z używanych obecnie wzorców projektowych Dowiedz się, jaki wzorzec zastosować w konkretnym przypadku Naucz się właściwie wykorzystywać dany wzorzec w praktyce Wzorce projektowe ułatwiają tworzenie dobrego oprogramowania, umożliwiają unikanie typowych błędów i stanowią sprawdzone rozwiązania problemów informatycznych, z którymi ktoś kiedyś miał już do czynienia. Korzysta się z nich w celu zapewnienia wysokiej jakości wynikowego kodu i elastyczności rozwiązania programistycznego oraz skrócenia czasu jego tworzenia. Jeśli nie chcesz wymyślać koła na nowo i nie masz zamiaru podejmować beznadziejnego trudu zrobienia tego lepiej niż tysiące osób przed Tobą, wzorce projektowe są właśnie dla Ciebie! Stosuj je w codziennej pracy, korzystając z praktycznej ściągi, zawierającej najpotrzebniejsze informacje o najbardziej przydatnych wzorcach, dzięki którym Twoje programy będą spełniały branżowe standardy! Wzorce konstrukcyjne, strukturalne i operacyjne Zależności występujące między wzorcami Przeznaczenie i implementacja poszczególnych wzorców Zastosowanie wzorców projektowych w praktyce Tablice informatyczne — cała wiedza pod ręką!
TDD. Programowanie w Javie sterowane testami
Viktor Farcic, Alex Garcia
Programowanie sterowane testami (ang. test-driven development — TDD) nie jest nową metodyką. Jej praktyczne zastosowanie pozwala na rozwiązanie wielu problemów związanych z procesami rozwijania i wdrażania oprogramowania. Mimo ogromnych zalet, programowanie sterowane testami nie jest zbyt popularne wśród programistów. Wynika to z tego, że techniki TDD nie są łatwe do opanowania. Choć teoretyczne podstawy wydają się logiczne i zrozumiałe, nabranie wprawy w stosowaniu TDD wymaga długiej praktyki. Książka, którą trzymasz w ręce, została napisana przez programistów dla programistów. Jej celem jest przekazanie podstaw TDD i omówienie najważniejszych praktyk związanych z tą metodyką, a przede wszystkim — nauczenie praktycznego stosowania TDD w pracy. Autorzy nie ukrywają, że nabranie biegłości w takim programowaniu wymaga sporo wysiłku, jednak korzyści płynące z metodyki TDD są znaczne: skrócenie czasu wprowadzania produktów na rynek, łatwiejsza refaktoryzacja, a także wyższa jakość tworzonych projektów. Z tą książką dogłębnie zrozumiesz metodykę TDD i uzyskasz wystarczającą pewność siebie, by z powodzeniem stosować to podejście w trakcie programowania aplikacji w Javie. Dzięki tej książce: Nauczysz się podstaw metodyki TDD Poznasz potrzebne narzędzia, platformy i środowiska wraz ze szczegółami ich konfiguracji Wykonywasz praktyczne ćwiczenia i stopniowo wdrożysz się w TDD Poznasz proces „czerwone, zielone, refaktoryzacja” Dowiesz się, jak pisać testy jednostkowe wykonywane w izolacji od reszty kodu Dowiesz się, jak tworzyć prosty i łatwy w konserwacji kod, nauczysz się refaktoryzować już istniejący Nauczysz się pracować z atrapami, stosować programowanie sterowane zachowaniami, a także udostępniać połowicznie ukończone funkcje w środowisku produkcyjnym za pomocą przełączników funkcji Programowanie sterowane testami to metodyka dla prawdziwych profesjonalistów!
TDD. Techniki programowania sterowanego testami
Dariusz Woźniak
Odnieś sukces dzięki TDD! Poznaj filozofię programowania sterowanego testami Dowiedz się, jak wdrożyć metodę TDD w praktyce Naucz się stosować właściwe narzędzia i techniki Metoda Test-Driven Development pozwala na pisanie lepszej jakości, bardziej elastycznego i łatwiejszego w utrzymaniu kodu, na którym można w pełni polegać. Większa wydajność pracy programistów, którzy o wiele lepiej rozumieją potrzeby biznesowe stawiane tworzonym przez nich aplikacjom, znaczne przyspieszenie powtarzalnych testów - to tylko niektóre zalety TDD. Nic dziwnego, że świat zachwycił się tą techniką, a jej znajomość należy do podstawowych wymagań, które muszą spełnić inżynierowie pragnący rozwijać swoją karierę w branży IT. Jeśli chcesz poznać metodę TDD i nauczyć się tworzyć zgodne z nią testy jednostkowe, trafiłeś na właściwą książkę! W prosty sposób przedstawi Ci ona cykl Red-Green-Refactor, zaprezentuje zalety poprawnie zaimplementowanej techniki TDD, zwróci uwagę na trudności związane z wdrażaniem tej techniki i podpowie, jak sobie z nimi poradzić. Nauczysz się z niej pisać testy jednostkowe zgodnie z dobrymi praktykami oraz sprawdzać zależności i tworzyć atrapy obiektów. Dowiesz się, jak stosować TDD w przypadku już istniejącego kodu, a także jak mierzyć pokrycie kodu testami. Poznasz również podstawowe informacje na temat ciągłej integracji i jej znaczenia dla techniki TDD. Podstawowe informacje o testach i metodzie TDD Tworzenie dobrych testów jednostkowych Praktyczne zastosowanie biblioteki NUnit Atrapy i ich klasyfikacja Zastosowanie TDD do istniejącego kodu Pokrycie kodu testami i ciągła integracja Najważniejsze biblioteki wspierające TDD Poznaj w praktyce najbardziej przebojową metodę tworzenia oprogramowania!
TDD w praktyce. Niezawodny kod w języku Python
Harry Percival
„Ta książka to znacznie więcej niż tylko wprowadzenie do programowania sterowanego testami w Pythonie. To jest pełny kurs przedstawiający najlepsze praktyki, od początku do końca na przykładzie nowoczesnego programowania aplikacji sieciowej w Pythonie.” — Kenneth Reitz, członek Python Software Foundation Twórz niezawodne aplikacje w języku Python! Każdy programista marzy o pracy z przejrzystym kodem, który został w całości pokryty testami. Niestety, rzeczywistość bywa często daleka od ideału. A może da się go jednak osiągnąć? Odpowiedzią na to pytanie jest TDD (ang. Test-Driven Development), czyli wytwarzanie oprogramowania sterowane testami. Jak zacząć stosować tę technikę? Na to i wiele innych pytań odpowiada ta książka. Zacznij w praktyce realizować koncepcje płynące z TDD w połączeniu z językiem Python. Na początku dowiedz się, jak skonfigurować Django za pomocą testu funkcjonalnego, oraz skorzystaj z modułu unittest. Zdobądź też bezcenną wiedzę na temat testowania widoków, szablonów i adresów URL oraz naucz się testować układy strony i style. Sprawdź, jak zapewnić ciągłą integrację z wykorzystaniem systemu Jenkins oraz najlepszych praktyk w tworzeniu testowalnego kodu. Książka ta jest doskonałą lekturą dla wszystkich programistów tworzących aplikacje internetowe w języku Python. Twój kod może być naprawdę łatwy w utrzymaniu! Poznaj sposób pracy wykorzystujący podejście TDD, między innymi cykl test jednostkowy i tworzenie kodu, a później refaktoryzacja. Używaj testów jednostkowych dla klas i funkcji oraz testów funkcjonalnych pozwalających na symulowanie działań podejmowanych przez użytkownika w przeglądarce internetowej. Dowiedz się kiedy i jak używać obiektów imitacji, a także poznaj wady i zalety testów odizolowanych i zintegrowanych. Przetestuj i automatyzuj wdrożenie za pomocą serwera prowizorycznego. Zastosuj testy względem przygotowanych przez firmy trzecie wtyczek, które integrujesz z witryną. Używaj środowiska ciągłej integracji w celu automatycznego wykonywania testów. Poznaj techniki TDD w połączeniu z Pythonem!
Marius Bancila
Learn how the metaprogramming technique enables you to create data structures and functions that allow computation to happen at compile time. With this book, you'll realize how templates help you avoid writing duplicate code and are key to creating generic libraries, such as the standard library or Boost, that can be used in a multitude of programs.The introductory chapters of this book will give you insights into the fundamentals of templates and metaprogramming. You'll then move on to practice writing complex templates and exploring advanced concepts such as template recursion, template argument deduction, forwarding references, type traits, and conditional compilation. Along the way, you'll learn how to write variadic templates and how to provide requirements to the template arguments with C++20 constraints and concepts. Finally, you'll apply your knowledge of C++ metaprogramming templates to implement various metaprogramming patterns and techniques.By the end of this book, you'll have learned how to write effective templates and implement metaprogramming in your everyday programming journey.
Mikael Krief, Armon Dadgar
HashiCorp Configuration Language (HCL) has changed how we define and provision data center infrastructure with the launch of Terraform, a top-tier product for building Infrastructure as Code (IaC). Terraform Cookbook shows you how to leverage Terraform to manage complex infrastructure with ease.This new edition has been updated to include real-world examples for provisioning Azure, AWS and GCP infrastructure with Terraform. You'll delve into manual and automated testing with Terraform configurations, creating and managing a balanced, efficient, and reusable infrastructure with Terraform modules. You'll learn how to automate the deployment of Terraform configuration with continuous integration and continuous delivery (CI/CD).Besides that, several new chapters have been added that describe the use of Terraform for Docker and Kubernetes, examine advanced topics on GitOps practices, and explain how to test Terraform configurations using different tools to check code and security compliance. The final chapter covers troubleshooting common Terraform issues and provides solutions for frequently encountered errors.By the end of this book, you'll have developed the skills needed to get the most value out of Terraform and to effectively manage your infrastructure.
Adelina Simion
Experienced developers understand the importance of designing a comprehensive testing strategy to ensure efficient shipping and maintaining services in production. This book shows you how to utilize test-driven development (TDD), a widely adopted industry practice, for testing your Go apps at different levels. You’ll also explore challenges faced in testing concurrent code, and learn how to leverage generics and write fuzz tests.The book begins by teaching you how to use TDD to tackle various problems, from simple mathematical functions to web apps. You’ll then learn how to structure and run your unit tests using Go’s standard testing library, and explore two popular testing frameworks, Testify and Ginkgo. You’ll also implement test suites using table-driven testing, a popular Go technique. As you advance, you’ll write and run behavior-driven development (BDD) tests using Ginkgo and Godog. Finally, you’ll explore the tricky aspects of implementing and testing TDD in production, such as refactoring your code and testing microservices architecture with contract testing implemented with Pact. All these techniques will be demonstrated using an example REST API, as well as smaller bespoke code examples.By the end of this book, you’ll have learned how to design and implement a comprehensive testing strategy for your Go applications and microservices architecture.