ch08
dz / grokking_simplicity / ch08Summary
Grokking Simplicity Chapter 8: Stratified Design: Part 1
Node Tree
- call_graph
- stratified_design
- zoom_levels
Nodes
| stratified_design | |
| content | Stratified Design | 
| children | abstraction_barrier, comfortable_layers, minimal_interface, single_level_detail, software_in_layers, straightforward_implementation, target_detail_level | 
| software_in_layers | |
| content | Software in layers | 
| children | comfortable_layers, same_layer_same_purpose | 
| parents | stratified_design | 
| straightforward_implementation | |
| content | Straightforward implementation | 
| parents | stratified_design | 
| abstraction_barrier | |
| content | Abstraction Barrier | 
| parents | stratified_design | 
| minimal_interface | |
| content | Minimal Interface | 
| parents | stratified_design | 
| comfortable_layers | |
| content | Comfortable Layers | 
| parents | stratified_design, software_in_layers | 
| call_graph | |
| content | Call Graph: visualize what function calls or language features a function uses | 
| children | call_graph_arrows, call_graph_detail_clues | 
| same_layer_same_purpose | |
| content | All functions in a layer should serve the same purpose | 
| parents | software_in_layers | 
| zoom_levels | |
| content | zoom levels: global, layer, function | 
| call_graph_arrows | |
| content | In Call Graph, use of arrows at layer level to indicate what functions are called | 
| children | arrows_same_length (ideal for arrows in callgraph) | 
| parents | call_graph | 
| arrows_same_length | |
| content | Ideal: make arrows the same length | 
| children | intermediate_functions, remove_shorten_arrows | 
| parents | call_graph_arrows | 
| intermediate_functions | |
| content | can be done with the use of intermediate functions | 
| parents | arrows_same_length | 
| remove_shorten_arrows | |
| content | remove or shorten arrows | 
| parents | arrows_same_length | 
| single_level_detail | |
| content | Solves a problem at a single level of detail | 
| children | call_graph_detail_clues, clear_code, target_detail_level | 
| parents | stratified_design | 
| clear_code | |
| content | Clear Code | 
| parents | single_level_detail | 
| target_detail_level | |
| content | Stratified Design helps target specific level of detail | 
| parents | stratified_design, single_level_detail | 
| call_graph_detail_clues | |
| content | Call Graph gives clues about level of detail | 
| children | extract_function_generalize | 
| parents | call_graph, single_level_detail | 
| extract_function_generalize | |
| content | Extracting a function yields a more general function | 
| children | general_function_reusable | 
| parents | call_graph_detail_clues | 
| general_function_reusable | |
| content | general functions are more re-usable | 
| children | clarify_implementation | 
| parents | extract_function_generalize | 
| clarify_implementation | |
| content | Not done to deduplicate code, but to clarify implementation. | 
| children | serendipitousre-use | 
| parents | general_function_reusable | 
| serendipitousre-use | |
| content | "serendipitous re-use" | 
| parents | clarify_implementation |