Можем ли мы использовать EiffelBuild для большого проекта или мы должны ограничить его использование для создания прототипов? - PullRequest
3 голосов
/ 12 сентября 2009

EiffelBuild - графический инструмент для создания графического интерфейса ISE, посвященный Eiffel.

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

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

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

Ответы [ 2 ]

3 голосов
/ 19 сентября 2009

Я бы ограничил использование EiffelBuild прототипированием. Это хороший инструмент, но в долгосрочной перспективе управлять проектами EiffelBuild будет все сложнее (и это верно для большинства дизайнеров):

  • Новые версии estudio выпускаются каждые 6 месяцев, что делает бремя необходимости поддерживать ваши проекты EiffelBuild по-прежнему работающими, как и ожидалось, от одной версии к другой, ожидая, что вам придется время от времени сталкиваться с миграциями. Теперь весь ваш Eiffel-код будет подвергаться одним и тем же испытаниям, но с проектами в EiffelBuild вам придется иметь дело как с изменениями языка, так и с EiffelBuild (а иногда и с обоими одновременно ...)
  • Если версии N + 1 и N несовместимы, вам придется создать ветку ваших проектов EiffelBuild для поддержки обеих версий, будь то только в переходный период
  • Может быть сложно интегрировать несколько проектов EiffelBuild
  • Некоторые графические компоненты могут быть трудны для повторного использования в EiffelBuild, например, например, специализированный компонент диаграммы (например, набор классов ...), особенно если этот компонент не является самим проектом EiffelBuild
  • Мне было трудно повторно использовать детали, изготовленные из одного приложения EiffelBuild, в другое, тогда как с достаточно хорошо разработанными компонентами это гораздо меньше проблем

Надеюсь, это поможет.

1 голос
/ 12 сентября 2009

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

Как это "ограничительно"? И как размер проекта входит в игру?

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

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

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

Я бы проголосовал за написание вашего собственного генератора кода, как только вы достаточно наложили код, используя классы GUI библиотеки. Это устойчивое решение, ИМО.

ОБНОВЛЕНИЕ:

Я выучил Eiffel в аспирантуре, которая в середине 90-х годов решила, что это лучший объектно-ориентированный язык. В то время C ++ был выдающимся, но считался сложным, Java не выбралась из лабораторий Sun, а C # даже не стал проблеском в глазах Андерса. Преподаватели в этом заведении были очарованы дизайном по контракту, и это означало верность академической строгости.

Я прочитал «Создание объектно-ориентированного программного обеспечения» Мейерса. Первое издание представило DbC и сделало Майерса чем-то вроде звезды в объектно-ориентированном мире. На мой взгляд, второе издание было раздутым, что положило конец его восхождению.

Честно говоря, если вы пишете эту большую систему для работодателя, я бы посоветовал вам отказаться от Eiffel и перейти на более распространенный язык для вас и ради вас. C # может быть хорошим выбором, если вы работаете на платформе Windows; используйте Java, если у вас гетерогенная среда или вы не можете позволить себе стек Microsoft.

У SO есть все четыре отмеченных вопроса об Эйфелевой Я думаю, что объем говорит что-то. Вы можете быть правы, что популярность не всегда лучший показатель качества. Мне говорят, что бета-версия была лучшим техническим решением, чем VHS, но дело в том, что она проиграла на рынке и сегодня нигде не встречается. То же самое с Эйфелевой. Я бы бросил его на твоем месте.

ОБНОВЛЕНИЕ 2:

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

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

Дизайн по контракту полностью перепродан, ИМО. Я читал, что он часто отключается в производстве, потому что он представляет собой снижение производительности. Если это правда для вас, как еще вы ожидаете, что Eiffel будет способствовать повышению качества?

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

...