Architecture / Design Flashcards
Agile development
A software development methodology with a focus on flexible requirements, close client / end user collaboration, rapid development cycles, early and frequent delivery, etc
Behavioral design patterns
Design patterns that define how objects communicate with / affect each other
Client side rendering (CSR)
Rendering content in the browser with Javascript
Composition
Designing a class by composing individual methods / properties for a particular use case
Creational design patterns
Design patterns for creating objects
Encapsulation
Bundling data and the methods that operate on them into objects, and hiding everything but the necessary public methods
Event-driven
The extent to which an application is designed to respond to actions generated by the user / system
Factory
A creational design pattern by which new objects are created without needing to specify a class; any function that returns an object without the ‘new’ keyword
Hydration
The process of adding state / interactivity to static HTML after initial page load
Inheritance
Designing a class by inheriting and extending the behavior of a parent class
Lazy loading
Delaying the loading of assets until they are needed by the user
Object-oriented programming
A programming paradigm in which programs are organized into classes of objects, their properties and methods, and their communication with each other; stateful and flexible but less manageable
Functional programming
A programming paradigm in which programs are organized into a series of pure functions; stateless but more manageable
Polymorphism
The ability of a single interface to behave differently depending on the implementation
Pre-loading
Prioritizing the loading of assets that the browser would otherwise discover later
Programming paradigm
A framework for organizing and implementing a program based on the features of the language
Progressive enhancement
Providing a baseline UX to as many browsers / devices as possible while delivering a better UX to more advanced browsers / devices
Progressive web application (PWA)
A web app that functions and feels like a native app; uses service workers and manifests for offline functionality; installable; progressive enhancement
Server side rendering (SSR)
Rendering content on the server upon request and then delivering it
Single page application (SPA)
A web app that’s served all at once on initial page load, and updated via Javascript / AJAX rather than fetching new pages from the server
Design pattern
A generalized, reusable solution to a common problem in a given context
Software requirement specification
A rigorous description of a software system’s requirements prior to architecture
Structural design patterns
Design patterns for composing more complex objects out of existing ones
Static site generation (SSG)
The pre-building of a web app into static assets that can be served immediately