What you will learn in Practices of the Python Pro
Chapter by chapter
Concepts explained in this book
- couplingLoose coupling is a design property in which software components have limited interdependence.
- separation of concernsA software design technique that organizes a system so each part addresses a distinct concern and dissimilar concerns remain isolated.
- inheritanceInheritance is an object-oriented mechanism by which a class derives or reuses behavior and structure from one or more other classes.
- refactoringRefactoring is the process of changing a software system's internal design without changing its externally observable behavior.
- business logicA business logic layer is a software layer that contains application rules and operations governing how inputs are transformed into business outcomes.
- encapsulationInformation hiding is the design practice of concealing implementation details that other code does not need to know.
- PythonPython is a general-purpose, high-level programming language known for readable syntax and a broad software ecosystem.
- moduleA module is a distinct, bounded software unit that groups related code or functionality and provides an organizational or interaction boundary within a larger system.
- database connectionA database connection is an active communication link through which software sends commands to and receives data from a database.
- cursorA database cursor is an object that executes database statements and provides access to their results.
- DatabaseManagerBark's database-access class that exposes operations for creating tables and adding, selecting, and deleting records.
- SQLiteSQLite is a lightweight relational database engine that stores an entire database in a single file.
- sqlite3sqlite3 is the Python standard library module that provides access to SQLite databases.
- structured dataStructured data is information organized according to an explicit schema or predictable fields, types, records, or relationships for consistent machine processing.
- BarkBark is a book-specific command-line bookmarking application for creating, listing, and deleting saved bookmarks.
- extensibilityThe property of a software system that permits new functionality to be added without fundamentally modifying its existing structure.
- AddBookmarkCommandAddBookmarkCommand is a Bark command object that adds a bookmark record to the database.
- OptionOption is a book-specific class that associates a menu description with a command and optional input-preparation behavior.
- methodA method is a function associated with a class or object and typically invoked through that association.
- function extractionFunction extraction is a refactoring technique that moves a coherent block of code into a separately named function.
- MapA map is an associative data structure that stores key-value pairs and supports retrieving values by key.
- cyclomatic complexityCyclomatic complexity is a software metric that measures the number of linearly independent paths through a program's control-flow graph.
- functional testingA functional test evaluates software behavior by supplying input, determining expected output, obtaining actual output, and comparing the results.
- flexibilityFlexibility is the capacity of software to be adapted to related or similar tasks.
- import statementAn import statement is a source-code declaration that makes names or definitions from another module, package, or namespace available in the current scope.
- application loopAn application loop is a control-flow pattern that repeatedly presents an application's interface and processes user actions until termination.
- input()The input function is a Python built-in function that reads a line of text from standard input and returns it as a string.
- main guardA main guard is a conditional Python module entry-point idiom that runs code only when the file is executed directly rather than imported.
- OrderedDictOrderedDict is a Python dictionary subclass that preserves insertion order and provides operations for explicitly rearranging entries.
- constant timeConstant time is an asymptotic performance classification in which execution time remains bounded independently of the number of inputs.
- bookmarkA bookmark is a saved reference to a web resource together with associated information such as a title or description.
- complexityA complexity measurement is a quantitative assessment of the structural or computational complexity of software or an algorithm.
- space complexitySpace complexity is a measure of how an algorithm’s memory or storage requirement grows as its input size increases.
- linear time complexityLinear time complexity is an asymptotic running-time growth rate proportional to input size, or to the combined sizes of multiple inputs, up to a constant factor.
- classA class is a programming-language construct that defines a type’s structure or behavior and provides a basis for creating or representing objects.
- attributeAn attribute is data associated with a Python object that represents part of its state.
- superclassA superclass is a class from which another class derives structure and behavior through inheritance.
- inversion of controlInversion of control is a design technique in which control over object construction, behavior, or dependencies is transferred from a component to an external mechanism or caller.
- dynamic typingDynamic typing is a type-system property in which data types are determined or checked during program execution rather than before execution.
- BookBook is a book-specific Python class representing a book that contains author information and forwards legacy author-related operations.
- unittestunittest is Python's standard-library unit testing framework, providing test organization, assertions, and test execution.
- abstract classAn abstract base class is a class intended to define a common interface or behavior for subclasses and that may prevent direct instantiation until required methods are implemented.
- configurationConfiguration is a set of values or steps that specifies how a software component or operation should behave.
- shotgun surgeryShotgun surgery is a refactoring smell in which a single change requires many small modifications across a software system.
- const qualifierA language feature that marks a value, binding, or access path as constant, restricting reassignment or modification according to the language’s rules.
- mind mapA mind map is a visual information representation consisting of text-bearing nodes connected by lines to show relationships between ideas.
- multiple inheritanceMultiple inheritance is an inheritance mechanism in which a class derives from more than one parent class.
- assertionA software assertion is an executable check of an expected condition or property that signals failure when the check does not hold.
- iterableAn iterable is an object or value that provides or supports a protocol for producing its elements sequentially.
- CreateBookmarksTableCommandA Bark command object whose execution creates the bookmarks table in the database.
- abstractmethodabstractmethod is a decorator from Python's abc module that marks a method as abstract and requires concrete subclasses to implement it.
- ListBookmarksCommandA Bark command object that retrieves bookmark records from the database in a specified order.
- backward compatibilityBackward compatibility is the ability of a newer software version to preserve compatibility with earlier interfaces, data, or behavior.
- listlist is a PersistenceLayer method that retrieves bookmark records in a specified ordering.
- concernA distinct responsibility, requirement, or aspect of behavior that software must address.
- constructor method__init__ is the Python instance initializer method that sets up an object's initial state after the instance has been constructed.
- selfself is the conventional name for the Python method parameter that refers to the current object instance.
- DeprecationWarningA deprecation warning is a diagnostic notification that an interface, behavior, or feature is obsolete and may be removed or changed in a future version.
- leaky abstractionA leaky abstraction is an abstraction whose underlying implementation details or concerns escape into code that should depend only on its interface.
- AuthorAuthor is a book-specific Python class that stores author information and provides formatted representations of an author.
- Liskov Substitution PrincipleThe Liskov substitution principle states that objects of a subtype must be replaceable for objects of its supertype without impairing program correctness.
- worst-case performanceWorst-case complexity is the maximum resource requirement an algorithm can incur over inputs of a given size.
- multi-tier applicationA multitier architecture organizes an application into separate layers or tiers with distinct responsibilities that can evolve independently.
- executeexecute is a book-specific command method that performs the operation represented by a Command object.
- integration testAn integration test is a test that evaluates interactions between integrated software components or external systems.
- clear_screenclear_screen is a book-specific function that clears the terminal display before presenting new application output.
- query cleaningQuery cleaning is the transformation of search-query text to remove unwanted spaces and quotes and normalize its casing.
- defaultdictdefaultdict is a Python mapping type that supplies a default value when a missing key is accessed.
- rule of threeThe rule of three is a refactoring heuristic that recommends introducing an abstraction after similar behavior has been implemented about three times.
- feature envyFeature envy is a code smell in which a component relies heavily on the features of another component instead of encapsulating the relevant behavior itself.
- design patternA design pattern is a reusable solution structure for recurring problems in software design, expressed in terms of objects, components, or their interactions.
- nested loopA nested loop is a loop construct placed inside the body of another loop, causing repeated iteration across multiple levels.
- duck typingDuck typing is a typing approach that determines an object's suitability by the presence of the required behavior rather than by its declared class or type.
- generatorA generator is a Python construct that produces a sequence of values incrementally while preserving its execution state between requests.
- cognitive loadCognitive load is the amount of mental effort required to understand or work with information or a system.
- pytestpytest is a Python testing framework that discovers and runs tests and provides features for assertions, fixtures, and test configuration.
- branch coverageBranch coverage is a test coverage metric measuring which branches of a program's control flow have been executed by tests.
- control flow graphA control flow graph is a directed graph whose nodes represent program execution points and whose edges represent possible transfers of control.
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.
