HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Фреймворк Flask, который мы рассматривали в самом начале курса, относится к классу так называемых микрофреймворков. Все они в той или иной степени являются клонами Ruby-фреймворка Sinatra, который задал моду на микрофреймворки.</p>
1 <p>Фреймворк Flask, который мы рассматривали в самом начале курса, относится к классу так называемых микрофреймворков. Все они в той или иной степени являются клонами Ruby-фреймворка Sinatra, который задал моду на микрофреймворки.</p>
2 <p>Посмотрите насколько схожа структура кода:</p>
2 <p>Посмотрите насколько схожа структура кода:</p>
3 <p><strong>Ruby:</strong></p>
3 <p><strong>Ruby:</strong></p>
4 <p><strong>Java:</strong></p>
4 <p><strong>Java:</strong></p>
5 <p><strong>JavaScript:</strong></p>
5 <p><strong>JavaScript:</strong></p>
6 <p><strong>Python:</strong></p>
6 <p><strong>Python:</strong></p>
7 <p>Все они как братья-близнецы в основной фукнциональности: определении маршрутов и задании обработчиков для них. Кроме этой основы в микрофреймворках ничего нет. Все остальное придется ставить отдельно.</p>
7 <p>Все они как братья-близнецы в основной фукнциональности: определении маршрутов и задании обработчиков для них. Кроме этой основы в микрофреймворках ничего нет. Все остальное придется ставить отдельно.</p>
8 <p>В противовес микрофреймворкам рассмотрим полноценные фреймворки - это большие пакеты с кодом, включающие в себя по умолчанию все, что только может потребоваться. Они обычно хорошо расширяются, а на GitHub лежит множество полезных дополнений. Большая история веб-фреймворков берет свое начало с 2004 года, когда появился первый релиз Ruby On Rails, фреймворка на языке Ruby. "Рельсы" намного обогнали свое время и задали тон на многие годы вперед. Многие современные веб-фреймворки - клоны Rails в той или иной степени.</p>
8 <p>В противовес микрофреймворкам рассмотрим полноценные фреймворки - это большие пакеты с кодом, включающие в себя по умолчанию все, что только может потребоваться. Они обычно хорошо расширяются, а на GitHub лежит множество полезных дополнений. Большая история веб-фреймворков берет свое начало с 2004 года, когда появился первый релиз Ruby On Rails, фреймворка на языке Ruby. "Рельсы" намного обогнали свое время и задали тон на многие годы вперед. Многие современные веб-фреймворки - клоны Rails в той или иной степени.</p>
9 <p>В Ruby кроме Rails, можно сказать, больше ничего и нет - и это положительно сказывается на развитии, так как все бегут в одну сторону. Похожая ситуация в Python: роль "фреймворка по умолчанию" играет Django, хотя в разное время существовали и другие сравнимые с ним по мощности фреймворки (Zope, Plone, webPy и прочие).</p>
9 <p>В Ruby кроме Rails, можно сказать, больше ничего и нет - и это положительно сказывается на развитии, так как все бегут в одну сторону. Похожая ситуация в Python: роль "фреймворка по умолчанию" играет Django, хотя в разное время существовали и другие сравнимые с ним по мощности фреймворки (Zope, Plone, webPy и прочие).</p>
10 <p>Приведу коротко возможности, которыми обладают современные фреймворки:</p>
10 <p>Приведу коротко возможности, которыми обладают современные фреймворки:</p>
11 <ul><li>Генерация кода. Любой полноценный фреймворк содержит утилиту, позволяющую из командной строки генерировать код, скажем, тесты или миграции</li>
11 <ul><li>Генерация кода. Любой полноценный фреймворк содержит утилиту, позволяющую из командной строки генерировать код, скажем, тесты или миграции</li>
12 <li>Встроенные механизмы для тестирования. Другими словами, фреймворк дает возможность начать писать тесты практически без необходимости что-либо дополнительное ставить или конфигурировать</li>
12 <li>Встроенные механизмы для тестирования. Другими словами, фреймворк дает возможность начать писать тесты практически без необходимости что-либо дополнительное ставить или конфигурировать</li>
13 <li>ORM. Либо своя, либо популярная для языка в целом</li>
13 <li>ORM. Либо своя, либо популярная для языка в целом</li>
14 <li>Шаблонизатор и хелперы (вспомогательные функции) для повторяющихся задач вывода информации</li>
14 <li>Шаблонизатор и хелперы (вспомогательные функции) для повторяющихся задач вывода информации</li>
15 <li>Абстракции для работы с письмами</li>
15 <li>Абстракции для работы с письмами</li>
16 <li>Инструменты для интернационализации и локализации, в идеале все остальные части фреймворка также интегрированы с i18n</li>
16 <li>Инструменты для интернационализации и локализации, в идеале все остальные части фреймворка также интегрированы с i18n</li>
17 <li>Механизмы, обеспечивающие безопасность, например, CQRS</li>
17 <li>Механизмы, обеспечивающие безопасность, например, CQRS</li>
18 <li>Кэширование</li>
18 <li>Кэширование</li>
19 </ul>
19 </ul>