Programmierung
Pro Spring 6
Master the Spring Framework, its fundamentals and core topics, and share the authors’ insights and real-world experiences. This book goes well beyond the basics: you'll learn how to leverage the latest Spring Framework 6 to build the various tiers and parts of today's modern, complex enterprise Java applications systems, top to bottom, including data access, SQL generation with jOOQ, persistence with Hibernate, transactions, set up security, classic web and presentation tiers and adding in some reactivity. Spring 6 will be based on the latest available Long Term Support (LTS) release, Java 17. So, you will be able to do the following in your Spring applications: use records, use new utility methods in String class; utilize Local-Variable Syntax for Lambda Parameters; Nested Based Access Control, and more. Integrating Spring with the most used frameworks and libraries is covered in this book, such as Testcontainers, Hibernate, jOOQ, Kafka and many others.A full sample application allows you to apply many of the technologies and techniques covered in Pro Spring 6 and see how they work together. This book updates the perennial bestseller with the latest that Spring Framework 6 has to offer. Now in its sixth edition, this popular title is by far the most comprehensive and definitive treatment of Spring available. After reading this book, you'll be armed with the power of Spring to build complex applications, top to bottom. The agile, lightweight, open-source Spring Framework continues to be the de facto leading enterprise Java application development framework for today's Java programmers and developers.WHAT YOU WILL LEARN* What’s new in Spring Framework 6 and how to use it with the latest LTS version of Java, Java 17* How to integrate Spring with the most renowned and practical frameworks and dependencies* How to build complex enterprise cloud-native applications using Spring 6* How to master data access, persistence and transactions* How to use with Spring Batch, Integration and other key Spring projectsTHIS BOOK IS FORExperienced Java and enterprise Java developers and programmers. Some experience with Spring highly recommended.IULIANA COSMINA is a Spring Certified Web Developer and is also Spring Certified Core Spring Professional. She is a Spring certified expert, as defined by Pivotal, the makers of Spring Framework, Boot and other tools. She has authored books with Apress on Core Spring certification and Spring Certified web development. She is a Lead Engineer at Cloudsoft, Edinburgh and is an active coder and software contributor on Apache Brooklyn, GitHub, StackOverflow and more.ROB HARROP is a software consultant specializing in delivering high-performance, highly-scalable enterprise applications. He is an experienced architect with a particular flair for understanding and solving complex design issues. With a thorough knowledge of both Java and .NET, Harrop has successfully deployed projects across both platforms. He also has extensive experience across a variety of sectors, retail and government in particular. Harrop is the author of five books, including Pro Spring, a widely-acclaimed, comprehensive resource on the Spring Framework.CHRIS SCHAEFER is a Principle Software Developer for Spring project at Pivotal, the makers of Spring Framework, Boot and other Spring tools.CLARENCE HO is the Senior Java Architect of a HK-based software consultancy firm, SkywideSoft Technology Limited. Having been worked in the IT field for over 20 years, Clarence had been the team leader of many in-house application development projects, as well as providing consultancy services on enterprise solutions to clients.Chapter 1: Introducing SpringChapter 2: Getting StartedChapter 3: Introducing IoC and DI in SpringChapter 4: Advanced Spring Configuration and Spring BootChapter 5: Spring AOPChapter 6: Spring JDBCChapter 7: Spring with HibernateChapter 8: Spring with JPAChapter 9: Spring Transaction ManagementChapter 10: Spring Data with SQL and NoSQL databasesChapter 11: Validation, Formatting and Type ConversionChapter 12: Task Scheduling - some new things might be needed here.Chapter 13: Spring RemotingChapter 14: Spring Native and Other GoodiesChapter 15: Spring MVCChapter 16: Spring REST SupportChapter 17: Securing Spring Web ApplicationsChapter 18: Monitoring Spring ApplicationsChapter 19: Spring WebSocket SupportChapter 20: Reactive Spring
TypeScript - Ein praktischer Einstieg
Ein großartiger Ausgangspunkt für alle, die neu in TypeScript einsteigen!* Vermittelt JavaScript-Entwicklerinnen und -Entwicklern, die keine Vorkenntnisse zu Typisierung und Typsystemen mitbringen, die Grundlagen von TypeScript.* Mit verständlichen, jeweils eigenständigen Codebeispielen, wertvollen Hilfestellungen und Tipps nach dem Motto: aus alt und unsicher (JS) mach neu und sicher (TS).* Gut lesbar, mit viel Humor geschrieben.JavaScript lässt Entwicklerinnen und Entwicklern viele Freiheiten, was im Programmieralltag – insbesondere bei umfangreicher Codebasis – häufig zu Problemen führt. TypeScript wurde entwickelt, um hier Abhilfe zu schaffen, und hat in den letzten Jahren erfolgreich die JavaScript-Welt erobert. Mit einem durchdachten Typsystem unterstützt es ein strukturiertes Programmieren, das Refaktorieren von Code und das Entwickeln skalierender Webanwendungen.Josh Goldberg orientiert sich in seiner Einführung immer am Programmieralltag. Kompakt beschreibt er, wie das Typsystem beschaffen ist, wie es mit JavaScript interagiert und wie Entwicklerinnen und Entwickler ihren Code lesbarer und wartbarer gestalten können. Für Goldberg ist das Typsystem von TypeScript nicht nur ein Mittel, um Fehler zu beseitigen, sondern ein wunderschönes System, mit dem Entwickler festlegen, wie ihr JavaScript funktionieren soll, und das ihnen dabei hilft, sich an diese Vorgaben zu halten.Josh Goldberg ist Softwareberater und Open-Source-Maintainer. Er trägt aktiv zu TypeScript und den Projekten dieses Ökosystems wie typescript-eslint und TypeStat bei. Zuvor war Josh Frontend-Entwickler im Web-Platform-Team von Codecademy, wo er die Verwendung von TypeScript im Unternehmen vorantrieb und half, ein TypeScript-Tutorial zu entwickeln.
Eine Tour durch C++
Der praktische Leitfaden für modernes C++. Eine Übersetzung der 3. Auflage in deutscher Erstauflage aus Juni 2023. Erhältlich als digitale und gedruckte Fassung.Dieses Buch bietet erfahrenen Programmierern einen praktischen Überblick über C++20 nach ISO-Standard und damit ein klares Verständnis für den Einsatz von modernem C++. Anhand vieler Codebeispiele und hilfreicher Praxistipps wird ein Großteil der Hauptfeatures der Sprache sowie der Standardbibliothek behandelt, die für den effektiven Einsatz unverzichtbar sind.Stroustrup stellt die einzelnen Sprachfeatures von C++ vor und zeigt, wie sie im Kontext der unterstützten Programmierstile eingesetzt werden, beispielsweise der objektorientierten oder generischen Programmierung. Seine Tour beginnt mit den Grundlagen und setzt den Fokus anschließend auf fortgeschrittene Techniken, wobei er insbesondere auf die neueren Sprach-features eingeht.Dieses Buch deckt zahlreiche Features ab, die mit C++20 neu eingeführt wurden, darunter Module, Konzepte, Koroutinen und Bereiche. Selbst einige schon jetzt verfügbare Komponenten, die nicht vor C++23 in den Standard integriert werden sollen, werden vorgestellt.Wenn Sie bereits Programmierkenntnisse in C++ oder einer anderen Sprache haben, ist dies die kompakteste und verständlichste Einführung, um die Besonderheiten und Vorteile von modernem C++ kennenzulernen.Aus dem Inhalt:Die Grundlagen: Funktionen, Referenzen, Zeiger und mehrBenutzerdefinierte TypenModularitätFehlerbehandlungKlassenOperationenTemplatesKonzepte und generische ProgrammierungDie StandardbibliothekStrings und reguläre AusdrückeStreamsAlgorithmenBereiche (Ranges)Zeiger und ContainerUtilitiesNumerikNebenläufigkeitZahlreiche Ratschläge für die effektive Programmierung aus den »C++ Core Guidelines«Positiv besprochen auf heise online im Oktober 2023:»Dem mitp-Verlag ist mit der Übersetzung der dritten Auflage des englischen Originals ein lesenswertes Buch gelungen, das sich zudem durch eine sinnvolle didaktische Struktur auszeichnet. Alle Kapitel enden mit einer Liste von Ratschlägen, mit zum Teil kontroversen Empfehlungen, die Leserinnen und Lesern aber in jedem Fall wertvolle Hilfestellung bei der Umsetzung von Programmierarbeiten in der Praxis leisten dürften.«Über den Autor:Bjarne Stroustrup hat C++ entwickelt und die erste Implementierung geschrieben. Derzeit ist er Professor an der Columbia University und hat zuvor bei AT&T Bell Labs an der Texas A&M University sowie bei Morgan Stanley gearbeitet. Dr. Stroustrup erhielt zahlreiche Auszeichnungen, unter anderem den The National Academy of Engineering's Charles Stark Draper Prize for Engineering für die Konzeptionierung und Entwicklung der Programmiersprache C++. Er ist Mitglied der National Academy of Engineering und Fellow von IEEE, ACM, CHM und dem Churchill College Cambridge.Leseprobe (PDF-Link)
Introduction to Prescriptive AI
Gain a working knowledge of prescriptive AI, its history, and its current and future trends. This book will help you evaluate different AI-driven predictive analytics techniques and help you incorporate decision intelligence into your business workflow through real-world examples.The book kicks off with an introduction to decision intelligence and provides insight into prescriptive AI and how it can be woven into various business strategies and frameworks. You'll then be introduced to different decision intelligence methodologies and how to implement them, along with advantages and limitations of each. Digging deeper, the authors then walk you through how to perform simulations and interpret the results. A full chapter is devoted to embedding decision intelligence processes and outcomes into your business workflow using various applications. The book concludes by exploring different cognitive biases humans are prone to, and how those biases can be eliminated by combining machine and human intelligence.Upon completing this book, you will understand prescriptive AI, tools, and techniques and will be ready to incorporate them into your business workflow.WHAT YOU WILL LEARN* Implement full-fledged decision intelligence applications using Python* Leverage the tools, techniques, and methodologies for prescriptive AI* Understand how prescriptive AI can be used in different domains through practical examples* Interpret results and integrate them into your decision makingWHO THIS BOOK IS FORData Scientists and Machine Learning Engineers, as well as business professionals who want to understand how AI-driven decision intelligence can help grow their business.AKSHAY R. KULKARNI is an artificial intelligence (AI) and machine learning (ML) evangelist and a thought leader. He has consulted several Fortune 500 and global enterprises to drive AI and data science–led strategic transformations. He is a Google developer, an author, and a regular speaker at major AI and data science conferences (including the O’Reilly Strata Data & AI Conference and Great International Developer Summit (GIDS)) . He is a visiting faculty member at some of the top graduate institutes in India. In 2019, he was featured as one of India’s “top 40 under 40” data scientists. In his spare time, Akshay enjoys reading, writing, coding, and helping aspiring data scientists. He lives in Bangalore with his family.ADARSHA SHIVANANDA is a data science and MLOps leader. He is working on creating world-class MLOps capabilities to ensure continuous value delivery from AI. He aims to build a pool of exceptional data scientists within and outside organizations to solve problems through training programs. He always wants to stay ahead of the curve. Adarsha has worked extensively in the pharma, healthcare, CPG, retail, and marketing domains. He lives in Bangalore and loves to read and teach data science.AVINASH MANURE is a seasoned Machine Learning Professional with 10+ years of experience building, deploying, and maintaining state-of-the-art machine learning solutions across different industries. He has 6+ years of experience leading and mentoring high-performance teams in developing ML systems catering to different business requirements. He is proficient in deploying complex machine learning and statistical modeling algorithms/techniques for identifying patterns and extracting valuable insights for key stakeholders and organizational leadership.Chapter 1: Decision Intelligence Overview.- Chapter 2: Decision Intelligence Requirements.- Chapter 3: Decision Intelligence Methodologies.- Chapter 4: Interpreting Results from Different Methodologies.- Chapter 5: Augmenting Decision Intelligence Results into the Business Workflow.- Chapter 6: Actions, Biases and Human-in-the-Loop.- Chapter 7: Case Studies.
Pro Cryptography and Cryptanalysis with C++23
Develop strong skills for writing cryptographic algorithms and security schemes/modules using C++23 and its new features. This book will teach you the right methods for writing advanced cryptographic algorithms, such as elliptic curve cryptography algorithms, lattice-based cryptography, searchable encryption, and homomorphic encryption. You'll also examine internal cryptographic mechanisms and discover common ways in which the algorithms can be implemented and used correctly in practice.The authors explain the mathematical basis of cryptographic algorithms in terms that a programmer can easily understand. They also show how “bad” cryptography can creep in during implementation and what “good” cryptography should look like by comparing advantages and disadvantages based on processing time, execution time, and reliability.WHAT YOU WILL LEARN* Discover what modern cryptographic algorithms and methods are used for * Design and implement advanced cryptographic mechanisms * See how C++23 and its new features are impact the implementation of cryptographic algorithms* Practice the basics of public key cryptography, including ECDSA signatures and more* See how most of the algorithms can be brokenWHO THIS BOOK IS FORProfessional programmers, developers, and software engineers who are developing cryptography algorithms and security schemes/modules in C++. Prior C++ programming and IDE experience and some basic experience of cryptography concepts (symmetric and asymmetric) highly recommended.MARIUS IULIAN MIHAILESCU, PHD is CEO at Dapyx Solution Ltd., a company based in Bucharest, Romania and involved in information security- and cryptography-related research projects. He is a lead guest editor for applied cryptography journals and a reviewer for multiple publications with information security and cryptography profiles. He authored and co-authored more than 30 articles in conference proceedings, 25 articles in journals, and three books. For more than six years he has served as a lecturer at well-known national and international universities (University of Bucharest, “Titu Maiorescu” University, Kadir Has University in, Istanbul, Turkey). He has taught courses on programming languages (C#, Java, C++, Haskell), and object-oriented system analysis and design with UML, graphs, databases, cryptography and information security. He served for three years as IT officer at Royal Caribbean Cruises Ltd. where he dealt with IT infrastructure, data security, and satellite communications systems. He received his PhD in 2014 and his thesis was on applied cryptography over biometrics data. He holds two MSc in information security and software engineering.STEFANIA LOREDANA NITA, PHD is a software developer at the Institute of Computer Science of the Romanian Academy and a PhD with her thesis on advanced cryptographic schemes using searchable encryption and homomorphic encryption. She has served more than two years as an assistant lecturer at the University of Bucharest where she taught courses on subjects such as advanced programming techniques, simulation methods, and operating systems. She has authored and co-authored more than 15 workpapers at conferences and journals, and has authored two books on he Haskell programming language. She is a lead guest editor for special issues on information security and cryptography such as Advanced Cryptography and Its Future: Searchable and Homomorphic Encryption. She holds an MSc in software engineering and two BSc in computer science and mathematics.Part I: Foundations1: Introduction2: Cryptography Fundamentals3: Mathematical Background and Its Applicability4: Large Integer Arithmetic5: Floating Point Arithmetic6: New Features in C++237: Secure Coding Guidelines8: Cryptography Libraries in C/C++23Part II: Pro Cryptography9: Elliptic Curve Cryptography10: Lattice-based Cryptography11: earchable Encryption12: Homomorphic Encryption13: (Ring) Learning with Errors Cryptography14: Chaos-based Cryptography15: Big Data Cryptography16:Cloud Computing CryptographyPart III: Pro Cryptanalysis17: Getting Started with Cryptanalysis18: Cryptanalysis Attacks and Techniques19: Linear and Differential Cryptanalysis20: Integral Cryptanalysis21: Brute Force and Buffer Overflow Attacks22: Text Characterization23: Implementation and Practical Approach of Cryptanalysis Methods
Functional Programming in R 4
Master functions and discover how to write functional programs in R. In this book, updated for R 4, you'll learn to make your functions pure by avoiding side effects, write functions that manipulate other functions, and construct complex functions using simpler functions as building blocks.In Functional Programming in R 4, you’ll see how to replace loops, which can have side-effects, with recursive functions that can more easily avoid them. In addition, the book covers why you shouldn't use recursion when loops are more efficient and how you can get the best of both worlds.Functional programming is a style of programming, like object-oriented programming, but one that focuses on data transformations and calculations rather than objects and state. Where in object-oriented programming you model your programs by describing which states an object can be in and how methods will reveal or modify that state, in functional programming you model programs by describing how functions translate input data to output data. Functions themselves are considered to be data you can manipulate and much of the strength of functional programming comes from manipulating functions; that is, building more complex functions by combining simpler functions.WHAT YOU'LL LEARN* Write functions in R 4, including infix operators and replacement functions* Create higher order functions* Pass functions to other functions and start using functions as data you can manipulate* Use Filer, Map and Reduce functions to express the intent behind code clearly and safely* Build new functions from existing functions without necessarily writing any new functions, using point-free programming* Create functions that carry data along with themWHO THIS BOOK IS FORThose with at least some experience with programming in R.THOMAS MAILUND is Senior Software Architect at Kvantify, a quantum computing company from Denmark. He has a background in math and computer science. He now works on developing algorithms for computational problems applicable for quantum computing. He previously worked at the Bioinformatics Research Centre, Aarhus University, on genetics and evolutionary studies, particularly comparative genomics, speciation, and gene flow between emerging species. He has published Beginning Data Science in R with Apress, as well as other books out there.1. Functions in R2. Pure Functional Programming3. Scope and Closures4. Higher-order Functions5. Filer, Map, and Reduce6. Point-free Programming Afterword
C von A bis Z (5. Auflg.)
Das umfassende Handbuch. Hochdosiertes C-Wissen in 5. Auflage.Der beliebte Klassiker unter den Programmierbüchern neu aufgelegt! Aktuell zum Standard C23, von einem Autorenteam aus Praxis und Lehre. Lassen Sie sich umfassend einführen oder nutzen Sie das Buch als Nachschlagewerk. Von den Grundlagen über die dynamische Speicherverwaltung bis zur plattformübergreifenden Entwicklung. Randvoll mit hilfreichen Übungen, Beispielen und Praxistipps – C-Wissen pur!C von A bis ZLernen Sie C:C vereint die Eigenschaften Maschinennähe und Portabilität. Seit Jahren ist sie damit eine Programmiersprache erster Wahl. Hier erhalten Sie einen ausführlichen Einstieg.Einsteigen, programmieren, nachschlagen:Zu jedem C-Thema finden Sie ausführliche Erklärungen. Sowohl Einsteiger als auch Profis kommen voll auf ihre Kosten.Datentypen, Operatoren, Funktionen... :... Arrays, Pointer, dynamische Speicherverwaltung und Zeitroutinen bleiben kein Geheimnis. Praktische Beispiele veranschaulichen das Gelernte.Vollständiges C-Wissen:Threadprogrammierung, Sicherheit, Netzwerkprogrammierung und Datenbanken – auch anspruchsvolle Themen lässt dieses Buch nicht aus.Aus dem InhaltDatenstrukturenAlgorithmenSicherheitDynamische SpeicherverwaltungNetzwerkprogrammierungCross-Plattform-EntwicklungParallele ProgrammierungAuf Datenbanken zugreifenÜber den Autor:Jürgen Wolf ist Programmierer, Digitalfotograf und Autor aus Leidenschaft. C/C++, Linux und die Bildbearbeitung mit Photoshop Elements und GIMP sind seine Themen.René Krooß ist Diplom-Informatiker, begeisterter Programmierer und Experte für Prozessorstrukturen, Betriebssysteme, Hardware-Programmierung und Algorithmen.Leseprobe (PDF-Link)
C von A bis Z
Unser beliebter Klassiker in fünfter Auflage. Zum aktuellen Standard C23 und mit einem Autorenteam aus Praxis und Lehre. Lassen Sie sich umfassend einführen oder nutzen Sie das Buch als Nachschlagewerk. Von den Grundlagen über die dynamische Speicherverwaltung bis zur plattformübergreifenden Entwicklung. Randvoll mit hilfreichen Beispielen und Praxistipps – C-Wissen pur! Aus dem Inhalt: DatenstrukturenAlgorithmenSicherheitDynamische SpeicherverwaltungNetzwerkprogrammierungCross-Plattform-EntwicklungParallele ProgrammierungAuf Datenbanken zugreifenCodebeispiele und Praxistipps Vorwort ... 25 1. Einstieg in C ... 27 1.1 ... Übersicht zu C ... 27 1.2 ... Der ANSI-C-Standard ... 29 1.3 ... Der POSIX-Standard ... 32 1.4 ... Vor- und Nachteile der Programmiersprache C ... 33 1.5 ... C in diesem Buch ... 34 1.6 ... Was benötigen Sie für C? ... 35 1.7 ... Welcher Compiler und welches Betriebssystem? ... 37 1.8 ... Unterschiede zwischen Windows und Linux ... 38 1.9 ... Eine Programmierumgebung einrichten am Beispiel von Pelles C 8.00 für Windows ... 38 1.10 ... Eine Programmierumgebung einrichten - Nano/GCC für Linux ... 47 2. Eine günstige Programmierplattform - der Raspberry Pi ... 49 2.1 ... Was genau ist der Raspberry Pi? ... 50 2.2 ... Installation eines Linux-Betriebssystems am Beispiel von Raspberry Pi OS ... 54 2.3 ... Die Konfiguration des Raspberry Pi im Detail ... 63 2.4 ... Das Tool raspi-config ... 63 3. Das erste Programm ... 69 3.1 ... Was leistet der Editor? ... 70 3.2 ... Was leistet der Compiler? ... 70 3.3 ... Was sind Include-Dateien, und wozu benötigt man sie? ... 71 3.4 ... Das erste Programm - die Ausgabe eines Textes in der Konsole ... 71 3.5 ... Das Hallo-Welt-Programm im Detail ... 72 3.6 ... Wie kompiliert man ein Programm und führt es anschließend aus? ... 75 4. Grundlagen ... 77 4.1 ... Symbole ... 77 4.2 ... Zeichensätze ... 84 4.3 ... Strings ... 89 4.4 ... Das Einführungsbeispiel mit Strings ... 90 5. Basisdatentypen ... 91 5.1 ... Was ist ein Byte, und wie werden Zahlen in C gespeichert? ... 91 5.2 ... Was ist eine Variable, und was ist ein Variablentyp? ... 92 5.3 ... Was ist ein Operand? ... 93 5.4 ... Was ist ein Parameter? ... 93 5.5 ... Wie speichert ein Prozessor Variablen, Parameter und Operanden? ... 93 5.6 ... Was sind Speicheradressen, und warum sind sie wichtig für C? ... 93 5.7 ... Deklaration und Definition von Variablen ... 94 5.8 ... Array-Datentypen (Datenfelder) ... 96 5.9 ... Standard-Datentypen ... 96 5.10 ... Ganzzahlige Typen mit vorgegebener Breite - ... 103 5.11 ... Die Gleitpunkttypen »float« und »double« ... 107 5.12 ... Komplexe Gleitpunkttypen - ... 115 5.13 ... Der Datentyp »char«, Standardgröße 1 Byte ... 117 5.14 ... Nationale contra internationale Zeichensätze ... 123 5.15 ... Boolesche Werte - ... 127 5.16 ... Der Unterschied zwischen vorzeichenlosen und vorzeichenbehafteten Zahlen ... 128 5.17 ... Limits für Ganzzahl- und Gleitpunktdatentypen ... 130 5.18 ... Der Typ »void« ... 134 5.19 ... Numerische Konstanten ... 134 5.20 ... Umwandlungsvorgaben für formatierte Ein-/Ausgabe ... 136 6. Formatierte Ein-/Ausgabe mit »scanf()« und »printf()« ... 145 6.1 ... Formatierte Eingabe mit »scanf()« ... 145 6.2 ... Formatierte Ausgabe mit »printf()« ... 155 7. Operatoren ... 159 7.1 ... Was sind Operatoren, und wozu benötigt man sie in C? ... 159 7.2 ... Arithmetische Operatoren ... 160 7.3 ... Erweiterte Darstellung arithmetischer Operatoren ... 164 7.4 ... Inkrement- und Dekrement-Operatoren ... 165 7.5 ... Bit-Operatoren ... 167 7.6 ... Makros für logische Operatoren und Bit-Operatoren - ... 175 7.7 ... Der »sizeof«-Operator ... 176 8. Typumwandlung ... 179 8.1 ... Automatische implizite Datentypumwandlung durch den CCompiler ... 179 8.2 ... Wozu benötigt man das benutzerdefinierte explizite Typecasting? ... 184 8.3 ... Explizite Datentypumwandlung mit Typecasting an Beispielen ... 184 9. Kontrollstrukturen ... 187 9.1 ... Verzweigungen mit der »if«-Bedingung ... 188 9.2 ... Die Verzweigung mit »else if« ... 192 9.3 ... Die Verzweigung mit »else« ... 194 9.4 ... Der !-Operator (logischer NOT-Operator) ... 198 9.5 ... Logisches UND (&&) - logisches ODER (||) ... 200 9.6 ... Der Bedingungsoperator »?:« ... 203 9.7 ... Fallunterscheidung: die »switch«-Verzweigung ... 205 9.8 ... Die »while«-Schleife ... 210 9.9 ... Die »do while«-Schleife ... 214 9.10 ... Die »for«-Schleife ... 219 9.11 ... Kontrollierter Ausstieg aus Schleifen mit »break« ... 227 9.12 ... Direkte Sprünge mit »goto« ... 229 9.13 ... Einige Anmerkungen zum Notationsstil, ehe Sie weiterlesen ... 229 9.14 ... Einige Anmerkungen zu einem guten Programmierstil ... 230 10. Funktionen ... 233 10.1 ... Was sind Funktionen? ... 233 10.2 ... Wozu dienen Funktionen? ... 234 10.3 ... Definition von Funktionen ... 234 10.4 ... Funktionsaufruf ... 235 10.5 ... Funktionsdeklaration ... 237 10.6 ... Lokale Variablen ... 239 10.7 ... Globale Variablen ... 241 10.8 ... Statische Variablen ... 243 10.9 ... Schlüsselwörter für Variablen - Speicherklassen ... 244 10.10 ... Typ-Qualifizierer ... 245 10.11 ... Geltungsbereich von Variablen ... 246 10.12 ... Speicherklassen-Spezifizierer für Funktionen ... 248 10.13 ... Datenaustausch zwischen Funktionen ... 249 10.14 ... Wertübergabe an Funktionen (Call-by-Value) ... 250 10.15 ... Der Rückgabewert von Funktionen ... 254 10.16 ... Die Hauptfunktion »main()« ... 256 10.17 ... Was bedeutet der Rückgabewert beim Beenden eines Programms? ... 258 10.18 ... Funktionen der Laufzeitbibliothek ... 262 10.19 ... Getrenntes Kompilieren von Quelldateien ... 263 10.20 ... Rekursive Funktionen (Rekursion) ... 265 10.21 ... »inline«-Funktionen ... 278 11. Präprozessor-Direktiven ... 281 11.1 ... Mit »#include« Dateien einbinden ... 282 11.2 ... Wichtige vordefinierte Headerdateien für C ... 283 11.3 ... Makros und Konstanten - »#define« ... 285 11.4 ... Bedingte Kompilierung mit »#ifdef« ... 294 11.5 ... Vordefinierte Präprozessor-Direktiven (ANSI C) ... 300 11.6 ... Einen Makroparameter durch einen String ersetzen ... 302 11.7 ... »#undef« - Makronamen wieder aufheben ... 304 11.8 ... Fehlermeldungen ausgeben mit »#error« ... 304 11.9 ... »#pragma« (gilt nur für Windows) ... 306 12. Arrays ... 307 12.1 ... Arrays deklarieren ... 308 12.2 ... Initialisierung und Zugriff auf Arrays ... 309 12.3 ... Arrays vergleichen ... 316 12.4 ... Anzahl der Elemente eines Arrays ermitteln ... 318 12.5 ... Übergabe von Arrays an Funktionen ... 319 12.6 ... Arrays aus Funktionen zurückgeben ... 322 12.7 ... Programmbeispiel zu Arrays ... 323 12.8 ... Array-Werte über die Tastatur einlesen ... 327 12.9 ... Mehrdimensionale Arrays ... 328 12.10 ... Arrays in eine Tabellenkalkulation einlesen (CSV-Dateien) ... 343 12.11 ... Strings/Zeichenketten (»char«-Array) ... 345 12.12 ... Einlesen von Strings ... 352 12.13 ... Die Standard-Bibliothek ... 355 13. Zeiger (Pointer) ... 369 13.1 ... Der Unterschied zwischen einer normalen Variablen und einem Zeiger ... 369 13.2 ... Zeiger deklarieren ... 370 13.3 ... Zeiger initialisieren ... 371 13.4 ... Zeigerarithmetik ... 384 13.5 ... Zeiger, die auf andere Zeiger verweisen ... 385 13.6 ... Typensicherung bei der Dereferenzierung ... 388 13.7 ... Zeiger als Funktionsparameter (Call-by-Reference) ... 389 13.8 ... Array und Zeiger ... 396 13.9 ... Zeiger auf Strings ... 403 13.10 ... Zeiger auf Zeiger und Stringtabellen ... 405 13.11 ... Zeiger auf Funktionen ... 415 13.12 ... void-Zeiger ... 420 13.13 ... Äquivalenz zwischen Zeigern und Arrays ... 424 13.14 ... Der »restrict«-Zeiger ... 426 14. Kommandozeilenargumente ... 429 14.1 ... Argumente an die Hauptfunktion übergeben ... 430 14.2 ... Argumente aus der Kommandozeile auswerten ... 435 15. Dynamische Speicherverwaltung ... 441 15.1 ... Das Speicherkonzept ... 442 15.2 ... Speicherallokation mit »malloc()« ... 444 15.3 ... Das NULL-Mysterium ... 447 15.4 ... Speicherreservierung und ihre Probleme ... 451 15.5 ... »free()« - Speicher wieder freigeben ... 452 15.6 ... Dynamische Arrays ... 460 15.7 ... Speicher dynamisch reservieren mit »realloc()« und »calloc()« ... 464 15.8 ... Speicher vom Stack anfordern mit »alloca()« (nicht ANSI C) ... 468 15.9 ... Ergänzende Anmerkungen zu »free()« ... 468 15.10 ... Zweidimensionale dynamische Arrays ... 469 15.11 ... Was muss man tun, wenn die Speicherallokation fehlschlägt? ... 472 16. Strukturen ... 479 16.1 ... Benutzerdefinierte Typendefinitionen mit »typedef« ... 479 16.2 ... Was ist ein strukturierter Datentyp, und wozu benötigt man ihn in C? ... 479 16.3 ... Strukturen mit »typedef struct« deklarieren ... 480 16.4 ... Initialisierung und Zugriff auf Strukturen ... 482 16.5 ... Strukturen als Wertübergabe an eine Funktion benutzen ... 491 16.6 ... Strukturen als Rückgabewert einer Funktion benutzen ... 493 16.7 ... Strukturen miteinander vergleichen ... 495 16.8 ... Arrays von Strukturen erstellen ... 497 16.9 ... Strukturen in Strukturen (Nested Structures) ... 504 16.10 ... Weitere spezielle Datentypen ... 514 16.11 ... Attribute von Strukturen verändern ... 524 16.12 ... Bitfelder ... 528 16.13 ... Das »offsetof«-Makro ... 535 17. Ein-/Ausgabe-Funktionen ... 537 17.1 ... Was ist eine Datei aus Sicht der Programmiersprache C? ... 537 17.2 ... Formatierte und unformatierte Ein-/Ausgabe ... 538 17.3 ... Höhere Ein-/Ausgabe-Funktionen mit ... 538 17.4 ... Streams (Ein-/Ausgabe-Datenströme) ... 566 17.5 ... Spezielle Ein-/Ausgabe-Funktionen für Streams ... 595 17.6 ... Low-Level-Datei-I/O-Funktionen (nicht ANSI C) ... 641 18. Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C) ... 673 18.1 ... Die Attribute einer Datei mit »stat()« ermitteln ... 673 18.2 ... Prüfen des Zugriffsrechts mit »access()« ... 691 18.3 ... Verzeichnisfunktionen ... 693 19. Arbeiten mit variabel langen Argumentlisten - ... 705 19.1 ... Was ist eine Ellipse, und wie werden mit ihr Parameter übergeben? ... 705 19.2 ... Wie kann man mit die Parameterliste abfragen? ... 706 19.3 ... Makros in - »va_list«, »va_arg«, »va_start« und »va_end« ... 706 19.4 ... Die Argumentliste am Anfang oder Ende kennzeichnen ... 707 19.5 ... »vprintf()«, »vsprintf()«, »vfsprintf()« und »vsnsprintf()« ... 712 19.6 ... Variadic Makros - __VA_ARGS__ ... 716 20. Zeitroutinen ... 721 20.1 ... Die Headerdatei ... 721 20.2 ... Laufzeitmessung (Profiling) ... 734 20.3 ... Besonderheiten beim Raspberry Pi ... 735 21. Weitere Headerdateien und ihre Funktionen (ANSI C) ... 737 21.1 ... Testmöglichkeiten und Fehlersuche - ... 738 21.2 ... Zeichenklassifizierung und Umwandlung - ... 739 21.3 ... Mathematische Funktionen - , und ... 744 21.4 ... Einige nützliche Funktionen in ... 758 21.5 ... Länderspezifische Eigenheiten - ... 778 21.6 ... Nichtlokale Sprünge - ... 782 21.7 ... Einige nützliche Funktionen in ... 786 21.8 ... Die »mem...«-Funktionen zur Speichermanipulation - ... 791 22. Dynamische Datenstrukturen ... 797 22.1 ... Lineare Listen (einfach verkettete Listen) ... 797 22.2 ... Doppelt verkettete Listen ... 832 22.3 ... Stacks nach dem LIFO-(Last-in-first-out-)Prinzip ... 849 22.4 ... Queues nach dem FIFO-Prinzip ... 870 22.5 ... Dynamisches Array mit flexiblen Elementen ... 879 23. Algorithmen ... 881 23.1 ... Was sind Algorithmen? ... 881 23.2 ... Einige einfache Beispiele für Algorithmen ... 883 23.3 ... Kryptografische Algorithmen ... 969 24. MySQL und C ... 1027 24.1 ... Aufbau eines Datenbanksystems ... 1027 24.2 ... MySQL installieren ... 1033 24.3 ... Crashkurs SQL ... 1037 24.4 ... Die MySQL-C-API ... 1052 24.5 ... MySQL und C mit CGI ... 1083 24.6 ... Funktionsübersicht ... 1101 24.7 ... Datentypenübersicht der C-API ... 1105 24.8 ... Weiterführende Literatur zu Datenbanken ... 1105 25. Netzwerkprogrammierung und Cross-Plattform-Entwicklung ... 1107 25.1 ... Begriffe zur Netzwerktechnik ... 1107 25.2 ... Was sind Sockets und wie legt man sie in C an? ... 1114 25.3 ... Headerdateien für die Netzwerkprogrammierung ... 1115 25.4 ... Das Client-Server-Prinzip ... 1118 25.5 ... Erstellen einer Client-Anwendung ... 1120 25.6 ... Erstellen einer Server-Anwendung ... 1130 25.7 ... Ein einfacher TCP-Echo-Server ... 1135 25.8 ... Cross-Plattform-Development ... 1143 25.9 ... Weitere Anmerkungen zur Netzwerkprogrammierung und Literaturempfehlungen ... 1166 26. Paralleles Rechnen ... 1173 26.1 ... Was ist Multitasking und wie wird es realisiert? ... 1173 26.2 ... Braucht man spezielle Prozessoren für Multitasking? ... 1174 26.3 ... Braucht man spezielle Multitasking-Betriebssysteme? ... 1177 26.4 ... Programmiertechniken der Parallelisierung ... 1177 26.5 ... Vom Prozess zum Thread ... 1179 26.6 ... Mit POSIX-Threads programmieren ... 1182 27. Sicheres Programmieren ... 1193 27.1 ... Buffer Overflow (Speicherüberlauf) ... 1194 27.2 ... Warum sind Buffer Overflows kritisch für die Sicherheit? ... 1195 27.3 ... Wie man Buffer Overflows vermeidet ... 1202 27.4 ... Gegenmaßnahmen zum Buffer Overflow, wenn das Programm fertig ist ... 1205 27.5 ... Stack Overflow (Stapelüberlauf) ... 1210 27.6 ... Was verursacht Stack Overflows? ... 1210 27.7 ... Warum ist ein Stapelüberlauf kritisch für die Sicherheit? ... 1210 27.8 ... Wie man Stack Overflows verhindert ... 1211 27.9 ... Memory Leaks (Speicherlecks) ... 1212 27.10 ... Bibliotheken und Tools zu Memory Leaks ... 1216 27.11 ... Tipps zu Sicherheitsproblemen ... 1217 28. Wie geht's jetzt weiter? ... 1219 28.1 ... GUI-Programmierung - grafische Oberflächen ... 1220 28.2 ... Grafikprogrammierung unter Windows ... 1223 Anhang ... 1241 A ... Operatoren ... 1241 Index ... 1247
Designing Applications for Google Cloud Platform
Learn how to use Google Cloud Platform (GCP) and its services to design, build, and deploy applications. This book includes best practices, practical examples, and code snippets written in Java, making it a key resource for developers seeking hands-on experience with GCP.You'll begin with an introduction to GCP services and a review of what Java offers while developing applications for GCP. Next, you'll be walked through how to set up Google App Engine, Google Storage Cloud, and Google Cloud SQL with use cases, as well as application development and deployment. As the book progresses, you'll be exposed to advanced GCP services, deploying and scaling applications on GCP services, and troubleshooting and optimization of Java applications on GCP. The book uses real-world examples to help you understand how GCP services can solve everyday problems.After completing this book, you will understand Google Cloud Platform and its services, and will have the knowledge needed to design, build, and deploy your own applications on GCP using Java.WHAT YOU'LL LEARN* Create a GCP project, configure authentication and authorization, and deploy a sample application.* Use GCP services to solve common problems and apply them to real-world scenarios* Implement GCP services such as Datastore, SQL, and Spanner* Leverage GCP tools such as the SDK and Cloud ShellWHO THIS BOOK IS FORSoftware developers, Cloud architects, and managers looking to design and build applications for Google Cloud Platform. This book is for those with software development experience who are familiar with Java programming. It is also suitable for those new to GCP who have a basic understanding of cloud computing concepts.ASHUTOSH SHASHI is a TOGAF 9 certified enterprise architect, a seasoned software engineer, and a cloud architect with over 18 years of experience in the industry. He has worked on multiple projects using various technologies and platforms, from small startups to large enterprise systems. He has helped many organizations design and build robust and scalable applications on GCP. Apart from GCP, he has extensive experience and expertise in AWS and Azure cloud platforms. Ashutosh lives in Duluth, Georgia, US. In his free time, he enjoys hiking and spending time with his family. He also loves to travel and explore different cultures.Chapter 1: Introduction to Google Cloud Platform.- Chapter 2: Setting up the Development Environment.- Chapter 3: Google App Engine.- Chapter 4: Data Storage in Google Cloud.- 5: Google Cloud SQL.- Chapter 6: Advanced GCP Services.- Chapter 7: Deployment and Scaling.- Chapter 8: Troubleshooting and Optimization.- Chapter 9: Conclusion.
Pro Jakarta EE 10
Welcome to your in-depth professional guide to the open source Eclipse Jakarta EE 10 platform. This book will help you build more complex native enterprise Java-based cloud and other applications that can run in corporate and other mission-critical settings. The majority of the key Jakarta EE 10 APIs or features are dissected in this book, including JSF, JSP, JPA, CDI, REST, Microprofiles, WebSockets, and many more. Along the way, various open source Apache, Eclipse, and other projects are integrated and used for more complete workflows and treatment in general.Jakarta EE 10 comes with a significant number of improvements over Java EE 9 technologies and adopts a series of new technologies. This book starts out with a concise development procedure proposal and shows NetBeans as an alternative IDE to Eclipse. It also talks about versioning, software repositories, and continuous integration techniques. The web tier of enterprise application architectures is covered, including state-of-the-art techniques such as web sockets and front end (JavaScript) related frameworks.The book presents a survey of architecture-related advanced topics, including micro profiles. In a supporting technologies chapter, JSON and XML processing methods are revisited and deepened, and the usage of scripting engines is introduced.A resources chapter discusses enterprise resource integration, such as resource adapters and Hibernate as a mapper between the SQL and the Java world. Also covered is the usage of no-SQL databases. A security chapter shows advanced security enhancement techniques for use of Jakarta EE in corporate environments. The last chapter talks about advanced logging and monitoring techniques, serving both developers and operations staff.WHAT YOU WILL LEARN* Build complex Jakarta EE applications that run in corporate or other enterprise settings* Create a professional development workflow using Jakarta EE* Build more advanced web development applications* Work with more advanced supporting technologies to increase application maturity and stability in a corporate environment * Do enterprise resource integration, including custom resource adapters* Utilize security enhancements of enterprise-level Jakarta EE applications* Leverage techniques to monitor and log in a corporate environment, including memory usage and performance troubleshootingWHO THIS BOOK IS FORExperienced Java programmers and web developers, especially those with some prior experience with the Java EE platformPETER SPÄTH graduated in 2002 as a physicist and soon after became an IT consultant, mainly for Java-related projects. In 2016 he decided to concentrate on writing books, with his main focus set on software development. He has written two books on graphics and sound processing and two books on Android and Kotlin programming. His new book addresses Jakarta EE developers who want to develop enterprise-level Java applications using Java 8.1. About MVC - Model, View, Controller* History of MVC* MVC in Web Applications* MVC for Java* Finally, Java MVC (JSR-371)* Why MVC* Where is Hello World?2. Prerequisite - Jakarta EE / Java EE* The Nature of Java for Enterprise Applications* Glassfish, a Free Java Server* Using a Preinstalled Java Server* Learning Java for Enterprise Applications* RESTful Services3. Development Workflow* Using Gradle as a Build Framework* Using Eclipse as an IDE* More About Gradle* Developing Using the Console* Installing MVC4. Hello World for Java MVC* Starting The Hello World Project* The Hello World Model* The Hello World View* The Hello World Controller* Using Gradle to Build Hello World* Starting a Jakarta EE Server* Deploying and Testing Hello World5. Start Working With Java MVC* Handling User Input From Forms* Exception Handling in Java MVC* Non-String Post Parameters6. In-Depth Java MVC* The Model* The View: JSPs* The View: Facelets* The Controller7. In-Depth Java MVC - Part II* Injectable Context* Handling State* Dealing With Page Fragments* Observers* Accessing the Context* Configuration8. Internationalization* Formatting of Data in the View* Localized Messages* Localized Data Conversion9. Connecting Java MVC to a Database* Using Plain JDBC* Using JPA10. Java MVC and EJBs* What are EJBs* Starting an EAR Project* Defining EJBs* Referring to EJBs from Java MVC11. Logging Java MVC Applications* Using Java Standard Logging* Using Log4j2* Using SLF4J12. A Java MVC Example Application* The BooKlubb Member Administration* The BooKlubb Model* The BooKlubb Controller* The BooKlubb View* Deploying and Testing BooKlubb(13. Debugging Java MVC Applications* Debugging From Eclipse* Starting a Debugging Session* Breakpoints14. Security in Java MVC* Standard Security Means* Built-In Additional Security Means)
COBOL - Altsysteme warten und erweitern
Altsysteme warten und erweitern. 416 Seiten als ePub oder PDF erhältlich.Dieses Buch richtet sich an erfahrene Entwickler objektorientierter Sprachen wie C++ oder Java. Es vermittelt die Funktionsweise der Programmiersprache COBOL, um die in zahlreichen Implementierungen auf unterschiedlichen Plattformen immer noch produktiv laufenden COBOL-Programme zu verstehen, zu warten und bei Bedarf mit zusätzlichen Funktionalitäten zu erweitern. Dafür bietet es Ihnen sowohl eine grundlegende Einführung in die Programmierung mit COBOL als auch eine thematisch gegliederte Referenz der Befehle mit praktischen Beispielen.Da reine COBOL-Programme in der Praxis selten zu finden sind, geht ein weiterführendes Kapitel speziell auf die Anbindung an relationale Datenbanken und hierarchische Datenbanksysteme wie IMS ein. Auch COBOL auf Host-Systemen und die Besonderheiten der CICS-Programmierung werden thematisiert.Mit diesem praktischen Handbuch sind Sie in der Lage, COBOL-Programme in Produktivumgebungen selbstständig zu warten und weiterzuentwickeln.Aus dem Inhalt:Grundlegende SprachelementeDatenfelder, Daten-strukturen und DatensätzeOperationen und KontrollstrukturenTabellenverarbeitungInterne und externe UnterprogrammeSequenzielle und index-sequenzielle DateienDatenbankanbindung (SQL, IMS)Host-Systeme und CISLeseprobe (PDF-Link)Kostenlose Downloads zum Buch (zip-File vom mitp-Server)
App-Entwicklung mit Flutter für Dummies
Wie Sie mit dem Flutter-Framework Android- und iOS-Apps mit nur einer Code Base und ohne Qualitätsverlust entwickeln, das erfahren Sie hier! Nach einer Einführung in die Programmiersprache Dart lernen Sie das User Interface Design, die Anbindung an Schnittstellen oder Datenbanken, State-Management und Routing in der App kennen, bevor Sie die App auf Fehler testen und in den Stores von Google und Apple veröffentlichen. Alle Schritte vollziehen Sie im Buch an einer durchgängigen Beispiel-App nach. Cross-Plattform-App-Entwicklung? Mit diesem Buch echt einfach! Mira Jago ist Quereinsteigerin in die Programmierung, Tech-Mentorin für Startups und Unternehmerin mit eigener Flutter-Agentur in Hannover. Außerdem gibt sie Kurse zu Flutter. Die Nachfrage ist so hoch, dass sie sich am liebsten klonen würde.Verena Zaiser baute mit 11 Jahren ihre erste eigene Website. Schon in der Schulzeit programmierte sie für Kunden. Sie studierte Informatik und ist heute freiberufliche Mobile-App-Entwicklerin in Stuttgart - natürlich immer mit Flutter.
Spektrum Kompakt - Künstliche Gespräche
Bis vor wenigen Jahren waren Unterhaltungen mit Maschinen mühselig: Häufig musste man das richtige Schlagwort treffen, um verstanden zu werden – und selbst dann war der Erfolg nicht garantiert. Ganz andere Erfahrungen macht man hingegen mit dem im November 2022 erschienenen KI-Chat-bot »ChatGPT«. Nur allzu schnell kann man vergessen, dass es sich dabei um einen Algorithmus handelt. Auch wenn das System gelegentlich Fehler macht, ertappe ich mich häufg dabei, dass ein Gespräch in mir Emotionen wie Dankbarkeit (wenn ChatGPT mir weiterhelfen konnte) oder Ärger (wenn die KI mich doch missversteht) hervorruft. Aber wie viel können wir von den künstlichen Gesprächspartnern erwarten? In dieser Ausgabe ergründen wir die Funktionsweise der neuen Technologien und zeigen ihre Potenziale und ihre Grenzen auf. Dieses Editorial habe ich übrigens selbst geschrieben – keine KI. Viel Spaß bei der Lektüre wünscht Ihnen Manon Bischoff, Redaktion Spektrum der Wissenschaft
Visual Studio Code Distilled
Use Visual Studio Code to write and debug code quickly and efficiently on any platform, for any device, using any programming language, and on the operating system of your choice.Visual Studio Code is an open source and cross-platform development tool that focuses on code editing across a variety of development scenarios, including web, mobile, and cloud development. This third edition has been updated to match the latest releases of the environment. Additional updates relate to .NET 7 and explain how to consume AI services from code you write in Visual Studio Code. This new edition is also refreshed with the latest updates, such as enhanced merge editor, creating extensions, support for the Julia language, and much more.The book teaches you how to be immediately productive with Visual Studio Code, from the basics to some of the more complex topics. You will learn how to work on individual code files, complete projects, and come away with an understanding of advanced code-editing features that will help you focus on productivity, and source code collaboration with Git.WHAT YOU WILL LEARN* Get started with practical guidance on Visual Studio Code, including expansive guidance on writing apps with C# and Python* Understand how to edit individual files and how to work with folders by working on the latest workspace trust and multi-root workspaces* Debug code on multiple platforms through real-world guidance, such as working under corporate networks* Package code into Docker containers and deploy these to Azure* Acquire valuable tips, tricks, and suggestions from hard-earned, real-world experience to be more productiveWHO THIS BOOK IS FORAll developers (including JavaScript, Java, NodeJS), not just those with a Microsoft background, who will benefit from learning and using VS code as a cross-platform and cross-language toolALESSANDRO DEL SOLE is Senior Software Engineer for a healthcare company, building mobile apps for doctors and dialysis patients. He has been in the software industry for more than 20 years, focusing on Microsoft technologies such as .NET, C#, Visual Studio, and Xamarin. He has been a trainer, consultant, and a Microsoft MVP since 2008 and is the author of many technical books. He is a Xamarin Certified Mobile Developer, Microsoft Certified Professional, and a Microsoft Programming Specialist in C#.Chapter 1: Introducing Visual Studio CodeChapter Goal: this chapter will introduce Visual Studio Code as a development tool from Microsoft, discussing its open source and cross-platform nature, its goals and most typical usage scenarios, explaining how it works on Windows, macOS and Linux distributions.Chapter 2: Getting to know the WorkspaceChapter Goal: this chapter will explain the VS Code workspace, its menus, commands, toolbars, shortcuts and areas in the user interface the developer must know to get familiar with the environment.Chapter 3: Language support and code editing featuresChapter Goal: this chapter will explain what languages are supported out of the box and which are instead supported through extensibility and, more important, it will cover all the powerful code editing features that represent the core of this tool. This is definitely the most important chapter. This is updated according to the latest releases (e.g. support for Julia language).Chapter 4: Working with files and foldersChapter Goal: this chapter explains how to edit individual files and how to work with folders that contain multiple files (or projects) in a structured way, making the natural step forward after learning about code editing features. This is updated according to the releases of the latest 15 months (e.g. workspace trust, multi-root workspaces).Chapter 5: Customizing VS CodeChapter Goal: this chapter will talk about customizing preferences in the VS Code environment, such as themes, keyboard shortcuts, the code editor, network preferences and much more. This is updated according to the releases of the latest 15 monthsChapter 6: Managing extensionsChapter Goal: this chapter will explain how to extend Visual Studio Code by installing extensions such as additional languages, debuggers, code snippets and team collaboration tools. It will also provide a list of must-have extensions and it will explain how to customize extension settings. As a new topic, guidance on how to create extensions will be provided (this is also the reason why this chapter has been renamed).Chapter 7: Source control with GitChapter Goal: this chapter will discuss source control with Git, which is about how people in the development team can collaborate over the code. Common features such as committing changes, merging and branching will be discussed. As a bonus, this chapter will also discuss how to leverage the integrated Git support against Microsoft Azure DevOps and GitHub via an extension. This is updated according to the releases of the latest 15 months (e.g. enhanced merge editor)Chapter 8: Automating tasksChapter Goal: this chapter will discuss how to execute external tools and commands from VS Code (such as compilers), explaining how this goes beyond being a simple code editor. This is updated according to the releases of the latest 15 monthsChapter 9: Building and debugging codeChapter Goal: this is another key chapter, as it explains how powerful VS Code is as a development tool and not as a simple code editor, due to its capability of running and debugging code with integrated debuggers for .NET and Node.JS and with debuggers that can be installed as extensions. Examples of running and debugging code will be provided for .NET (C#), Node.JS (Java) and Docker. This has been renamed to appear less specific, but it will be updated to target .NET 7.Chapter 10: Writing applications with PythonChapter Goal: this chapter explains how VS Code can be used to build apps with the popular Python language, leveraging all the enhanced editing features described in Chapter 3 and the task automation features described in Chapter 8. It comes with fully working code examples.Chapter 11: Building applications for the CloudChapter Goal: this chapter explains how to set up VS Code to work with Microsoft Azure, installing the appropriate extensions and with practical examples about writing and deploying Azure functions. As a new topic, this chapter also describes how to package code into Docker containers and deploy these to Azure.Chapter 12: Consuming AI Services with VS CodeChapter Goal: this is a brand new chapter that wants to address a trending topic of these days: consuming AI services. In this chapter, code examples will be provided about consuming some of the AI services offered by MS Azure (e.g. Computer Vision API).
Fokus!
Du bist Product Owner. Die Aufgabe könnte kaum komplexer sein: Die Qualität eures Produkts hängt von deiner Arbeit ebenso ab wie ein wertschätzendes Miteinander. Auch Infrastruktur, Stakeholder und Terminpläne brauchen deine Aufmerksamkeit. Ihr liefert häufig und du musst stets wissen, wie es um den Fortschritt bestellt ist. Dieses Handbuch hilft dir, die Rolle in allen Facetten gut auszufüllen. Es bietet einen Überblick über Prinzipien, Aufgaben und Artefakte in Scrum, lehrt Grundlagen gelungener Kommunikation und eine Fülle ganz konkreter Vorgehensweisen. Du profitierst von der vielseitigen Erfahrung der Autor*innen im Coaching und in der Produktentwicklung. Lerne pfiffige Abläufe und robuste Methoden für verschiedene Projektsituationen kennen. Für den Einstieg und als Begleiter in der Praxis. Aus dem Inhalt: Weshalb Unternehmen agil arbeitenAufgaben in der Product-Owner-RolleMeetings und Retrospektiven gestaltenProduktstrategie und ZieleStory Mapping und ReleaseplanungKommunikation: POs als VermittlerGekonnt priorisierenDesign Thinking: Nutzer*innen beobachten und verstehenDatengetriebene ProduktentwicklungRisiken erkennenAgilität für ganze Unternehmen Vorwort ... 17 1. Gesucht: Product Owner (m/w/d) ... 19 1.1 ... Scrum - eine agile Allzweckmethode? ... 20 1.2 ... Product Owner*in - was ist das eigentlich? ... 25 1.3 ... Fünf Dinge, um die du dich wirklich kümmern musst ... 31 1.4 ... Was ist NICHT dein Job?! ... 40 2. Alles im Blick: die Produktübersicht ... 43 2.1 ... Viele verschiedene Perspektiven einbeziehen ... 44 2.2 ... Alles auf einem Blatt ... 45 2.3 ... Deine Vision zählt ... 48 2.4 ... Die Bedürfnisse der Kundschaft kennenlernen ... 50 2.5 ... Die Produktstruktur entwickeln ... 52 2.6 ... Der Return muss stimmen: Nutzen und wirtschaftliche Anreize ... 58 2.7 ... Unwägbarkeiten und Risiken konstruktiv wenden ... 60 2.8 ... Rechtliche Rahmenbedingungen einbeziehen ... 65 2.9 ... Die Abhängigkeiten ermitteln ... 66 2.10 ... Die Kommunikation mit den Stakeholder*innen aufbauen ... 70 2.11 ... Experimentiere dich an den Auftrag ran ... 73 2.12 ... Deine persönliche Überblicksroutine ... 75 3. Das Fundament: Projektmanagement ... 77 3.1 ... Meilensteine, Iterationen und das Produkt-Ziel ... 78 3.2 ... Deine Vorgehensstrategie entwickeln ... 83 3.3 ... Wie sag ich es den anderen? ... 88 3.4 ... Vom ersten Meilenstein zum Product Backlog ... 90 3.5 ... Produktarten und ihre Herausforderungen ... 93 4. Zeit für Feedback ... 99 4.1 ... Die Wissensspirale ... 100 4.2 ... Feedback: ehrliche Rückmeldungen für die Weiterentwicklung nutzen ... 102 4.3 ... Voraussetzungen für gute Feedback-Gespräche ... 104 4.4 ... Feedback-Regeln ... 107 4.5 ... Der Feedback-Canvas ... 108 4.6 ... Vom Umgang mit Feedback und Fehlern ... 110 4.7 ... Lernmomente gestalten ... 111 4.8 ... Impulse im Entwicklungsalltag aufgreifen ... 111 5. Product Discovery: Raten oder Daten? ... 123 5.1 ... Was ist Product Discovery? ... 124 5.2 ... Immer ist ein guter Zeitpunkt ... 126 5.3 ... Die Haltung entscheidet ... 126 5.4 ... Methoden zur Product Discovery ... 128 5.5 ... Design Thinking ... 139 5.6 ... Serendipität ... 141 5.7 ... Vorsicht vor Denkfehlern! ... 142 5.8 ... Hypothesen bilden und testen ... 143 5.9 ... Wie weiter? ... 144 6. Zuhören, verstehen, ansprechen: dein Kommunikationsjob ... 147 6.1 ... Verständlichkeit und Verständigung herstellen ... 149 6.2 ... Zusammenarbeit durch angemessene Kommunikation initiieren ... 154 6.3 ... Agil kommunizieren ... 159 6.4 ... Gesprächsführung übernehmen in alltäglichen und herausfordernden Situationen ... 161 6.5 ... Kreative Prozesse moderieren ... 171 6.6 ... Schneller entscheiden, statt immer zu warten ... 175 7. Frisch sortiert ist halb gewonnen: das Refinement ... 187 7.1 ... Hol dein Team zusammen ... 188 7.2 ... Stories und Backlog-Einträge schreiben ... 188 7.3 ... Geschickt schneiden ... 195 7.4 ... Akzeptanzkriterien finden ... 200 7.5 ... Definition of Done ... 204 7.6 ... Gut geschätzt: Story Points & Co. ... 207 7.7 ... Sortieren und priorisieren (und mal Nein sagen können) ... 214 7.8 ... Das Refinement ritualisieren: Wie machen wir das regelmäßig? ... 217 8. Interview: Auf einen Kaffee mit Product Ownerin Jil ... 221 8.1 ... Die Product-Owner-Rolle in der Praxis ... 222 8.2 ... Mit Daten arbeiten ... 223 8.3 ... Kommunikation ist das A und O ... 223 8.4 ... Fragen sind »The Only Way«! ... 225 8.5 ... Dein allerbester Freund aus dem Tech-Team ... 226 8.6 ... Geh mit dem Problem ins Team, nicht mit der Lösung ... 226 8.7 ... Tools helfen, den Überblick zu behalten ... 227 8.8 ... Der Blick ins Product Backlog ... 228 8.9 ... Scrum? Kanban? Scrumban! ... 230 8.10 ... Ein gutes Reporting-Tool ist Pflicht ... 231 9. Was liegt an? Planning und Daily ... 233 9.1 ... Das Sprint Planning vorbereiten ... 235 9.2 ... Das Sprint-Ziel formulieren ... 239 9.3 ... Aushandeln: Was kommt in den Sprint? ... 243 9.4 ... Daily zur Information nutzen ... 246 9.5 ... Dem Team Orientierung geben ... 248 9.6 ... Sind wir done done? Die Definition of Done nutzen ... 249 9.7 ... Wertvoll und nützlich? Features abnehmen ... 249 9.8 ... Refinement: Anforderungen erkennen ... 250 9.9 ... Sprint-Wechsel vorbereiten ... 252 9.10 ... Den Sprint abbrechen ... 252 9.11 ... Dann machen wir eben was anderes: der Pivot ... 256 10. Gemeinsam führen ... 259 10.1 ... Wer macht was? ... 260 10.2 ... Die Grundlagen im Agilen Manifest ... 261 10.3 ... Führen und Managen ... 262 10.4 ... Cynefin Framework ... 265 10.5 ... Dich selbst führen ... 268 10.6 ... Mit anderen führen ... 273 11. Tech für Anfänger*innen ... 281 11.1 ... Zuverlässig und mit hoher Qualität entwickeln und liefern ... 282 11.2 ... Anwendungen professionell betreiben ... 294 11.3 ... Rechtliche und Sicherheitsanforderungen sicherstellen ... 298 11.4 ... Aus- und Weiterbildung ... 303 12. Kurs anpassen: das Review ... 305 12.1 ... Das Sprint Review ... 306 12.2 ... Das Review Meeting vorbereiten ... 307 12.3 ... Zum Start ... 314 12.4 ... Der Stand der Dinge ... 317 12.5 ... Die Entwicklungen im Umfeld ... 322 12.6 ... Wie weiter? ... 325 12.7 ... Was nicht ins Review gehört ... 327 13. Auf eine gute Zusammenarbeit! Die Retrospektive ... 329 13.1 ... Wie wird's gemacht? ... 330 13.2 ... Die richtigen Rahmenbedingungen ... 331 13.3 ... Psychologische Sicherheit ... 331 13.4 ... Lass uns über Gefühle sprechen ... 333 13.5 ... Die Retrospektive für kritisches Feedback nutzen ... 334 13.6 ... Ein typischer Ablauf ... 335 13.7 ... Nach der Retro ist vor der Retro ... 337 14. Guter Rat von Lennart ... 339 14.1 ... Was macht ein Agile Coach? ... 339 14.2 ... Der Unterschied zur Scrum-Master-Rolle ... 340 14.3 ... Wie ein agiler Coach unterstützt ... 340 14.4 ... Tipps für das Stakeholder-Management ... 341 14.5 ... Es gibt keine schlechten Nachrichten ... 342 14.6 ... Wenn Führung fordert ... 343 14.7 ... Der Weg zum Agile Coach ... 344 15. Heiße Konflikte willkommen! ... 347 15.1 ... Konflikte für Innovationen nutzen ... 348 15.2 ... Die Basis für Austausch schaffen ... 353 15.3 ... Höflich miteinander umgehen ... 363 15.4 ... Das Kritische ansprechen: der Elefant im Raum ... 365 15.5 ... Nein sagen (können/dürfen/müssen) ... 370 15.6 ... Grenzen der Kommunikation anerkennen und für sich selbst sorgen ... 372 16. Liefern mit Stil ... 377 16.1 ... Wie oft liefern? ... 379 16.2 ... Was ist alles zu tun? ... 381 16.3 ... Liefern ist kein Endpunkt ... 390 17. Umfeld und Unterstützung: die Sicht aufs Unternehmen ... 391 17.1 ... Warum Organisationsentwicklung? ... 392 17.2 ... Vom ersten Scrum Team zum agilen Unternehmen ... 399 17.3 ... Hypothesengeleitete Entwicklung ... 415 18. Gut gemacht! ... 421 18.1 ... Probiere es einfach aus! ... 421 18.2 ... Danke ... 422 Anhang ... 423 A ... Elefanten-Carpaccio (Beispiellösung) ... 423 B ... Literaturverzeichnis ... 427 Das Team, das dieses Buch geschrieben hat ... 437 Index ... 439
Python lernen - kurz & gut
Der praktische Schnelleinstieg in die Python-Programmierung- Kompakt und verständlich vermittelt dieses Buch den Umgang mit Python 3- Ein interaktiver Einstieg erlaubt direktes Ausprobieren und verschafft schnelle Erfolgserlebnisse- Sie lernen die Python-Grundlagen und einen guten Stil beim Entwickeln- Der Sourcecode, die Beispiele und ergänzende umfangreiche Praxisprojekte sind als Download verfügbar und erleichtern das VerständnisDieses Buch ist für vielbeschäftigte Programmierer:innen, die eine knappe und dennoch gut verständliche Einführung in Python als immer populärer werdende Programmiersprache suchen. Python lernen – kurz & gut bietet einen unterhaltsamen Einstieg und informiert Sie über viele Python-Bestandteile, die Ihnen helfen werden, schnell durchzustarten:- Installation von Python- Schnelleinstieg in die wichtigsten Aspekte- Basisbausteine wie Strings, Enums, Zufallszahlen, Fallunterscheidungen und Schleifen- Klassen und objektorientierte Programmierung- Datencontainer wie Listen, Mengen und Tupel- Fortgeschrittene Themen zu Collections wie Iteratoren, Generatoren, Slicing, Sortierungen und Comprehensions- Datumsverarbeitung inklusive Berechnungen- Dateiverarbeitung und JSON sowie Behandlung von FehlernTrotz seines kompakten Formats liefert dieses Buch eine fundierte Einführung und eine Fülle an leicht nachvollziehbaren Beispielen, die zum Experimentieren einladen. Es unterstützt Sie optimal dabei, Ihre Python-Kenntnisse auf- und auszubauen. Insbesondere wenn Sie bereits ein wenig mit z.B. Java oder C++ vertraut sind, ist dieses Buch die ideale Wahl, um solide in Python einzusteigen.Zum Autor:Michael Inden ist Java- und Python-Enthusiast mit über zwanzig Jahren Berufserfahrung. Nach seinem Studium in Oldenburg hat er bei diversen internationalen Firmen in verschiedenen Rollen etwa als Softwareentwickler, -architekt, Consultant, Teamleiter, CTO sowie Leiter Academy gearbeitet. Seit Anfang 2022 ist er als Head of Development in Zürich tätig. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen sowie dem Coaching. Sein Wissen gibt er gerne als Trainer in internen sowie externen Schulungen und auf Konferenzen weiter, etwa bei der JAX/W-JAX, JAX London, Oracle Code One, ch.open sowie bei der Java User Group Switzerland. Zudem hält er Vorlesungen zum Thema Einstieg in Python im Rahmen eines CAS Machine Learning for Software Engineers.
Spring 6 Recipes
This in-depth Spring-based Java developer code reference has been updated and now solves many of your Spring Framework 6 problems using reusable, complete and real-world working code examples. SPRING 6 RECIPES (5th Edition) now includes Spring Native which speeds up your Java-based Spring Framework built enterprise, native cloud, web applications and microservices. It also has been updated to now include Spring R2DBC for Reactive Relational Database Connectivity, a specification to integrate SQL databases, like PostgreSQL, MySQL and more, using reactive drivers.Furthermore, this book includes additional coverage of WebFlux for more reactive Spring web applications. Reactive programming allows you to build systems that are resilient to high load, especially common in the more complex enterprise, native cloud applications that Spring Framework lets you build. This updated edition also uses code snippets and examples based on newest available standard long term support release of Java. When you start a new project, you’ll be able to copy the code and configuration files from this book, and then modify them for your specific Spring Framework-based application needs. This can save you a great deal of work over creating a project from scratch.This powerful code reference is a "must have" for your print or digital library. This developer cookbook comes with accompanying source code that is freely available on GitHub under latest Creative Commons open source licensing.WHAT YOU'LL LEARN* Get re-usable code recipes and snippets for core Spring, annotations and other development tools* Dive into Spring Native which merges the popular Spring and GraalVM for increased performance, speed and reliability of your Spring Framework 6 applications* Explore Spring R2BC for reactive relational database connectivity with SQL* Build reactive Spring MVC-based web applications and microservices using WebFlux* Enhance your enterprise or native cloud applications using Spring Transaction Management* Test, secure and deploy your Spring applications using reusable code templates availableWHO THIS BOOK IS FORThis book is for experienced Java programmers, software developers with experience using the Spring Framework.Marten Deinum is a submitter on the open source Spring Framework project. He is also a Java/software consultant working for Conspect. He has developed and architected software, primarily in Java, for small and large companies. He is an enthusiastic open source user and longtime fan, user and advocate of the Spring Framework. He has held a number of positions including Software Engineer, Development Lead, Coach, and also as a Java and Spring Trainer.Daniel Rubio is an independent consultant with over 10 years of experience in enterprise and web-based software. More recently, Daniel is founder and technical lead at MashupSoft.com. He has co-authored the best selling Spring Recipes as well as other books for Apress Media, LLC. Daniel's expertise lies in Java, Spring, Python, Django, JavaScript/CSS and HTML.Josh Long is the Spring Developer Advocate at Pivotal. Josh is a Java Champion, author of 5 books (including O'Reilly's upcoming "Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry") and 3 best-selling video trainings (including "Building Microservices with Spring Boot Livelessons" w/ Phil Webb), and an open-source contributor (Spring Boot, Spring Integration, Spring Cloud, Activiti and Vaadin).1. Spring Development Tools2. Spring Core Tasks3. Spring Native: Spring + GraalVM4. Spring MVC5. Spring REST6. Spring MVC - Async Processing7. Spring WebFlux8. Spring Security9. Data Access10. Spring R2DBC11. Spring Transaction Management12. Spring Batch13. Spring with NoSQL14. Spring Java Enterprise Services and Remoting Technologies15. Spring Messaging16. Spring Integration17. Spring TestingA. Spring Deployment to the CloudB. Caching.
Coding Alles-in-einem-Band für Dummies
Wenn Sie Webseiten oder mobile Apps entwickeln möchten, dann ist dieses Buch für Sie gemacht! Auch ganz ohne Vorkenntnisse steigen Sie einfach ein und lernen die einzelnen Programmiersprachen und Technologien jeweils für sich und im Zusammenspiel kennen und einsetzen. Angefangen beim grundlegenden Aufbau einer Webseite mit HTML, CSS und JavaScript über die Entwicklung mobiler Apps für iOS- und Android-Geräte mit Flutter bis hin zur Verarbeitung der Daten mit Python: Hier ist einfach mehr für Sie drin! Wenn Sie sich einen breiten Überblick über die Webentwicklung und Programmierung verschaffen wollen, dann werfen Sie am besten gleich einen Blick in dieses Buch ...Die inhaltliche Breite dieses Werkes ist nur möglich durch die Zusammenarbeit verschiedener erfahrener Programmiererinnen und Programmierlehrer. Unter der Federführung von Chris Minnick, Autor zahlreicher IT-Fachbücher haben Eva Holland, Nikhil Abraham, John Paul Mueller, Luca Massaron und Barry Burd - allesamt Autoren anderer Dummies-Bücher - dieses Handbuch für angehende und fortgeschrittene Webentwicklerinnen geschrieben.
Job Ready SQL
LEARN THE MOST IMPORTANT SQL SKILLS AND APPLY THEM IN YOUR JOB—QUICKLY AND EFFICIENTLY!SQL (Structured Query Language) is the modern language that almost every relational database system supports for adding data, retrieving data, and modifying data in a database. Although basic visual tools are available to help end-users input common commands, data scientists, business intelligence analysts, Cloud engineers, Machine Learning programmers, and other professionals routinely need to query a database using SQL. Job Ready SQL provides you with the foundational skills necessary to work with data of any kind. Offering a straightforward ‘learn-by-doing’ approach, this concise and highly practical guide teaches you all the basics of SQL so you can apply your knowledge in real-world environments immediately. Throughout the book, each lesson includes clear explanations of key concepts and hands-on exercises that mirror real-world SQL tasks.* Teaches the basics of SQL database creation and management using easy-to-understand language* Helps readers develop an understanding of fundamental concepts and more advanced applications such as data engineering and data science* Discusses the key types of SQL commands, including Data Definition Language (DDL) commands and Data Manipulation Language (DML) commands* Includes useful reference information on querying SQL-based databasesJob Ready SQL is a must-have resource for students and working professionals looking to quickly get up to speed with SQL and take their relational database skills to the next level. KIMBERLY A. WEISS is Senior Manager of Curriculum Operations for Wiley Edge. She has extensive experience developing interactive instructional content for a wide variety of learners. HAYTHEM BALTI, PHD, is Associate Dean at Wiley Edge (formerly mthree), a software development and data science education platform.
Kubernetes (3. Auflg.)
Eine kompakte EinführungKubernetes hat radikal die Art und Weise verändert, wie Softwareentwicklung und Systemadministration Anwendungen in der Cloud bauen, deployen und warten. Die aktualisierte dritte Auflage dieses Buches zeigt Ihnen, wie dieser beliebte Container-Orchestrierer dabei helfen kann, in Bezug auf Schnelligkeit, Agilität, Zuverlässigkeit und Effizienz in ganz neue Bereiche vorzudringen – egal ob Ihnen verteilte Systeme neu sind oder ob Sie schon längere Zeit Cloud-native Anwendungen deployen.Die Kubernetes-Veteranen Brendan Burns, Joe Beda, Kelsey Hightower und Lachlan Evenson erklären Ihnen, wie sich dieses System in den Lebenszyklus einer verteilten Anwendung einfügt. Sind Sie aus der Softwareentwicklung, Architektur oder Administration, erfahren Sie, wie Sie Tools und APIs einsetzen, um skalierbare, verteilte Systeme zu automatisieren.Erstellen Sie ein einfaches Cluster, um zu lernen, wie Kubernetes funktioniert.Tauchen Sie in die Details des Deployments mit Kubernetes ein.Arbeiten Sie mit den spezialisierten Objekten in Kubernetes wie zum Beispiel DaemonSets, Jobs, ConfigMaps und Secrets.Erfahren Sie mehr über Deployments, die den Lebenszyklus einer vollständigen Anwendung zusammenhalten.Sichern Sie Ihre Deployments ab.Deployen Sie Anwendungen auf mehrere Cluster und greifen Sie auf Kubernetes über Programmiersprachen zu.Autoren:Brendan Burns, Distinguished Engineer in Microsoft Azure, hat zusammen mit Joe Beda und Craig McLuckie das Kubernetes-Projekt bei Google mitbegründet. Aktuell ist er Director of Engineering bei Microsoft Azure.Joe Beda ist CTO von Heptio, einem Start-up, das er zusammen mit Craig McLuckie gegründet hat. Zuvor hat er bei Google die Google Compute Engine aus der Taufe gehoben und zusammen mit Brendan Burns und Craig McLuckie Kubernetes geschaffen.Kelsey Hightower ist Staff Developer Advocate für die Google Cloud Platform. Er ist ein großer Freund von Open Source und sein Schwerpunkt liegt darin, einfache Werkzeuge zu bauen, die die Menschen glücklich machen.Lachlan Evenson ist leitender Produktmanager des Container Compute Teams bei Microsoft Azure. Er hat durch praktische Trainings vielen Leuten dabei geholfen, Kubernetes zu integrieren.Inhaltsverzeichnis (PDF-Link)
Beginning Java Objects
Learning to design objects effectively with Java is the goal of Beginning Java Objects: From Concepts to Code, Second Edition. Plenty of titles dig into the Java language in massive detail, but this one takes the unique approach of stepping back and looking at fundamental object concepts first. Mastery of Java—from understanding the basic language features to building complete industrial-strength Java applications—emerges only after a thorough tour of thinking in objects.The first edition of _Beginning Java Objects_ has been a bestseller; this second edition includes material on the key features of J2SE 5, conceptual introductions to JDBC and J2EE, and an in-depth treatment of the critical design principles of model-data layer separation and model-view separation.Despite the plethora of beginning Java titles on the market, this book is truly unique in its coverage of three critical topic—sobject concepts, UML modeling, and Java programming—within a single cover. It’s ideal for both individual self-study and as a university-level textbook. Let Beginning Java Objects, Second Edition be your guide!JACQUIE BARKER is a professional software engineer, author, and former adjunct faculty member at both George Mason University in Fairfax, VA and The George Washington University in Washington, DC. With over 30 years of experience as a software developer and project manager, Jacquie has spent the past 15 years focused on object technology, and is proficient as an object modeler and Sun Microsystems Certified Java programmer.Jacquie earned a bachelor of science degree in computer engineering with highest honors from Case Institute of Technology/Case Western Reserve University in Cleveland, Ohio, and a master of science degree in computer science, emphasizing software systems engineering, from the University of California, Los Angeles. She has subsequently pursued postgraduate studies in information technology at George Mason University in Fairfax, VA. Jacquie’s winning formula for teaching object fundamentals continues to receive praise from readers around the world, and her Apress book Beginning Java Objects: From Concepts to Code has been adopted by many universities as a key textbook in their core IT curricula.On a personal note, Jacquie’s passions include her husband Steve and their three cats Walter, Rocky, and Tanner; serving as founder and executive director of Pets Bring Joy, a 501(c)(3) non-profit animal rescue organization (pbj.org); and her recent launch of a pro bono IT consulting service for start-up non profits (probonoit.org).Part I: The ABCs of ObjectsChapter 1: Abstraction and ModelingChapter Goal: Introducing the mechanism of abstraction as a natural way for humans to interpret the world, and how this relates to object modeling in the software realm.Subtopics:• Simplification through abstraction• Generalization through abstraction• Reusing abstractionsChapter 2: Some Java BasicsChapter Goal: Provide the reader with an immediate introduction to Java language fundamentals so that object concepts can be illustrated using Java code examples as soon as we begin introducing them in chapter 3.Subtopics:• Strengths of the Java language• Primitive Java types• The anatomy of a Java program• Mechanics of compiling and running a Java program• Java’s block structured nature• Elements of Java programming styleChapter 3: Objects and ClassesChapter Goal: Explain the basic building blocks of an OO application – classes as mini-abstractions aka templates for creating object instances.Subtopics:• Advantages of an OO approach to software development over a non-OO approach• How classes are used to specify a type of object’s data• How objects are created (instantiated) at run time• The use of reference variables to refer to objects symbolicallyChapter 4: Object InteractionsChapter Goal: Explain how object behaviors are defined as methods within classes, and how objects collaborate by invoking one another’s methods to accomplish the overall mission of the system.Subtopics:• How methods are used to specify an object’s behaviors• The anatomy of a Java method• How objects send messages to one another to accomplish collaboration• How classes use public and private visibility to publicize what services a type of object can perform while hiding both the logic for how the service is accomplished and the internal data structure needed to support the service• The use of constructors to instantiate the state of an object when first instantiatedChapter 5: Relationships Between ObjectsChapter Goal: Explains the notion of a structural relationship between two objects, wherein the data structures of the classes to which they belong are designed to maintain lasting relationships between objects once instantiated. The two main approaches to accomplishing this are (a) encoding associations between two classes of objects as reference variables within their data structures, (b) having one class inherit and extend the capabilities of another.Subtopics:• Types of structural relationships maintained by objects: associations, aggregations, inheritance• The inheritance mechanism, and guidelines for what we can and cannot achieve when deriving new classes via inheritance• Revisiting constructors regarding some complexities that must be understood when inheritance is involvedChapter 6: Collections of ObjectsChapter Goal: Introduce a special category of objects (classes) known as collections, to be used for efficiently managing an indefinite number of objects of the same type.Subtopics:• The properties of three generic collection types: ordered lists, sets, and dictionaries• The specifics of several different commonly-used built-in Java collection types• The concept of Java packages as logical groupings of classes, and the use of import statements• The power of collections in modeling very sophisticated real-world scenarios• Design techniques for programmer-defined collection typesChapter 7: Some Final Object ConceptsChapter Goal: Covers several key but often misunderstood advanced language features that are essential to taking full advantage of Java’s object-oriented nature: polymorphism (how a single line of code representing a method invocation can exhibit a variety of different behaviors at run time); abstract methods, classes, and interfaces; and static features (data/methods belonging to an entire class of objects versus objects individually).Subtopics:• The runtime mechanism of polymorphism• Abstract classes and methods• The incredible power of interfaces in streamlining Java code• Static featuresPart II: Object Modeling 101Chapter 8: The Object Modeling Process in a NutshellChapter Goal: A high-level overview of how to approach the requirements of a system so as to structure it from the ground up to take advantage of all of the strengths of an OO language like Java.Subtopics:• The goals of and philosophy begin object modeling• Flexibility in terms of selecting or devising a modeling methodology• The pros and cons of using object modeling software toolsChapter 9: Formalizing Requirements Through Use CasesChapter Goal: Explains the importance of developing use cases when establishing requirements for an application, to ensure that (a) all categories of intended user are identified, (b) all of the services that each user category will expect the system to provide, and (c) what their expectations are of the desired outcome for each of the service types.Subtopics:• Introduction to use cases• The notion of actors• Involving users in defining use cases• Approaches to documenting/diagramming use casesChapter 10: Modeling the Data Aspects of the SystemChapter Goal: Illustrate the process by which the types of classes, their respective data structures, and their interrelationships can be discovered and rendered graphically using UML notation.Subtopics:• Technique for identifying the appropriate classes and their respective attributes• Technique for determining the structural relationships that exist among these classes• How to graphically portray this information in proper UML notationChapter 11: Modeling the Behavioral Aspects of the SystemChapter Goal: Revisiting the evolving object model of chapter 10 to reflect the services/behaviors/methods required of each identified class to ensure that the overall requirements of the application will be satisfied.Subtopics:• How the behaviors (method execution) of an object affects its state (data)• Developing scenarios for how use cases (defined in chapter 9) might play out• Creating sequence diagrams based on scenarios• Using sequence diagrams to determine methodsChapter 12: Wrapping Up Our Modeling EffortsChapter Goal: This chapter focuses on ways to test a model before coding begins, as well asSubtopics:• Testing the model• Revisiting requirements and adapting the model as necessary• Reusing models in the form of design patternsPart III: Translating an Object Blueprint into Java CodeChapter 13: A Few More Key Java Details (retitled from 2nd edition)Chapter Goal: Covering a variety of important Java topics that were not essential to illustrating the object concepts of Part I per se, but which are nonetheless key to a rounding out a beginning level Java programmer’s facility with the language. I plan on eliminating a few sections from this chapter if I determine that any of the topics covered are *not* essential to understanding the Student Registration System (SRS) code of chapter 14.Subtopics:• Java application architecture, revisited• Nature and purpose of Java Archive (JAR) files• Java documentation comments• Object nature of Strings• Java enums (enumerations)• Object self-referencing via the “this” keyword• The nature of run-time exceptions, how to handle them, and how to define and use custom exception types• Important features of the built-in Object class• Techniques for command line input• Remove: discussion of inner classes (no longer needed since we are eliminating the chapter on the Swing API)• Remove: narrative regarding Java version 5 language enhancementsChapter 14: Transforming Your Model into Java CodeChapter Goal: In this chapter, I pull together all that we’ve covered in Part I of the book to render the UML model created in Part II of the book into a complete, fully functioning model layer for the Student Registration System. This code can be run from the command line, and will be downloadable from the Apress website.Subtopics: How to code …• … associations of varying multiplicities (one-to-one, one-to-many, many-to-many)• … inheritance relationships• … association classes• … reflexive associations• … abstract classes• … metadata• … static attributes and methodsChapter 15: Three Tier Architectures: Considerations for Adding a User Interface and Data Layer to Your ApplicationChapter Goal: Conceptually introduce the notion of model – presentation layer – data layer separation, using pseudocode examples to illustrate how these layers interact with the model layer code of chapter 14.Subtopics:• Overview of the power of model – presentation layer – data layer separation• Concept of operations for the Student Registration System user interface• Detailed walk-through of pseudocode illustrating (a) how the data layer is used to validate and persist model layer logic, (b) how the user interface/presentation layer is used to receive data and operational requests from a user
Kubernetes
Kubernetes einfach und schnell erklärt Alles, was Sie über Kubernetes wissen müssen Für Einsteiger und Admins ohne Kubernetes-Vorkenntnisse Mit zahlreichen Beispielen aus der Praxis Kubernetes hat radikal die Art und Weise verändert, wie Softwareentwicklung und Systemadministration Anwendungen in der Cloud bauen, deployen und warten. Die aktualisierte dritte Auflage dieses Buches zeigt Ihnen, wie dieser beliebte Container-Orchestrierer dabei helfen kann, in Bezug auf Schnelligkeit, Agilität, Zuverlässigkeit und Effizienz in ganz neue Bereiche vorzudringen – egal ob Ihnen verteilte Systeme neu sind oder ob Sie schon längere Zeit Cloud-native Anwendungen deployen. Die Kubernetes-Veteranen Brendan Burns, Joe Beda, Kelsey Hightower und Lachlan Evenson erklären Ihnen, wie sich dieses System in den Lebenszyklus einer verteilten Anwendung einfügt. Sind Sie aus der Softwareentwicklung, Architektur oder Administration, erfahren Sie, wie Sie Tools und APIs einsetzen, um skalierbare, verteilte Systeme zu automatisieren. Aus dem Inhalt: Erstellen Sie ein einfaches Cluster, um zu lernen, wie Kubernetes funktioniert. Tauchen Sie in die Details des Deployments mit Kubernetes ein. Arbeiten Sie mit den spezialisierten Objekten in Kubernetes, wie zum Beispiel DaemonSets, Jobs, ConfigMaps und Secrets. Erfahren Sie mehr über Deployments, die den Lebenszyklus einer vollständigen Anwendung zusammenhalten. Sichern Sie Ihre Deployments ab. Deployen Sie Anwendungen auf mehrere Cluster und greifen Sie auf Kubernetes über Programmiersprachen zu. "Geschrieben von vier der weltweit angesehensten Experten für Cloud-native Systeme, ist ›Kubernetes‹ das Buch der Wahl, um eine solide Grundlage für Kubernetes-Konzepte zu schaffen, mit Beispielen, die Sie dabei unterstützen, Kubernetes selbst zu erkunden." — Liz Rice, Isovalent
Beginning Ethereum Smart Contracts Programming
Use this book to write an Ethereum blockchain smart contract, test it, deploy it, and create a web application to interact with your smart contract. This new edition has been expanded and updated to cover web3.js APIs, additional Consensus Protocols, non-Fungible Tokens (NFTs), developing NFT tokens using ERC-721, and more!BEGINNING ETHEREUM SMART CONTRACTS PROGRAMMING, SECOND EDITION is your fastest and most efficient means of getting started if you are unsure where to begin and how to connect to the Ethereum blockchain. The book begins with a foundational discussion of blockchain and the motivation behind it. From there, you will get up close and personal with the Ethereum blockchain, learning how to use an Ethereum client (geth) to create a private Ethereum blockchain to perform transactions such as sending Ethers to another account on another node.You will learn about smart contracts without having to wade through tons of documentation. Author Lee’s “learn-by-doing” approach will allow you to be productive and feel confident in your ability in no time. The last part of this book covers tokens, a topic that has taken the cryptocurrency market by storm.Sample code in Python, Solidity, and JavaScript is provided in the book and online.WHAT YOU'LL LEARN* Understand the basic premise of blockchain and “record keeping” in a peer-to-peer network* Experience blockchain in action by creating your own blockchain using Python* Know the foundation of smart contracts programming and how to deploy and test smart contracts* Work on a case study to illustrate the use of blockchain* Be familiar with tokens, and how to create and launch your own ICO digital token* Write smart contracts that transact using tokensWHO THIS BOOK IS FORThose who want to get started quickly with Ethereum smart contracts programming. Basic programming knowledge and an understanding of Python or JavaScript is recommended.WEI-MENG LEE is the founder of Developer Learning Solutions, a technology company specializing in hands-on training of blockchain and other emerging technologies. He has many years of training expertise and his courses emphasize a learn-by-doing approach. He is a master at making learning a new programming language or technology less intimidating and fun. He can be found speaking at conferences worldwide such as NDC and he regularly contributes to online and print publications such as DevX.com, MobiForge.com, and CoDe Magazine. He is active on social media on his blog learn2develop.net, on Facebook at DeveloperLearningSolutions, on Twitter @weimenglee, and on LinkedIn at leeweimeng.---NEW Chapter----CHAPTER 1 - TECHNOLOGIES BEHIND BLOCKCHAINBASIC CRYPTOGRAPHYTYPES OF CRYPTOGRAPHIC ALGORITHMSSYMMETRICASYMMETRICHASHINGDIGITAL SIGNATURESUMMARYChapter 2 - Understanding Blockchain---NEW SECTION---CONSENSUS PROTOCOLSPROOF OF STAKE (POS)PROOF OF ELAPSED TIMEPROOF OF SPACE...-----------------Chapter 3 - Implementing Your Own Blockchain using PythonChapter 4 - Connecting to the Ethereum Blockchain using GethChapter 5 - Creating Your Own Private Ethereum Test NetworksChapter 6 - Using the Crypto Wallet - MetaMaskChapter 7 - Getting Started with Solidity Smart ContractsChapter 8 - Testing Smart Contracts using GanacheChapter 9 - Building Decentralized Apps using the web3.js APIsChapter 10 - Handling Smart Contract EventsChapter 11 - Project - Online LotteryChapter 12 - Creating Tokens using ERC-20---REVISED USING OPENZEPPLIN’S CONTRACT------NEW CHAPTERS----CHAPTER 13 - CREATING NON-FUNGIBLE TOKENS USING ERC-721WHAT IS A NFT?STORING DIGITAL ASSETS USING IPFSWHAT IS IPFSUPLOADING A FILE TO IPFSACCESSING A FILE FROM IPFSNFT AND IPFSCREATING THE NFT TOKEN CONTRACTDEPLOYING THE CONTRACTMINTING THE NFT TOKEN CONTRACTGETTING THE OWNER OF THE NFTGETTING THE NAME AND SYMBOL OF NFTFINDING THE BALANCE OF NFT FOR AN ADDRESSGETTING THE OWNER OF THE NFTGETTING THE TOKENURITRANSFERRING A NFTTRANSFERRING OWNERSHIP OF THE NFT CONTRACTCHAPTER 14 – INTRODUCTION TO DEFIWHAT IS DECENTRALIZED FINANCESTABLECOINSTYPES OF STABLECOINSUSDCDAISERVICES IN DEFICOMPONENTS IN DEFIAPPLICATIONS OF DEFI------------------
Terraform
Das Praxisbuch für DevOps-Teams und Administratoren. »Infrastructure as Code« richtig umgesetzt.Mit Terraform errichten Sie komplexe Infrastrukturen automatisiert in der Cloud und orchestrieren Deployments, die genau Ihren Anforderungen entsprechen. Tim Beermann, Johannes Kastl, Christian Rost, Thorsten Schifferdecker und Eike Waldt zeigen Ihnen, wie Sie Deployments verwalten, Ressourcen mit HCL skripten und den State Ihres Setups verwalten. So gerüstet entwerfen Sie wiederverwendbaren Code, vermeiden Fallstricke und schaffen einen komfortablen Arbeitsweg zur Verwaltung Ihrer Cloud-Landschaften.Inkl. umfassender Kommandoreferenz und Best Practices für den alltäglichen Betrieb.Aus dem Inhalt:Infrastructure as CodeWas ist Terraform? Installation und alle GrundlagenProvider: Konfiguration und Beispiel-SetupsState – Der Zustand der UmgebungVariablen und DatenquellenHCL: Terraform programmierenUpdates und Day-2-OperationsTerragrunt und weitere ToolsBest Practices: Terraform richtig nutzenMulti-Cloud-DeploymentsLeseprobe (PDF-Link)Zu den Autoren: Tim Beermann ist seit frühester Jugend begeisterter Linuxadministrator. Während seiner Laufbahn hat er ein ERP-System mitentwickelt und Serverlandschaften sowie Cloudumgebungen betreut.Johannes Kastl ist seit frühen SUSE-Tagen begeisterter Linuxnutzer. Er war mehrere Jahre in der Administration einer großen privaten Cloud-Landschaft tätig, unter anderem als Administrator, technischer Product Owner, Scrum Master und Teamkoordinator.Christian Rost begleitet und verantwortet große und kleine Projekte im Container- und Kubernetesumfeld, plant und baut Logging- und Monitoringlösungen mit Elasticstack und steht für das ein oder andere ownCloud-Projekt zur Verfügung.Thorsten Schifferdecker ist seit mehr als 20 Jahren begeisterter Linuxnutzer und in der IT als Architekt tätig.Eike Waldt hat während seiner Laufbahn viele SUSE- und SAP-Projekte begleitet und geleitet. Innerhalb dieser Projekte entwarf er komplexe Mechanismen zur Verwaltung von gewachsenen Landschaften und strukturierte gewachsene Code-Sammlungen mittels DevOps und CI.