frameworks - понятие - what is web framework




Что такое программная среда? (8)

Может кто-нибудь, пожалуйста, объясните мне, что такое программная среда? Зачем нужна инфраструктура? Что делает инфраструктура для облегчения программирования?


В целом, рамочная работа является реальной или концептуальной структурой, предназначенной для поддержки или руководства для строительства, что-то, что расширяет структуру во что-то полезное ...


Много хороших ответов уже, но позвольте мне посмотреть, могу ли я дать вам другую точку зрения.

Упрощение вещей довольно много, вы можете просматривать фреймворк как приложение, полное, за исключением фактической функциональности. Вы подключаете функциональность и PRESTO! у вас есть приложение.

Рассмотрим, скажем, структуру GUI. Структура содержит все необходимое для создания приложения. Действительно, вы часто можете сделать минимальное приложение с очень небольшим количеством строк, которое абсолютно ничего не делает, но оно дает вам управление окнами, управление под окнами, меню, кнопки и т. Д. Это рамочная сторона вещей. Добавляя функциональность вашего приложения и «подключая его» к нужным местам в рамках, вы превращаете это пустое приложение, которое делает не что иное, как управление окнами и т. Д. В реальном, полномасштабном приложении.

Существуют аналогичные типы фреймворков для веб-приложений, серверных приложений и т. Д. В каждом случае структура обеспечивает основную часть утомительного повторяющегося кода (надеюсь), пока вы предоставляете фактическую функциональность проблемной области. (Это идеальный вариант. В действительности, конечно, успех структуры сильно варьируется.)

Я еще раз подчеркиваю, что это упрощенное представление о структуре. Я не использую такие страшные термины, как «Inversion of Control» и т. П., Хотя в большинстве фреймворков есть такие страшные концепции. Поскольку вы новичок, я думал, что пощажу вас на жаргоне и займусь простым сравнением.


Простое объяснение: каркас - это эшафот, с которым вы можете создавать приложения.

Структура, как правило, обеспечивает некоторые базовые функции, которые вы можете использовать и расширить для создания более сложных приложений, есть рамки для всех видов вещей. Хорошим примером этого является инфраструктура Microsoft MVC. Он предоставляет все, что вам нужно, чтобы выйти из наземного веб-сайта с использованием шаблона MVC, он обрабатывает веб-запросы, маршруты и т. П. Все, что вам нужно сделать, это реализовать «Контроллеры» и предоставить «Представления», которые представляют собой две конструкции, определенные структурой MVC. Затем среда MVC обрабатывает вызовы ваших контроллеров и рендеринг ваших представлений.

Возможно, это не лучшая формулировка, но я надеюсь, что это поможет


Рамка помогает нам в использовании «уже созданного», может быть как метафор,

думаю, что земляной материал является языком программирования,

и, например, «камера» - это программа, и вы решили создать ноутбук. Вам не нужно каждый раз воссоздавать камеру, вы просто используете каркас земли (например, в магазине технологий), чтобы взять камеру и интегрировать ее в свой ноутбук.


Структура обеспечивает функциональность / решение конкретной проблемной области.
Определение из wiki :

Программная среда, в компьютерном программировании, представляет собой абстракцию, в которой общий код, предоставляющий общие функции, может быть выборочно переопределен или специализирован с помощью кода пользователя, обеспечивающего определенную функциональность. Рамки - это особый случай программных библиотек, поскольку они представляют собой многократные абстракции кода, завернутые в хорошо определенный интерфейс прикладного программирования (API), но в них содержатся некоторые ключевые отличительные функции, которые отделяют их от обычных библиотек.


Технически вам не нужна фреймворк. Если вы создаете действительно простой сайт (подумайте о сети в 1992 году), вы можете просто сделать все это с жестко закодированным HTML и некоторым CSS.

И если вы хотите создать современный webapp, вам также не нужно использовать фреймворк для этого.

Вместо этого вы можете написать всю логику, в которой вы нуждаетесь, каждый раз. Вы можете написать свой собственный уровень сохранения данных / хранения, или, если вы слишком заняты, просто напишите собственный SQL для каждого доступа к базе данных. Вы можете написать свои собственные уровни проверки подлинности и обработки сеанса. И ваша собственная логика шаблона. И ваша собственная логика обработки исключений. И ваши собственные функции безопасности. И ваша собственная платформа тестирования модулей, чтобы убедиться, что все работает нормально. И ваш собственный ... [продолжается довольно долго]

Опять же, если вы используете фреймворк , вы сможете извлечь выгоду из хорошей, обычно рецензируемой и очень хорошо проверенной работы десятков, если не сотен других разработчиков, которые могут быть лучше вас. Вы сможете быстро построить то, что хотите, не тратя время на строительство или слишком беспокоиться об элементах инфраструктуры, перечисленных выше.

Вы можете сделать больше за меньшее время и знать, что код рамки, который вы используете или расширяете, скорее всего, будет сделан лучше, чем вы все это делаете сами.

И стоимость этого? Инвестируя некоторое время в изучение структуры. Но, как практически каждый веб-разработчик будет свидетельствовать, определенно стоит потратить время на обучение, чтобы получить огромные (действительно, массовые) выгоды от использования любой структуры, которую вы выбираете.


Я очень опаздываю, чтобы ответить на него. Но я хотел бы поделиться одним примером, о котором я только думал сегодня. Если бы я сказал вам, чтобы вырезали лист бумаги размером 5 м на 5 м, то, конечно же, вы это сделаете. Но предположим, я попрошу вас разрезать 1000 штук бумаги того же размера. В этом случае вы не будете измерять 1000 раз; очевидно, вы сделали бы рамку размером 5 м на 5 м, а затем с ее помощью вы могли бы сократить 1000 штук бумаги за меньшее время. Итак, что вы сделали, это создать структуру, которая будет выполнять определенный тип задачи. Вместо того, чтобы повторять один и тот же тип задачи снова и снова для приложений того же типа, вы создаете структуру, объединяющую все эти объекты, в один хороший пакет, следовательно, предоставляя абстракцию для вашего приложения и, что более важно, многих приложений.


на самом низком уровне среда - это среда, где вам предоставляется набор инструментов для работы с

эти инструменты представлены в виде библиотек, конфигурационных файлов и т. д.

эта так называемая «среда» предоставляет вам базовую настройку (отчеты об ошибках, файлы журналов, настройки языка и т. д.) ... которые могут быть изменены, расширены и построены.

Люди на самом деле не нуждаются в каркасах, это просто вопрос экономии времени, а другие - только личные предпочтения.

Люди будут оправдывать это с помощью рамки, вам не нужно вводить код с нуля. Но это просто люди, путающие библиотеки с рамками.

Я не пристрастен здесь, я фактически использую рамки прямо сейчас.