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 |