Flesh out developer docs to improve onboarding
Created by: chrispine
from Stephen's list:
- The difference between internal/campaigns and enterprise/internal/campaigns packages
- Coming across the graphqlbackend which is all stubs with no explanation of where they are implemented: https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/graphqlbackend/campaigns.go
- Trying to understand ultimately which Sourcegraph services bundle up campaigns code
- Why we chose to use inheritance for a internal/db/basestore type
- The relationship between a store, basestore, and sharable store
- Why non-store code occasionally reaches into the DB layer directly (intentional? tech debt? etc)
- High-level explanations of code breakdown, e.g.
store.Storeisn't idiomatic Go and the level of testing utility packages we have seems strange at first glance