2010-07-13 1 views
1

я пытался найти ответ на мой вопрос сегодня с помощью Google и StackOverflow поисковых систем ... но не повезло :)Charateristics и особенности каждой структуры программного обеспечения

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

  • он должен быть расширяемым
  • должны позволить построить расширяемый и г eusable components
  • и, конечно же: простые вещи должны быть простыми, сложные вещи должны быть возможны. (http://en.wikiquote.org/wiki/Alan_Kay)

Я думаю, что там гораздо больше.

Поделись своими знаниями.

+1

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

+0

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

+0

Ну, я не согласен с вами Gollum :) Я думаю, что есть некоторые функции, которыми делится многие freamworks. Но +1 за честное мнение. – Jarek

ответ

6

Вот два хорошие цитаты из Ralph Johnson and Brian Foote

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

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

Был special issue из CACM, который вы также можете взглянуть на него.

Еще одна ссылка The Hollywood Principal. «Не позвони нам, мы позвоним тебе». О том, как структура инвертирует типичный элемент управления, поэтому структура вызывает ваш код вместо того, чтобы вы вызывали некоторый код библиотеки.

+0

Хорошо, я думаю, что это лучший ответ. +1 и щедрость для вас :) – Jarek

0

Рамки для меня - другое имя для библиотеки (например, Boost и многие другие), которая относится не только к одной теме (есть библиотеки о Math, Networking, что бы там ни было, но это не Framework), и это конечно Extensible, и вы можете объединить свои функции, чтобы выполнять свою работу.

+2

Nooooo. Framework! = Библиотека. Ваш код вызывает библиотеку, а инфраструктура вызывает ваш код. Вы пропустили инверсию контрольной части рамки. Это фундаментальное различие. –

+0

+1 @Pascal, но это не единственное отличие, которое может полностью отличить b/w от них - вы всегда можете определить ** обратные вызовы **, делает ли он библиотеку основой? –

+3

http://stackoverflow.com/questions/148747/what-is-the-difference-between-a-framework-and-a-library Мне нравится определение Мартина Фаулера: Библиотека: каждый вызов выполняет некоторую работу и возвращает управление для клиента. Framework: вставьте свое поведение в различные места в рамках либо путем подкласса, либо путем подключения ваших собственных классов. Затем код фреймворка вызывает ваш код в этих точках. – Jarek

0

Похоже, вы просто хотите знать, что является определяющей характеристикой рамки ...?

От FOLDOC:

В объектно-ориентированных системах, набор классов, который воплощает абстрактную конструкцию для решения ряда связанных с этим проблем.

Так в основном, библиотека классов («набор классов»), что это расширяемый («воплощает в себе абстрактный дизайн»),

+0

Я не ищу определения рамки. Я могу найти его на сайте SO без проблем. Я просто ищу несколько моментов, которые могут охарактеризовать каждый фреймворк. – Jarek

0

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

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

0

Разница между библиотеками и структурами: вы вызываете библиотеки. Рамки звонят вам.

0

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

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)

alt text http://www.lybrary.com/images/0321605012.jpg

+0

Спасибо, человек, но, как я писал раньше, я уже прочитал: P Маби не целая книга, но я не мог найти ответ на свой вопрос, и я думаю, что Голлум был и я не могу охарактеризовать каждую структуру с теми же функциями – Jarek