Re[4]: Framework
От: ylem  
Дата: 30.11.10 15:37
Оценка: +1
VD>ОК. Возмем к примеру ... MFC. ... Это что? Каркас/фрэймворк или все же библиотеки?
VD> ... почему их все же называют библиотеками?

Я всегда считал, что настоящий Тролль -- родственник Капитана. Его аргументы неопровержимые до очевидности.
Вы же меня обманываете.

General MFC Topics http://msdn.microsoft.com/en-us/library/583ya1kc(VS.80).aspx
Слово Framework на странице встречается 7 раз.
Re: Framework
От: Pavel Dvorkin Россия  
Дата: 30.11.10 15:45
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Кто-нибудь может дать внятное определение термину Framework?


VD>Википедевое не предлагать. Оно не внятное.


Всякие определения хромают. Будет хромать и любое определение фреймворка.

Набор публичных библиотек .. от MozgC — а фортрановский SSP сюда пойдет ? Он ведь тоже образует большую систему и призван чего-то там облегчить...

Набор связанных библиотек от lomeo. А если библиотека одна и ни с чем не связана ? MFC, Qt. Да и что значит связанных ? А если к нему есть что-то от 3dparty ? Они связаны или нет ?

И т.д.

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

А если не секрет, зачем эта игра в дефиниции ?
With best regards
Pavel Dvorkin
Re[8]: Framework
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 15:46
Оценка:
Здравствуйте, dorofeevilya, Вы писали:

D>Nunit предоставляет собой шаблон программы, которая умеет запускать набор тестов и выводить результаты.


О как? И где же там шаблон то?

Библиотеку вижу. Утилиты для запуска тестов вижу. Шаблон — не вижу!

D>Ты пишешь тесты, помечая классы и методы соотв. атрибутами ("вставляешь код в определенные места"),


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

Можно хотя бы дать определение этого самого шаблона?

D>тем самым кастомизируя поведение шаблона под себя.


Какого еще шаблона? И что такое это загадочное "кастомизируя"?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Framework
От: dorofeevilya Россия  
Дата: 30.11.10 15:47
Оценка:
Здравствуйте, dorofeevilya, Вы писали:

D>Здравствуйте, VladD2, Вы писали:


VD>>Так где же эта грань отделяющая библиотеки или подходы от фрэймворка?


D>Framework — это некоторый шаблон программы с определенными местами, в которые необходимо вставить свой код, чтобы получить требуемое поведение.


Вопрос в том, чей код выполняет основную работу. Framework сам выполняет полезную (основную) часть работы, которая кастомизируется клиентским кодом. Напр., ASP.NET обрабатывает http-запросы, вызывая ваш кастомный код для выполнения конкретной работы. Библиотека же предоставляет некоторую законченную функциональность, которая может быть использована для реализации основной задачи.
Re[8]: Framework
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 15:51
Оценка:
Здравствуйте, dorofeevilya, Вы писали:

D>Как можно утверждать о верности того или другого определения, если сам не знаешь верного?


Ну, утверждать что что-то не врено не зная верного решения очень даже можно. Скажем я не знаю точное значение числа Пи с точностю до 20 знаков, но точно знаю, что число 20 не является числом Пи.

D>Не понял, кто такие "все другие данные рядом"?


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

D>Если найду источник, отпишусь.


Буду очень признателен!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Framework
От: dorofeevilya Россия  
Дата: 30.11.10 15:52
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>О как? И где же там шаблон то?


VD>Библиотеку вижу. Утилиты для запуска тестов вижу. Шаблон — не вижу!


VD>Ага. И никаких шаблонов при этом не использую.

VD>И что самое важное, я совершенно не вижу мест в куда я должен подставлять свой код (как в твоем определении).

VD>Можно хотя бы дать определение этого самого шаблона?


VD>Какого еще шаблона? И что такое это загадочное "кастомизируя"?


Я не понимаю, ты хочешь просто строгое определение или действительно не понимаешь, о чем я говорю?
Если первое, то я не готов его составить.
Re[3]: Framework
От: MozgC США http://nightcoder.livejournal.com
Дата: 30.11.10 15:52
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Да и почему сразу набор? То есть получается складываем две библиотеки в кучу и получаем фрэймворк?


Я же написал специально — "образующих большую систему".
Re[2]: Framework
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 16:09
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я могу лишь одно определение дать. Я не знаю, что такое фреймворк. Но когда я увижу некий фреймворк, то я сразу пойму, что это он


PD>А если не секрет, зачем эта игра в дефиниции ?


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

Так вот в последнее время появилось много трактовок этого термина и использования его не по назначению. Один из примеров этого уже был приведен здесь
Автор: dorofeevilya
Дата: 30.11.10
.

Работа у меня такая. Должен я разбираться в чужих писаниях.

Вот вижу я что термин "фрэймворк/каркас" используется не по назначению. Но аргументированно ответить ничего не моугу, так как понимаю, что все имеющиеся на русском определения откровенно говоря сами высосаны из пальца.

Посему хочется как-то (в дискуссии) укрепить собственное понимание этого термина. Потому, как у меня крепнет ощущение, что термин этот используется в качествен заменителя замечательного русского термина "хреноваина" ( матерном варианте).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Framework
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 16:10
Оценка:
Здравствуйте, dorofeevilya, Вы писали:

D>Я не понимаю, ты хочешь просто строгое определение или действительно не понимаешь, о чем я говорю?


Одно цепляется за другое. Чисто интуитивно я вроде как понимаю. Но интуицию к делу не пришьешь (с).

D>Если первое, то я не готов его составить.


Давай. Только чур без неопределенных "шаблонов" и т.п.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Framework
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 16:15
Оценка:
Здравствуйте, ylem, Вы писали:

Y>Я всегда считал, что настоящий Тролль -- родственник Капитана. Его аргументы неопровержимые до очевидности.


Опустим это словоблудие.

Y>Вы же меня обманываете.

Y>General MFC Topics http://msdn.microsoft.com/en-us/library/583ya1kc(VS.80).aspx
Y>Слово Framework на странице встречается 7 раз.

Ага. Как в слове алкоголика встречается слова "хрень"/"хреновина". Но называется все это библиотекой. И существовал MFC еще в те времена когда модного слова "фрэймворк" еще не существовало (не употреблялось в компьютерном сленге).

Вот и хочется четких критериев. Что считать фрэймворком, а что библиотекой. Точнее даже так. Что позволяет назвать некую библиотеку фрэймворком.

Вот скажем может ли быть фрэймворк внутри приложения? Или он обязан быть отдельной частью? Или даже обязан быть публично доступным?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Framework
От: Sinix  
Дата: 30.11.10 16:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Вот и хочется четких критериев. Что считать фрэймворком, а что библиотекой. Точнее даже так. Что позволяет назвать некую библиотеку фрэймворком.


Чем не устраивает тынц
Автор: Sinix
Дата: 30.11.10
?

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

VD>Вот скажем может ли быть фрэймворк внутри приложения? Или он обязан быть отдельной частью? Или даже обязан быть публично доступным?


Может. Ничего не мешает переизобрести hibernate/логгер/постшарп
Re[3]: Framework
От: Pavel Dvorkin Россия  
Дата: 30.11.10 16:39
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Вот вижу я что термин "фрэймворк/каркас" используется не по назначению. Но аргументированно ответить ничего не моугу, так как понимаю, что все имеющиеся на русском определения откровенно говоря сами высосаны из пальца.


Я бы вот что еще добавил. Не как определение, а просто как размышления.

Фрймворк отличается от просто библиотеки тем, что он горазо жестче предписывает правила написания программ с его применением. Я могу из фортрановского SSP взять линейную алгебру, проигнорировать полностью дифуры и прикрутить эту линейную алгебру к приложению, структуру которого я разработаю сам, вовсе не думая при этом об SSP. То же верно , скажем, для STL. Но если перейти во фреймворк, скажем, WinForms или WPF или MFC, то тут надо с начала принять его правила игры. Можно, конечно, сделать консольное приложение с .net или MFC, но это значит сразу отказаться от 90% возможностей фреймворка. А не отказываться — изволь приложение писать по этим правилам, которые он продиктует, а потом уже можно к нему и что-то иное прикрутить. И это не обязательно о визуальных фреймворках речь идет. Тот же Хибернейт продиктует правила работы с БД не менее жестко.

В общем, вот такое наклевывается определение. Если этот пакет можно безболезненно удалить и чем-то заменить, и при этом концепции не пострадают — это библиотека. Иначе — фреймворк.

Но и это определение хромает.
With best regards
Pavel Dvorkin
Re[6]: Framework
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 30.11.10 16:42
Оценка:
VD>Вот и хочется четких критериев. Что считать фрэймворком, а что библиотекой. Точнее даже так. Что позволяет назвать некую библиотеку фрэймворком.

для абстрактных понятий не бывает четких критериев (вот введи, например, четкие критерии при каком соотношении смесь спирт-вода: называется спиртом, водкой, водой. а здесь хотя бы есть четкий способ измерить соотношение)

у абстрактного понятия "фреймворк" есть два противопоставления:
1. фреймворк vs библиотека
2. framework vs законченное приложение

способ измерения для первого противопоставления тебе уже дали: если ближе к каркасу — то framework, если ближе к нашлепке сбоку — то библиотека.
и тот же mfc, asp.net можно рассматривать и как framework, и как библиотеку (в зависимости от контекста)
.net — сложно рассматривать как библиотеку (в очень редких контекстах — это будет библиотека)
stl — тяжело рассматривать как framework (в очень редких контекстах — это будет framework)
способ измерения для второго противопоставления: если шнягу настраивать для конечного использования надо мало — готовое приложение, если много — то framework
Re: Framework
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 30.11.10 16:44
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Кто-нибудь может дать внятное определение термину Framework?


Очень большая библиотека.
Re[4]: Framework
От: rfq  
Дата: 30.11.10 16:53
Оценка: 1 (1)
Здравствуйте, dorofeevilya, Вы писали:

D>Здравствуйте, VladD2, Вы писали:


VD>>Так где же эта грань отделяющая библиотеки или подходы от фрэймворка?


D>Framework — это некоторый шаблон программы с определенными местами, в которые необходимо вставить свой код, чтобы получить требуемое поведение.


Поддерживаю.
Проследим мысленно работу компьютера от старта до запуска программы и до ее окончания, в виде графа вызовов процедур.
Сначала работает операционная система, потом она вызывает процедуру main(int argc, char** argv){}, та вызывает еще какие-то основные процедуры программы, те вызывают библиотечные процедуры (например, ввод-вывод).

ОС->программа->библиотека


Типичная библиотека графического интерфейса, однако, находится слева от основной программы:

ОС->GUI->программа->библиотека


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

Можно сделать вывод, что обычная ОС — это тоже фреймворк.
Re[4]: Framework
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.10 17:03
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В общем, вот такое наклевывается определение. Если этот пакет можно безболезненно удалить и чем-то заменить, и при этом концепции не пострадают — это библиотека. Иначе — фреймворк.


Это уже ближе к делу.

PD>Но и это определение хромает.


Во-вот. Получается, что если использование библиотеки приводит к дикому связыванию кода, так что оторвать код от фрэймворка уже нельзя, то это был фрэймворк. А если код получается относительно независимым, то — это библиотека. Только тогда уж я бы предпочел библиотеку.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Framework
От: WolfHound  
Дата: 30.11.10 17:18
Оценка: 2 (2) +5
Здравствуйте, VladD2, Вы писали:

VD>Кто-нибудь может дать внятное определение термину Framework?

Фреймворк это библиотека которая навязывает приложению архитектуру.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Framework
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 30.11.10 17:39
Оценка: +4
Здравствуйте, VladD2, Вы писали:

VD>Кто-нибудь может дать внятное определение термину Framework?


Толпа окружала хреновину, на которой мы стояли. Я так толком и не узнал, что такое хреновина, когда Ааз употреблял в разговоре это слово. Однако когда я очутился здесь, я узнал её с первого взгляда. Штука, на которой мы стояли, могла быть только хреновиной.


(с) Асприн Р.Л.

На этот счет есть хорошая статья, в которой, в частности дается следующее определение фреймворку:

A framework can be defined as a set of libraries that say “Don’t call us, we’ll call you.” When you invoke a traditional library, you are still in control: you make the library calls that you want to make, and deal with the consequences. A framework inverts the flow of control: you hand over to it, and wait for it to invoke the various callback functions that you provide. You put your program’s life in its hands. That has consequences: one of the most important ones is that, while your program can use as many libraries as it likes, it can only use—or, rather, be used by—one framework. Frameworks are jealous. They don’t share.


и оно похоже на правду, вот почему: фреймворки бывают не только программерские. Есть еще вот такие: http://www.metasploit.com/framework/download/ или даже вот такие: http://www.microsoft.com/rus/business/Articles/SolutionsInfrastructureMof.mspx — в которых нет ни намека на разработку. Но единственное, что их объединяет, это именно этот самый IoC, выражающийся в метасплоите — в реализации ряда интерфейсов при разработке эксплоитов и нагрузок, и в MoF (методологии управления ИТ-инфраструктурой) — в реализации диктуемых фреймворком наборов входов и выходов всех квадрантов процесса, т.е. контрактов, т.е. тех же самых интерфейсов, но примененных не к предметной области разработки, а к предметной области управления специфичными процессами.

Как-то так
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Framework
От: Pavel Dvorkin Россия  
Дата: 30.11.10 17:59
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Во-вот. Получается, что если использование библиотеки приводит к дикому связыванию кода, так что оторвать код от фрэймворка уже нельзя, то это был фрэймворк. А если код получается относительно независимым, то — это библиотека. Только тогда уж я бы предпочел библиотеку.


Поздно. Придется вернуться лет на 20 назад
With best regards
Pavel Dvorkin
Re[2]: Framework
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 30.11.10 18:39
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>Кто-нибудь может дать внятное определение термину Framework?

WH>Фреймворк это библиотека которая навязывает приложению архитектуру.
Ага, это определение каркаса, кажется, дали GoF. Они рассматривали различие т.н. инструментальных библиотек и каркасов. Здесь краткий пересказ: http://www.rsdn.ru/article/patterns/generic-mvc.xml#EGOAC
Автор(ы): Сергей Рогачев
Дата: 23.03.2007
В статье рассматривается вариант реализации шаблона проектирования Model-View-Controller в виде каркаса приложения на основе обобщенного программирования языков Java и C#. В описании предлагаемого решения, кроме того, будут рассмотрены шаблоны проектирования Mediator, Observer и Command и показаны варианты их применения в рассматриваемой реализации Model-View-Controller. Предполагается наличие у читателя знания базовых шаблонов проектирования, языка UML, диаграммами которого будут сопровождаться описания, а также одного из указанных языков программирования.
.

Интересно следующее в этом отношении: почему в таком случае .NET Framework, а не .NET Platform?

Вот, к примеру, ASP.NET MVC Framework — правильно, так как данный каркас диктует архитектуру приложения и вызывает пользовательский код из своего кода. А .NET Framework — неправильно, так как код BCL вызывается из пользовательского кода, а не наоборот. К примеру, Sun правильно назвала Java Platform, а не Java Framework. А Microsoft как-то злоупотребляет словом Framework. Хорошо хоть Windows Platform SDK, а не Windows Framework SDK.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.