Programmierung
Hands-On Object-Oriented Programming
Learn how to easily design and implement a software system using object-oriented programming. Through hands-on activities, this book equips you with the real-world practice needed to master OOP skills that can be applied universally across any programming language.This book is dedicated to bridging the gap between theoretical concepts and practical implementation in software development using OOP. Readers will first understand the importance of OOP in handling software complexities before learning how to model real-world problems through access control, extendible object design, and object relationships. Specifically, the author discusses how to use inheritance, association, and polymorphism concepts for implementing reusable and easy-to-use complex software. More importantly, this book covers design patterns and event-driven programming for learning how to model complex interactions among various objects of the software system to implement various use cases.Unlike existing books on OOP which teach syntax and semantics through standard examples, this book leverages an immersive learning experience through a variety of real-world use cases, applications, games, and system software. While written in C++, the skills can be applied to any OOP language of the reader's preference. The book's last chapters will quickly introduce Python and Solidity languages for learning advanced technologies. By the end, novice and seasoned developers will know how to implement practical and reusable software systems with confidence.WHAT YOU WILL LEARN* Apply OOP concepts through real-time use cases: games, applications software (online shopping, reservations, etc.), system software (protocols, simulators, etc.), and modeling and implementation using C+* Design and implement reusable and extendible software with OOP* Understand the importance of design patterns and learn how to use them for solving real-time issues* Use event-driven programming for implementing complete interactions of complex application software, system software, and simulators* Implement OOP using C++ features and discover Python and Solidity constructs for OOPWHO THIS BOOK IS FORBeginners and intermediate software developers with basic programming knowledge to quickly learn OOP concepts with C++. Advanced users will find it useful for quickly exploring best-design principles, patterns, and event-driven programming for implementing complex software systems.DR. ANIL KUMAR RANGISETTI received his PhD in the field of computer science and engineering from IIT Hyderabad. He has 10 years of teaching and research experience in computer science and engineering. During his career, he worked at prestigious Indian institutions such as IIIT Dharwad, SRM-AP, and GMR, and worked at software development and research labs such as ARICENT, IRL-Delhi. Currently he is working as Assistant Professor in the Department of CSE, IIITDM Kurnool. He trained the students in OOP languages, and how to use advanced simulators (NS-3), Docker, and Networking tools for researching and developing applications at his work places. He guided a significant number of undergraduate and postgraduate students for project works.Broadly, his research interests include Wi-Fi technologies, Next Generation Mobile Networks, SDN, NFV, and Cloud Computing. Besides research activities, he is interested in writing and reviewing books on computer science technologies and programming languages. He published a number of novel research publications with IEEE, Springer, Elsevier, and Wiley in the field of a variety of networking technologies such as LTE, SDN and NFV, and Wi-Fi technologies. He authored a book titled _Advanced Network Simulations Simplified._Chapter 1: Importance of Object Oriented Programming.- Chapter 2: Start Learning OOP Using C++.- Chapter 3: Systematically Starting and Stopping Software Objects.- Chapter 4: Exploring Important C++ Features.- Chapter 5: Quickly and Systematically Model Real-World Problems into Software.- Chapter 6: Quick Software Development using OOP.- Chapter 7: Easy to Use Software Development Using OOP.- Chapter 8: Learning the Design Patterns.- Chapter 9: Learning Event Driven Programming.- Chapter 10: Quick Introduction to Python and Solidity Ways of OOP.
Numerical Python
Learn how to leverage the scientific computing and data analysis capabilities of Python, its standard library, and popular open-source numerical Python packages like NumPy, SymPy, SciPy, matplotlib, and more. This book demonstrates how to work with mathematical modeling and solve problems with numerical, symbolic, and visualization techniques. It explores applications in science, engineering, data analytics, and more._Numerical Python, Third Edition_, presents many case study examples of applications in fundamental scientific computing disciplines, as well as in data science and statistics. This fully revised edition, updated for each library's latest version, demonstrates Python's power for rapid development and exploratory computing due to its simple and high-level syntax and many powerful libraries and tools for computation and data analysis.After reading this book, readers will be familiar with many computing techniques, including array-based and symbolic computing, visualization and numerical file I/O, equation solving, optimization, interpolation and integration, and domain-specific computational problems, such as differential equation solving, data analysis, statistical modeling, and machine learning.WHAT YOU'LL LEARN* Work with vectors and matrices using NumPy* Review Symbolic computing with SymPy* Plot and visualize data with Matplotlib* Perform data analysis tasks with Pandas and SciPy* Understand statistical modeling and machine learning with statsmodels and scikit-learn* Optimize Python code using Numba and CythonWHO THIS BOOK IS FORDevelopers who want to understand how to use Python and its ecosystem of libraries for scientific computing and data analysis.ROBERT JOHANSSON is an experienced Python programmer and computational scientist with a Ph.D. in Theoretical Physics from Chalmers University of Technology, Sweden. He has worked with scientific computing in academia and industry for over 15 years and participated in open source and proprietary research and development projects. His open-source contributions include work on QuTiP, a popular Python framework for simulating the dynamics of quantum systems, and he has also contributed to several other popular Python libraries in the scientific computing landscape. Robert is passionate about scientific computing and software development, teaching and communicating best practices for combining these fields with optimal outcomes: novel, reproducible, extensible, and impactful computational results.1. Introduction to Computing with Python.- 2. Vectors, Matrices and Multidimensional Arrays.- 3. Symbolic Computing.- 4. Plotting and Visualization.- 5. Equation Solving.- 6. Optimization.- 7. Interpolation.- 8. Integration.- 9. Ordinary Differential Equations.- 10. Sparse Matrices and Graphs.- 11. Partial Differential Equations.- 12. Data Processing and Analysis.- 13. Statistics.- 14. Statistical Modeling.- 15. Machine Learning.- 16. Bayesian Statistics.- 17. Signal and Image Processing.- 18. Data Input and Output.- 19. Code Optimization.- Appendix.
Data Engineering for Machine Learning Pipelines
This book covers modern data engineering functions and important Python libraries, to help you develop state-of-the-art ML pipelines and integration code.The book begins by explaining data analytics and transformation, delving into the Pandas library, its capabilities, and nuances. It then explores emerging libraries such as Polars and CuDF, providing insights into GPU-based computing and cutting-edge data manipulation techniques. The text discusses the importance of data validation in engineering processes, introducing tools such as Great Expectations and Pandera to ensure data quality and reliability. The book delves into API design and development, with a specific focus on leveraging the power of FastAPI. It covers authentication, authorization, and real-world applications, enabling you to construct efficient and secure APIs using FastAPI. Also explored is concurrency in data engineering, examining Dask's capabilities from basic setup to crafting advanced machine learning pipelines. The book includes development and delivery of data engineering pipelines using leading cloud platforms such as AWS, Google Cloud, and Microsoft Azure. The concluding chapters concentrate on real-time and streaming data engineering pipelines, emphasizing Apache Kafka and workflow orchestration in data engineering. Workflow tools such as Airflow and Prefect are introduced to seamlessly manage and automate complex data workflows.What sets this book apart is its blend of theoretical knowledge and practical application, a structured path from basic to advanced concepts, and insights into using state-of-the-art tools. With this book, you gain access to cutting-edge techniques and insights that are reshaping the industry. This book is not just an educational tool. It is a career catalyst, and an investment in your future as a data engineering expert, poised to meet the challenges of today's data-driven world.WHAT YOU WILL LEARN* Elevate your data wrangling jobs by utilizing the power of both CPU and GPU computing, and learn to process data using Pandas 2.0, Polars, and CuDF at unprecedented speeds* Design data validation pipelines, construct efficient data service APIs, develop real-time streaming pipelines and master the art of workflow orchestration to streamline your engineering projects* Leverage concurrent programming to develop machine learning pipelines and get hands-on experience in development and deployment of machine learning pipelines across AWS, GCP, and AzureWHO THIS BOOK IS FORData analysts, data engineers, data scientists, machine learning engineers, and MLOps specialistsPAVAN KUMAR NARAYANAN has an extensive and diverse career in the information technology industry, with a primary focus on the data engineering and machine learning domains. Throughout his professional journey, he has consistently delivered solutions in environments characterized by heterogeneity and complexity. His experience spans a broad spectrum, encompassing traditional data warehousing projects following waterfall methodologies and extending to contemporary integrations that involve APIs and message-based systems. Pavan has made substantial contributions to large-scale data integrations for applications in data science and machine learning. At the forefront of these endeavors, he has played a key role in delivering sophisticated data products and solutions, employing a versatile mix of both traditional and agile approaches. Currently employed with Ether Infinitum LLC, Sheridan, WY, Pavan Kumar Narayanan continues to bring his wealth of experience to the forefront of the data engineering and machine learning landscape.Chapter 1: Data Manipulation and Analytics Using Pandas.- Chapter 2: Data Manipulation Using Polars and CuDF.- Chapter 3: Introduction to Data Validation.- Chapter 4: Data Validation Using Great Expectations.- Chapter 5: Introduction to API Design Using FastAPI.- Chapter 6: Introduction to Concurrency Programming Using Task.- Chapter 7: Dask ML.- Module 5: Data Pipelines in the Cloud.- Chapter 9: Introduction to Microsoft Azure.- Chapter 10: Introduction to Google Cloud.- Chapter 11: Introduction to Streaming Data.- Chapter 12: Introduction to Workflow Management Using Airflow.- Chapter 13: Introduction to Workflow Management Using Prefect.
Spring Boot 3
Ihr umfassender Leitfaden für Spring Boot 3 - Spring Boot von Null auf Hundert - Neuerungen in Spring Boot 3 und Migration von Spring Boot 2 - Beispiele für verschiedenste Anwendungsfälle Entdecken Sie die Leistungsfähigkeit von Spring Boot 3 mit diesem umfassenden Leitfaden. Von den Grundlagen zu Spring Boot 3 über fortgeschrittene Themen wie zum Beispiel reaktive Programmierung bis zu eigenen Erweiterungen von Spring Boot. Was Sie in diesem Buch erwartet: Universelle Zugänglichkeit: Egal, ob Sie gerade erst anfangen oder bereits Erfahrung mit Spring Boot haben, dieses Buch führt Sie durch die Grundlagen bis hin zu fortgeschrittenen Konzepten. Praxisorientierte Lernweise: Nutzen Sie zahlreiche praxisnahe Beispiele, um das Gelernte sofort anzuwenden. Die klare Darstellung und Anwendung in realen Szenarien machen den Lernprozess effektiv und eingängig. Neuerungen in Version 3: Entdecken Sie die spezifischen Features von Spring Boot 3. Die Autoren gehen detailliert auf die neuesten Entwicklungen ein und zeigen, wie Sie das volle Potenzial dieser Version ausschöpfen können. Ob Sie ein erfahrener Entwickler sind oder gerade erst in die Welt von Spring Boot eintauchen – dieses Buch vermittelt Ihnen das notwendige Wissen, um moderne und effiziente Java-Anwendungen zu entwickeln.
Large Language Models Projects
This book offers you a hands-on experience using models from OpenAI and the Hugging Face library. You will use various tools and work on small projects, gradually applying the new knowledge you gain.The book is divided into three parts. Part one covers techniques and libraries. Here, you'll explore different techniques through small examples, preparing to build projects in the next section. You'll learn to use common libraries in the world of Large Language Models. Topics and technologies covered include chatbots, code generation, OpenAI API, Hugging Face, vector databases, LangChain, fine tuning, PEFT fine tuning, soft prompt tuning, LoRA, QLoRA, evaluating models, and Direct Preference Optimization. Part two focuses on projects. You'll create projects, understanding design decisions. Each project may have more than one possible implementation, as there is often not just one good solution. You'll also explore LLMOps-related topics. Part three delves into enterprise solutions. Large Language Models are not a standalone solution; in large corporate environments, they are one piece of the puzzle. You'll explore how to structure solutions capable of transforming organizations with thousands of employees, highlighting the main role that Large Language Models play in these new solutions.This book equips you to confidently navigate and implement Large Language Models, empowering you to tackle diverse challenges in the evolving landscape of language processing.WHAT YOU WILL LEARN* Gain practical experience by working with models from OpenAI and the Hugging Face library* Use essential libraries relevant to Large Language Models, covering topics such as Chatbots, Code Generation, OpenAI API, Hugging Face, and Vector databases* Create and implement projects using LLM while understanding the design decisions involved* Understand the role of Large Language Models in larger corporate settingsWHO THIS BOOK IS FORData analysts, data science, Python developers, and software professionals interested in learning the foundations of NLP, LLMs, and the processes of building modern LLM applications for various tasksPERE MARTRA is a seasoned IT Engineer and AI Enthusiast with years of experience in the financial sector. He is currently pursuing a Master's in Research on Artificial Intelligence. Initially, he delved into the world of AI through his passion for game development. Applying Reinforcement Learning techniques, he infused video game characters with personality and autonomy, sparking his journey into the realm of AI. Today, AI is not just his passion but a pivotal part of his profession. Collaborating with startups on NLP-based solutions, he plays a crucial role in defining technological stacks, architecting solutions, and guiding team inception. As the author of a course on Large Language Models and their applications, available on GitHub, Pere shares his expertise in this cutting-edge field. He serves as a mentor in the TensorFlow Advanced Techniques Specialization at Deeplearning.AI, assisting students in solving problems within their tasks. He holds the distinction of being one of the few TensorFlow Certified Developers in Spain, complementing this achievement with an Azure Data Scientist Associate certification. Follow Pere on Medium, where he writes about AI, emphasizing Large Language Models and deep learning with TensorFlow, contributing valuable insights to TowardsAI.net. Top skills include Keras, Artificial Intelligence (AI), TensorFlow, Generative AI, and Large Language Models (LLM). Connect with Pere on https://www.linkedin.com/in/pere-martra/ for project collaborations or insightful discussions in the dynamic field of AI.Part I: Techniques and Libraries.- Chapter 1. Introduction to Large Language Models with OpenAI.- Chapter 2: Vector Databases and LLMs.- Chapter 3: LangChain & Agents.- Chapter 4: Evaluating Models.- Chapter 5: Fine-Tuning Models.- Part II: Projects.- Chapter 6: Natural Language to SQL.- Chapter 7: Creating and Publishing Your Own LLM.- Part III: Enterprise solutions.- Chapter 8: Architecting an NL2SQL Project for Immense Enterprise Databases.- Chapter 9: Transforming Banks with Customer Embeddings.
Parallel Programming with C# and .NET
If you need to understand concurrency, this book is your guide to the fundamentals behind the advanced software you seek to implement to achieve highly responsive and scalable code. Support for parallel computation is an essential part of concurrency. Concurrency is an advanced concept and solutions are not straightforward. Many developers have been burned by it and are still being burned by it. This book aims to simplify the concept for C# developers. It tries to simplify the concept using the Task Parallel Library (TPL), Concurrent Collections, Parallel LINQ (PLINQ), Asynchronous Programming Patterns, and related topics.The book starts with an overview of TPL and discusses Tasks. Understanding these areas is necessary to learn the concepts that follow in the book. You will go through special scenarios, such as handling exceptions and cancellations, followed by demonstrations of synchronization techniques and concurrent collections. You will see demonstrations of parallel loops to speed up the computations. And you'll understand PLINQ in detail. Finally, you'll learn how to simplify asynchronous programming with async and await keywords is discussed.The book contains “Q&A sessions”, review questions, and exercises (in .NET 8 and C#12). After reading the book, you will be able to understand advanced concepts in parallel programming and implement them in your code.WHAT YOU WILL LEARN* Understand concurrent and multi-threaded development* Understand how some modern-day C# features can promote parallel programming* Demonstrate the latest patterns for parallel developmentWHO THIS BOOK IS FORDevelopers familiar with C# but are absolute beginners for parallel programming.VASKARAN SARCAR obtained his Master of Engineering degree in Software Engineering from Jadavpur University, Kolkata (India), and an MCA from Vidyasagar University, Midnapore (India). He was a National Gate Scholar (2007-2009) and has over 12 years of experience in education and the IT industry. He devoted his early years (2005-2007) to the teaching profession at various engineering colleges, and later he joined HP India PPS R&D Hub in Bangalore. He worked there until August 2019 and became a Senior Software Engineer and Team Lead. After working for more than ten years at HP, he decided to follow his passion completely. He is now an independent full-time author.Chapter 1: Understanding Tasks.- Chapter 2: Handling Special Scenarios.- Chapter 3: Exploring Synchronization and Concurrent Collections.- Chapter 4: Working on Parallel Loops.- Chapter 5: Parallel LiNQ.- Chapter 6: Simplifying Asynchronous Programs.- Appendix A.- Appendix B.- Appendix C.
Grundkurs Programmieren in Java (9. Auflage)
Grundkurs Programmieren in Java. 9. Auflage.Mit diesem Lehrbuch können Sie sowohl Java als auch das Programmieren lernen. Es setzt keinerlei Vorkenntnisse aus den Bereichen Programmieren, Programmiersprachen und Informatik voraus. Alle Kapitel sind mit Übungsaufgaben ausgestattet, die Sie zum besseren Verständnis bearbeiten können.Denn: Man lernt eine Sprache nur, wenn man sie auch spricht!Auf rund 800 Seiten finden Sie hier eine umfassende und aktuelle Einführung. Von den Grundlagen der Programmierung und den elementaren Sprachelementen über die Objektorientierung bis hin zu fortgeschrittenen Themen wie Threads, Streams, Entwicklung von verteilten Anwendungen in Netzen sowie Lambda-Ausdrücken lernen Sie alles, was Sie für den erfolgreichen Einstieg in die Programmierung benötigen.Aus dem Inhalt:Einstieg in das Programmieren in JavaObjektorientiertes Programmieren in JavaGrafische Oberflächen in JavaNebenläufige und verteilte AnwendungenLambda-Ausdrücke und funktionale ProgrammierungAbschluss, Ausblick und AnhangLeseprobe (PDF-Link)Über die Autoren:Prof. Dr. Dietmar Ratz ist Studiengangsleiter Wirtschaftsinformatik an der Dualen Hochschule Baden- Württemberg (DHBW) Karlsruhe und lehrt auch am Karlsruher Institut für Technologie (KIT).Dipl.-Wirtsch.-Inf. (DH) Dennis Schulmeister-Zimolong arbeitet als akademischer Mitarbeiter an der Dualen Hochschule Baden-Württemberg (DHBW) Karlsruhe sowie als Produktmanager bei der SOA People AG, Karlsruhe.Prof. Dr. Detlef Seese ist ehemaliger Professor für Angewandte Informatik am Institut für Angewandte Informatik und Formale Beschreibungsverfahren (AIFB) des Karlsruher Instituts für Technologie (KIT).Dipl.-Wirtsch.-Ing. Jan Wiesenberger ist geschäftsführender Vorstand des FZI Forschungszentrums Informatik in Karlsruhe und Hauptgesellschafter des IT-Dienstleisters m+ps.
Programmieren in Java (8. Auflage)
Programmieren in Java. Einfach Java lernen. 8. AuflageSie möchten sich Java von Grund auf aneignen? Dieses Standardwerk hat schon Tausende von Einsteigern zu Java-Pro s gemacht. Kompakt, aktuell und präzise bietet es alles, was für die Programmierung in Java wichtig ist.Diese Neuauflage wurde grundlegend überarbeitet. Ihr Fokus richtet sich darauf, Ihnen den Einstieg in die Programmierung mit Java 21 möglichst einfach zu machen. Von Anfang an nutzen wir dafür die leistungsfähige und komfortable Entwicklungsumgebung Eclipse.Von den elementaren Ausdrucksmöglichkeiten in Java und den Grundlagen der Objektorientierung bis hin zur Nebenläu gkeit sowie zur Programmierung in Netzwerken und Anbindung von Datenbanken finden Sie hier alle Themen, die für Einsteiger wichtig sind. Zum Vertiefen des Umgangs mit Entwurfsmustern dient die Programmierung grafischer Benutzeroberflächen.Zahlreiche Beispiele und Aufgaben in allen Kapiteln – von elementaren Übungen bis hin zu kleinen Projektarbeiten – helfen Ihnen, Ihr Wissen praktisch umzusetzen und zu festigen.Aus dem InhaltEinstieg in JavaElemente der ProgrammierungObjektorientierte ProgrammierungGrundlegende KlassenEin-/Ausgabe in JavaNebenläufigkeit in Java: ThreadsGrafikanwendungen in JavaProgrammierung in NetzwerkenAnbindung von Datenbanken mit JDBCBearbeiten von XML in JavaLeseprobe (PDF-Link)Über den AutorProf. Dr. Fritz JOBST lehrte an der OTH Regensburg und hielt u.a. Vorlesungen zur Programmierung in Java und zur Entwicklung von Software mit der Java Enterprise Edition.
JavaScript für Dummies
SCHRITT FÜR SCHRITT ZU JAVASCRIPTWenn Sie mit JavaScript programmieren lernen möchten, dann greifen Sie zu! Sebastian Springer vermittelt Ihnen in diesem Einstieg das Grundwissen zur Programmierung mit dieser mächtigen Programmiersprache. Sie lernen neben Grundlagen wie Schleifen, Verzweigungen und Co. alle wichtigen Tools, Arbeitsweisen und Besonderheiten der Browser kennen. Doch damit nicht genug: Fortgeschrittene Technologien, wie die asynchrone Programmierung, werden erklärt; außerdem, wie Sie zwischen Frontend und Backend kommunizieren oder mit Nutzern interagieren. Alles garniert mit übungen und Beispiel-Programmen. SIE ERFAHREN* Was es mit Node.js auf sich hat* Wie das Zusammenspiel von JavaScript und HTML und CSS funktioniert* Was Sie über Datentypen, Variable und Konstante wissen sollten* Wie Sie Fehler aufspüren und behebenSEBASTIAN SPRINGER arbeitet als JavaScript Engineer in der Konzeptionierung und Entwicklung professioneller Anwendungen. Er ist außerdem Dozent für JavaScript, Autor mehrerer IT-Fachbücher und Sprecher auf Konferenzen. Er vermittelt sein Wissen besonders einsteigergerecht. Einleitung 23TEIL I: DIE GRUNDLAGEN VON JAVASCRIPT 27Kapitel 1: Auf den Spuren von JavaScript: Zwischen Browser-Zauberei und Server-Magie 29Kapitel 2: Datentypen, Variablen und Konstanten 53Kapitel 3: Operatoren, Bedingungen und Schleifen 83Kapitel 4: Funktionen 107Kapitel 5: Klassen und Arrays 127Kapitel 6: Fehlerbehandlung 163TEIL II: FORTGESCHRITTENE THEMEN 183Kapitel 7: Das JavaScript-Modulsystem 185Kapitel 8: Asynchronität in JavaScript 205Kapitel 9: Generatoren und Iteratoren 227TEIL III: DAS FRONTEND 239Kapitel 10: Arbeiten mit dem DOM 241Kapitel 11: Events 259TEIL IV: DAS ÖKOSYSTEM 279Kapitel 12: Paketmanager 281Kapitel 13: Die passenden Pakete finden 303TEIL V: DAS ZUSAMMENSPIEL ZWISCHEN CLIENT UND SERVER 313Kapitel 14: Mit einem Server kommunizieren 315Kapitel 15: Serverseitiges JavaScript mit Express 335Kapitel 16: Clientseitiges JavaScript mit React 371Kapitel 17: Echtzeit-Kommunikation mit WebSockets 413TEIL VI: DER TOP-TEN-TEIL 429Kapitel 18: Die zehn wichtigsten Bibliotheken und Werkzeuge in JavaScript 431Abbildungsverzeichnis 449Stichwortverzeichnis 453
Grundkurs Programmieren in JAVA
Mit diesem Lehrbuch können Sie sowohl Java als auch das Programmieren lernen. Es setzt keinerlei Vorkenntnisse aus den Bereichen Programmieren, Programmiersprachen und Informatik voraus. Alle Kapitel sind mit Übungsaufgaben ausgestattet, die Sie zum besseren Verständnis bearbeiten können. Denn: Man lernt eine Sprache nur, wenn man sie auch spricht! Auf rund 750 Seiten finden Sie hier eine umfassende und aktuelle Einführung. Von den Grundlagen der Programmierung und den elementaren Sprachelementen über die Objektorientierung bis hin zu Threads und Datenströmen und zur Entwicklung von Anwendungen in Netzen lernen Sie alles, was Sie für den erfolgreichen Einstieg in die Programmierung benötigen. Aus dem InhaltEinstieg in das Programmieren in Java/Objektorientiertes Programmieren in Java/Grafische Oberflächen in Java/Threads, Datenströme und Netzwerkanwendungen/Abschluss, Ausblick und Anhang ExtraE-Book inside. Systemvoraussetzungen für E-Book inside: Internet-Verbindung und Adobe-Reader oder Ebook-Reader bzw. Adobe Digital Editions.
Programmieren in Java
- Von zahlreichen Hochschulen empfohlen: Der Einstieg in die Welt der Java-Programmierung mit diesem kompakten Klassiker! - Besonderen Schwerpunkt legen wir auf Grundlagen. Diese sind auch im Zeitalter leistungsfähiger Hilfsmittel unentbehrlich. - Topaktuell: Lernen Sie die objektorientierte Programmierung auf der Basis von Java 21. - Erhöhen Sie Ihren Lernerfolg mit den zahlreichen Übungsaufgaben. - Ihr exklusiver Vorteil: E-Book inside beim Kauf des gedruckten Buches Sie möchten sich Java von Grund auf aneignen? Dieses Standardwerk hat schon Tausende von Einsteigern zu Java-Pro s gemacht. Kompakt, aktuell und präzise bietet es alles, was für die Programmierung in Java wichtig ist. Diese Neuauflage wurde grundlegend überarbeitet. Ihr Fokus richtet sich darauf, Ihnen den Einstieg in die Programmierung mit Java 21 möglichst einfach zu machen. Von Anfang an nutzen wir dafür die leistungsfähige und komfortable Entwicklungsumgebung Eclipse. Von den elementaren Ausdrucksmöglichkeiten in Java und den Grundlagen der Objektorientierung bis hin zur Nebenläu gkeit sowie zur Programmierung in Netzwerken und Anbindung von Datenbanken finden Sie hier alle Themen, die für Einsteiger wichtig sind. Zum Vertiefen des Umgangs mit Entwurfsmustern dient die Programmierung grafischer Benutzeroberflächen. Zahlreiche Beispiele und Aufgaben in allen Kapiteln – von elementaren Übungen bis hin zu kleinen Projektarbeiten – helfen Ihnen, Ihr Wissen praktisch umzusetzen und zu festigen. AUS DEM INHALT // - Einstieg in Java - Elemente der Programmierung - Objektorientierte Programmierung - Grundlegende Klassen - Ein-/Ausgabe in Java - Nebenläufigkeit in Java: Threads - Grafikanwendungen in Java - Programmierung in Netzwerken - Anbindung von Datenbanken mit JDBC - Bearbeiten von XML in Java
Zephyr RTOS Embedded C Programming
These days the term Real-Time Operating System (RTOS) is used when referring to an operating system designed for use in embedded microprocessors or controllers. The “Real Time” part refers to the ability to implement applications that can rapidly responding to external events in a deterministic and predictable manner. RTOS-based applications have to meet strict deadline constraints while meeting the requirements of the application. One way of ensuring that urgent operations are handled reliably is to set task priorities on each task and to assign higher priorities to those tasks that need to respond in a more timely manner.Another feature of real-time applications is the careful design and implementation of the communication and synchronization between the various tasks. The Zephyr RTOS was developed by Wind River Systems, and subsequently open sourced. Its design and implementation are oriented towards the development of time critical IoT (Internet of Things) and IIoT (Industrial Internet of Things) applications, and, consequently it has a rich feature set for building both wireless and wired networking applications. However, with a rich feature set comes a fairly steep learning curve.This book covers the foundations of programming embedded systems applications using Zephyr's Kernel services. After introducing the Zephyr architecture as well as the Zephyr build and configuration processes, the book will focus on multi-tasking and inter-process communication using the Zephyr Kernel Services API. By analogy with embedded Linux programming books, this book will be akin a Linux course that focuses on application development using the Posix API. In this case, however, it will be the Zephyr Kernel Services API that will be the API being used as well as the Posix API features supported by Zephyr.WHAT YOU’LL LEARN* An Overview of the Cortex-M Architecture.* Advanced data structures and algorithms programming (linked lists, circular buffers and lists).* How to build Zephyr Applications, including setting up a Command Line Zephyr Development Environment on Linux.* Task scheduling and pre-emption patterns used in Real Time Operating Systems.* Scheduling, Interrupts and Synchronization, including threads, scheduling, and system threads.* Overview of Symmetric Multiprocessing (SMP) and Zephyr support for SMP. * Memory management, including memory heaps, memory slabs, and memory pools.WHO THIS BOOK IS FOREmbedded Systems programmers, IoT and IIoT developers, researchers, BLE application developers (Industrial Control Systems, Smart Sensors, Medical Devices, Smart Watches, Manufacturing, Robotics). Also of use to undergraduate and masters in computer science and digital electronics courses.Andrew Eliasz is the Founder and Head at Croydon Tutorial College as well as the Director of First Technology Transfer Ltd. First Technology Transfer runs advanced training courses and consults on advanced projects in IT, real time and embedded systems. Most courses are tailored to customers’ needs. Croydon Tutorial College evolved from Carshalton Tutorial College which was established to provide classes, distance level teaching, workshops and personal tuition in computer science, maths, and science subjects at GCSE, A Level, BTEC, undergraduate and masters levels. It has now changed its name and location to Croydon Tutorial College at Weatherill House Croydon. As well as teaching and tutoring they also provide mentoring and help for students having difficulties with assignments and projects (e.g., by suggesting how to add to a project to obtain a better grade, as well as reviewing project content and writing styles).1. Introduction.- 2. A Review of RTOS Fundamentals.- 3. Zephyr RTOS Application Development Environments and Zephyr Application Building Principles.- 4. Zephyr RTOS Multithreading.- 5. Message Queues, Pipes, Mailboxes and Workqueues.- 6. Using Filesystems in Zephyr Applications.- 7. Developing Zephyr BLE Applications.- 8. Zephyr RTOS and Ethernet, WiFi, and TCP/IP.- 9. Understanding and Working with the Device Tree, in general, and SPI and I2C in particular.- 10. Building Zephyr RTOS Applications Using Renode.- 11. Understanding and Using the Zephyr ZBus in Application Development.- 12. Zephyr Wi-Fi.
JavaScript Schnelleinstieg
Mit diesem Buch gelingt Ihnen der einfache Einstieg ohne Vorkenntnisse in JavaScript. Alle Grundlagen der Programmierung mit JavaScript werden in 14 Kapiteln kompakt und leicht verständlich erläutert: von den grundlegenden Programmiertechniken wie Variablen und Funktionen über objektorientierte Programmierung bis hin zur Entwicklung dynamischer Webseiten mit modernem JavaScript. Hierbei werden auch fortgeschrittene Themen wie das Document Object Model (DOM), Event Handling, synchrone und asynchrone Verarbeitung, die REST-API sowie das Speichern von Daten in Cookies und Web Storage behandelt. Zahlreiche Codebeispiele und Übungsaufgaben mit Lösungen zum Download helfen Ihnen, das neu gewonnene Wissen anzuwenden und zu vertiefen. So sind Sie perfekt auf den Einsatz von JavaScript und die Programmierung interaktiver Webseiten in der Praxis vorbereitet. Solide Grundkenntnisse in HTML und CSS werden vorausgesetzt. Aus dem Inhalt: * Alle Grundlagen kompakt und verständlich erklärt * Kontrollstrukturen, Arrays und objektorientierte Programmierung (OOP) * JSON als Austauschformat für strukturierte Daten * Dynamische Webseiten: DOM als Schnittstelle zwischen HTML und JavaScript * Behandlung von Ereignissen (Events) * Formulare prüfen und versenden * Animationen mit asynchronem JavaScript und Web Animations API * Kommunikation mit dem Webserver * Daten speichern mit Cookies / Web Storage * Programmcode und Lösungen zum Download Ulrike Häßler ist Informatikerin der ersten Tage und verfügt über jahrelange Erfahrung im Bereich der Webseitengestaltung mit HTML, CSS und JavaScript.
Virtual Threads, Structured Concurrency, and Scoped Values
Discover the exciting new APIs introduced by Java’s Project Loom. This quick guide covers all the essential concepts the Java developer needs in order to understand virtual threads, structured concurrency, and scoped values. Authors Ron Veen and David Vlijmincx clearly explain the superiority of virtual threads, introduced in Java 21, over the traditional Java threads of the past 25 years. Then they dive into how structured concurrency streamlines interactions by treating related threads as a unified unit of work, akin to the impact of structured programming on regular programming. From there, the authors explore the third Project Loom API and scoped values, clarifying their advantages over regular ThreadLocals and providing efficient usage insights. The book concludes with an exploration of common scheduling strategies. By the end of this book, you will have a solid understanding of the concepts behind Project Loom and will be able to immediately apply this knowledge to your own code. You Will * Discover what virtual threads are, why they were created, and how to use them in your code * Gain insight into how concurrency improves the observability of code * Write your own StructuredTaskScopes tailored to your needs * Understand why you should replace ThreadLocals with Scoped Values * Know the different strategies for multithreaded computer programs Who This Book is For Java developers of any level. This knowledge is so fundamental to staying relevant in the Java job market that every developer needs to understand it for their career development. Chapter 1: Virtual Threads.- Chapter 2: Structured Concurrency.- Chapter 3: Scoped Values.- Chapter 4: Concurrency Patterns.
Clean SAPUI5
Optimieren Sie Ihren SAPUI5-Code für bessere Lesbarkeit und Wartbarkeit! Entdecken Sie bewährte Methoden von Experten in diesem Buch, um JavaScript-Funktionen effektiv zu nutzen und Ihren SAPUI5-Code zu verbessern. Module, Klassen, Funktionen, Namen, Variablen, Literalen, Kommentaren, Code-Metriken: Übernehmen Sie Best Practices für Formatierung, Testen, Implementierung und vieles mehr! Aus dem Inhalt: JavaScriptModule und KlassenFunktionenNamensgebungVariablen und LiteraleKontrollstrukturFehlerbehandlungFormatierungStatische Code-PrüfungTestenImplementierung Einleitung ... 17 1. Einführung ... 25 1.1 ... Was ist Clean SAPUI5? ... 26 1.2 ... Erste Schritte mit Clean SAPUI5 ... 28 1.3 ... Umgang mit Legacy-Code ... 30 1.4 ... Code automatisch prüfen ... 32 1.5 ... Wie hängt Clean SAPUI5 mit anderen Leitfäden zusammen? ... 32 1.6 ... Zusammenfassung ... 34 2. JavaScript und SAPUI5 ... 35 2.1 ... Funktionen von JavaScript ES6+ ... 36 2.2 ... TypeScript ... 119 2.3 ... Zusammenfassung ... 131 3. Projektstruktur ... 133 3.1 ... Komponenten in SAPUI5 ... 133 3.2 ... Wichtige Artefakte ... 136 3.3 ... Freestyle-Anwendungen ... 145 3.4 ... SAP Fiori Elements ... 147 3.5 ... Bibliotheksprojekte ... 155 3.6 ... Model-View-Controller-Assets ... 158 3.7 ... Zusammenfassung ... 161 4. Module und Klassen ... 163 4.1 ... Controller-Inflation ... 164 4.2 ... Modullebenszyklus ... 199 4.3 ... Wiederverwendbarkeit und Testbarkeit ... 208 4.4 ... Servicemodule vs. Klassenmodule ... 219 4.5 ... Zusammenfassung ... 226 5. Funktionen ... 229 5.1 ... Funktionsdefinition ... 229 5.2 ... Funktionsobjekt ... 231 5.3 ... Instanzmethoden ... 233 5.4 ... Event-Handler und Callbacks ... 236 5.5 ... Ausführungskontext der Callback-Funktion ... 236 5.6 ... Getter und Setter ... 238 5.7 ... Anonyme Funktionen ... 241 5.8 ... Funktionsparameter ... 243 5.9 ... Promises ... 258 5.10 ... Generatoren ... 265 5.11 ... Funktionskörper ... 266 5.12 ... Funktionen aufrufen ... 274 5.13 ... Closures ... 277 5.14 ... Zusammenfassung ... 278 6. Namensgebung ... 281 6.1 ... Beschreibende Namen ... 282 6.2 ... Domänenbegriffe ... 283 6.3 ... Entwurfsmuster ... 285 6.4 ... Konsistenz ... 285 6.5 ... Namen kürzen ... 287 6.6 ... Füllwörter ... 288 6.7 ... Casing ... 289 6.8 ... Klassen und Enums ... 291 6.9 ... Funktionen und Methoden ... 292 6.10 ... Variablen und Parameter ... 294 6.11 ... Private Elemente ... 300 6.12 ... Namensräume ... 302 6.13 ... Control-IDs ... 304 6.14 ... Ungarische Notation ... 305 6.15 ... Alternative Regeln ... 307 6.16 ... Zusammenfassung ... 309 7. Variablen und Literale ... 311 7.1 ... Variablen ... 311 7.2 ... Literale ... 316 7.3 ... Zusammenfassung ... 335 8. Kontrollfluss ... 337 8.1 ... Bedingungen ... 338 8.2 ... Schleifen ... 342 8.3 ... Bedingte Komplexität ... 345 8.4 ... Zusammenfassung ... 353 9. Fehlerbehandlung ... 355 9.1 ... »throw«- und »try/catch«-Anweisungen ... 355 9.2 ... Fehlerobjekte verwenden ... 357 9.3 ... Fehlerbehandlung über Meldungen ... 359 9.4 ... Fehlerbehandlung mit Controls ... 361 9.5 ... Best Practices für die Fehlerbehandlung ... 365 9.6 ... Zusammenfassung ... 369 10. Formatierung ... 371 10.1 ... Motivation ... 371 10.2 ... Vertikale und horizontale Formatierung ... 372 10.3 ... Textbereich ein- oder ausrücken ... 382 10.4 ... XML-Views ... 385 10.5 ... Weitere Hinweise ... 391 10.6 ... Formatierung für TypeScript in SAPUI5 ... 395 10.7 ... Erstellen und Pflegen eines Codestil-Leitfadens ... 407 10.8 ... Formatierungswerkzeuge ... 409 10.9 ... Zusammenfassung ... 415 11. Kommentare ... 417 11.1 ... Drücken Sie Ihre Absicht im Code aus ... 418 11.2 ... Das Gute: Kommentarplatzierung und -nutzung ... 419 11.3 ... Das Schlechte: Zu vermeidende oder umzustrukturierende Kommentare ... 431 11.4 ... Das Hässliche: Sonderkommentare ... 442 11.5 ... Zusammenfassung ... 445 12. Statische Codeprüfungen und Codemetriken ... 447 12.1 ... Linting ... 449 12.2 ... Codemetriken ... 469 12.3 ... Zusammenfassung ... 491 13. Testen ... 493 13.1 ... Prinzipien ... 494 13.2 ... Zu testender Code ... 508 13.3 ... Injektion ... 510 13.4 ... Testmethoden und Journeys ... 516 13.5 ... Testdaten ... 519 13.6 ... Assertions ... 523 13.7 ... Zusammenfassung ... 529 14. TypeScript und verwandte Technologien ... 531 14.1 ... TypeScript ... 531 14.2 ... UI5 Web Components ... 547 14.3 ... Fundamental Library ... 556 14.4 ... Zusammenfassung ... 560 15. Wie Sie Clean SAPUI5 umsetzen ... 561 15.1 ... Gemeinsames Verständnis der Teammitglieder ... 562 15.2 ... Kollektive Code Ownership ... 562 15.3 ... Clean Code Developer Initiative ... 564 15.4 ... Den Broken-Window-Effekt angehen ... 566 15.5 ... Code-Reviews und Lernen ... 570 15.6 ... Clean Code Advisor ... 574 15.7 ... Lerntechniken ... 574 15.8 ... Continuous Learning in funktionsübergreifenden Teams ... 579 15.9 ... Zusammenfassung ... 582 Die Autoren ... 583 Index ... 585
ABAP RESTful Application Programming Model
SAP hat die ABAP-Entwicklung revolutioniert! Erfahren Sie, wie Sie mit Core Data Services, Behavior Definitions und UI-Annotationen Anwendungen entwickeln, die für SAP S/4HANA optimiert sind – ob on-premise oder in der Cloud. Die Autoren führen Sie in die neuen Entwicklungstools und -technologien ein und zeigen Ihnen das optimale Vorgehen in End-to-End-Beispielen. Diese zweite Auflage wurde umfassend erweitert: jetzt mit ABAP Cloud, Erweiterbarkeitsfunktionen und den neuen Business-Objekt-Interfaces. Aus dem Inhalt: REST-ArchitekturCore Data Services (CDS)Verhaltensdefinition und -implementierungDefinition und Binding von Business ServicesFelddefinitionen, Assoziationen und AktionenEntity Manipulation Language (EML)SAP Fiori ElementsEclipse, Visual Studio Code und SAP Business Application StudioImplementierungstypen Managed und Unmanaged Business-Objekt-InterfacesErweiterbarkeit von ABAP-AnwendungenABAP-Cloud-Programmiermodell Vorwort ... 17 Einleitung ... 19 TEIL I. Konzepte des ABAP RESTful Application Programming Models ... 25 1. Einführung in das ABAP RESTful Application Programming Model ... 27 1.1 ... Was ist das ABAP RESTful Application Programming Model? ... 28 1.2 ... Architektur und Konzepte des ABAP RESTful Application Programming Models ... 49 1.3 ... Entwicklungsobjekte des ABAP RESTful Application Programming Models ... 56 1.4 ... ABAP Development Tools als Entwicklungswerkzeug ... 62 1.5 ... Qualitative Eigenschaften des ABAP RESTful Application Programming Models ... 63 1.6 ... Verfügbarkeit des ABAP RESTful Application Programming Models ... 67 1.7 ... Die Rolle des ABAP RESTful Application Programming Models im ABAP-Cloud-Entwicklungsmodell ... 71 2. Core Data Services: Datenmodellierung ... 79 2.1 ... Was sind Core Data Services? ... 80 2.2 ... Aufbau und Syntax von Core Data Services ... 84 2.3 ... Assoziationen ... 99 2.4 ... Annotationen ... 104 2.5 ... Zugriffskontrollen ... 110 2.6 ... Erweiterbarkeit von CDS-Entitäten ... 116 2.7 ... Weitere CDS-Funktionalität ... 124 2.8 ... Virtuelles Datenmodell ... 132 2.9 ... CDS-Sprachelemente zur Modellierung von Geschäftsobjekten ... 137 3. Verhaltensdefinition ... 141 3.1 ... Was ist eine Verhaltensdefinition? ... 142 3.2 ... Verhaltensdefinition in den ABAP Development Tools bearbeiten ... 155 3.3 ... Implementierungstypen ... 165 3.4 ... Strict-Modus ... 170 3.5 ... Entitätsverhaltensdefinition ... 171 3.6 ... Behavior Pool definieren ... 172 3.7 ... Nummernvergabe ... 175 3.8 ... Feldeigenschaften ... 180 3.9 ... Feld-Mappings ... 183 3.10 ... Standardoperationen für eine CDS-Entität ... 186 3.11 ... Spezifische Operationen für eine CDS-Entität ... 190 3.12 ... Konkurrierende Zugriffe und Sperrverhalten ... 205 3.13 ... Interne Geschäftslogik ... 210 3.14 ... Berechtigungsprüfungen ... 222 3.15 ... Draft-Handling ... 228 3.16 ... Ereignisse ... 243 3.17 ... Übergreifende Konzepte ... 247 4. Entity Manipulation Language: Zugriff auf Geschäftsobjekte ... 257 4.1 ... Datentypen ... 258 4.2 ... EML-Operationen ... 262 4.3 ... Verwendung von EML außerhalb von Verhaltensimplementierungen ... 274 4.4 ... Konkrete Anwendungsfälle ... 277 5. Verhaltensimplementierung ... 283 5.1 ... Business Object Provider API ... 283 5.2 ... Laufzeitverhalten des ABAP RESTful Application Programming Models ... 284 5.3 ... Schnittstellen für den Interaktionshandler und den Speicherhandler ... 288 5.4 ... Interaktionshandler ... 289 5.5 ... Speicherhandler ... 314 5.6 ... Ereignisse ... 324 6. Business-Services ... 331 6.1 ... Projektionsschicht ... 332 6.2 ... Servicedefinition ... 336 6.3 ... Service-Binding ... 337 6.4 ... Business-Services im SAP Gateway Client testen ... 341 6.5 ... UI-Services mit der SAP-Fiori-Elements-Vorschau testen ... 344 6.6 ... BO-Interfaces ... 345 7. Erweiterbarkeit von Geschäftsobjekten ... 355 7.1 ... Einführung in das Erweiterungskonzept ... 355 7.2 ... Erweiterungsoptionen ... 360 7.3 ... Ein Standardgeschäftsobjekt erweitern ... 376 8. Anwendungsoberflächen und SAP Fiori Elements ... 407 8.1 ... Entwicklungswerkzeuge ... 408 8.2 ... SAP-Fiori-Elements-Oberflächen für RAP-Anwendungen ... 412 TEIL II. Praktische Anwendungsentwicklung mit dem ABAP RESTful Application Programming Model ... 447 9. Anwendungsfälle ... 449 9.1 ... Einsatzgebiete des ABAP RESTful Application Programming Models ... 449 9.2 ... Abgrenzung der verschiedenen Implementierungstypen ... 450 9.3 ... Entscheidungskriterien zur Auswahl des Implementierungstyps ... 452 10. Managed Scenario: Entwicklung einer Anwendung mit SAP Fiori Elements ... 457 10.1 ... Beschreibung des Anwendungsfalls ... 458 10.2 ... Datenmodell aufbauen ... 458 10.3 ... Verhaltensdefinitionen erstellen ... 473 10.4 ... Business-Service definieren ... 480 10.5 ... SAP-Fiori-Elements-Oberfläche erstellen ... 485 10.6 ... Anreicherung um eine Ermittlung ... 493 10.7 ... Anreicherung um eine Validierung ... 498 10.8 ... Anreicherung um eine Aktion ... 502 10.9 ... Generierung und Deployment der Anwendung ... 505 10.10 ... Datei-Upload ... 512 11. Managed Scenario mit Unmanaged Save: Bestehende Anwendung integrieren ... 517 11.1 ... Beschreibung des Anwendungsfalls ... 518 11.2 ... Datenmodell aufbauen ... 522 11.3 ... Verhaltensdefinition erstellen ... 535 11.4 ... Funktion »Bestellung anlegen« realisieren ... 537 11.5 ... Funktion »Bestellung löschen« realisieren ... 565 11.6 ... Business-Services definieren ... 571 11.7 ... Berechtigungsprüfungen realisieren ... 575 11.8 ... SAP-Fiori-Elements-Oberfläche erstellen ... 581 12. Unmanaged Scenario: Vorhandenen Quellcode wiederverwenden ... 587 12.1 ... Beschreibung des Anwendungsfalls ... 588 12.2 ... Beschreibung der bestehenden Anwendung ... 589 12.3 ... Datenmodell erweitern ... 596 12.4 ... Verhaltensdefinition erstellen ... 603 12.5 ... Verhaltensimplementierung erstellen ... 607 12.6 ... Business-Service definieren ... 622 13. Besonderheiten in der Cloud-Umgebung ... 627 13.1 ... Technische Grundlagen ... 628 13.2 ... Identity and Access Management ... 636 13.3 ... SAP-Fiori-Apps bereitstellen und Berechtigungen vergeben ... 639 13.4 ... Business-Services konsumieren ... 648 Anhang ... 653 A ... Literaturverzeichnis ... 653 Das Autorenteam ... 655 Index ... 657
DevOps mit SAP
Entdecken Sie, wie DevOps Ihre SAP-Entwicklungspipeline verbessern kann! Erfahren Sie, was DevOps genau ist und welche Tools Sie für Versionskontrolle, Codierung, Testautomatisierung, Bereitstellung und Monitoring einsetzen. Lernen Sie das DevOps-Portfolio von SAP für On-Premise-, Cloud- oder hybride Systemen kennen. Aus dem Inhalt: Für On-Premise, Cloud und HybridWerkzeuge wie Git, Maven, Jenkins und Co.Continuous Integration and Delivery (CI/CD)DevOps in SAP S/4HANA und SAP BTPVerbesserte Versionsverwaltung Richtlinien für alle EntwicklungsphasenEffizientes Application Lifecycle ManagementOperation MonitoringSicherheitstools und -konzepteBest Practices für den Einsatz Danksagung ... 15 Einleitung ... 17 1. Einführung in DevOps ... 27 1.1 ... Was ist DevOps? ... 27 1.2 ... Kontinuierliche Integration und Auslieferung ... 33 1.3 ... Wie funktioniert DevOps? ... 36 1.4 ... Historie von DevOps ... 42 1.5 ... Mythen und Missverständnisse über DevOps ... 43 1.6 ... Wer braucht DevOps? ... 45 1.7 ... DevOps-Kultur ... 48 1.8 ... Herausforderungen bei der Implementierung von DevOps ... 50 1.9 ... Zusammenfassung ... 57 2. DevOps-Tools ... 59 2.1 ... Tools zur Code- und Versionskontrolle ... 59 2.2 ... Build-Tools ... 65 2.3 ... Testautomatisierungstools ... 72 2.4 ... Bereitstellungstools ... 84 2.5 ... Überwachungstools ... 97 2.6 ... DevOps-Portfolio von SAP ... 102 2.7 ... Zusammenfassung ... 107 3. DevOps für SAP-On-Premise-Systeme ... 109 3.1 ... Einführung in DevOps in SAP S/4HANA ... 109 3.2 ... abapGit ... 117 3.3 ... Change and Transport System ... 136 3.4 ... Verbessertes Change and Transport System ... 145 3.5 ... Zentrales Change and Transport System ... 150 3.6 ... Kontinuierliche Integration für ABAP On-premise mit Git-fähigem CTS ... 155 3.7 ... SAP HANA Transport für ABAP ... 159 3.8 ... Kontinuierliches Testen in ABAP ... 162 3.9 ... ABAP-Pipeline für kontinuierliche Integration und Auslieferung ... 171 3.10 ... End-to-End-DevOps-Szenario für SAP S/4HANA ... 176 3.11 ... Zusammenfassung ... 180 4. DevOps mit SAP Business Technology Platform ... 181 4.1 ... DevOps-Portfolio von SAP BTP ... 181 4.2 ... Services für die Planungsphase ... 184 4.3 ... Services für die Entwicklungs-, Build- und Testphasen ... 216 4.4 ... Services für die Freigabe- und Bereitstellungsphasen ... 231 4.5 ... Services für die Betriebs- und Überwachungsphasen ... 238 4.6 ... Ein End-to-End-DevOps-Szenario für Cloud-Landschaften mit SAP BTP ... 242 4.7 ... Zusammenfassung ... 246 5. DevOps für SAP BTP, ABAP-Umgebung ... 247 5.1 ... Einführung in SAP BTP, ABAP-Umgebung ... 248 5.2 ... Tools für die kontinuierliche Integration und Auslieferung in SAP BTP, ABAP-Umgebung ... 253 5.3 ... Entwicklung von Anwendungen mit SAP Business Application Studio ... 267 5.4 ... SAP Cloud ALM für das Testmanagement ... 278 5.5 ... SAP Cloud Transport Management für SAP BTP, ABAP-Umgebung ... 287 5.6 ... Zusammenfassung ... 290 6. DevOps für hybride SAP-Systeme ... 291 6.1 ... Einführung in das hybride Änderungsmanagement ... 292 6.2 ... Verfügbare Tools und ihr Zweck ... 299 6.3 ... Tool-Integration beim Änderungsmanagement in hybriden Szenarien ... 313 6.4 ... Kontinuierliche Entwicklung ... 322 6.5 ... Betriebsüberwachung mit SAP Solution Manager ... 326 6.6 ... DevOps für SAP Data Intelligence ... 334 6.7 ... End-to-End-DevOps-Szenario für eine hybride Landschaft ... 340 6.8 ... Zusammenfassung ... 344 7. Best Practices ... 345 7.1 ... Kontinuierliche Integration und kontinuierliche Auslieferung ... 346 7.2 ... Microservices ... 358 7.3 ... Infrastructure as Code ... 360 7.4 ... Überwachung und Protokollierung ... 362 7.5 ... Kommunikation und Zusammenarbeit ... 363 7.6 ... Fail-Fast ... 364 7.7 ... Zusammenfassung ... 366 8. Sicherheit ... 367 8.1 ... Gängige Sicherheit-Tools und -Konzepte ... 368 8.2 ... Sicherheitsbezogene Codeanalysen ... 370 8.3 ... Automatisierte Sicherheitstests ... 397 8.4 ... Überwachung von Sicherheitslücken ... 399 8.5 ... Implementierung ... 403 8.6 ... Zusammenfassung ... 404 9. Ausblick ... 405 9.1 ... Aufkommende DevOps-Technologien ... 405 9.2 ... DevOps für SAP BTP, Kyma-Laufzeit ... 410 9.3 ... Zukünftige Richtungen von DevOps in SAP ... 410 9.4 ... Die ersten Schritte auf Ihrer DevOps-Reise ... 414 9.5 ... Wie man auf dem Laufenden bleibt ... 415 9.6 ... Zusammenfassung ... 418 Die Autoren ... 419 Index ... 421
Künstliche Intelligenz
Künstliche Intelligenz. Wie sie funktioniert und was sie für uns bedeutet. In übersetzter deutscher Erstauflage aus dem September 2024, ein Bestseller in Norwegen.Entdecken Sie die Grundlagen und Schlüsselkonzepte der Künstlichen Intelligenz in diesem bahnbrechenden Buch und finden Sie Antworten auf die großen Fragen, die uns derzeit alle beschäftigen: Wie funktioniert diese Technologie eigentlich? Welche Auswirkungen hat sie auf Gesellschaft, Ethik und Philosophie? Wie schnell entwickelt sie sich und wie wird sie unser Leben in Zukunft beeinflussen?Der norwegische Bestseller hat in ganz Skandinavien den Nerv der Zeit getroffen. Denn es gelingt der Wissenschaftlerin Inga Strümke, die komplexen Themen rund um KI und maschinelles Lernen auf eine Weise zu erklären, die sowohl für Fachleute als auch für Laien verständlich ist. Können Menschen mit ihrem Versuch, Künstliche Intelligenz zu erschaffen, überhaupt Erfolg haben? Und erfassen sie die Konsequenzen der Technologie?Mit ihrem Fachwissen als Physikerin und KI-Expertin an der NTNU in Trondheim und am Simula Metropolitan Center for Digital Engineering in Oslo bringt sie Licht in das oft missverstandene Feld der Künstlichen Intelligenz. Sie zeigt, wie maschinelles Lernen funktioniert, diskutiert die ethischen Herausforderungen und entmystifiziert die Ängste, die viele Menschen gegenüber dieser Technologie haben. Ob Tech-Neuling oder erfahrener Entwickler, dieses Buch wird Ihr Verständnis von Künstlicher Intelligenz vertiefen und erweitern. Aus dem Norwegischen von Christel Hildebrandt.Was KI ist, wo sie herkommt und was sie für uns bedeutet1. Wie KI-Systeme entworfen werden und aus Daten lernenDieses Buch bietet einen umfassenden Überblick von den frühen theoretischen Konzepten bis hin zu modernen Anwendungen. Lernen Sie die grundlegenden Prinzipien des maschinellen Lernens und der neuronalen Netze kennen. Auch ohne technisches Hintergrundwissen verständlich.2. Wie ein verantwortungsvoller Umgang mit KI möglich istVielen potenziellen Vorteilen durch KI stehen Risiken und Herausforderungen wie Datenschutz, Voreingenommenheit oder Verdrängung von Arbeitsplätzen gegenüber. Nur im differenzierten Dialog ist eine verantwortungsvolle Entwicklung möglich.3. Die Zukunft der Mensch-KI-Interaktion gestaltenKI kann für die menschliche Gesellschaft unkontrollierbar werden. Erkunden Sie die potenziellen Szenarien, damit wir auch vorbereitet sind auf Fortschritte und Gefährdungen.Aus dem InhaltGrundlagen der Künstlichen IntelligenzMaschinelle Lernen und dessen UnterartenNeuronale Netze und Deep LearningBewusstsein und IntelligenzEthik in der Künstlichen IntelligenzBias und Fairness in KI-SystemenRegulierung und GovernanceEntwicklung nachhaltiger KI-SystemeDatenschutz und Datensicherheit bei KI-AnwendungenAnwendung von KI in verschiedenen BranchenGesellschaftliche AuswirkungenDie Zukunft der Mensch-KI-InteraktionLeseprobe (PDF-Link)Über die Autorin:Inga Strümke ist eine norwegische Physikerin, spezialisiert auf Künstliche Intelligenz und Maschinenlernen. Sie wurde 1989 in Gummersbach, Deutschland, geboren und wuchs in Narvik, Norwegen auf. Strümke absolvierte ein Masterstudium in theoretischer Physik an der NTNU und promovierte in Teilchenphysik an der Universität Bergen. Sie arbeitet an der NTNU und am Simula Metropolitan Center for Digital Engineering. Strümke ist auch für ihre Arbeit in der Ethik der KI bekannt und hat einen Preis für Wissenschaftskommunikation erhalten. Sie veröffentlichte 2023 das Buch »Maskiner som tenker«, welches den Brageprisen erhielt.
Fit fürs Studium - Statistik (3. Auflg.)
Fit fürs Studium – Statistik. 3., aktualisierte Auflage aus August 2024Statistik gehört in vielen Studiengängen zum unverzichtbaren Handwerkszeug. Die Crux dabei: Nur weil Sie sich für Psychologie, Ernährung, Wirtschaft oder Soziales interessieren, haben Sie nicht unbedingt die passende Schulmathematik parat. Kein Problem: Dieses Buch knüpft an intuitives Denken an. Es führt Sie mit vielen Beispielen durch die Grundbegriffe der Statistik, sodass sich der Sinn von Mittelwerten, Hypothesentests und Co. ganz einfach erschließt.Sie lernen nicht nur, die jeweiligen Berechnungen durchzuführen, sondern auch, mit Datenmaterial eigenständig umzugehen, die richtigen Fragen zu stellen und Ergebnisse sinnvoll und anschaulich grafisch darzustellen. So sind Sie auf Ihre Aufgaben im Studium gut vorbereitet: sowohl auf die erste Hausarbeit mit echten Daten, als auch auf die manchmal gefürchtete Statistik-Vorlesung. Geeignet für alle Studiengänge.Vom Würfel zur Wissenschaft1. Statistik – und zwar ganz von vornFreuen Sie sich auf Beispiele, die sich ohne Vorkenntnisse erschließen und Sie in Wahrscheinlichkeitsrechnung und Statistik einführen. Vom Würfelglück und der Frage, wie man Daten sinnvoll darstellt, geht es Schritt für Schritt sicher in komplexere Themen hinein. Dabei werden mathematische Symbole und Konzepte allgemeinverständlich erklärt.2. Der Reihe nach: beschreibende, schließende & beurteilende StatistikWissen Sie, warum das arithmetische Mittel nicht immer ein sinnvoller »Durchschnitt« ist oder wie mit Statistik am häufigsten »gelogen« wird? Nach den ersten Kapiteln bestimmt – und Sie sind fit in beschreibender Statistik. Erst danach geht es darum, aus Daten Schlüsse zu ziehen und wissenschaftliche Hypothesen zu beurteilen.3. So macht Wissenschaft richtig Spaß!Für die beurteilende Statistik kommt das Rechnen mit Wahrscheinlichkeiten hinzu. Und das kann richtig Spaß machen! Lassen Sie sich darauf ein, »P(E)« neu zu entdecken und Ihre eigene Intuition ins Spiel zu bringen. Nach und nach bekommen Sie für die Methoden realer Forschung ein solides Gespür.Aus dem InhaltGrundbegriffe der StatistikHäufigkeitsverteilungenLagemaßzahlenStreuungsmaßzahlenKovarianz und KorrelationGrundlagen der WahrscheinlichkeitsrechnungBedingte WahrscheinlichkeitenKombinatorikZufallsgrößen und ErwartungswerteNormalverteilung, Binomialverteilung und Co.Wie man Hypothesen richtig testetStichproben und ihre FallstrickeÜber den Autor: Benno Grabinger ist Gymnasiallehrer und Fachberater Mathematik i. R. sowie langjähriger Autor zu mathematikdidaktischen Themen. Seine Schwerpunkte sind die Didaktik der Wahrscheinlichkeitsrechnung und Statistik sowie IT-gestützter Mathematikunterricht.Leseprobe (PDF-Link)
Informatikmagie
Kreativer Einstieg in die faszinierende Welt des Programmierens. Ein spannendes Buch von Thomas Garaio, Design & Engineering bei der Oxon AG.Dieses Buch verfolgt nicht den Weg konventioneller Informatikbildung. Stattdessen arbeitet es mit fertigen Beispielen, die genau beobachtet werden können. Die Konstanten der Programme können über Schieberegler direkt beeinflusst werden. So beobachten die Lernenden direkt, wie das Programm sich verändert. Danach werden in Schritt-für-Schritt Anleitungen kleine Coding-Aufgaben umgesetzt. Die Ergebnisse scheinen zu Beginn etwas magisch, doch mit jeder Aufgabe lüften sich mehr Geheimnisse.Das Buch enthält dreizehn Aufgaben aus den Bereichen Computergrafik und Physik, die anhand fixfertiger Programme zeigen, wie vielfältig und kreativ programmieren sein kann. Wir sehen unter anderem, wie man Feuer, Wasser, Schnellflocken, Bäume oder Würmer simulieren kann. Die inspirierenden Aufgaben laden zum Experimentieren ein und vermitteln auf dem Weg die notwendigen informatischen Grundkonzepte, wie sie an höheren Fachschulen heute gefordert werden.Im Anhang findet sich zudem eine Einführung in die neue pädagogische Programmiersprache Oxoscript. Diese Sprache stellt eine vereinfachte Form der bekannten Python-Sprache dar, die speziell für Programmiereinsteiger*innen entwickelt wurde.Leseprobe (PDF-Link)Für die Bearbeitung ist eine Oxocard Galaxy, Artwork oder Science erforderlich. Diese finden Sie natürlich im heise shop:Oxocard Galaxy Play & ExploreOxocard Artwork Creative CodingOxocard ScienceÜber den Autor: Thomas Garaio ist Unternehmer, Erfinder und Designer. Er ist seit 1994 selbstständig tätig und hat seitdem verschiedene Tech-Startups gegründet. Seit 2013 entwickelt er im Berner Startup Oxon mit einem Team bestehend aus Elektronikern, Designern und Software-Entwicklern elektronische Geräte und Software rund um das Internet der Dinge. Nach der gymnasialen Ausbildung hat er drei Semester theoretische Informatik studiert, dann aber den Weg in die Selbstständigkeit gewagt. Er schreibt Bücher, berät viele internationale Unternehmen und ist Mitglied der Swiss Design Association.
Agile Spiele - kurz & gut (2. Auflg.)
Agile Spiele - kurz & gut (2. Auflg.)Spiele und Simulationen unterstützen Agile Coaches und Scrum Master optimal dabei, agile Prinzipien und Praktiken zu veranschaulichen – und sie machen Spaß! Mittlerweile sind sie fester Bestandteil des Werkzeugkoffers von agilen Moderatorinnen und Moderatoren. Dieses Buch beschreibt über 50 Spiele, die sich in der Praxis besonders bewährt haben.Vorgestellt werden Spiele aus den Kategorien: Vermittlung von agilen PrinzipienSimulationen von agilen PraktikenKommunikation Spiele zur Eröffnung, zur Auflockerung und zum Abschluss von agilen Workshops und Trainings sowie Energizer für zwischendurch komplettieren den Werkzeugkoffer.Über die Autoren:Marc Bleß und Dennis Wagner – beide seit vielen Jahren als Agile Coaches tätig – erläutern, was bei der Moderation von agilen Spielen zu beachten ist und wann welches Spiel eingesetzt werden kann. In dieser 2. Auflage zeigen sie auch, wie die Spiele in Onlineworkshops genutzt werden können und welche Tools und Techniken dafür benötigt werden. Zudem haben die Autoren interessante neue Spiele ergänzt.
JavaScript Schnelleinstieg
Mit diesem Buch gelingt Ihnen der einfache Einstieg ohne Vorkenntnisse in JavaScript.Alle Grundlagen der Programmierung mit JavaScript werden in 14 Kapiteln kompakt und leicht verständlich erläutert: von den grundlegenden Programmiertechniken wie Variablen und Funktionen über objektorientierte Programmierung bis hin zur Entwicklung dynamischer Webseiten mit modernem JavaScript.Hierbei werden auch fortgeschrittene Themen wie das Document Object Model (DOM), Event Handling, synchrone und asynchrone Verarbeitung, die REST-API sowie das Speichern von Daten in Cookies und Web Storage behandelt.Zahlreiche Codebeispiele und Übungsaufgaben mit Lösungen zum Download helfen Ihnen, das neu gewonnene Wissen anzuwenden und zu vertiefen. So sind Sie perfekt auf den Einsatz von JavaScript und die Programmierung interaktiver Webseiten in der Praxis vorbereitet.Solide Grundkenntnisse in HTML und CSS werden vorausgesetzt.AUS DEM INHALT:* Alle Grundlagen kompakt und verständlich erklärt* Kontrollstrukturen, Arrays und objektorientierte Programmierung (OOP)* JSON als Austauschformat für strukturierte Daten* Dynamische Webseiten: DOM als Schnittstelle zwischen HTML und JavaScript* Behandlung von Ereignissen (Events)* Formulare prüfen und versenden* Animationen mit asynchronem JavaScript und Web Animations API* Kommunikation mit dem Webserver* Daten speichern mit Cookies / Web Storage* Programmcode und Lösungen zum DownloadUlrike Häßler ist Informatikerin der ersten Tage und verfügt über jahrelange Erfahrung im Bereich der Webseitengestaltung mit HTML, CSS und JavaScript.
Die Modularität von Java 9
Entwickeln Sie modulare Anwendungen mit dem Java Platform Module System, dem am meisten erwarteten Feature von Java 9. Sie werden die Wartbarkeit und Leistung Ihrer Java-Anwendungen verbessern, indem Sie nur die Module einsetzen, die benötigt werden, und deren Implementierungsdetails kapseln.Bis jetzt war Java monolithisch. Die Verwendung eines beliebigen Teils von Java bedeutete die Einbindung der gesamten Laufzeitumgebung, ein Ansatz, der für die wachsende Zahl von IoT-Geräten wie Fitnessmonitoren, Küchengeräten, Spielzeugen und Spielen usw. nicht geeignet ist. Dieses Buch zeigt einen neuen Weg auf, wie Java vom kleinsten Fußabdruck im kleinsten Gerät über Desktop-PCs bis hin zu Serverplattformen skaliert werden kann.Mit Java 9 Modularity Revealed lernen Sie, Ihre Projekte zuverlässiger und skalierbarer als je zuvor zu machen, indem Sie die wichtigste Funktion von Java 9 nutzen - das Java Platform Module System, besser bekannt als Project Jigs.aw. Sie werden lernen, wie Sie einen der Hauptprobleme der Java-Programmierung vermeiden können, nämlich widersprüchliche Klassennamen aus verschiedenen Modulen oder Paketen. Sie werden lernen, benutzerdefinierte Laufzeit-Images zu erstellen, die eine minimale und kompaktere JRE darstellen und nur die Module enthalten, die Sie benötigen. Außerdem lernen Sie, wie Sie bestehende Java-Anwendungen mit Hilfe verschiedener Ansätze und Werkzeuge in modulare Anwendungen umwandeln können. Das Endergebnis ist eine neue Fähigkeit, verschiedene Module zusammenzustecken, ohne Angst vor Namensraum- und anderen Konflikten zu haben, und Sie können alles einsetzen, von kleinen Geräten bis hin zu großen Servern.Dieses Buch enthält Codebeispiele und Erläuterungen.WAS SIE LERNEN WERDEN* Java-Anwendungen mit dem neuen, in Java 9 eingeführten modularen System erstellen * ErstellenSie Ihre eigene JRE, die nur aus den von Ihnen benötigten Modulen besteht * Anpassung Ihrer Testtechniken an modulare AnwendungenIhre Abhängigkeiten von anderen Modulen aufzulösen* Aktivieren Sie Module, die nur bestimmte Pakete exportieren Bestehende Java-Anwendungen in modulare Anwendungen umwandeln * Verbesserung der Wartbarkeit und Leistung von Java-AnwendungenFÜRWEN DIESES BUCH BESTIMMT ISTErfahrene Java-Programmierer, die über die neue Modularitätsunterstützung in Java 9 auf dem Laufenden bleiben und sich informieren möchtenALEXANDRU JECAN IST Softwareentwickler, Autor, Trainer und Redner und lebt in München, Deutschland. Er hat einen Abschluss in Informatik von der Technischen Universität Cluj-Napoca, Rumänien. Alexandru bietet professionelle Inhouse-Schulungen zu verschiedenen Softwaretechnologien in ganz Deutschland an. Außerdem spricht er auf technischen Konferenzen und Benutzergruppen in Europa und den USA über verschiedene Themen im Zusammenhang mit der Softwareentwicklung. Er wurde vom deutschen JavaMagazin zum "Autor des Monats" gekürt.Einführung.- Kapitel 1: Modulare Programmierkonzepte.- Kapitel 2: Projekt Jigsaw.- Kapitel 3: Modulares JDK und Quellcode.- Kapitel 4: Definieren und Verwenden von Modulen.- Kapitel 5: Modulare Laufzeitbilder.- Kapitel 6: Dienste.- Kapitel 7: jLink: Der Java Linker.- Kapitel 8: Migration.- Kapitel 9: Die neue Modul-API.- Kapitel 10: Fortgeschrittene Themen.- Kapitel 11: Testen modularer Anwendungen.- Kapitel 12: Integration mit Tools.
Linux Kommandoreferenz (6. Auflage)
Linux Kommandoreferenz. Shell-Befehle von A bis Z. In 6., aktualisierte Auflage (2024). Mit der Kommandoreferenz nutzen Sie die Shell voll aus. Sie liefert Ihnen einen strukturierten Überblick über alle Linux-Befehle, erklärt ihre Verwendung und zeigt Ihnen Praxisbeispiele zu den wichtigsten Anwendungsfälle. Für den Einstieg finden Sie verständliche Erklärungen zu allen Werkzeugen, und wenn Sie bereits intensiver mit Linux arbeiten, profitieren Sie von Hinweisen zu distributionsspezifischen Abweichungen und der kommentierten Übersicht über die Konfigurationsdateien. Über 500 Befehle aus allen Bereichen, thematischer und alphabetischer Zugriff auf Kommandos, sofort einsetzbare Praxisbeispiele!Die Linux-Grundausstattung1. Befehle schnell und einfach findenDie Referenz ermöglicht eine rasche alphabetische oder thematische Suche von Kommandos. Bekannte Befehle schlagen Sie so schnell nach. Neue Kommandos finden Sie einfach durch die thematische Zuordnung.2. Kommandos verstehenViel mehr als bloße Funktionsbeschreibung: An zahlreichen Anwendungsbeispielen lernen Sie den Einsatz der Kommandos und Optionen kennen – distributionsspezifische Besonderheiten inklusive. Und weil sich Linux mittlerweile auch unter Windows ganz leicht ausführen lässt, beschreibt die Kommandoreferenz sogar das Windows-Kommando wsl.3. Echter PraxisnutzenWas bedeuten die Spalten der /etc/fstab? Wie löscht vim die aktuelle Zeile? Wo speichert systemd Unit Files? Diese Antworten sowie die Syntax zentraler Konfigurationsdateien und Übersichten zu häufig gebrauchten Tastenkürzeln finden Sie hier!Aus dem InhaltÜber 500 KommandosSyntaxreferenzReferenz der TastenkürzelDateisystem- und Netzwerk-AdministrationSELinux, AppArmor, iptables und nftPaketverwaltung, Snap und FlatpackDrucker-, Datenbank- und Server-AdministrationCloud und Virtualisierung: aws, docker, kvm, virshWLAN, Bluetooth und weitere HardwareSystemstart/-stopp, Init-System, GRUBZertifikate: acme.sh, certbot, opensslWSL und Windows-IntegrationLeseprobe (PDF-LInk)Über den AutorMichael Kofler studierte Telematik an der TU Graz. Er ist einer der erfolgreichsten und vielseitigsten Computerbuchautoren. Zu seinen Themengebieten zählen neben Linux auch Python, Java, Kotlin und die IT-Sicherheit. Viele seiner Bücher wurden übersetzt. Michael Kofler arbeitet zudem als Software-Entwickler, Berater sowie als Lehrbeauftragter an zwei Fachhochschulen.