Зачем существует boilerplate и как фреймворки его уменьшают | Koder.ai