Software
Strategisches Wertversprechen, Innovationsmanagement in Software-Startups für anhaltenden Wettbewerbsvorteil
Dieses Buch hat zum Ziel, die Erfolgsquoten von Startups zu erhöhen, indem es sich auf die Innovation des Wertversprechens konzentriert. Dies wird vorangetrieben durch die Einbindung potenzieller Verbraucher sowie anderer Ressourcen wie Freiberufler und strategischer Partnerschaften mit der Akademie. Der Autor zeigt, wie Startups, die in Bezug auf Ressourcen eingeschränkt sind, Anstrengungen unternehmen können, um das Potenzial ihres Produktmarktes zu erkunden. Dabei wird auch untersucht, wie globale Märkte für den Erfolg eines Startups vorteilhaft sein können, während gleichzeitig Lösungen für schwer zugängliche Märkte aufgezeigt werden. Das Buch untersucht das Gewinnen von Wissen, das von Freiberuflern, Kunden und der Akademie geteilt wird, deren Beteiligung entscheidend sein kann, um Aktivitäten der Wertversprechen-Innovation wie Ideenentwicklung, Umsetzung und Vermarktung zu unterstützen. In Kombination führt der Autor die Leser dazu, ihre Fähigkeit zu entdecken, Wertversprechen-Innovationen zu fördern, die langfristige Wettbewerbsvorteile in einer stark schwankenden Geschäftsumgebung zur Folge haben.
Scaling Cloud FinOps
Responding to the escalating demands placed on organizations and enterprises as they navigate the intricacies of cloud economics, this book offers pragmatic insights for establishing a sturdy foundation for cloud cost management. _Scaling Cloud FinOps_ empowers you with the knowledge and strategies to harness efficient cloud technology usage to proficiently manage cloud costs, refine expenditure, and implement robust, scalable Cloud FinOps practices. At the same time, it arms engineering leaders and executives with the necessary tools to foster a culture of cost awareness critical to greater profitability.At the heart of the book lies author Sasi Kanumuri’s #Piggy-Bank Framework, an innovative approach to cloud cost governance that offers a practical blueprint to streamline cost reporting, provisioning, and resource management through automation, efficiency, and overall financial performance. You’ll also delve into the intricacies of the 6-factor formula, a proven approach to cloud cost management. From resource rightsizing and cost allocation models to automated guardrails and vendor management, each factor serves as a pillar to support your organization's financial goals.Looking beyond numbers, _Scaling Cloud FinOps_ will give you the tools needed to orchestrate a cultural shift that can permeate every aspect of your organization. You'll learn how to cultivate a cost-aware engineering culture in which financial policies give every team member the knowledge and motivation to make data-driven decisions that drive efficiency, unlocking significant cost savings and cloud financial excellence.What You Will Learn* Cultivate a culture of cost awareness and accountability within engineering teams, fostering collaboration and data-driven decision-making to enhance cloud efficiency* Best practices from FinOps pioneers who've scaled world-class FinOps Teams at tech giants and startups* Explore unique frameworks enriched with real-world case studies, providing invaluable insights into effective cloud cost management (CCM)* Acquire expert techniques in cost optimization, automation, and vendor management, all proven to deliver significant savings and optimal efficacyWho This Book Is ForProfessionals and leaders across the cloud, IT, finance, and procurement industries interested in streamlining cloud expenditures, cultivating a culture of cost awareness across the organization, and establishing robust cloud cost management strategies. Whether you're a novice or seasoned in FinOps practices, this book equips you with the tools to maximize the business value of your cloud investments.SASI KANUMURI is a renowned cloud strategy and FinOps/ cloud economics expert known for his innovative frameworks and diverse skill set. With a deep understanding of cloud architecture and expertise in cloud infrastructure, Sasi specializes in driving high efficiency and optimization across organizations. He has a proven track record of achieving substantial cost savings and leading successful cloud migrations.Sasi's thought leadership in FinOps has left a lasting impact on the industry. He has led FinOps teams at large companies like Slack, Lacework, and UC Berkeley, shaping the future of cloud efficiency programs and guiding organizations toward significant cost reductions. His expertise in vendor management and deal strategy has resulted in advantageous agreements and solid, long-lasting partnerships.As a pioneer in cloud economics, Sasi bridges the gap between finance, procurement, operations, and engineering, setting new standards for efficiency programs and redefining industry norms. He continues to be a sought-after leader in the field, committed to customer success and ongoing innovation, empowering organizations to optimize their cloud investments and drive sustainable growth.Sasi Kanumuri's unique "#Piggy-bank" framework for cost governance is at the core of his approach. This innovative framework gives organizations insights and knowledge to promote cost awareness and meaningful conversations about cloud expenditure.Additionally, Sasi has trained and mentored numerous individuals in the cloud sector. He has a passion for continuous learning and a commitment to professional education. He’s led educational sessions, workshops, and internal meetups, sharing expertise and empowering engineering teams to flourish and succeed.MATTHEW ZEIER is a veteran of supporting and running at-scale production services across some of the largest high-tech companies, including Mozilla, Apple, VMware, and Lacework. Early in his career, he recognized that managing cloud spend should be part of engineering culture and has worked to advocate for efficient cloud usage across organizations.As a former network engineer–turned sysadmin–turned SRE leader, he can understand cloud usage and architecture across several discrete system components. Using Customer Happiness as his north star, he focuses on Platform Reliability and efficiency as two foundational elements of a FinOps practice. As an engineering leader, Matthew has supported small and large teams (70+) while supporting infrastructure and services with 12x user growth. He has done this while being hyper-aware of the economics behind those services.As an automation fanatic, he coined #BeachOps as a framing device for automation to build for the lazy rather than the busy and to ensure engineers focus on the important over the urgent.1. Cloud FinOps.- 2. Cloud Cost Visibility.- 3. Cloud Cost Insights.- 4. Cloud Cost Governance.- 5. Shift Left with Culture.- 6. Cost Optimization.- 7. Automation.- 8. Vendor Management.- 9. Conclusion.
The Lean-Agile Dilemma
Over the last decade, Lean-Agile principles have become the standard methodology by which product and technology teams operate. However, Lean-Agile was written for small companies seeking new markets to buy their innovative software products, not for an average corporation with a catalogue of existing software products that must be maintained and rebuilt. The typical tech-enabled business isn't a lean startup; it's a chunky corporate. This book offers an alternative software development methodology perfectly suited for chunky corporate product management.You’ll quickly find out how individual players in the corporate organization impact business performance. You’ll follow the story of Blake, a well-meaning but ultimately naive, CEO of a fictional company called Acme Tech. As he and Acme struggle to maintain business performance, it becomes apparent how embedded and complex his challenges are. Lean-Agile principles are regularly misapplied in the corporate environment, causing tension, missed deadlines, and inefficient working practices.You’ll see that managing software transformation at a large, mature business requires a new set of tools. Popular development methodologies are not well-suited for the replatforming exercises that chunky corporates inevitably face. This book helps product and technology leaders navigate software development projects at organizations grappling with the constraints of investor ownership.Chunky corporates have a lot going for them: _The Lean-Agile Dilemma_ reveals that, when managed well, they have the potential to be safe havens in a relentlessly unstable world.You will:* Understand how replatforming differs from new product development * Learn how to manage existing data when updating or building new software * Gain tools to prioritize items in your overstuffed product roadmapWHO THIS BOOK IS FORProduct managers, product owners, product leadership, tech leadership, and business leaders at mature tech-enabled businesses.Katie Tamblin started her career as an entry-level analyst and made it all the way to the board room, working as Chief Product Officer and now serving as a Non-Executive Director to data and tech businesses and an Advisor to private equity firms. She applies the learnings amassed over a 20+ year career to help readers recognize a chubby corporate for what it is and navigate its unique qualities in order to drive efficiency and success.Chapter 1. The Luxury of a Lean Startup.- Chapter 2. Execution Not Innovation.- Chapter 3. Putting on Weight.- Chapter 4. Chief Poo-Poo Officer and Saying No.- Chapter 5. Deciding what to Build and How.- Chapter 6. The Challenges of Replatforming.- Chapter 7. Replatforming the Right Way.- Chapter 8. Dealing with Data.- Chapter 9. Managing Customer Demands.- Chapter 10. Products Don't Sell Themselves.- Chapter 11. Good Communication Leads to Good Products.- Chapter 12. Driving Cross-Functional Collaboration.- Chapter 13. Conclusion.
UX Design with Figma
Maximize Figma’s arsenal of tools and plugins within a team-based collaborative environment and accelerate your company’s decision making. This book will show you where Figma fits into the user experience (UX) design process from documentation to developer handoff.Since its release as a browser-based design tool in 2016, Figma has fast become the de facto UX Design tool for the industry mainly due to its accessibility and ease of use. As you move through the book you will learn where Figma fits in the UX process. For example, using FigJam (an online whiteboard) for brainstorming, and creating interactive prototypes for mobile devices, tablets, and web sites. You’ll also see how Figma is used to create and integrate with design systems, and how variables, when applied to design system components, can accelerate the design and development workflow.With the help of step-by-step examples, and using Figma’s tools and templates, you’ll create artifacts such as Flow and Journey diagrams, Personas, and wireframes. From there you will explore other design and interactivity features, and how to prepare a Figma file for handoff to a development team.This book is your roadmap to utilizing Figma, the industry’s fastest growing collaborative design tool for building meaningful products.WHAT YOU WILL LEARN* Create interactive prototypes* Test and submit designs for team review* Understand the collaborative workflow involved in an UX project* Prepare common UX documentationWHO THIS BOOK IS FORDesigners, developers, and UX specialists with little-to-no Figma experience who are looking to integrate it within their workflows, and intermediate Figma users who are just starting to become involved in the collaborative UX workflow.TOM GREEN is an Emeritus Professor of Interactive Multimedia through the School of Media Studies and IT at the Humber Institute of Technology and Advanced Education in Toronto, Canada. He has created over a dozen UX-based courses for LinkedIn Learning. One course - UX Design for Non-Designers released 2 years ago - has been completed by over 35,000 learners throughout the world. Tom has written numerous books on UX design for Apress, Que, Pearson Education and New Riders. Along with his work with LinkedIn Learning, Tom has developed video-based training courses for Infinite Skills, Envato, Video2Brain and others. He was the Graphics Software expert with About and has written hundreds of articles and tutorials for a variety of magazines and websites over the past 20 years. Tom has spoken and lectured at conferences around the world and universities throughout China and the US including the University of Wisconsin, the Central Academy of Fine Arts in Beijing, Wuhan Institute of Technology, and Shenzhen Polytechnic. In his spare time, you can catch him hiking a local trail or paddling across a lake in Northern Ontario.KEVIN BRANDON started his career in the print industry, then transitioned into web design and user-experience design. After completing a Master of Arts in Professional Communication, he entered higher education as a full-time professor at Humber Institute of Technology and Advanced Learning in Toronto, Canada. Kevin has taught in various programs such as Graphic Design, Advertising, Multimedia and Film & Television. He is an active Adobe Education Leader, collaborating with fellow educators around the world and learning about upcoming technologies. As a consultant Kevin has provided professional development sessions for teachers through Edge Gain Ltd. Kevin is married with three sons. When not at work you can find him enjoying walks with his family and dog.1.The Figma Interface.- 2. Adding Content.- 3. Teams and Collaborative Projects.- 4. Creating UX Design Documentation.- 5. Building Low Fidelity Prototypes.- 6. Building Medium Fidelity Prototypes.- 7. Interactivity Fundamentals.- 8. Micro-Interactions in Figma.- 9. Design System Fundamentals.- 10. Building Content.- 11. Developer Handoff.
Content Creation mit KI (2. Auflg.)
Social-Media-Posts automatisch erstellen und kommentieren, Titelseiten von Magazinen gestalten, Interviews vorbereiten, Recherchen anstellen, oder bessere Texte sowie Video- und Audio-Content von der KI erstellen lassen: ChatGPT, Jasper und Co. revolutionieren die Content Creation. Immer mehr Creator lassen sich vom Bot unterstützen und Agenturen suchen nach dem Jobprofil »Artificial Intelligence Prompter«, um ganze Kampagnen mit generativer KI zu erstellen. Andreas Berens und Carsten Bolk sind selbst begeisterte Nutzer von KI-Tools und teilen in diesem Buch ihre gesammelte Erfahrungen, zahlreiche Anregungen sowie Best Practices für die eigene Content Creation: Erfahren Sie, wie auch Sie Texte generieren, Blog-Artikel schreiben, Übersetzungen redigieren, Bilder, Videos und Sounds erstellen oder Kreativitätsblockaden überwinden können.So nutzen Sie KI in der Content Creation1. Künstliche Intelligenz präzise und kreativ briefenErfahren Sie, wie Sie mit KI kreativ zusammenarbeiten und Prompts optimal für sich nutzen können.2. Texte mit KI schreiben, kommentieren, zusammenfassenLernen Sie, wie Sie Posts generieren, eine Insta-Story gestalten, Texte für einen Werbespot oder Songlyrics schreiben sowie z. B. Interviews vorbereiten können.3. Generieren Sie Bilder mit KICoverbilder gestalten oder gleich den nächsten Kunstwettbewerb gewinnen? Mit Midjourney oder DALL-E ist all das möglich.4. Nutzen Sie die KI für Sound und VideosVon Text zu Voice, die passende Musik zu Bildern und Videos generieren, Sounds in Studioqualität produzieren oder gleich Reels und Stories umsetzen.5. Schaffen Sie überzeugende Content-Marketing-ProzesseAuch bei der richtigen Strategie ist KI hilfreich. Sei es bei Wettbewerbsanalysen, Optimierung von Kreativ-Prozessen oder auch bei der Automatisierung von manuellen Aufgaben.Aus dem Inhalt:PromptingTexte mit KI schreiben, kommentieren und zusammenfassenBilder mit KI generieren und variierenAudio mit KI entwickeln, produzieren und optimierenVideos mit KI produzieren und bearbeitenWorkflows, Tipps und InspirationKI und RechtChatGPT, Copilot, Gemini, Claude, Adobe Firefly, DALL-E, Canva, Midjourney & Co.Über die Autoren:Andreas Berens ist kreativer Marken-Stratege, begeisterter Blogger und motivierender Coach. Die Liebe zur Content-Kreation zieht sich dabei wie ein roter Faden durch sein Leben. Schon früh in seiner Laufbahn faszinierte er als freier Redakteur beim Radiosenders RPR das Publikum mit lebendigem Storytelling. Diese Leidenschaft führte ihn nach seinem Studium der Betriebswirtschaft in die Werbung. Bei BBDO in Düsseldorf lernte er von den strategisch-brillantesten und kreativsten Köpfen der Branche, wie Kommunikation für Marken funktioniert. So realisierte er erfolgreiche Kampagnen für Unternehmen wie Gillette, Wrigley, Wella, Henkel und die Deutsche Post. Mit seiner Erfahrung als Experte für integrierte Kommunikation orchestrierte und moderierte er später komplexe multimediale Kampagnen der Agenturgruppe. Beim Medienhaus Rheinische Post wirkte er als Leiter Kommunikation maßgeblich an der Entwicklung neuer, crossmedialer Content-Angebote mit. Nach seinen Stationen als Geschäftsführer bei den Agenturen SYZYGY Deutschland und Young & Rubicam in Frankfurt und Berlin begann Andreas 2013 als einer der ersten deutschen Autoren über das Thema Content Marketing zu bloggen. 2015 gründete er dann gemeinsam mit seinem aus der BBDO-Zeit vertrauten Kreativ-Partner Carsten Bolk die Content-Agentur theUntold – Digital Storytelling4Brands. Andreas ist ein inspirierender Workshop-Moderator und Speaker auf Fach- und Medien-Konferenzen zu den Themen Content Marketing, Storytelling und Content Kreation mit KI. Er lehrt seit vielen Jahren an der Akademie der Deutschen Medien, der Leipzig School of Media und für den Markenverband an der EBS Universität für Wirtschaft und Recht.Carsten Bolk ist Creative Director, Designer, Storyteller, Blogger, Brand Strategist – und leidenschaftlicher Bassist. Er studierte Kommunikationsdesign an der Universität GH Essen. Bei der Düsseldorfer Agentur BBDO betreute er 16 Jahre lang als Creative Director – später als Executive Creative Director (ECD) – crossmediale Kampagnen für Kunden wie Bayer, Beiersdorf, Deutsche Post, DHL, Intersnack, Johnson & Johnson, MINI, Pepsi, Postbank, Punica und Smart. Er gewann über 250 nationale und internationale Preise, darunter 11 Löwen und einen Grand Prix in Cannes. Als Mitglied des Art Directors Club (ADC) war er bereits fünfmal Juryvorsitzender in der Kategorie Film. Gemeinsam mit Andreas Berens gründete er 2015 die Kommunikations- und Content-Agentur theUntold – Digital Storytelling4Brands – und ist Autor des Content Magazins stories4brands.Carsten Bolk ist Professor für Kommunikationsdesign an der Berufsakademie Nord in Hamburg, lehrt als Dozent an der Hochschule Düsseldorf „Designmanagement“ sowie an der Akademie der Deutschen Medien in München und der Leipzig School of Media „Content Marketing und Storytelling“. Er hält Vorträge und leitet Workshops zu den Themen Content Strategie, Content Kreation und Content Produktion mit KI.Leseprobe (PDF-Link)
Neuronale Netze selbst programmieren (2. Auflage)
Neuronale Netze selbst programmieren. In 2., aktualisierter und erweiterter Auflage (erscheint Ende Juni)Neuronale Netze sind Schlüsselelemente des Deep Learning und der Künstlichen Intelligenz, die heute zu Erstaunlichem in der Lage sind. Dennoch verstehen nur wenige, wie Neuronale Netze tatsächlich funktionieren.Diese aktualisierte Neuauflage des Bestsellers nimmt Sie mit auf eine unterhaltsame Reise, die mit ganz einfachen Ideen beginnt und Ihnen Schritt für Schritt zeigt, wie Neuronale Netze arbeiten. Dafür brauchen Sie keine tieferen Mathematik-Kenntnisse, denn alle mathematischen Konzepte werden behutsam und mit vielen Illustrationen erläutert.Dann geht es in die Praxis: Sie programmieren Ihr eigenes Neuronales Netz mit Python und bringen ihm bei, handgeschriebene Zahlen zu erkennen, bis es eine optimale Performance erreicht. Zum Schluss erstellen Sie das Neuronale Netz mit PyTorch und lernen so eine professionelle Arbeitsumgebung kennen.Tariq Rashid hat eine besondere Fähigkeit, schwierige Konzepte verständlich zu erklären, dadurch werden Neuronale Netze für jeden Interessierten zugänglich und praktisch nachvollziehbar.Über den Autor:Tariq Rashid ist Physiker, hat einen Master in Machine Learning und Data Mining und leitet die Londoner Python-Meetup-Gruppe mit 3.000 Mitgliedern. Seine persönliche Mission ist es, spannende, aber komplexe technische Ideen besser zu vermitteln.Er hat eine besondere Gabe, schwierige Konzepte verständlich zu erklären. Dadurch werden neuronale Netze für alle technisch Interessierten zugänglich und praktisch nachvollziehbar.
Einstieg in JavaScript (5. Auflg.)
Lernen Sie Schritt für Schritt die Grundlagen der modernen JavaScript-Programmierung. Das Buch führt Sie in alle relevanten Bereiche ein: HTML und CSS, Objekte, anonyme Funktionen, Ereignisbehandlung, jQuery und Ajax. Zahlreiche anschauliche Beispielanwendungen erleichtern das Verständnis und dienen Ihnen als Vorlage für Ihre eigenen Projekte. Schon bald entwickeln Sie anspruchsvolle interaktive Programme für Ihre eigene Website.JavaScript programmieren lernen1. Sprachgrundlagen JavaScriptSchritt für Schritt lernen Sie die Grundlagen der JavaScript-Programmierung. Von der ersten einfachen Textausgabe im Browser bis zur fertigen Anwendung – alles anhand anschaulicher Beispiele aus der Praxis.2. Interaktive und mobile Anwendungen entwickelnSie erfahren, wie Sie XML- und JSON-Daten mit dem Webserver austauschen, CSS-Eigenschaften ändern, Animationen erstellen und was JavaScript auf Smartphones, Tablets und Co. alles kann.3. Viele Beispielprogramme, auch als ProjektvorlagenFeiertagsrechner, Fitnesswerte oder lieber ein Spiel wie Memory oder Snake? Wählen Sie aus über 200 Beispielprojekten aus, wie Sie in JavaScript einsteigen. Erlernen Sie schrittweise den Aufbau der Anwendungen und nutzen Sie sie als Vorlage für eigene Erweiterungen.Aus dem Inhalt:JavaScript-Basics: Sprachgrundlagen, Objekte, Ereignisbehandlung, DOMSchneller Datenaustausch (Ajax)CSS mit JavaScript erweiternHTML-Eigenschaften nutzenBrowserunabhängige Methoden verwenden (jQuery)Dynamische Grafiken erstellenJavaScript für mobile AnwendungenWaytracking, Lage- und BeschleunigungssensorenÜber den Autor:Thomas Theis ist Dipl.-Ing. Technische Informatik. Als Softwareentwickler verfügt er über langjährige Erfahrung, ebenso wie als IT-Dozent unter anderem an der Fachhochschule Aachen; er leitet Programmier-Schulungen zu JavaScript, C/C++, PHP und C# und ist Autor vieler erfolgreicher Fachbücher.Leseprobe (PDF-Link)
Software Development, Design, and Coding
Learn the principles of good software design and then turn those principles into great code. This book introduces you to software engineering — from the application of engineering principles to the development of software. You'll see how to run a software development project, examine the different phases of a project, and learn how to design and implement programs that solve specific problems. This book is also about code construction — how to write great programs and make them work.This new third edition is revamped to reflect significant changes in the software development landscape with updated design and coding examples and figures. Extreme programming takes a backseat, making way for expanded coverage of the most crucial agile methodologies today: Scrum, Lean Software Development, Kanban, and Dark Scrum. Agile principles are revised to explore further functionalities of requirement gathering. The authors venture beyond imperative and object-oriented languages, exploring the realm of scripting languages in an expanded chapter on Code Construction. The Project Management Essentials chapter has been revamped and expanded to incorporate "SoftAware Development” to discuss the crucial interpersonal nature of joint software creation.Whether you're new to programming or have written hundreds of applications, in this book you'll re-examine what you already do, and you'll investigate ways to improve. Using the Java language, you'll look deeply into coding standards, debugging, unit testing, modularity, and other characteristics of good programs.YOU WILL LEARN* Modern agile methodologies* How to work on and with development teams* How to leverage the capabilities of modern computer systems with parallel programming* How to work with design patterns to exploit application development best practices* How to use modern tools for development, collaboration, and source code controlsWHO THIS BOOK IS FOREarly career software developers, or upper-level students in software engineering coursesJOHN F. DOOLEY is the William and Marilyn Ingersoll Professor Emeritus of Computer Science at Knox College in Galesburg, Illinois. Before returning to teaching in 2001, Professor Dooley spent more than 16 years in the software industry as a developer, designer, and manager working for companies such as Bell Telephone Laboratories, McDonnell Douglas, IBM, and Motorola, along with an obligatory stint as head of development at a software startup. He has written more than two dozen professional journal and conference publications and seven books to his credit, along with numerous presentations. He has been a reviewer for the Association for Computing Machinery Special Interest Group on Computer Science Education (SIGCSE) Technical Symposium for the last 36 years and reviews papers for the IEEE Transactions on Education, the journal Cryptologia, and other professional conferences. He has created short courses in software development and three separate Software Engineering courses at the advanced undergraduate level.DR. VERA A. KAZAKOVA is a Computer Science educator and researcher, with expertise in artificial intelligence, experiential learning, and collaborative methodologies. With a PhD in AI focused on nature-inspired computation and emergent division of labor, her research spans CS Education, Evolutionary Computation, Narrative Generation, Decentralized Multi-Agent Systems, and Cyber Social Science. Dr. Kazakova also has extensive experience as a CS educator, having taught programming, artificial intelligence, research, and software development courses. Dr. Kazakova has coined the term "Soft-Aware Development" to encapsulate a holistic approach for building software, building stakeholder relationships, and building up each developer along the way. An ardent proponent of experiential learning and agile methodologies, Dr. Kazakova champions a multi-sprint learning architecture that enables students to adapt and iterate, fostering a shared environment of continuous growth. Her passion for collaboration, from simplistic autonomous agents to human developers, and members of large online communities, sets her apart as an advocate for a more interconnected, empathetic, and empowering approach to CS research, education, and software development.Chapter 1: Introduction to Software Development.- PART ONE: MODELS AND TEAM PRACTICES.- Chapter 2: Software Process Models.- Chapter 3: Project Management Essentials.- Chapter 4: Ethics and Professional Practice.- Chapter 5: Intellectual Property, Obligations, and Ownership.- Chapter 6: Requirements.- PART TWO: DESIGN PRACTICES.- Chapter 7: Software Architecture.- Chapter 8: Design Principles.- Chapter 9: Structured Design.- Chapter 10: Object-Oriented Overview.- Chapter 11: Object-Oriented Analysis and Design.- Chapter 12: Object-Oriented Design Principles.- Chapter 13: Design Patterns.- Chapter 14:Parallel Programming.- Chapter 15:Parallel; Design Patterns.- PART THREE: CODING PRACTICES.- Chapter 16: Code Construction.- Chapter 17: Debugging.- Chapter 18: Unit Testing.- Chapter 19:P Code Reviews and Inspections.- Chapter 20: Wrapping It All Up.
Vermittlung von BIM in der Hochschullehre
Für das Bauwesen ist Building Information Modeling (BIM) ein wichtiger Impulsgeber für den stattfindenden Digitalisierungsprozess. Studierende der baurelevanten Fachdisziplinen müssen daher auf den sicheren Umgang mit dieser Methode vorbereitet werden. Das vorliegende Buch definiert die wichtigsten Lehrinhalte zur Vermittlung von Kenntnissen, Fertigkeiten und Kompetenzen zu BIM, die an deutschen HAWs in Baustudiengängen Berücksichtigung finden sollten. Neben den allgemeinen BIM-Lehrinhalten behandelt das Buch insbesondere die Umsetzung von BIM mit Beispielen aus verschiedenen Hochschulen.
Clean Code Kochbuch
Clean Code Kochbuch. Rezepte für gutes Code Design und bessere Softwarequalität. In 1. Auflage (erscheint Ende Juni 2024)Code Smells erkennen und mithilfe inspirierender Rezepte beseitigenSoftware-Engineers und -Architekten, die mit großen, komplexen Code-Basen arbeiten, müssen diese skalieren und effektiv pflegen. In seinem Kochbuch geht Maximiliano Contieri über das Konzept des Clean Code hinaus: Er demonstriert, wie Sie Verbesserungsmöglichkeiten identifizieren und lernen, deren Auswirkungen auf den Produktionscode zu bewerten. Wenn es um Zuverlässigkeit und die Entwicklungsfähigkeit eines Systems geht, bieten diese Techniken Vorteile, die sich auf Dauer auszahlen werden.Anhand von Beispielen in JavaScript, PHP, Python, Java und vielen anderen Programmiersprachen bietet dieses Kochbuch bewährte Rezepte, die Sie bei der Skalierung und Wartung großer Systeme unterstützen. Jeder Teil behandelt grundlegende Konzepte wie Lesbarkeit, Kopplung, Testbarkeit, Sicherheit und Erweiterbarkeit sowie Code-Smells und Rezepte zu deren Beseitigung.Über den Autor: Maximiliano Contieri ist seit 25 Jahren in der Softwarebranche tätig und arbeitet gleichzeitig als Hochschullehrer. Im Laufe der Jahre war er ein eifriger Autor auf verschiedenen bekannten Blogging-Plattformen und veröffentlichte jede Woche mehrere Artikel zu einer Vielzahl von Themen wie Clean Code, Refactoring, Softwaredesign, testgetriebene Entwicklung und Code Smells.
Neuronale Netze selbst programmieren
Neuronale Netze und Grundlagen der Künstlichen Intelligenz verständlich dargestellt - Der Bestseller hat Furore gemacht, weil der Autor diese sowohl trockene als auch schwierige Materie außergewöhnlich klar erklärt. - Neu in der vollständig aktualisierten 2. Auflage: Das neuronale Netz wird abschließend mit PyTorch erstellt, um es in ein typisches professionelles Szenario zu überführen. - Neuronale Netze sind Grundlage vieler Anwendungen im Alltag wie Spracherkennung, Gesichtserkennung auf Fotos, das selbstfahrende Auto, Umwandlung von Sprache in Text etc. Neuronale Netze sind Schlüsselelemente des Deep Learning und der künstlichen Intelligenz, die heute zu Erstaunlichem in der Lage sind. Sie sind Grundlage vieler Anwendungen im Alltag wie beispielsweise Spracherkennung, Gesichtserkennung auf Fotos oder die Umwandlung von Sprache in Text. Dennoch verstehen nur wenige, wie neuronale Netze tatsächlich funktionieren. Dieser Bestseller, jetzt in erweiterter 2. Auflage, nimmt Sie mit auf eine unterhaltsame Reise, die mit ganz einfachen Ideen beginnt und Ihnen Schritt für Schritt zeigt, wie neuronale Netze arbeiten: - Zunächst lernen Sie die mathematischen Konzepte kennen, die den neuronalen Netzen zugrunde liegen. Dafür brauchen Sie keine tieferen Mathematikkenntnisse, denn alle mathematischen Ideen werden behutsam und mit vielen Illustrationen erläutert. Eine Kurzeinführung in die Analysis unterstützt Sie dabei. - Dann geht es in die Praxis: Nach einer Einführung in die populäre und leicht zu lernende Programmiersprache Python bauen Sie allmählich Ihr eigenes neuronales Netz mit Python auf. Sie bringen ihm bei, handgeschriebene Zahlen zu erkennen, bis es eine Performance wie ein professionell entwickeltes Netz erreicht. - Im nächsten Schritt verbessern Sie die Leistung Ihres neuronalen Netzes so weit, dass es eine Zahlenerkennung von 98 % erreicht – nur mit einfachen Ideen und simplem Code. Sie testen das Netz mit Ihrer eigenen Handschrift und werfen noch einen Blick in das mysteriöse Innere eines neuronalen Netzes. - Neu in der 2. Auflage: Sie erstellen das neuronale Netz abschließend mit PyTorch und überführen es damit in ein typisches professionelles Szenario.
Raspberry Pi programmieren mit Python (6. Auflg.)
Raspberry Pi – der Mini-Computer zum ExperimentierenDer Raspberry Pi ist ein preiswerter Computer in der Größe einer Kreditkarte. In Kombination mit der Programmiersprache Python bietet er eine hervorragende Umgebung für die schnelle Realisierung technischer Ideen und Projekte. In diesem Buch lernen Sie alle Grundlagen, die Sie brauchen, um mit dem Raspberry Pi oder dem Raspberry Pi Zero spannende Projekte zu realisieren.Zahlreiche Projekte mit Sensoren, Kamera u.v.m.Sie finden in diesem Buch eine Fülle von kleinen Projekten, die auf die besondere Hardware des Raspberry Pi und das Linux-Betriebssystem Raspberry Pi OS zugeschnitten sind. Dazu gehören sowohl Schaltungen mit Sensoren (Temperatur, Licht, Alkohol), Relais, AD-Wandlern und LEDs als auch die Verwendung des Kameramoduls und des 1-Wire- sowie SPI-Bus zur Datenkommunikation. Zahlreiche Illustrationen und einfache Beispiele zum Ausprobieren erleichtern das Verständnis.Die Programmiersprache Python als GrundlagePython ist – auch für Programmiereinsteiger – einfach zu lernen und deshalb Teil des Gesamtkonzepts des Raspberry Pi. Dieses Buch vermittelt Ihnen anhand anschaulicher Beispiele sowohl die Grundlagen von Python als auch fortgeschrittene Techniken wie Objektorientierung, Internetprogrammierung und grafische Benutzungsoberflächen. Am Ende jedes Kapitels finden Sie Aufgaben mit Lösungen zum Download, mit denen Sie Ihr Wissen festigen, erweitern und vertiefen können.Aus dem Inhalt:GerätesteuerungMesswerterfassung und -visualisierungInteraktive Spiele mit Schaltern und SensorenAnimationen und SimulationenAutomatische TextproduktionDigitale BildverarbeitungMorsezeichen senden und Signalmuster erkennenProjekte mit dem Sense HATFarben und Bewegung wahrnehmenSteuerung mit Potentiometer und AD-WandlerAuswertung von Daten aus dem InternetWebserver und Webcam Über den Autor:Michael Weigend hat an der Universität Potsdam in Informatik promoviert. Er war für mehr als 30 Jahre als Lehrer tätig und hat 20 Jahre lang an der FernUniversität Hagen Seminare zur Didaktik der Informatik gegeben. An der Universität Münster hält er im Rahmen eines Lehrauftrags Vorlesungen zur Python-Programmierung. Michael Weigend engagiert sich in mehreren nationalen und internationalen Communities für den Computer-Einsatz in der Bildung, darunter Constructionism, International Federation for Information Processing (TC 3 Computers in Education) , Bebras – International Contest on Informatics and Computational Thinking. Er hat über 60 wissenschaftliche Artikel veröffentlicht und mehrere Bücher zu den Themen Programmierung, Web Development und visuelle Modellierung geschrieben.Leseprobe (PDF-Link)
C++ (3. Auflage)
Modern C++ ist die zeitgemäße Art, in C++ zu programmieren. Dieses Standardwerk führt Sie in die Softwareentwicklung mit C++ ein. Sie lernen, wie Sie Programme mit höchsten Ansprüchen an Funktionalität, Effizienz und Sicherheit entwickeln. Torsten T. Will vermittelt Ihnen in diesem Buch ausführlich und praxisnah den Sprachkern, die objektorientierte Programmierung mit C++ sowie die Standardbibliothek. Dabei lernen Sie den aktuellen Standard und seine direkten Vorgänger kennen. Mit Best Practices für sauberen Code und zahlreichen Praxisbeispielen zum Nachprogrammieren. Alle Listings stehen zum Download bereit oder können im interaktiven Compiler-Explorer getestet und bearbeitet werden. Ein Handbuch für alle, die C++ richtig verstehen wollen.Hier lernen Sie1. C++-Grundlagen und OOPDie Sprachgrundlagen von C++ und die Konzepte der objektorientierten Programmierung werden ausführlich beschrieben. Auch C++-Einsteiger ohne Vorkenntnisse werden sich schnell zurechtfinden.2. Modern C++ – mehr als FeaturesSie lernen modernes C++ nach aktuellem Standard. Es wird erklärt, welche Sprachmittel ab welcher Version funktionieren – C++23, C++20 oder C++ 17. Wichtiger noch: Lernen Sie, wie Sie die neueren Features gewinnbringend einsetzen.3. Standardbibliothek und mehrDie Werkzeuge und Konzepte der Standardbibliothek werden umfassend behandelt. Lernen Sie zum Beispiel, die verschiedenen Container-Typen einzusetzen, mit Streams umzugehen und nebenläufige Anwendungen zu entwickeln.4. Besser CodenBesonderer Wert wird darauf gelegt, dass Sie von Anfang an guten, d. h. kompakten, sicheren und effizienten Code entwickeln. Dazu gibt es Extra-Kapitel, die jeweils bestimmte Aspekte behandeln, die für guten Code wichtig sind.Aus dem Inhalt:SprachgrundlagenFehlerbehandlungObjektorientierte ProgrammierungZeigerTemplatesContainerStandardbibliothekC++ Core GuidelinesÜber den Autor:Torsten T. Will, Jahrgang 1970, beschäftigte sich schon während seines Diploms in Informatik mit Programmiersprachen und ihren Konzepten. C++ hat ihn von Anfang an fasziniert und begleitet. Von Haskell über Java und Python zu Rust finden verschiedene Sprachen sein Interesse. Seit 2004 schreibt er im Fachmagazin c't gelegentlich über C++ und Python. Was dann noch an Zeit übrig bleibt, geht in die Fotografie.Leseprobe (PDF-Link)
Introduction to Python Network Automation Volume I - Laying the Groundwork
Welcome to _Introduction to Python Network Automation Volume I: Laying the Groundwork_. In this first part of our comprehensive guide, you'll embark on a transformative journey into the world of network automation. Whether you're new to the IT field or seeking to strengthen your existing skills, this book serves as your roadmap to mastering the foundational skills essential for success in network automation.You'll begin your exploration by delving into the fundamentals of Python network automation, laying a solid foundation for your learning journey. Equipped with essential Python skills, you'll leverage them for network administration tasks, particularly on the Windows platform. Reinforce your understanding through targeted exercises designed to enhance your proficiency and navigate the complexities of VMware Workstation as you master virtualization techniques crucial for setting up your network automation environment.You’ll then venture into Linux fundamentals, learning to set up and configure server environments tailored for network automation tasks while gaining a deep understanding of file systems and TCP/IP services in Linux. Explore the power of regular expressions as you streamline network automation tasks with precision and efficiency. Discover GNS3, a vital tool for network emulation, enabling you to test and validate network designs and put your skills to the test by tackling real-world network challenges in a comprehensive lab scenario. This book provides the essential knowledge and practical experience needed to thrive in the rapidly evolving field of network automation. Whether you're new to network automation or seeking to strengthen your existing skills, this book will unlock the vast potential of network automation and empower you to excel in this exciting field.WHAT YOU'LL LEARN* Learn Python fundamentals and effective network automation strategies.* Use Python for various network administration tasks, improving efficiency.* Understand Linux basics and IP service installation techniques.* Apply regular expressions in Python for data processing.* Create a network automation lab with VMware Workstation for hands-on practice.WHO THIS BOOK IS FORIT engineers and developers, network managers and students, who would like to learn network automation using Python.Brendan Choi is a highly accomplished Tech Lead at Secure Agility, possessing over 19 years of extensive hands-on experience in Enterprise Network Automation and diverse IT technologies. As a Certified Cisco, VMware, and Fortinet Engineer, Brendan has worked with globally renowned enterprises including Cisco Systems, Telstra, NTT (Dimension Data), Fujitsu and various reputable Enterprise IT integrators. He is dedicated to streamlining work processes and ensuring uninterrupted IT service delivery through infrastructure and business process automation. Brendan is the author of "Python Network Automation: By building an integrated virtual lab" for Acorn Publishing and has authored the 1st and 2nd editions of "Introduction to Python Network Automation: The first journey". He is currently writing “Introduction to Ansible Network Automation: KISS” for Apress and has trained over 200 Network and Systems Engineers on Python and Ansible Network Automation. Brendan's keen interest lies in Cloud, Enterprise Networking, Security, and Virtualization technologies, and he shares his knowledge, experience, and enthusiasm with the community through his blog and YouTube channel.Chapter 1: Introduction to Python Network Automation.- Chapter 2: Learning Python Fundamentals on Windows.- Chapter 3: Practicing More Python Exercises.- Chapter 4: Navigating VMware Workstation.- Chapter 5: Creating an Ubuntu Linux Server.- Chapter 6: Creating a Fedora Linux Server.- Chapter 7: Mastering File Systems in Linux.- Chapter 8: Understanding TCP/IP Services in Linux.- Chapter 9: Using Regular Expressions for Network Automation.- Chapter 10: Exploring GNS3 Essentials.- Chapter 11: Cisco IOS, Linux, TFTP, and Telnet Lab.- Chapter 12: Setting Up a Python Automation Lab.- Chapter 13: Basic Telnet Lab.-Chapter 14: SSH, Paramiko, and Netmiko Lab.- Chapter 15: Automating Tasks with Cron in Python Lab.- Chapter 16: SNMP Discovery with Python Lab.- Chapter 17: Ansible and pyATS in virtualenv Lab.- Chapter 18: Sendmail and Twilio Notifications via Docker Lab.- Chapter 19: Cisco IOS Upgrade Tools Development 1.- Chapter 20: Cisco IOS Upgrade Tools Development 2.- Chapter 21: Building a Cisco IOS Upgrade Application.- Chapter 22: Upgrading Cisco IOS Routers Lab.- Chapter 23: Installing NetBox with Python.
Java Testing with Selenium
Master the art of automated testing using Selenium with Java in this comprehensive guide. Whether you're a beginner or an experienced tester, the book equips you with the knowledge and techniques to build robust and maintainable test suites, ensuring the quality and reliability of your web applications.This book starts introducing the basics of automated testing and the importance of Selenium. It then covers the setup and configuration of the Selenium WebDriver in Java, providing a solid foundation for your testing environment. You'll learn essential aspects of Selenium testing in Java, including working with different browsers, locating web elements using locators, and performing actions on them. From there, you’ll explore how to handle dynamic web pages and effective wait mechanisms and verifications to ensure accurate and reliable test results. The book also guides you in setting up Selenium in Java for continuous integration and emphasizes best practices for test codeorganization and maintainability, such as the Page Object Model (POM) and structuring test suites effectively. By the end, you’ll have the expertise to address advanced scenarios, such as working with iframes, and know how TestNG enhances Selenium automation, enabling structured tests, data-driven insights, and swift parallel executions.Throughout the book, you'll benefit from real-world examples and practical exercises that reinforce the concepts. The clear explanations and step-by-step guidance make it easy to follow along and apply the knowledge to your own testing projects.WHAT YOU WILL LEARN* Understand the fundamentals of automated testing and the role of Selenium in web application testing* Set up the Selenium WebDriver in Java and configure the testing environment* Work with different web browsers and their drivers to perform cross-browser testing* Identify and locate web elements using various locators, such as IDs, class names, CSS selectors, and XPath expressions* Perform actions on web elements, such as clicking buttons, entering text, submitting forms, and navigating through web pages* Handle dynamic pages by implementing effective wait mechanisms, including implicit waits, explicit waits, and fluent waits* Verify and assert expected conditions and outcomes using assertions and verification techniques provided by Selenium in Java* Apply best practices for test code organization and maintainability, including using the Page Object Model (POM) design pattern* Handle advanced scenarios, such as working with iframes, and elevating Selenium automation through TestNG’s structured frameworks, data utilization, and parallel processingWHO THIS BOOK FORSoftware testers, quality assurance professionals, and developers interested in mastering automated testing with Selenium and Java. Suitable for various experience levels. Offers practical insights and techniques to automate web application testing accurately and reliably. Benefits testers, developers, and individuals familiar with Java and web testing, empowering them to write robust, maintainable test code and integrate Selenium seamlessly into their workflows.SUJAY RAGAHVENDRA is a distinguished expert in the field of machine learning and software testing, with a strong background in Python programming. With a deep passion for both disciplines, He has dedicated his career to exploring the intersection of these fields and delivering innovative solutions.Recognizing the critical role of testing in software development, Sujay expanded his expertise to include automated testing using Selenium with Python. With his books Python Testing with Selenium: Learn to Implement Different Testing Techniques Using the Selenium WebDriver and Beginner's Guide to Streamlit with Python: Build Web-Based Data and Machine Learning Applications, Sujay shares his extensive knowledge and practical insights into leveraging Selenium's capabilities with Python for efficient and reliable testing. This new book provides a comprehensive guide for professionals looking to master automated testing techniques, harnessing the power of Python and Selenium to ensure the quality and functionality of web applications.Sujay's expertise in both machine learning and software testing allows him to bring a unique perspective to the field of automated testing. He explores ways to integrate machine learning concepts into testing practices, enabling readers to discover innovative approaches to test analysis, anomaly detection, and intelligent test execution.With a solid foundation in programming, Sujay leverages his expertise to provide readers with practical examples, best practices, and coding techniques specific to Python and Selenium. His clear explanations and step-by-step guidance make it easy for readers to implement effective testing strategies and optimize their automation workflows.Beyond writing, Sujay actively contributes to the testing community through workshops, speaking engagements, and mentorship programs. He strive to empower professionals with the knowledge and skills needed to excel in automated testing, ensuring the delivery of high-quality software products. Through his work, Sujay continues to bridge the gap between machine learning, software testing, and programming, inspiring others to embrace the synergy of these disciplines and drive advancements in the field of automated testing.Chapter 1: Introduction to Selenium.- Chapter 2: Getting Started.- Chapter 3: Mouse and Keyboard Actions.- Chapter 4: Web Elements.- Chapter 5: Navigation.- Chapter 6: Buttons.- Chapter 7: Frames and Textboxes.- Chapter 8: Assertions.- Chapter 9: Exceptions.- Chapter 10: Waits.- Chapter 11: Page Object Models.- Chapter 12: Selenium with TestNG Framework.
Machine Learning For Network Traffic and Video Quality Analysis
This book offers both theoretical insights and hands-on experience in understanding and building machine learning-based Network Traffic Monitoring and Analysis (NTMA) and Video Quality Assessment (VQA) applications using JavaScript. JavaScript provides the flexibility to deploy these applications across various devices and web browsers.The book begins by delving into NTMA, explaining fundamental concepts and providing an overview of existing applications and research within this domain. It also goes into the essentials of VQA and offers a survey of the latest developments in VQA algorithms. The book includes a thorough examination of machine learning algorithms that find application in both NTMA and VQA, with a specific emphasis on classification and prediction algorithms such as the Multi-Layer Perceptron and Support Vector Machine. The book also explores the software architecture of the NTMA client-server application. This architecture is meticulously developed using HTML, CSS, Node.js, and JavaScript. Practical aspects of developing the Video Quality Assessment (VQA) model using JavaScript and Java are presented. Lastly, the book provides detailed guidance on implementing a complete system model that seamlessly merges NTMA and VQA into a unified web application, all built upon a client-server paradigm.By the end of the book, you will understand NTMA and VQA concepts and will be able to apply machine learning to both domains and develop and deploy your own NTMA and VQA applications using JavaScript and Node.js.What You Will Learn* What are the fundamental concepts, existing applications, and research on NTMA?* What are the existing software and current research trends in VQA?* Which machine learning algorithms are used in NTMA and VQA?* How do you develop NTMA and VQA web-based applications using JavaScript, HTML, and Node.js?Who This Book Is ForSoftware professionals and machine learning engineers involved in the fields of networking and telecommunicationsDR. TULSI PAWAN FOWDUR received his BEng (Hons) degree in Electronic and Communication Engineering with honors from the University of Mauritius in 2004. He was also the recipient of a Gold medal for having produced the best degree project at the Faculty of Engineering in 2004. In 2005 he obtained a full-time PhD scholarship from the Tertiary Education Commission of Mauritius and was awarded his PhD degree in Electrical and Electronic Engineering in 2010 by the University of Mauritius. He is also a Registered Chartered Engineer of the Engineering Council of the UK, Fellow of the Institute of Telecommunications Professionals of the UK, and a Senior Member of the IEEE. He joined the University of Mauritius as an academic in June 2009 and is presently an Associate Professor at the Department of Electrical and Electronic Engineering of the University of Mauritius. His research interests include mobile and wireless communications, multimedia communications, networking and security, telecommunications applications development, the Internet of Things, and AI. He has published several papers in these areas and is actively involved in research supervision, reviewing papers, and also organizing international conferences.LAVESH BABOORAM received his BEng (Hons) degree in Telecommunications Engineering with Networking with honors from the University of Mauritius in 2021. He was also awarded a Gold medal for having produced the best degree project at the Faculty of Engineering in 2021. Since 2022, he has been an MSc Applied Research student at the University of Mauritius. With in-depth knowledge of telecommunications applications design, analytics, and network infrastructure, he aims to pursue research in networking, multimedia communications, Internet of Things, artificial intelligence, and mobile and wireless communications. He joined Mauritius Telecom in 2022 and is currently working in the Customer Experience and Service Department as a Pre-Registration Trainee Engineer.Chapter 1: Introduction to NTMA and VQA.- Chapter 2: Network Traffic Monitoring and Analysis.- Chapter 3: Video Quality Assessment.- Chapter 4: Machine Learning Techniques for NTMA and VQA.- Chapter 5: NTMA Application with JavaScript.- Chapter 6: Video Quality Assessment Application Development with JavaScript.- Chapter 7: NTMA and VQA Integration.
Laws of UX (2. Auflg.)
Mit Psychologie zu besseren Produkten und ServicesJon Yablonski erklärt in diesem Buch, wie UX-Designer*innen Grundprinzipien aus der Psychologie nutzen können, um eine bessere User Experience zu generieren. Statt Benutzer*innen zu zwingen, sich an das Design eines Produkts anzupassen, hilft dieser praktische Leitfaden dabei, das Design danach auszurichten, wie Benutzer*innen sich verhalten und mit digitalen Schnittstellen interagieren. Auf diese Weise lässt sich ihre Nutzung einfacher und angenehmer gestalten.Dabei greift der Autor auf bewährte Prinzipien aus der psychologischen Forschung zurück und überträgt sie in die Welt des UX-Design: So sprechen wir beispielsweise einer App mit attraktivem Design mehr Kompetenz zu und verzeihen ihr eher Fehler. Oder wir erwarten von einem Onlineshop, dass der Kaufprozess so funktioniert, wie wir es von anderen Shops gewohnt sind. Außerdem können wir eine große Menge an Informationen besser speichern und verarbeiten, wenn sie in Chunks gegliedert sind, weshalb etwa Texte, die mithilfe von Überschriften und Absätzen gegliedert sind, eine höhere UX generieren als ein langer Fließtext, der die User überfordert.Jon Yablonski führt Sie zunächst an die verschiedenen Prinzipien heran und demonstriert sie an anschaulichen, einfach nachzuvollziehenden Beispielen. Dann lernen Sie, wie Sie diese Prinzipien praktisch für die eigene Arbeit und im Team nutzen können. Zusätzlich geht das Buch auch auf die ethischen Komponenten ein (Beispiele: Endlos-Scrollen, Like-Button).Leseprobe (PDF-Link)Über den Autor:Jon Yablonski ist ein multidisziplinärer Designer, Referent, Autor und Gestalter für digitale Medien mit Sitz in Detroit. Sein besonderes Interesse gilt der Schnittstelle zwischen User Experience Design und Frontend-Webentwicklung, und er verbindet diese beiden Disziplinen vielfach zu einem Hybridkonzept für digitale Problemlösungen. Wenn er nicht gerade Journey Maps und Prototypen erstellt, entwickelt Jon hilfreiche Ressourcen wie Laws of UX, Humane by Design oder das Web Field Manual. Gegenwärtig ist er als leitender Produktdesigner bei General Motors damit beschäftigt, die nächste Generation der Interaktivität im Fahrzeug zu definieren.
CodeMosaic
This book is a comprehensive guide for those navigating through the complexities of enterprise software development.For fresh graduates, transitioning from college projects to real-world applications can be overwhelming. This book acts as a roadmap, helping you bridge the gap to become industry-ready. It's like an intensive internship in book form, equipping readers with the skills and knowledge needed for modern tech roles.But it's not just for newcomers. Even experienced developers can get caught up in old routines and miss out on new tools and techniques. With the rise of AI and automation tools like ChatGPT and Copilot, the development landscape is rapidly changing. The core of the_ _book revolves around practical application. Using .NET, Angular, and other Microsoft technologies as foundational pillars, you’ll embark on a hands-on journey.From understanding the basics to designing and deploying a full-stack web application, _CodeMosaic_ offers a holistic learning experience. By the end, you won't just be a developer; you'll be well-equipped to tackle the challenges of today's digital world.WHAT YOU'LL LEARN* Review Agile methodologies and Azure DevOps for streamlined project management.* Gain a thorough understanding of smart development from design to deployment.* Master software development with .NET and Angular, along with effective version control using Git.* Enhance your coding and design skills using GitHub Copilot, GPT technologies, and AI-driven prompt engineering.WHO THIS BOOK IS FORExperienced developers looking for new tools and techniques, and recent graduates, transitioning from college projects to real-world applications.Arpit's tech odyssey began as a Digital Specialist Engineer at Infosys, rapidly ascending to a Specialist Programmer role. His fervor for innovation steered him to Kline & Company as a Product Engineer, diving deep into full-stack development. Beyond corporate confines, Arpit's zeal for knowledge dissemination is evident in his writings across tech platforms and his personal blog. His commitment extends to open-source contributions, leaving indelible marks on the tech canvas. His brainchild, DevIncept, an open-source online community, stands testament to his vision, amassing over 9,000 LinkedIn followers. CodeMosaic: Learn AI-Driven Development and Modern Best Practices for Enterprise is Arpit's literary debut, encapsulating his mission to shepherd budding developers through the intricate maze of modern software craftsmanship._Part I: Foundations and Smart Techniques.- _Chapter 1: Embarking on the Digital Odyssey_.- _Chapter 2: Laying the Foundation: Pixels. Logic, and Data Streams_.- _Chapter 3: Git Going: Time-Traveling with Code_.- _Chapter 4: Database Diaries: Chronicles of Structured Memories_.- _Chapter 5: Angular Adventures: Crafting the User's Realm_.- _Chapter 6: .NET Narratives: Weaving the Backend Tapestry_.- _Chapter 7: Data Vistas: Painting with Numbers_.- _Chapter 8: Designing Dreams and Solving Schemes_.- _Chapter 9: Copilot Chronicles: Coding with a Digital Companion.- Chapter 10: ChatGPT Charms: Wielding Words with AI_.- _Chapter 11: Agile Aesthetics and Azure DevOps Dynamics: Introduction to Agile methodologies using Azure Boards_.- Part 2: Crafting the Mosaic.- _Chapter 12: Mosaic Tile 1: Setting up the Stage - Ideation and Boards_.- _Chapter 13: Mosaic Tile 2: Blueprint Bonanza: Designing with Open Tools Designing_.- _Chapter 14: Mosaic Tile 3: Data_.- _Chapter 15: Mosaic Tile 3: Backend Ballet: .NET Core Choreography_.- _Chapter 16: Mosaic Tile 4: Frontend Finesse with Angular_.- _Chapter 17: Mosaic Tile 5: Visionary Vistas: Data Visualization Delight_.- _Chapter 18: Mosaic Tile 6: Integration Ingenuity with Smart Tools: Ensuring system parts communicate efficiently_.- _Chapter 19: Cornerstone: Azure Awe: Smart Deployment Delight_.- _Chapter 20: More on AI Tools: Developer's Magic Wand.
The IT Support Handbook
Become a more effective tech professional by learning how to provide the most useful IT support for your users. You'll learn how to efficiently and effectively deal with any type of problem, including operating systems, software, and hardware. IT support is often complex, time-consuming, and expensive, but it doesn't have to be with the right processes in place.Whether you're an individual, part of an IT support team, or managing staff supporting PC users in their homes, _this book _will help you understand the right way to approach, troubleshoot, and isolate problems so they can be handled efficiently, with the least disruption and cost to your business. Expanded and revised for this second edition, you'll make yourself popular with your colleagues, and keep your clients and users happy and productive.New To This EditionThe world of work has changed, with remote and hybrid working now the new normal and with IT Support departments worldwide having to adapt to this new paradigm. This expanded edition highlights the skills, tools, and structures needed to support businesses of any size in the new normal.WHAT YOU'LL LEARN* Manage reporting, and keep a record of issues that occur* Provide effective remote support for users working from home or elsewhere in the world* Use error and system reporting in Windows to obtain high-quality, relevant information* Spot patterns in user behavior that may be causing difficult-to-diagnose problems* Be familiar with best practices to make you a better support professionalWHO THIS BOOK IS FORIT professionals, IT support (on-site and remote), and system administrators who manage support teams. No prior knowledge is required.MIKE HALSEY is a Microsoft MVP (Most Valuable Professional) awardee, since 2011, and technical expert. As the author of Windows troubleshooting books and training videos since Windows 7 he is well versed in the problems and issues faced by PC users, IT pros, and system administrators when administering and maintaining all aspects of a PC ecosystem. Mike spent many years as a teacher and used this experience to help explain complex subjects in simple and straightforward ways. Originally from the UK, Mike now lives a simpler and less complicated life in the South of France with his three border collies, Evan, Robbie and Téo.Part I: IT Support Fundamentals.- 1. An Introduction to IT Support.- 2. Understanding Your IT System Better.- 3. Understanding Your Users: How Much Do They Know?.- Part II: IT Support Methodology.- 4. Flow Logic and Troubleshooting.- 5. Querying Users Effectively.- 6. Supporting Remote and Hybrid Workers. - 7. Joining The Dots: Finding the Root Cause of an IT Issue.- Part III: Understanding IT System Problems.- 8. How IT Systems are Structured.- 9. The Human Factor.- 10. The Peripheral Problem.- 11. Building and Environmental Factors.- 12. How Climate Change Affects IT Support. - Part IV: Documentation and Reporting.- 13. Why Good Documentation Matters.- 14. Creating Troubleshooting Guides.- 15. Creating and Managing Reporting.- 14. Harnessing System and Error Reporting in Windows.- 17. Obtaining Advanced Error and Status Information on PCs.- Part V: Providing Remote Support.- 18. Remote Support Tools.- 19. Gathering Information Remotely.- 20. Helping Your Users to Help You. – 21. Taking IT Support to the Next Level.
Rust. Das umfassende Handbuch.
Rust. Das umfassende Handbuch (Juni 2024)Rust ist die neue erste Wahl für moderne, sichere Software – nicht nur im systemnahen Kontext. Cleveres Speichermanagement und eine hervorragende Safety sind die bekanntesten Vorzüge dieser vielseitigen Sprache. In umfassende und fundierte Kenntnisse zu investieren, lohnt sich!Wenn Sie die vielen beliebten Features genießen und in professionellen Code ummünzen möchten, ist dieses Buch Ihr idealer Begleiter. Mit vielen gut kommentierten Beispielen, Best Practices und gelegentlich auch Warnungen stellt es Sprachfeatures und Konzepte detailliert vor. Erfahrene Profis können alle Kapitel auch einzeln lesen, um sich gezielt mit fortgeschrittenen Themen zu befassen.Ihr Weg zum Rust-Profi1. Fundierter EinstiegWenn Sie noch nie mit Rust gearbeitet haben, steigen Sie hier einfach vorne ein. Nutzen Sie das Übungsbeispiel – ein Bestellsystem für Restaurants – , um nach und nach alle Sprachfeatures im Praxiskontext kennenzulernen.2. Detaillierte ErklärungenRust unterstützt anspruchsvolle Programmierweisen. Ob Sie systemnah, stark asynchron, objektorientiert oder funktional unterwegs sind: Marc Marburger erklärt die Konzepte mit Überblick und didaktischem Geschick.3. Über den TellerrandFreuen Sie sich auch auf weniger alltägliche Themen wie etwa Unsafe Rust, automatisierte Doku und Foreign Functions. Zum Beispiel implementieren Sie eine Library, um auf native iOS- und Android-Apps zuzugreifen und lernen, auch selbst APIs für mobile Apps anzubieten.Aus dem InhaltRust installieren, Toolchain aufsetzenFundierter EinstiegSpeichermanagementCollections und IteratorenMultithreadingI/O und NetzwerkprotokolleDoku und Tests automatisierenAPI für iOS und Android anbieten
EWM mit SAP S/4HANA - Architektur und Programmierung
EWM anpassen und erweitern, ganz nach Ihren Vorstellungen! Anhand praxisnaher Beispiele aus der Lagerverwaltung spielen Sie Lösungswege für Ihre Eigenentwicklungen durch – mit kommentiertem Code aus der Entwickler- und Beraterpraxis. Nutzen Sie Funktionsbausteine und BAdIs, um Benutzeroberflächen anzupassen, Prozesse zu automatisieren und Standardabläufe auf Ihre Anforderungen zuzuschneiden. Aktuell zu Embedded und Decentralized EWM in SAP S/4HANA! Aus dem Inhalt: Flexible LagerverwaltungLieferabwicklungLagerlogistikBestandsverwaltungQualitätsprüfungFrameworks und EntwicklungswerkzeugeIntegration mit ERP-SystemenFunktionsbausteine, Methoden und APIs Nützliche Business Add-insMigration Geleitwort ... 13 Einleitung ... 15 1. Flexible Lagerverwaltung mit Extended Warehouse Management ... 21 1.1 ... Lagerverwaltung mit standardisierter Software -- Deployment, Konfiguration und Erweiterung ... 22 1.2 ... Flexibilität von EWM ... 23 1.3 ... Zusammenfassung ... 28 2. Architektur ... 29 2.1 ... Lieferabwicklung ... 30 2.2 ... Lagerlogistik ... 53 2.3 ... Bestandsverwaltung ... 75 2.4 ... Qualitätsprüfung ... 86 2.5 ... Integration mit ERP-Systemen ... 109 2.6 ... Zusammenfassung ... 156 3. Frameworks und Entwicklungswerkzeuge in EWM ... 159 3.1 ... Lagerverwaltungsmonitor ... 159 3.2 ... Easy Graphics Framework und Kennzahlenservices ... 170 3.3 ... Radio Frequency Framework ... 189 3.4 ... Post Processing Framework ... 237 3.5 ... Key-User-Erweiterbarkeit für benutzerdefinierte Felder ... 250 3.6 ... Arbeitsplatz ... 260 3.7 ... Zusammenfassung ... 281 4. Erweiterungen der SAP Best Practices für Embedded EWM ... 283 4.1 ... Einführung in die SAP Best Practices für Embedded EWM ... 284 4.2 ... Einfacher Wareneingang vom Lieferanten: 1FS ... 292 4.3 ... Wareneingang vom Lieferanten mit Chargenverwaltung: 1V5 ... 310 4.4 ... Einfacher Warenausgang zum Kunden (Kommissionier-Handling-Units als Versand-Handling-Units): 1G2 ... 347 4.5 ... Erweiterter Warenausgang zum Kunden (Wellen, Kommissionier-Handling-Units, Verpacken, Bereitstellen und Verladen): 1V7 ... 374 4.6 ... Permanente Inventur: 1FW ... 401 4.7 ... Zusammenfassung ... 409 5. Funktionsbausteine, Methoden und APIs für EWM ... 411 5.1 ... Transaction Manager für eine Logical Unit of Work in EWM ... 412 5.2 ... API-Konzept für EWM ... 415 5.3 ... Externe APIs ... 416 5.4 ... Serviceklasse zum Füllen von Bestandsfeldern ... 417 5.5 ... Datum und Uhrzeit für die Zeitzone der Lagernummer ... 418 5.6 ... Anwendungsübergreifende Konstanten ... 419 5.7 ... Anwendungsprotokoll anlegen und erweitern ... 420 5.8 ... EWM-Lieferungen und -Lageranforderungen lesen ... 422 5.9 ... EWM-Lieferungen und -Lageranforderungen bearbeiten ... 424 5.10 ... Lagerproduktstamm lesen ... 426 5.11 ... Lagerproduktstamm anlegen/ändern ... 428 5.12 ... Serviceklasse für Chargenverwaltung ... 430 5.13 ... Lageraufgabe lesen ... 432 5.14 ... Lageraufgabe anlegen, quittieren und stornieren ... 432 5.15 ... Handling Units von der Datenbank selektieren ... 434 5.16 ... Handling Units lesen, anlegen und ändern ... 436 5.17 ... Bestand lesen ... 438 5.18 ... Bestand umbuchen ... 440 5.19 ... Wellen lesen, freigeben, splitten und zusammenführen ... 443 5.20 ... Transporteinheit lesen ... 447 5.21 ... Transporteinheit ändern ... 449 5.22 ... Packspezifikationen finden und lesen ... 450 5.23 ... Packspezifikationen anlegen, ändern, kopieren und löschen ... 451 5.24 ... Serviceklasse für RF-Framework ... 452 5.25 ... Zusammenfassung ... 453 6. Nützliche Business Add-ins in EWM ... 455 6.1 ... Lieferabwicklung ... 457 6.2 ... Wellenmanagement ... 467 6.3 ... Lageraufgaben ... 476 6.4 ... Lagerauftragserstellung ... 500 6.5 ... Ausnahmebehandlung ... 509 6.6 ... Zusammenfassung ... 510 Anhang ... 511 A ... Programmierrichtlinien für Erweiterungen in EWM ... 511 B ... Migration von SAP EWM nach EWM in SAP S/4HANA ... 519 Das Autorenteam ... 529 Index ... 531
No Social Media!
Haderst du mit Social Media? Kosten sie dich nur Zeit, Geld und Mühe, ohne spürbaren Erfolg für dein Unternehmen? Würdest du lieber auf eine Social-Media-Präsenz verzichten, hast aber Angst, ohne sie nicht erfolgreich zu sein? Dieses Buch hilft dir, dich für oder gegen Social Media zu entscheiden. Alexandra Polunin zeigt, dass der Einsatz sozialer Medien wohlüberlegt sein will und definitiv kein Muss für jedes Unternehmen ist. Früher selbst Social-Media-Beraterin, hat sich die Autorin zur „Aussteigerin“ gewandelt und wirbt für einen maßvollen Einsatz der Plattformen. Sie zeigt wirkungsvolle Alternativen, wie die eigene Website, Blogs, SEO, Newsletter, Podcasts oder auch klassisches E-Mail-Marketing, mit denen Selbstständige und Unternehmen erfolgreich Marketing betreiben können. So gelingt dein Online-Marketing auch ohne Social Media.Erfolgreich ohne Social Media!1. Social Media – ja oder nein?Wenn du den Einsatz von Social Media im Marketing kritisch siehst und unsicher bist, ob du auf sie verzichten solltest oder nicht, findest du hier wichtige Argumente, um eine informierte Entscheidung zu treffen.2. Kein Social Media? Kein Problem!Auch ohne Instagram, Facebook & Co. kann dein Online-Marketing erfolgreich sein. Die Autorin zeigt dir, wie du effektive Alternativen findest und diese in einer durchdachten Strategie einsetzt.3. So gelingt der Ausstieg!Ein Ausstieg aus Social Media muss kein Manko sein, sondern kann zu einem echten Wettbewerbsvorteil werden. Hier erfährst du praxisnah und Schritt für Schritt, wie ein Ausstieg umgesetzt werden kann.Aus dem Inhalt:Social-Media-Marketing – ja oder nein?Chancen, Vorteile, MöglichkeitenNachteile, Risiken, GefahrenEine EntscheidungshilfeOnline-Marketing-Strategie entwickelnCustomer Journey ohne Social MediaWelche Alternativen gibt es?Marketing ohne Social MediaWie gelingt der Ausstieg?Über den Autor:Alexandra Polunin (alexandrapolunin.com) war nach ihrem Studium der Germanistik und Philosophie mehrere Jahre als Beraterin für Pinterest-Marketing tätig, bevor sie 2020 genug von Likes, Reels und Selfies hatte und Social Media den Rücken kehrte. Seitdem unterstützt sie Selbstständige dabei, ohne soziale Medien online sichtbar zu werden und Kund*innen zu gewinnen. Ihr Herz schlägt für wertebasiertes, ethisches Marketing – am liebsten mithilfe von Website, Blog und Newsletter.Leseprobe (PDF-Link)
Rust
Werden Sie Rust-Profi und entwickeln Sie moderne, sichere Software! Rust ist für sein cleveres Speichermanagement, hervorrangende Sicherheit und viele beliebte Features bekannt. Nutzen Sie das hervorrangende Design dieser Sprache, um moderne und robuste Software auf professionellem Niveau zu entwickeln! Dieses Handbuch begleitet Sie beim Einstieg und stellt Rust dann detailliert vor – sowohl für systemnahe Prorammierung als auch für Enterprise- und Cloud-Anwendungen. Mit vielen gut kommentierten Codebeispielen, Best Practices und einer durchgehenden Demo-Anwendung. Zugleich lassen sich alle Kapitel gut einzeln lesen und zum Nachschlagen verwenden. Der ideale Weg zu fundierten und umfassenden Kenntnissen! Aus dem Inhalt: Rust installieren, Toolchain aufsetzenFundierter EinstiegSpeichermanagementTraits und ClosuresCollections und IteratorenAsynchrone ProgrammierungMultithreadingArbeiten mit TextDokumentation und Test automatisierenSchnittstellen zu anderen Sprachen Materialien zum Buch ... 18 1. Über dieses Buch ... 19 1.1 ... Was Sie in diesem Buch lernen werden ... 20 1.2 ... Was dieses Buch Ihnen zeigen möchte ... 21 1.3 ... Noch mehr Informationen und Guides ... 22 1.4 ... Danksagung ... 24 2. Die Installation, die IDE und »Hallo Rust« ... 25 2.1 ... Wie Sie Rust installieren ... 25 2.2 ... Eine Entwicklungsumgebung wählen ... 28 2.3 ... Das erste Programm ... 30 2.4 ... Wie es weitergeht ... 33 3. Variablen und Datentypen ... 35 3.1 ... Prelude: Die Standardimporte ... 35 3.2 ... Variablen ... 36 3.3 ... Konstanten ... 56 3.4 ... Skalare Datentypen ... 60 3.5 ... Wie Rust mit »Option« auf null verzichtet ... 81 3.6 ... Zusammenfassung ... 84 4. Speichernutzung und Referenzen ... 87 4.1 ... Wichtige Speicherbereiche ... 87 4.2 ... Eigentumsverhältnisse im Speicher ... 89 4.3 ... Referenzen und der leihweise Zugriff ... 98 4.4 ... Mit Box Objekte im Heap ablegen ... 111 4.5 ... Zusammenfassung ... 121 5. Strings ... 123 5.1 ... Der String-Slice ... 123 5.2 ... Der String ... 134 5.3 ... Wie Sie Strings formatieren ... 147 5.4 ... Zusammenfassung ... 154 6. Collections ... 157 6.1 ... Tupel ... 157 6.2 ... Arrays ... 166 6.3 ... Elementbereiche ... 173 6.4 ... Vektoren ... 182 6.5 ... Slices ... 214 6.6 ... HashMap und BTreeMap ... 231 6.7 ... Hashes ... 245 6.8 ... Mengen verwalten ... 248 6.9 ... Die Entry API ... 251 6.10 ... Elemente verschiedener Datentypen in eine Collection einfügen ... 257 6.11 ... Zusammenfassung ... 260 7. Funktionen ... 263 7.1 ... Der Aufbau einer Funktion ... 264 7.2 ... Funktionszeiger ... 268 7.3 ... Referenzen und Lebenszeiten in Funktionen ... 271 7.4 ... Konstante Funktionen ... 280 7.5 ... Anonyme Funktionen und Closures ... 285 7.6 ... Funktions-Traits ... 302 7.7 ... Zusammenfassung ... 311 8. Anweisungen, Ausdrücke und Muster ... 313 8.1 ... Von der Anweisung zum Ausdruck und Muster ... 313 8.2 ... Die Zuweisung im Detail ... 316 8.3 ... Speicherausdrücke ... 319 8.4 ... Operatoren ... 325 8.5 ... Konditionale Ausdrücke ... 330 8.6 ... Schleifen ... 342 8.7 ... Muster ... 350 8.8 ... Zusammenfassung ... 364 9. Fehlerbehandlung ... 367 9.1 ... Fehler, von denen sich das Programm nicht erholen kann ... 367 9.2 ... Erwartbare Fehler behandeln ... 381 9.3 ... Zusammenfassung ... 418 10. Strukturen ... 421 10.1 ... Daten zusammenhängend ablegen ... 422 10.2 ... Records: Der Struktur-Urtyp ... 423 10.3 ... Strukturen und Instanzen ... 426 10.4 ... Lebenszeiten: Wenn Felder Referenzen enthalten ... 441 10.5 ... Wie Sie dem Compiler mit PhantomData wichtige Typinformationen übergeben ... 449 10.6 ... Eine Datenstruktur ohne feste Größe ... 460 10.7 ... Die drei Strukturen ... 462 10.8 ... Muster ... 466 10.9 ... Daten und Verhalten sind getrennt ... 468 10.10 ... Strukturen in der Praxis: Das Bestellsystem überarbeiten ... 475 10.11 ... Assoziierte Funktionen und die new-Konvention ... 480 10.12 ... Methoden ... 486 10.13 ... Referenzen in assoziierten Funktionen und Methoden ... 501 10.14 ... Praxisbeispiel: Simulationsfähigkeiten im Restaurant-System ... 503 10.15 ... Rekursion in Strukturen ... 507 10.16 ... Typ-Aliasse ... 510 10.17 ... Zusammenfassung ... 512 11. Traits ... 515 11.1 ... Marker-Traits ... 516 11.2 ... Trait-Implementierungsblöcke ... 517 11.3 ... Sie können ein Trait jeweils für T und &T implementieren ... 541 11.4 ... Super-Traits ... 546 11.5 ... Trait-Objekte ... 549 11.6 ... Beispielprojekt: Trait-Objekte von »Form« ... 564 11.7 ... Undurchsichtige Datentypen zurückgeben ... 574 11.8 ... Traits in der Praxis ... 578 11.9 ... Zusammenfassung ... 627 12. Enumerationen ... 631 12.1 ... Die Eigenschaften einer Enumeration ... 632 12.2 ... Verschiedene Variant-Typen ... 644 12.3 ... Enumerationen und Muster ... 656 12.4 ... Implementierungsblöcke und Verhalten ... 660 12.5 ... Zusammenfassung ... 667 13. Module, Pfade und Crates ... 669 13.1 ... Das Modul ... 669 13.2 ... Pfade ... 697 13.3 ... Vom Crate zum Paket, vom Paket zum Workspace ... 721 13.4 ... Zusammenfassung ... 777 14. Generische Programmierung ... 781 14.1 ... Von der Vorlage zur Konkretisierung: Monomorphisierung ... 781 14.2 ... Typparameter, generische Konstanten und Lebenszeiten ... 783 14.3 ... Syntaktische Elemente, die generisch sein können ... 785 14.4 ... Mehr zu Trait-Grenzen ... 789 14.5 ... Zusammenfassung ... 794 15. Iteratoren ... 797 15.1 ... Wie Sie einen Iterator beziehen ... 798 15.2 ... Iterator-Adapter ... 805 15.3 ... Einen Iterator konsumieren ... 816 15.4 ... Zusammenfassung ... 822 16. Nebenläufige und asynchrone Programmierung ... 823 16.1 ... Nebenläufige Programmierung ... 824 16.2 ... Smart Pointer ... 876 16.3 ... Asynchrone Programmierung ... 893 16.4 ... Zusammenfassung ... 915 17. Makros ... 917 17.1 ... Deklarative Makros ... 917 17.2 ... Prozedurale Makros ... 939 17.3 ... Zusammenfassung ... 950 18. Automatische Tests und Dokumentation ... 953 18.1 ... Tests ... 954 18.2 ... Rust-Projekte dokumentieren ... 966 18.3 ... Zusammenfassung ... 979 19. Unsafe Rust und das Foreign Function Interface ... 981 19.1 ... Unsafe Rust ... 981 19.2 ... Primitive Zeiger ... 987 19.3 ... Union ... 998 19.4 ... Foreign Function Interface ... 1001 19.5 ... Zusammenfassung ... 1005 Index ... 1007
C++
Dieses Standardwerk führt Sie in die moderne C++-Entwicklung ein. Entwickeln Sie Software mit hohen Ansprüchen an Funktionalität, Effizienz und Sicherheit. Ausführlich werden der Sprachkern, die objektorientierte Programmierung und die Standardbibliothek behandelt. Sie lernen zum Beispiel, mit Streams umzugehen, Containertypen zu nutzen und nebenläufige Anwendungen zu entwicklen. Nicht zuletzt geht es dem Autor um das Wie: Freuen Sie sich auf ein Lehrbuch über die Konzepte des Modern C++, die C++ Core Guidelines, Sprachversionen und vor allem über guten Code. Aus dem Inhalt: SprachgrundlagenFehlerbehandlungObjektorientierte ProgrammierungZeigerSchnittstelle zu CTemplatesContainerStandardbibliothekC++ Core GuidelinesExtra: Tutorials zum Thema „guter Code“ Vorwort ... 25 TEIL I. Grundlagen ... 29 1. Das C++-Handbuch ... 31 1.1 ... Neu und modern ... 32 1.2 ... »Dan«-Kapitel ... 32 1.3 ... Darstellung in diesem Buch ... 33 1.4 ... Verwendete Formatierungen ... 33 1.5 ... Sorry for my Denglish ... 34 2. Programmieren in C++ ... 37 2.1 ... Übersetzen ... 38 2.2 ... Übersetzungsphasen ... 39 2.3 ... Aktuelle Compiler ... 40 2.4 ... Entwicklungsumgebungen ... 41 2.5 ... Die Kommandozeile unter Ubuntu ... 43 2.6 ... Die IDE »Visual Studio Code« unter Windows ... 47 2.7 ... Das Beispielprogramm beschleunigen ... 54 3. C++ für Umsteiger ... 55 4. Die Grundbausteine von C++ ... 63 4.1 ... Ein schneller Überblick ... 66 4.2 ... Ohne Eile erklärt ... 71 4.3 ... Operatoren ... 100 4.4 ... Eingebaute Datentypen ... 116 4.5 ... Undefiniertes und unspezifiziertes Verhalten ... 157 5. Guter Code, 1. Dan: Lesbar programmieren ... 159 5.1 ... Kommentare ... 160 5.2 ... Dokumentation ... 160 5.3 ... Einrückungen und Zeilenlänge ... 161 5.4 ... Zeilen pro Funktion und Datei ... 162 5.5 ... Klammern und Leerzeichen ... 163 5.6 ... Namen ... 164 6. Höhere Datentypen ... 167 6.1 ... Der Zeichenkettentyp »string« ... 168 6.2 ... Streams ... 174 6.3 ... Behälter und Zeiger ... 181 6.4 ... Die einfachen Sequenzcontainer ... 183 6.5 ... Algorithmen ... 189 6.6 ... Zeiger und C-Arrays ... 189 7. Funktionen ... 191 7.1 ... Deklaration und Definition einer Funktion ... 192 7.2 ... Funktionstyp ... 193 7.3 ... Funktionen verwenden ... 194 7.4 ... Eine Funktion definieren ... 195 7.5 ... Mehr zu Parametern ... 197 7.6 ... Funktionskörper ... 201 7.7 ... Parameter umwandeln ... 203 7.8 ... Funktionen überladen ... 205 7.9 ... Defaultparameter ... 208 7.10 ... Beliebig viele Argumente ... 209 7.11 ... Alternative Schreibweise zur Funktionsdeklaration ... 210 7.12 ... Spezialitäten ... 211 8. Anweisungen im Detail ... 215 8.1 ... Der Anweisungsblock ... 218 8.2 ... Die leere Anweisung ... 221 8.3 ... Deklarationsanweisung ... 221 8.4 ... Die Ausdrucksanweisung ... 224 8.5 ... Die »if«-Anweisung ... 224 8.6 ... Die »while«-Schleife ... 229 8.7 ... Die »do-while«-Schleife ... 231 8.8 ... Die »for«-Schleife ... 232 8.9 ... Die bereichsbasierte »for«-Schleife ... 234 8.10 ... Die »switch«-Verzweigung ... 236 8.11 ... Die »break«-Anweisung ... 240 8.12 ... Die »continue«-Anweisung ... 241 8.13 ... Die »return«-Anweisung ... 242 8.14 ... Die »goto«-Anweisung ... 243 8.15 ... Der »try-catch«-Block und »throw« ... 245 8.16 ... Zusammenfassung ... 247 9. Ausdrücke im Detail ... 249 9.1 ... Berechnungen und Seiteneffekte ... 250 9.2 ... Arten von Ausdrücken ... 251 9.3 ... Literale ... 253 9.4 ... Bezeichner ... 253 9.5 ... Klammern ... 254 9.6 ... Funktionsaufruf und Indexzugriff ... 254 9.7 ... Zuweisung ... 255 9.8 ... Typumwandlung ... 257 10. Fehlerbehandlung ... 259 10.1 ... Fehlerbehandlung mit Fehlercodes ... 261 10.2 ... Was ist eine Ausnahme? ... 264 10.3 ... Kleinere Fehlerbehandlungen ... 267 10.4 ... Weiterwerfen -- »rethrow« ... 268 10.5 ... Die Reihenfolge im »catch« ... 268 10.6 ... Typen für Exceptions ... 271 10.7 ... Wenn eine Exception aus »main« herausfällt ... 272 11. Guter Code, 2. Dan: Modularisierung ... 273 11.1 ... Programm, Bibliothek, Objektdatei ... 273 11.2 ... Bausteine ... 274 11.3 ... Trennen der Funktionalitäten ... 275 11.4 ... Ein modulares Beispielprojekt ... 277 TEIL II. Objektorientierte Programmierung und mehr ... 289 12. Von der Struktur zur Klasse ... 291 12.1 ... Initialisierung ... 294 12.2 ... Rückgabe eigener Typen ... 295 12.3 ... Methoden statt Funktionen ... 297 12.4 ... Das bessere »drucke« ... 300 12.5 ... Eine Ausgabe wie jede andere ... 302 12.6 ... Methoden inline definieren ... 303 12.7 ... Implementierung und Definition trennen ... 304 12.8 ... Initialisierung per Konstruktor ... 305 12.9 ... Struktur oder Klasse? ... 313 12.10 ... Zwischenergebnis ... 318 12.11 ... Eigene Datentypen verwenden ... 318 12.12 ... Typinferenz mit »auto« ... 335 12.13 ... Eigene Klassen in Standardcontainern ... 339 13. Namensräume und Qualifizierer ... 343 13.1 ... Der Namensraum »std« ... 344 13.2 ... Anonymer Namensraum ... 347 13.3 ... »static« macht lokal ... 349 13.4 ... »static« teilt gern ... 350 13.5 ... Ferne Initialisierung oder »static inline«-Datenfelder ... 353 13.6 ... Garantiert zur Compilezeit initialisiert mit »constinit« ... 354 13.7 ... »static« macht dauerhaft ... 354 13.8 ... »inline namespace« ... 356 13.9 ... Zusammenfassung ... 358 13.10 ... »const« ... 358 13.11 ... Flüchtig mit »volatile« ... 380 14. Guter Code, 3. Dan: Testen ... 383 14.1 ... Arten des Tests ... 383 14.2 ... Frameworks ... 391 14.3 ... Boost.Test ... 396 14.4 ... Hilfsmakros für Assertions ... 400 14.5 ... Ein Beispielprojekt mit Unittests ... 403 15. Vererbung ... 417 15.1 ... Beziehungen ... 418 15.2 ... Vererbung in C++ ... 421 15.3 ... Hat-ein versus ist-ein ... 422 15.4 ... Gemeinsamkeiten finden ... 422 15.5 ... Abgeleitete Typen erweitern ... 425 15.6 ... Methoden überschreiben ... 426 15.7 ... Wie Methoden funktionieren ... 427 15.8 ... Virtuelle Methoden ... 429 15.9 ... Konstruktoren in Klassenhierarchien ... 431 15.10 ... Typumwandlung in Klassenhierarchien ... 433 15.11 ... Wann virtuell? ... 434 15.12 ... Andere Designs zur Erweiterbarkeit ... 436 16. Der Lebenszyklus von Klassen ... 439 16.1 ... Erzeugung und Zerstörung ... 440 16.2 ... Temporary: kurzlebige Werte ... 442 16.3 ... Der Destruktor zum Konstruktor ... 444 16.4 ... Yoda-Bedingung ... 449 16.5 ... Konstruktion, Destruktion und Exceptions ... 450 16.6 ... Kopieren ... 452 16.7 ... Zuweisungsoperator ... 455 16.8 ... Streichen von Methoden ... 459 16.9 ... Verschiebeoperationen ... 461 16.10 ... Operatoren ... 466 16.11 ... Eigene Operatoren in einem Datentyp ... 470 16.12 ... Besondere Klassenformen ... 478 17. Guter Code, 4. Dan: Sicherheit, Qualität und Nachhaltigkeit ... 483 17.1 ... Die Nullerregel ... 483 17.2 ... RAII -- Resource Acquisition Is Initialization ... 489 18. Spezielles für Klassen ... 499 18.1 ... Dürfen alles sehen -- »friend«-Klassen ... 499 18.2 ... Non-public-Vererbung ... 504 18.3 ... Signaturklassen als Interfaces ... 510 18.4 ... Multiple Vererbung ... 514 18.5 ... Rautenförmige multiple Vererbung -- »virtual« für Klassenhierarchien ... 524 18.6 ... Literale Datentypen -- »constexpr« für Konstruktoren ... 528 19. Guter Code, 5. Dan: Klassisches objektorientiertes Design ... 531 19.1 ... Objekte in C++ ... 533 19.2 ... Objektorientiert designen ... 534 TEIL III. Fortgeschrittene Themen ... 555 20. Zeiger ... 557 20.1 ... Adressen ... 558 20.2 ... Zeiger ... 560 20.3 ... Gefahren von Aliasing ... 562 20.4 ... Heapspeicher und Stapelspeicher ... 563 20.5 ... Smarte Pointer ... 567 20.6 ... Rohe Zeiger ... 576 20.7 ... C-Arrays ... 582 20.8 ... Iteratoren ... 588 20.9 ... Zeiger als Iteratoren ... 590 20.10 ... Zeiger im Container ... 590 20.11 ... Die Ausnahme: wann das Wegräumen nicht nötig ist ... 591 21. Makros ... 595 21.1 ... Der Präprozessor ... 596 21.2 ... Vorsicht vor fehlenden Klammern ... 600 21.3 ... Featuremakros ... 601 21.4 ... Information über den Quelltext ... 602 21.5 ... Warnung vor Mehrfachausführung ... 603 21.6 ... Typvariabilität von Makros ... 604 21.7 ... Zusammenfassung ... 607 22. Schnittstelle zu C ... 609 22.1 ... Mit Bibliotheken arbeiten ... 610 22.2 ... C-Header ... 611 22.3 ... C-Ressourcen ... 614 22.4 ... »void«-Pointer ... 615 22.5 ... Daten lesen ... 616 22.6 ... Das Hauptprogramm ... 617 22.7 ... Zusammenfassung ... 618 23. Templates ... 619 23.1 ... Funktionstemplates ... 621 23.2 ... Funktionstemplates in der Standardbibliothek ... 631 23.3 ... Eine Klasse als Funktion ... 637 23.4 ... C++ Concepts ... 654 23.5 ... Templateklassen ... 662 23.6 ... Templates mit variabler Argumentanzahl ... 677 23.7 ... Eigene Literale ... 681 TEIL IV. Die Standardbibliothek ... 693 24. Container ... 695 24.1 ... Grundlagen ... 696 24.2 ... Iteratoren-Grundlagen ... 709 24.3 ... Allokatoren: Speicherfragen ... 714 24.4 ... Containergemeinsamkeiten ... 717 24.5 ... Ein Überblick über die Standardcontainerklassen ... 719 24.6 ... Die sequenziellen Containerklassen ... 723 24.7 ... Assoziativ und geordnet ... 769 24.8 ... Nur assoziativ und nicht garantiert ... 805 24.9 ... Containeradapter ... 837 24.10 ... Sonderfälle: »string«, »basic_string« und »vector« ... 840 24.11 ... Sonderfälle: »vector«, »array« und »bitset« ... 842 24.12 ... Sonderfall: Value-Array mit »valarray<>« ... 845 25. Containerunterstützung ... 855 25.1 ... Algorithmen ... 857 25.2 ... Iteratoren und Ranges ... 858 25.3 ... Iteratoradapter ... 860 25.4 ... Algorithmen der Standardbibliothek ... 861 25.5 ... Parallele Ausführung ... 863 25.6 ... Liste der Algorithmusfunktionen und Range-Adapter ... 866 25.7 ... Elemente verknüpfende Algorithmen aus »« und »« ... 892 25.8 ... Kopie statt Zuweisung -- Werte in uninitialisierten Speicherbereichen ... 899 25.9 ... Eigene Algorithmen ... 901 25.10 ... Eigene Views und Range-Adapter schreiben ... 903 26. Guter Code, 6. Dan: Für jede Aufgabe der richtige Container ... 907 26.1 ... Alle Container nach Aspekten sortiert ... 907 26.2 ... Rezepte für Container ... 913 26.3 ... Algorithmen je nach Container unterschiedlich implementieren ... 919 27. Streams, Dateien und Formatierung ... 921 27.1 ... Ein- und Ausgabekonzept mit Streams ... 922 27.2 ... Globale, vordefinierte Standardstreams ... 922 27.3 ... Methoden für die Aus- und Eingabe von Streams ... 925 27.4 ... Fehlerbehandlung und Zustand von Streams ... 929 27.5 ... Streams manipulieren und formatieren ... 933 27.6 ... Streams für die Dateiein- und Dateiausgabe ... 945 27.7 ... Streams für Strings ... 961 27.8 ... Streampuffer ... 966 27.9 ... »filesystem« ... 969 27.10 ... Formatieren ... 971 28. Standardbibliothek -- Extras ... 979 28.1 ... »pair« und »tuple« ... 979 28.2 ... Reguläre Ausdrücke ... 987 28.3 ... Zufall ... 997 28.4 ... Mathematisches ... 1006 28.5 ... Systemfehlerbehandlung mit »system_error« ... 1033 28.6 ... Laufzeittypinformationen -- »« und »« ... 1043 28.7 ... Hilfsklassen rund um Funktoren -- »« ... 1047 28.8 ... »optional« für einen oder keinen Wert ... 1055 28.9 ... »variant« für einen von mehreren Typen ... 1056 28.10 ... »any« hält jeden Typ ... 1058 28.11 ... Spezielle mathematische Funktionen ... 1059 28.12 ... Schnelle Umwandlung mit »« ... 1060 29. Threads -- Programmieren mit Mehrläufigkeit ... 1063 29.1 ... C++-Threading-Grundlagen ... 1064 29.2 ... Gemeinsame Daten ... 1082 29.3 ... Andere Möglichkeiten zur Synchronisation ... 1100 29.4 ... Im eigenen Speicher mit »thread_local« ... 1104 29.5 ... Mit »condition_variable« auf Ereignisse warten ... 1105 29.6 ... Einmal warten mit »future« ... 1110 29.7 ... Atomics ... 1122 29.8 ... Koroutinen ... 1127 29.9 ... Zusammenfassung ... 1133 A. Guter Code, 7. Dan: Richtlinien ... 1137 A.1 ... Guideline Support Library ... 1138 A.2 ... C++ Core Guidelines ... 1139 B. Cheat Sheet ... 1153 Index ... 1157