This question is prone to be answered by opinions, not a single correct answer. See the on-topic section in the Help Center. Stack Overflow prefers questions about specific code problems, i.e. you should show an actual code example you have trouble with. "Best practices" questions are bound to have many exception cases, so they are discouraged. Your question might be better suited to softwareengineering.stackexchange.com — Bill Karwin31 secs ago