I have read many articles on this subject but generally we find a different solution for each task. It may not be enough but it works.