Architecture / Design Flashcards

1
Q

Agile development

A

A software development methodology with a focus on flexible requirements, close client / end user collaboration, rapid development cycles, early and frequent delivery, etc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Behavioral design patterns

A

Design patterns that define how objects communicate with / affect each other

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Client side rendering (CSR)

A

Rendering content in the browser with Javascript

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Composition

A

Designing a class by composing individual methods / properties for a particular use case

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Creational design patterns

A

Design patterns for creating objects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Encapsulation

A

Bundling data and the methods that operate on them into objects, and hiding everything but the necessary public methods

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Event-driven

A

The extent to which an application is designed to respond to actions generated by the user / system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Factory

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hydration

A

The process of adding state / interactivity to static HTML after initial page load

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Inheritance

A

Designing a class by inheriting and extending the behavior of a parent class

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Lazy loading

A

Delaying the loading of assets until they are needed by the user

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Object-oriented programming

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Functional programming

A

A programming paradigm in which programs are organized into a series of pure functions; stateless but more manageable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Polymorphism

A

The ability of a single interface to behave differently depending on the implementation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Pre-loading

A

Prioritizing the loading of assets that the browser would otherwise discover later

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Programming paradigm

A

A framework for organizing and implementing a program based on the features of the language

17
Q

Progressive enhancement

A

Providing a baseline UX to as many browsers / devices as possible while delivering a better UX to more advanced browsers / devices

18
Q

Progressive web application (PWA)

A

A web app that functions and feels like a native app; uses service workers and manifests for offline functionality; installable; progressive enhancement

19
Q

Server side rendering (SSR)

A

Rendering content on the server upon request and then delivering it

20
Q

Single page application (SPA)

A

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

21
Q

Design pattern

A

A generalized, reusable solution to a common problem in a given context

22
Q

Software requirement specification

A

A rigorous description of a software system’s requirements prior to architecture

23
Q

Structural design patterns

A

Design patterns for composing more complex objects out of existing ones

24
Q

Static site generation (SSG)

A

The pre-building of a web app into static assets that can be served immediately

25
Q

Version control

A

The practice of tracking and managing changes to a code base

26
Q

Waterfall development

A

A software development methodology that follows a rigid sequence of steps:

  1. Requirements
  2. Design
  3. Develop
  4. Test
  5. Maintain
27
Q

Declarative programming

A

A programming paradigm in which you describe what a program should do without caring about the implementation details

28
Q

Imperative programming

A

A programming paradigm in which you describe specifically how a program should work (implementation details)

29
Q

Code splitting

A

Splitting code into various bundles to facilitate lazy loading

30
Q

Dynamic language

A

A programming language that, among other things, performs type checking at run time rather than compile time; less strict but less performant

31
Q

Static language

A

A programming language that, among other things, performs type checking at compile time rather than run time; stricter but more performant