Что такое платформа программного обеспечения? [закрытый]

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

189
задан Community 29 November 2015 в 20:39
поделиться

9 ответов

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

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

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

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

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

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

90
ответ дан 23 November 2019 в 05:37
поделиться

Резюме в Википедии ( Software Framework) (первый хит Google, кстати) объясняет это довольно хорошо:

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

Программные фреймворки имеют следующие отличительные особенности, которые отделяют их от библиотек или обычных пользовательских приложений:

  1. инверсия управления - В фреймворке, в отличие от библиотек или обычных пользовательских приложений, общий поток управления программой не диктуется. вызывающим, но фреймворком. [1]
  2. поведение по умолчанию - фреймворк имеет поведение по умолчанию.Это поведение по умолчанию должно быть полезным поведением, а не серией бездействия.
  3. расширяемость - Структура может быть расширена пользователем обычно путем выборочного переопределения или специализирована с помощью пользовательского кода, обеспечивающего определенные функции.
  4. Немодифицируемый код фреймворка - Код фреймворка, как правило, не разрешается изменять. Пользователи могут расширять фреймворк, но не изменять его код.

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

52
ответ дан 23 November 2019 в 05:37
поделиться

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

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

2
ответ дан 23 November 2019 в 05:37
поделиться

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

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

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

2
ответ дан 23 November 2019 в 05:37
поделиться

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

Эта очень хорошая статья резюмирует разницу между набором библиотек и фреймворком:

Фреймворк можно определить как набор библиотек, которые говорят: «Не звоните нам, мы Я тебе перезвоню ».

Чем вам поможет фреймворк? Потому что вместо того, чтобы писать что-то с нуля, вы просто расширяете данное работающее приложение. Таким образом вы получаете большую продуктивность - иногда получившееся приложение может быть гораздо более сложным, чем вы могли бы сделать самостоятельно за те же временные рамки, - но обычно вы торгуете большей гибкостью.

13
ответ дан 23 November 2019 в 05:37
поделиться

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

Если немного упростить, то можно рассматривать фреймворк как приложение, которое полностью готово, за исключением фактической функциональности. Вы подключаете функциональность и ПРЕСТО! У вас есть приложение.

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

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

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

29
ответ дан 23 November 2019 в 05:37
поделиться

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

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

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

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

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

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

4
ответ дан 23 November 2019 в 05:37
поделиться

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

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

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

.
7
ответ дан 23 November 2019 в 05:37
поделиться

Фреймворк имеет некоторые функции, которые могут вам понадобиться. возможно, вам нужны какие-то массивы, которые имеют встроенные механизмы сортировки. Или, может быть, вам нужно окно, в котором вы хотите разместить некоторые элементы управления - все это вы можете найти во фреймворке. Это своего рода РАБОТА, которая охватывает рамку вокруг вашей собственной работы.

EDIT: ОК, я собираюсь раскопать то, что вы, ребята, пытались мне сказать ;) вы, возможно, не заметили информацию между строк "WORK that spans a FRAME around ..." до этого все глубже и глубже. Я пытаюсь дать слово, надеясь, что вы милостиво:
хорошее объяснение на вопрос "Разница между библиотекой и фреймворком" я нашел здесь
http://ifacethoughts.net/2007/06/04/difference-between-a-library-and-a-framework/

2
ответ дан 23 November 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: