Inne - Programowanie
Mikrousługi oparte na zdarzeniach. Wykorzystywanie danych w organizacji na dużą skalę
Adam Bellemare
Mikrousługi oparte na zdarzeniach mogły powstać dzięki rozwojowi konteneryzacji i łatwiejszemu pozyskiwaniu zasobów obliczeniowych. Szczególnie ciekawą propozycją są rozproszone, odporne na błędy, wysokowydajne i szybkie brokery zdarzeń. Te rozwiązania technologiczne pozwalają na korzystanie z wielkich zbiorów danych i zapewniają przetwarzanie zdarzeń w czasie zbliżonym do rzeczywistego. Taka architektura ma znaczenie nie tylko dla inżynierów systemu, ale także dla struktury i sposobu działania firm i organizacji. Nagle okazuje się, że można bezproblemowo wykonywać działania, które do niedawna nie były jeszcze możliwe. To praktyczny przewodnik, dzięki któremu samodzielnie ocenisz, jak dużą wartość biznesową mogą zyskać duże wolumeny danych, jeśli są wykorzystywane w organizacji przy użyciu architektury mikrousług opartych na zdarzeniach. Dowiesz się także, jak przygotować i przeprowadzić proces budowania organizacji, która wykorzystuje mikrousługi oparte na zdarzeniach. Poznasz wszechstronne, a przy tym proste wzorce odblokowujące wartość tych danych. W książce znalazło się również mnóstwo wskazówek i sugestii dotyczących projektowania systemu opartego na zdarzeniach, ponadto wyjaśniono tutaj kluczowe zasady architektoniczne. Wymieniono też przydatne narzędzia oraz opisano dokładnie techniki testowania mikrousług i wdrażania ich w środowisku produkcyjnym. W książce między innymi: rola architektury opartej na zdarzeniach w dostarczaniu wyjątkowej wartości biznesowej mikrousługi w projektowaniu opartym na zdarzeniach najlepsze wzorce architektoniczne wzorce aplikacji do tworzenia wielofunkcyjnych mikrousług opartych na zdarzeniach komponenty i narzędzia wymagane do uruchomienia ekosystemu mikrousługowego Mikrousługi: odblokuj potencjał danych!
Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów
Robert C. Martin
Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów Podręcznik profesjonalnego programisty! Robert C. Martin, znany jako Uncle Bob, to jeden z prawdziwych gwiazdorów branży IT, człowiek o niezwykłej charyzmie, rewelacyjnym podejściu do słuchaczy i poczuciu humoru. O jego czas wciąż biją się konferencje branżowe. Poza działalnością ekspercką Martin zajmuje się pisaniem książek - m.in. jest autorem znanego każdemu programiście tytułu Czysty kod. Książka, którą trzymasz w rękach, jest udaną kontynuacją tej pozycji. W trakcie lektury dowiesz się, jakie cechy charakteryzują profesjonalnego programistę, a jest ich sporo! W pierwszej kolejności musisz nauczyć się mówić "nie". Są też sytuacje, kiedy trzeba powiedzieć "tak" - dowiesz się, kiedy i jak to robić. Ponadto poznasz najlepsze techniki zarządzania czasem oraz przekonasz się, jak presja, zmęczenie i pośpiech wpływają na jakość Twojego kodu. W kolejnych rozdziałach Robert C. Martin zapozna Cię z różnymi sposobami podejścia do testowania kodu oraz współpracy między programistami a innymi ludźmi. Książka ta jest długo wyczekiwaną pozycją na rynku - nie pozwól, żeby ktoś miał ją przed Tobą! Zobacz, jak Uncle Bob: radzi sobie z presją mówi "nie" i "tak" zarządza czasem tworzy kod wysokiej jakości Obowiązkowa lektura każdego programisty!
Młody mistrz programowania. Języki Baltie i Scratch dla dzieci
Agnieszka Borkowska, Paweł Borkowski
Czarowanie na ekranie! W krainie Baltiego, czyli poznaj świat czarodzieja Na Skreczowisku, czyli zaprogramuj sobie grę Gry komputerowe to jedna z tych rzeczy, które dzieci lubią najbardziej. Zwykle mogłyby bez końca siedzieć przed ekranem i zabijać kolejne smoki, projektować domy, przedzierać się przez dżunglę lub jeździć wyścigówkami. Jednak rzadko przychodzi im do głowy, że równie wielką przyjemność może sprawić zaprojektowanie i zbudowanie własnej gry! Tu zaczyna się Twoje zadanie. Nie musisz być programistą, żeby pomóc swojemu dziecku odkryć fascynujący świat programowania — wystarczy Ci ta książka. Zainstaluj proste, przyjazne dzieciom środowiska Baltie i Scratch, by rozpocząć podróż po czarodziejskiej krainie. Z pierwszymi zadaniami z powodzeniem poradzą sobie nawet kilkulatki, a im dalej w las, tym ciekawsze stają się wyzwania. Dzieci szybko uczą się, jak działać w świecie duszków, obiektów i poleceń. Co więcej, sprawia im to dużą frajdę. I wreszcie nadchodzi ten moment, gdy wiedzą już, o co chodzi w tym całym programowaniu — a jest to wiedza niezwykle cenna w dzisiejszych czasach! Na pomoc czarodziejowi Korespondencja To, czego nigdy nie było Drugi stopień wtajemniczenia Porwanie Karciane pola Księga Czarów Hokus, fokus, pokus Pierwsze spotkanie z kotem Budujemy grę Najtrudniejsze zagadnienia Łagodnie wprowadź dziecko w świat programowania!
Mobile Test Automation with Appium. Mobile application testing made easy
Nishant Verma
Appium is an open source test automation framework for mobile applications. It allows you to test all three types of mobile applications: native, hybrid, and mobile web. It allows you to run the automated tests on actual devices, emulators, and simulators. Today, when every mobile app is made on at least two platforms, iOS and Android, you need a tool that allows you to test across platforms. Having two different frameworks for the same app increases the cost of the product and time to maintain it as well. Appium helps save this cost.With mobile app growth exploding, mobile app automation is mainstream now. In this book, author Nishant Verma provides you with a firm grounding in the concepts of Appium while diving into how to set up appium & Cucumber-jvm test automation framework, implement page object design pattern, automate gestures, test execution on emulators and physical devices, and implement continuous integration with Jenkins. The mobile app we have referenced in this book is Quikr because of its relatively lower learning curve to understand the application. It's a local classifieds shopping app.
Marius Bancila
C++ is one of the most widely used programming languages. Fast, efficient, and flexible, it is used to solve many problems. The latest versions of C++ have seen programmers change the way they code, giving up on the old-fashioned C-style programming and adopting modern C++ instead.Beginning with the modern language features, each recipe addresses a specific problem, with a discussion that explains the solution and offers insight into how it works. You will learn major concepts about the core programming language as well as common tasks faced while building a wide variety of software. You will learn about concepts such as concurrency, performance, meta-programming, lambda expressions, regular expressions, testing, and many more in the form of recipes. These recipes will ensure you can make your applications robust and fast.By the end of the book, you will understand the newer aspects of C++11/14/17 and will be able to overcome tasks that are time-consuming or would break your stride while developing.
Gaurav Agarwal
Containers have entirely changed how developers and end-users see applications as a whole. With this book, you'll learn all about containers, their architecture and benefits, and how to implement them within your development lifecycle.You'll discover how you can transition from the traditional world of virtual machines and adopt modern ways of using DevOps to ship a package of software continuously. Starting with a quick refresher on the core concepts of containers, you'll move on to study the architectural concepts to implement modern ways of application development. You'll cover topics around Docker, Kubernetes, Ansible, Terraform, Packer, and other similar tools that will help you to build a base. As you advance, the book covers the core elements of cloud integration (AWS ECS, GKE, and other CaaS services), continuous integration, and continuous delivery (GitHub actions, Jenkins, and Spinnaker) to help you understand the essence of container management and delivery. The later sections of the book will take you through container pipeline security and GitOps (Flux CD and Terraform).By the end of this DevOps book, you'll have learned best practices for automating your development lifecycle and making the most of containers, infrastructure automation, and CaaS, and be ready to develop applications using modern tools and techniques.
Federico Kereki
JavaScript has evolved into a language that you can use on any platform. Modern JavaScript Web Development Cookbook is a perfect blend of solutions for traditional JavaScript development and modern areas that developers have lately been exploring with JavaScript. This comprehensive guide teaches you how to work with JavaScript on servers, browsers, mobile phones and desktops.You will start by exploring the new features of ES8. You will then move on to learning the use of ES8 on servers (with Node.js), with the objective of producing services and microservices and dealing with authentication and CORS. Once you get accustomed to ES8, you will learn to apply it to browsers using frameworks, such as React and Redux, which interact through Ajax with services. You will then understand the use of a modern framework to develop the UI. In addition to this, development for mobile devices with React Native will walk you through the benefits of creating native apps, both for Android and iOS.Finally, you’ll be able to apply your new-found knowledge of server-side and client-side tools to develop applications with Electron.
Graham Lee
Your experience and knowledge always influence the approach you take and the tools you use to write your programs. With a sound understanding of how to approach your goal and what software paradigms to use, you can create high-performing applications quickly and efficiently.In this two-part book, you’ll discover the untapped features of object-oriented programming and use it with other software tools to code fast and efficient applications. The first part of the book begins with a discussion on how OOP is used today and moves on to analyze the ideas and problems that OOP doesn’t address. It continues by deconstructing the complexity of OOP, showing you its fundamentally simple core. You’ll see that, by using the distinctive elements of OOP, you can learn to build your applications more easily.The next part of this book talks about acquiring the skills to become a better programmer. You’ll get an overview of how various tools, such as version control and build management, help make your life easier. This book also discusses the pros and cons of other programming paradigms, such as aspect-oriented programming and functional programming, and helps to select the correct approach for your projects. It ends by talking about the philosophy behind designing software and what it means to be a good developer.By the end of this two-part book, you will have learned that OOP is not always complex, and you will know how you can evolve into a better programmer by learning about ethics, teamwork, and documentation.
Alessandro Molina
The Python 3 Standard Library is a vast array of modules that you can use for developing various kinds of applications. It contains an exhaustive list of libraries, and this book will help you choose the best one to address specific programming problems in Python.The Modern Python Standard Library Cookbook begins with recipes on containers and data structures and guides you in performing effective text management in Python. You will find Python recipes for command-line operations, networking, filesystems and directories, and concurrent execution. You will learn about Python security essentials in Python and get to grips with various development tools for debugging, benchmarking, inspection, error reporting, and tracing. The book includes recipes to help you create graphical user interfaces for your application. You will learn to work with multimedia components and perform mathematical operations on date and time. The recipes will also show you how to deploy different searching and sorting algorithms on your data.By the end of the book, you will have acquired the skills needed to write clean code in Python and develop applications that meet your needs.
Modern R Programming Cookbook. Recipes to simplify your statistical applications
Jaynal Abedin
R is a powerful tool for statistics, graphics, and statistical programming. It is used by tens of thousands of people daily to perform serious statistical analyses. It is a free, open source system whose implementation is the collective accomplishment of many intelligent, hard-working people. There are more than 2,000 available add-ons, and R is a serious rival to all commercial statistical packages. The objective of this book is to show how to work with different programming aspects of R. The emerging R developers and data science could have very good programming knowledge but might have limited understanding about R syntax and semantics. Our book will be a platform develop practical solution out of real world problem in scalable fashion and with very good understanding. You will work with various versions of R libraries that are essential for scalable data science solutions. You will learn to work with Input / Output issues when working with relatively larger dataset. At the end of this book readers will also learn how to work with databases from within R and also what and how meta programming helps in developing applications.
Matteo Pagani, Marc Plogas
If you're a developer looking to improve and modernize your existing LOB applications to leverage modern Windows features without having to rewrite the entire application from scratch, this book is for you. You’ll learn how to modernize your existing Windows Forms, WPF, and UWP applications and enrich them with the latest Windows features.Starting with sample LOB applications that cover common scenarios, you'll learn the differences between various components and then focus on design features for improved visual aspects like accessibility and responsive layouts.The book shows you how to enhance your existing applications using Windows App SDK components and various Windows APIs, resulting in deeper integration with the operating system. You’ll be taking a closer look at WinML, which enables Windows applications to evaluate machine learning models offline and leverage the power of your machine, or notifications, to engage with your users in a more effective way. You’ll also learn how to make your application deployment-ready by distributing it using various platforms like the Microsoft Store or websites.By the end of this Windows book, you'll be able to create a migration plan for your existing Windows applications and put your knowledge to work by enhancing your application with new features and integrating them with the Windows ecosystem.
Koushik Srinivas Kothagal
The Java 9 module system is an important addition to the language that affects the way we design, write, and organize code and libraries in Java. It provides a new way to achieve maintainable code by the encapsulation of Java types, as well as a way to write better libraries that have clear interfaces. Effectively using the module system requires an understanding of how modules work and what the best practices of creating modules are.This book will give you step-by-step instructions to create new modules as well as migrate code from earlier versions of Java to the Java 9 module system. You'll be working on a fully modular sample application and add features to it as you learn about Java modules. You'll learn how to create module definitions, setup inter-module dependencies, and use the built-in modules from the modular JDK. You will also learn about module resolution and how to use jlink to generate custom runtime images.We will end our journey by taking a look at the road ahead. You will learn some powerful best practices that will help you as you start building modular applications. You will also learn how to upgrade an existing Java 8 codebase to Java 9, handle issues with libraries, and how to test Java 9 applications.
Myśl w języku Python! Nauka programowania. Wydanie II
Allen B. Downey
Aby stać się cenionym programistą, trzeba zacząć od bardzo solidnych podstaw. Python jest idealną propozycją dla osób, które chcą nauczyć się programowania. Składnia i podstawowe koncepcje programistyczne w Pythonie są dość proste do zrozumienia. Sam język ma duże możliwości zastosowania w różnych dziedzinach wiedzy. Umożliwia przy tym pisanie czytelnego i łatwego w konserwacji kodu, co jest ogromną zaletą. Trzymasz w ręku praktyczny przewodnik do nauki programowania. Znajdziesz w nim przystępnie napisane wyjaśnienia dotyczące podstawowych pojęć programistycznych. Dowiesz się, jak stosować funkcje, czym jest rekurencja, jak wyglądają struktury danych i na czym polega projektowanie obiektowe. W każdym rozdziale znalazły się praktyczne ćwiczenia, dzięki którym będziesz używać poznawanych koncepcji i utrwalisz zdobytą wiedzę. W tej książce: przedstawiono podstawy Pythona, w tym jego składnię i semantykę opisano najważniejsze koncepcje programistyczne i zdefiniowano istotne pojęcia pokazano, jak stosować wartości, zmienne, instrukcje, funkcje i struktury danych przedstawiono metody pracy z plikami i bazami danych wyjaśniono zagadnienia programowania obiektowego opisano techniki debugowania służące do usuwania błędów składniowych, uruchomieniowych i semantycznych Python: dzięki niemu zaczniesz myśleć jak informatyk!
Myślenie obiektowe w programowaniu. Wydanie IV
Matt Weisfeld
Obiektowe podejście do programowania pojawiło się w latach 60. ubiegłego wieku. Simula 67 był pierwszym językiem, w którym je zastosowano. Dzięki temu życie programistów stało się zdecydowanie prostsze, a odwzorowanie świata rzeczywistego — możliwe. Jednak żeby skorzystać z zalet podejścia obiektowego, należy najpierw opanować nowy sposób myślenia. Kolejne wydanie tej docenionej przez profesjonalistów książki szybko Ci w tym pomoże! W trakcie lektury poznasz podstawowe pojęcia oraz założenia programowania obiektowego. Dowiesz się, co to hermetyzacja, polimorfizm oraz dziedziczenie. Zobaczysz, jak obiekty powoływane są do życia oraz jak komunikują się między sobą. Ponadto nauczysz się korzystać z interfejsów, modelować klasy z wykorzystaniem diagramów UML oraz utrwalać stan obiektów. To wydanie zostało uzupełnione o mnóstwo nowych informacji, dotyczących między innymi wykorzystania obiektów w usługach sieciowych oraz aplikacjach mobilnych. Książka ta jest obowiązkową lekturą dla każdego programisty chcącego w 100% wykorzystać potencjał programowania obiektowego. Sięgnij po tę książkę i: modeluj klasy przy użyciu UML swobodnie poruszaj się w świecie klas, interfejsów i obiektów utrwalaj stan swoich obiektów poprzez serializację korzystaj z obiektów w komunikacji sieciowej zostań ekspertem w zakresie programowania obiektowego Twoje kompendium wiedzy o programowaniu obiektowym!
Myślenie obiektowe w programowaniu. Wydanie V
Matt Weisfeld
Burzliwy rozwój obiektowości nastąpił w połowie lat 90. wraz z upowszechnieniem się takich języków jak C++ czy Smalltalk. Obecnie programowanie zorientowane obiektowo wciąż jest jednym z najważniejszych paradygmatów projektowania. Łatwo zauważyć, że większość nowoczesnych języków programowania i technologii sieciowych opiera się na technikach obiektowych. Nieco trudniej jest dostrzec, że mimo szybkiego ewoluowania technik i języków programistycznych podstawowe pojęcia programowania obiektowego pozostają niezmienne i niezależne od jakiejkolwiek platformy. Początkujący programiści powinni więc poświęcić nieco czasu na zapoznanie się z tymi pojęciami i naukę czegoś, co można nazwać "myśleniem obiektowym w programowaniu". Ta książka jest kolejnym, poprawionym i uzupełnionym wydaniem wyczerpującego wprowadzenia do programowania zorientowanego obiektowo. Jej głównym celem jest przedstawienie podstaw myślenia obiektowego i najważniejszych pojęć w tym zakresie. Wyjaśniono tu, w jaki sposób poprawnie posługiwać się dziedziczeniem i kompozycją, odróżniać agregację od asocjacji oraz zrozumieć różnice między interfejsem a implementacją. Szczególną uwagę zwrócono na technologie, które przetrwały próbę czasu ostatnich 20 lat i stały się rdzeniem koncepcji programowania obiektowego. Opisano też najważniejsze wzorce projektowe, wskazano techniki unikania zależności i zaprezentowano zasady zwane SOLID, których przestrzeganie pozwala tworzyć kod wysokiej jakości, zrozumiały i elastyczny. Dzięki tej książce: zrozumiesz podstawowe pojęcia obiektowości zaczniesz myśleć abstrakcyjnie podczas projektowania interfejsów nauczysz się budowy i zasad modelowania klas będziesz tworzyć kod, który będzie się nadawał do wielokrotnego wykorzystania zaczniesz unikać zależności i silnych powiązań między klasami przyswoisz sobie i będziesz stosować zasady SOLID Techniki obiektowe. Zrozum, zanim zaimplementujesz!
Diana Montalion
Dziś programiści nie piszą już programów, tylko tworzą systemy oprogramowania. Wymaga to ciągłego wdrażania zmian w ekosystemach oprogramowania koordynowanych przez responsywną infrastrukturę. A to oznacza, że musisz myśleć inaczej: systemowo. Myślenie systemowe zwiększa efektywność i ułatwia wprowadzanie istotnych zmian. Jednak aby nauczyć się myśleć, komunikować i funkcjonować systemowo, musisz rozszerzyć swój zestaw umiejętności. Dzięki tej książce opanujesz kluczowe koncepcje myślenia systemowego i nauczysz się stosować je w praktyce. Poznasz podejście nieliniowe, które pozwala lepiej rozumieć złożoność współczesnych systemów IT i skutecznie nimi zarządzać. Nauczysz się identyfikować wzorce, przewidywać konsekwencje decyzji technologicznych, a także budować skalowalne, elastyczne architektury. Praktyczne przykłady i klarowne wyjaśnienia pomogą Ci zastosować zdobytą wiedzę w codziennej pracy, niezależnie od tego, czy tworzysz małe aplikacje, czy projektujesz wielkoskalowe systemy. To niezbędny przewodnik dla każdego, kto chce myśleć jak inżynier systemowy! Dowiedz się, jak: myślenie liniowe ogranicza zdolność do rozwiązywania problemów systemowych pokonać typowe przeszkody utrudniające myślenie systemowe w praktyce zmienić sposób myślenia, uczenia się i przewodzenia skutecznie opracowywać solidne rekomendacje mierzyć sukces w obliczu złożoności i niepewności Gdy wprowadzanie zmian w kodzie jest łatwe, ale modyfikowanie oprogramowania okazuje się coraz trudniejsze, nadchodzi czas na lekturę tej książki. Jessica Kerr, ekspertka