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 |