Prompt
Design configuration with clear semantics and appropriate scope. Avoid global constants for values that can be handled locally, and ensure configuration parameters have logical, non-contradictory meanings.
Avoid unnecessary global configuration constants:
# Instead of:
DEFAULT_PORT = 8000
DEFAULT_INDEX = True # Global constants
# Consider handling defaults in-context:
def setup_server(port=8000, enable_indexing=False):
# Handle defaults locally where they're used
Design clear configuration interfaces:
# Avoid contradictory parameters:
# Bad: Indexer(perform_indexing=True, force_disable_indexing=True)
# Better: Handle configuration logic at application level:
if params.index and not params.force_disable:
indexer = Indexer(index_json_file=path)
# Use indexer
else:
# Skip indexing entirely
Configuration should be intuitive - parameters shouldn’t require mental gymnastics to understand their combined effect. Keep configuration logic at the appropriate architectural level rather than pushing contradictory options down to individual components.