Компоненты. А нужны ли они вообще? |
Конечно, применение компонент позволяет сделать программу быстро и
красивее, но за это приходится платить цену, и причем довольно дорогую.
Во-первых, как насчет совместимости компонент друг с другом и с
компьютером вообще? Ведь Delphi - компилятор, на клиентскую машину
ставится exe - файл, и в него не залезешь. А сообщенияиногда вываливаются
разные, и сымитировать ситуацию на машине программиста бывает нелегко. А
тут еще куски кода (компоненты), неизвестно как написанные и как
работающие...
Во-вторых, после переустановки Delphi (иногда вместе с Windows)
приходится устанавливать ВСЕ компоненты заново. Хорошо, если они под
рукой, программа разрабатывалась тобой "с нуля". А если программа
досталась "по наследству", автор(ы) (первые и все последующие) давно
уволились, а требуется изменить лишь только пункт меню? Тогда приходится
искать компоненты и параллельно крушить программу, удаляя из ее недр
отсутствующие компоненты и что-то ставя вместо них, то есть из-за 5 минут
полезной работы приходится неделю вкалывать, и то без гарантии, что потом
все заработает нормально. В общем, проект пришлось пересобирать два раза,
чтобы он нормально заработал. Врагу не пожелаешь!!!
Выводы: компоненты, конечно, штука хорошая, но зачастую они представляют
собой мышеловку, из которой приходится вылезать с большими усилиями
Representation mnager
Всего в теме 136 сообщений
Добавить свое сообщение
Отслеживать это обсуждение
- Интерфейс. Компоненты и формы
- Недостатки архитектуры VCL
№ 96 03-04-2008 13:58 | |
Ответ на »сообщение 95« (Jack Of Shadows)
___________________________
Полностью поддерживаю идею с компонентами-папками. Именно так сделано в FARе, и никто еще не вывалил все в корень C:, и не жаловался на сложность инсталляции, деинсталляции и переноса с машины на машину или пережитие переинсталляции операционки.
Если для инсталляции компоненту нужны какие-то дополнительные действия, в его папке должен быть сделан install.bat, корректно возвращающий код exit для запуска в автоматическом режиме.
Но кроме того, нужно иметь элементарный менеджер пакетов с отслеживанием взаимозависимостей и организацией bundles ("любимых наборов компонентов"). Все равно к этому придем.
№ 95 03-04-2008 12:58 | |
Ответ на »сообщение 79« (Cepгей Poщин)
___________________________
Ну допустим я решил посмотреть некий набор компонент вывалил все файлы в некую общую папку, поредактировал еще и свои файлы, сделал резервную копию, через год решил, что этот набор мне не нравится и вообще он настолько глючен
Я полагаю вам очень трудно додуматься зайти в эту общую папку и просто УДАЛИТЬ ненужный вам более поддиректорий с компонентами. При следующем запуске дельфей их просто не будет.
Операции с общей папакой очень простые, гораздо проще ручной установки каждой компоненты отдельно. Так что ваш мифический пользователь освоит работу с папками в 10 раз быстрее нежели те танцы с бубном, которые ему приходится проделывать сейчас в дельфях.
Вы скажете, что надо было его складывать в отдельную папку, указать её в путях, а потом удалить.
Нет не скажу. Не надо никаких отдельных папок. Одной Components достаточно. Что туда бросили то и будет грузиться. Не нужно больше, убираете из этой папки, и никаких проблем.
То же самое с экспертами.
При этом резко облегчается перенос рабочей системы на другую машину. Просто копируешь папки Components и Experts и на новой машине у вас точно такая же рабочая среда. Красота!
Облегчается также резервное копирование.
Это все работа, которую проделывает каждый программист.
как снизить вероятность того, что он не начнет всё валить куда-нибудь в корень C:
Какой к чорту корень С ? Вы о чем вообще ? Более того ВЫ О КОМ вообще ? Это вы о программисте так ?
Я всегда знал что дельфя сделана для идиотов. Но не для ТАКИХ же! :))
Если пользователь будет руками там формировать паки, то одному богу известно, что он туда из каких версий напихает.
ЗАЧЕМ руками ? Пусть все также как и раньше инсталируется. Просто в одну папку. В том же Eclipse компоненты ТОЖЕ инсталируются. Просто там можно как инсталяцией (забота о ваших пользователях) так и манипулированием папками (забота о грамотных инженерах). Чтобы если понадобится, второй раз мартышкин труд не выполнять.
Плюс к тому IDE надо будет каждый раз при загрузке проверять, а поменялось ли что в структуре файлов, чтобы в случае чего обновить палитру компонент, что несомненно плохо повлияет на скорость.
Я не запускаю дельфю каждые пять минут. Могу пожертвовать пару секунд ради удобства настройки рабочего места.
Geo:
Вот и поставьте после переустановки Delphi только свой базовый минимум библиотек, плюс компоненты, котрые используются в текущем проекте.
Господин Geo, в крупном проекте приходится много чего делать. Для примера в моем проекте задействованы множество разных библиотек. И я не говорю о рюшечках. Их у меня нет вообще. Я говорю о библиотеках работы с изображениями, сканером, работа с медицинскими файлами (DICOM), создание pdf, шифрование, работа с удаленными серверами, рассылка мыла, отчеты (ReportBuilder), спел чекер для пользователей. Плюс эксперты.
Это вам не Fishfact.
Давайте не будем держать программистов за идиотов у который только ненужный мусор и установлен.
И вы и Сергей Рощий все времы говорите о дельфистах как о непроходимых тупицах, которых нужно вести за ручку, а то они в корень С понимаш ли вывалят все и опозорятся на весь мир.
№ 94 03-04-2008 08:45 | |
Хотя вот кое-что есть. IOTAPackageServices
№ 93 03-04-2008 08:43 | |
Ответ на »сообщение 89« (panda)
___________________________
Чето я не нашел вызова команду Install Package в Open Tools API. А кроме того, этот плагин должен иметь доступ ко всем уже установленным пакетам/компонентам... Да, наверное написать такое с нынешним API может только Andreas Hausladen.
№ 92 03-04-2008 08:01 | |
Ответ на »сообщение 91« (Cepгей Poщин)
___________________________
Смысл в том, чтобы ничего не делать,
а соорудить - это только интересно, может ли кто :)
№ 91 03-04-2008 07:19 | |
»сообщение 88« Весь смысл, чтобы не создавать механизма...
»сообщение 87« Интересно, можно ли такую систему соорудить с помощью плагинов к существующему IDE?
№ 90 03-04-2008 07:13 | |
Ответ на »сообщение 87« (Aleg Azarousky)
___________________________
Естественно, пользователю нужно будет следить... Ну и в итоге чем это лучше того, что пользователь несколько раз нажмет кнопочку Next?
№ 89 03-04-2008 07:10 | |
Ответ на »сообщение 88« (Aleg Azarousky)
___________________________
Интересно, можно ли такую систему соорудить с помощью плагинов к существующему IDE? По-моему, теоретически такая возможность есть.
Если можно полностью вручную произвести всю последовательность действий, которую выполняет операция "Install Package", то да - спокойно пишется эксперт.
№ 88 03-04-2008 06:56 | |
Ответ на »сообщение 85« (Как слышно? Прием!)
___________________________
То есть чтение из пухлого Windows Registry,
где напихано всё что ни есть в Windows
быстрее чтения из предлагаемого Delphi Registry?
Я имел ввиду чтение из реестра Винды быстрее, чем обход всех папок в поисках компонентов при загрузке IDE. Но эту проблему можно решить, как я предложил, созданием простейшего текстового файла со списком всех установленных компонентов (путь/имя файла). Который будет обновлятся по нажатию кнопки Refresh на панели компонентов.
Т.е. в идеале, после установке Delphi на новый комп, записываем в подкаталоги в Components все нужные пакеты, запускаем IDE и нажимаем Refresh. Delphi сканирует папку Components, найденные нескомпилированные Design-time пакеты компилирует, загружает, добовляет компоненты на палитру. Все.
Интересно, можно ли такую систему соорудить с помощью плагинов к существующему IDE? По-моему, теоретически такая возможность есть.
№ 87 03-04-2008 06:49 | |
Ответ на »сообщение 84« (Cepгей Poщин)
___________________________
Весь смысл, чтобы не создавать механизма, а использовать возможности предоставляемые файловой системой для структуризации и управления установленными пакетами.
Естественно, пользователю нужно будет следить, чтоб в разных папках не оказались одинаковые компоненты разных версий. Хотя Delphi тут смог бы помочь, по крайней мере он и сейчас не позволяет устанавливать компоненты с одинаковыми именами.
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|