optimize queries with select_related and
prefetch_related
express relative performance gain or decrease by Time old/Time new
or Time before/Time after (CS:APP P.59)
Concurrency Problem
submission endpoints especially submitting to third party API, must
handle concurrent requests by using select_for_update,
e.g. user can easily trigger multiple submission by clicking button
multiple times
see notes Django Concurrency Problems
Python Exception Design
Each feature should have a base class with specific errors inherited
from this base class, so that caller only needs to catch 1 error, the
base error.
For example, base exception OneFeeCalculatorError,
inherited by exceptions UnexpectedCalculatorDataError.