Правила написания блоков, для сохранения расширяемости и переносимости.
Лучше пробрасывать данные от родителя к дочерним блокам. Таким образом будет понятно откуда пришли данные и как найти их источник.
Всегда на проверять наличие данных в контексте, перед постороением дерева. В противном случае блок будет сильно зависим от общего контекста.