Software Design - Abstraction
Table of Contents
1 - About
Abstraction is a technique for hiding complexity that is irrelevant to the targeted user (ie targeted business domain).
A designer should not know which electrons flow in the wire to defined its color.
2 - Articles Related
3 - Computer
The following are the basis abstractions found in a computer and materialized in language generation
4 - Custom
To build a data abstraction, you need to identify for each data structure a set of operations (module).
Custom abstractions can facilitate portability (cross-platform deployment) and performance optimization. …. Custom abstractions may additionally limit expressiveness: they must be revisited to take advantage of new library features and due to encapsulation may be unable to exploit supporting technologies. Michael Bostock, Vadim Ogievetsky and Jeffrey Heer
4.1 - Question
- Does this abstraction make our code at least a little easier to write?
- To understand?
- To troubleshoot?
- Are we better off with this abstraction than we were without it?
4.2 - Dependency Management