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