What you will learn in AI-Powered Developer: Build software with ChatGPT and Copilot
Build software with ChatGPT and Copilot
Chapter by chapter
Chapter 6: Testing, assessing, and explaining with large language models
What you learn in chapter 6 →Concepts explained in this book
- hexagonal architectureHexagonal architecture is an architectural pattern that isolates an application’s core business logic from external systems through ports and adapters.
- portA port is an interface defining a contract between an application’s domain model and an external system.
- GitHub CopilotCopilot Chat is a conversational interface for GitHub Copilot that provides AI assistance within a development environment.
- information technology asset management systemAn information technology asset management system is an application for tracking, managing, and governing an organization's technology assets.
- domain modelA domain model is the representation of an application’s core business logic, including domain entities, value objects, and domain services.
- visitor design patternA visitor is an object defining operations for the concrete element types in a Visitor Pattern implementation.
- C4 modelThe C4 model is a hierarchical diagramming model for visualizing and documenting software architecture at context, container, component, and code levels.
- SOLID principlesA set of five software-design principles intended to improve the flexibility and maintainability of object-oriented designs.
- depreciation strategyA depreciation strategy is a replaceable policy object that calculates asset depreciation according to a particular method.
- depreciation valueDepreciation is the decrease in an asset’s value over time due to factors such as use, aging, or obsolescence.
- assetAn asset is an organizationally owned item represented in the example information technology asset management domain.
- MermaidJSMermaid is a diagramming and charting tool that generates visual diagrams from text-based definitions.
- business requirements documentA business requirements document is a formal document describing a project’s high-level requirements, features, constraints, goals, and approval information.
- context diagramA context diagram is the highest-level C4 diagram showing a system’s boundary and relationships with users and external systems.
- language modelA large language model is a deep learning model trained to process and generate human language and other text-like sequences.
- DockerA Docker container is a running, isolated instance of an application created from a Docker image.
- infrastructure as codeInfrastructure as code is the practice of defining and managing infrastructure through versioned machine-readable configuration rather than manual operations.
- data layerA data access layer is the part of an application responsible for communicating with data stores while isolating that communication from other application logic.
- threat modelA threat model is a documented representation of a system's potential threats, vulnerabilities, effects, and mitigation strategies.
- prompt engineeringPrompt engineering is the deliberate design and iterative refinement of instructions given to an AI model to influence its outputs.
- Apache KafkaApache Kafka is a distributed event-streaming platform for building real-time data pipelines and streaming applications.
- dependency inversionA software-design principle stating that high-level policy should not depend directly on low-level details and that both should depend on abstractions.
- open-closed principleA software-design principle stating that software entities should be open for extension but closed for modification.
- integration testIntegration testing evaluates the interactions and combined behavior of multiple software components or systems.
- mediator patternThe Mediator pattern is a behavioral design pattern that centralizes communication among objects through a mediator to reduce their direct dependencies.
- GPT4AllGPT-4All is a collection of locally runnable large language models and software intended for general-purpose text generation.
- persona patternThe Persona Pattern is a prompt-engineering pattern that directs an AI system to respond as a specified role or to treat the user as a specified persona.
- refinement patternThe refinement pattern is an iterative prompting approach in which a prompt is progressively improved to obtain more accurate, relevant, or sophisticated responses.
- Amazon CodeWhispererAWS CodeWhisperer is an AWS programming assistant that generates code recommendations from developer comments and source context.
- GitHub ActionsGitHub Actions is a GitHub automation service for executing workflows, including continuous integration and deployment pipelines, in response to repository events.
- TerraformTerraform is an infrastructure-as-code tool for defining and provisioning infrastructure through declarative configuration.
- behavioral testingBehavior testing verifies software through its externally observable behavior rather than its internal implementation.
- promptA natural language prompt is an instruction or query expressed in ordinary human language for directing an AI system.
- database sequenceA database sequence is a database object that generates an ordered series of numeric values, commonly for identifiers.
- datasetA dataset is an organized collection of records and attributes representing a particular subject or purpose.
- object-relational mapperObject-relational mapping is a technique that represents relational database records as objects and translates between object operations and database operations.
- PostgreSQLPostgres is an open-source object-relational database management system.
- primary keyA primary key is a column or set of columns that uniquely identifies each row in a relational table.
- event-driven architectureEvent-driven architecture is a software architecture in which components communicate and react through events.
- topicA Kafka topic is a named, partitioned stream to which producers publish records and from which consumers read them.
- DockerfileA Dockerfile is a text-based build specification containing instructions for creating a Docker image.
- CRUDCRUD operations are the four basic data-management actions: create, read, update, and delete.
- vulnerabilityA security vulnerability is a weakness in software or its environment that can be exploited to violate confidentiality, integrity, or availability.
- linked listA linear data structure whose elements are connected through links or references to other elements.
- encryptionEncryption is the cryptographic transformation of readable data into an encoded form that unauthorized parties cannot readily interpret.
- KubernetesKubernetes is an open-source platform for deploying, scaling, and managing containerized applications through declarative resources.
- repository patternThe Repository Pattern is a software design pattern that encapsulates data-access operations behind an interface separate from application logic.
- Singleton patternThe Singleton Pattern is a software design pattern that restricts a class to one instance and provides a global access point to it.
- cyclomatic complexityCyclomatic complexity is a metric that counts the independent execution paths through a software module based on its decision points.
- Halstead complexityHalstead complexity is a family of software metrics derived from counts of distinct and total operators and operands in a program.
- maintainability indexThe maintainability index is a composite software metric combining factors such as cyclomatic complexity, lines of code, and Halstead measures to estimate maintainability.
- circular dependencyA circular dependency is a dependency relationship in which two or more modules or components depend on one another directly or through an intermediate dependency.
- pytestpytest is a Python testing framework supporting unit, functional, and integration tests with concise test syntax and extensible features.
- unittestunittest is Python’s standard-library testing framework for writing test cases and assertions.
- SparkApache Spark is an open-source distributed data-processing engine for parallel batch processing, stream processing, and analytics.
- standard deviationStandard deviation is a measure of the dispersion or variability of values around their mean.
- IDEAn integrated development environment is a software application that combines source-code editing, program building or execution, and development support features.
- continuous improvementA feedback loop is an iterative interaction in which prior context and user reactions influence subsequent inputs and outputs.
- Amazon Elastic Kubernetes ServiceAmazon Elastic Kubernetes Service (EKS) is a managed AWS service for running Kubernetes clusters.
- Elastic Container RegistryAmazon Elastic Container Registry (Amazon ECR) is a fully managed AWS container registry for storing, managing, and deploying container images.
- builder patternThe Builder Pattern is a creational design pattern that constructs objects through a sequence of steps, often exposed through a fluent interface.
- OllamaSoftware for running and managing large language models locally, including through Docker-based deployments.
- security threatA software threat is a potential event, actor, or condition that could exploit a software weakness or otherwise cause harm to a software system.
- sample standard deviationSample standard deviation is an estimate of population variability calculated from a subset of observations.
- quality measureA software quality metric is a quantitative measure or benchmark used to assess characteristics of a software system or its development.
- code coverageCode coverage is the proportion of a program’s code executed when a specified test suite runs, usually expressed as a percentage.
- BehaveBehave is a Python behavior-driven development framework that executes natural-language scenarios and their step implementations.
- data at restData at rest is data stored on persistent or nonvolatile media rather than actively moving across a network.
- audience persona patternThe Audience Persona Pattern is a prompt-engineering pattern that represents the intended audience so generated responses can be tailored to that audience.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
