God Object Detection
God Object Detection
A "God Object" knows or does too much. Signs:
- File >600 lines with >8 classes or >15 functions
- Class that imports from 5+ different domain modules
- Function >50 lines with >3 different concerns
- File name that ends in
_utils.py,_helpers.py,_common.pywith >200 lines
# Files with many class definitions (God Object candidates)
grep -l "^class " src/**/*.py | xargs -I{} bash -c \
'count=$(grep -c "^class " {}); [ $count -gt 3 ] && echo "$count classes: {}"' | sort -rn
# Files with many function definitions
grep -l "^def \|^ def " src/**/*.py | xargs -I{} bash -c \
'count=$(grep -cE "^def |^ def " {}); [ $count -gt 15 ] && echo "$count funcs: {}"' | sort -rn