Design Best Practices Flashcards
What does CRUD stand for?
Create, read(+search), update, delete for each
Name a few common data structures:
Arrays linked list stack queue tree hash table graph
Name a few common algorithms:
Iteration Sorting binary search linear search tree traveras shortest path spanning tree
Name a few common I/O:
Read/write file contents
parse/tokenize user input
parse command line arguments
Name the subcategories of design patterns:
Creational
Structural
Behavioural
Concurrency
What are the two types of creational design patterns?
Factory, singleton
What are the two types of structural design patterns?
Decorator, facade
What are the two types of behavioural design patterns
interpreter, iterator
What are the two types of concurrency design patterns?
Monitor
Thread pool
What are architecture definitions?
“The complex or carefully designed structure of something”
The conceptual structure and logical organization of a computer or computer based system
In short, it is a common way that we have organized our software as a big design. Knowing the architecture tells you a bit about what to expect of the design and the behaviour of the program.
What are the ways to organize entire designs of programs?
Structure architectures Shared memory architecture messaging architectures Adaptable system architectures distributed system architectures
Name the four types of structure architectures?
Component-based
Monolithic application
Layered
Pipes and filters
What is component based structure architecture?
Tightly coupled and cohesive modules interact via interfaces
What is a monolithic application structure architecture?
Single layer application that is coupled together
What is a layered structure architecture?
Division of functionality into individual layers. Each layer only interacts with the layer directly above or below it.