Каковы наиболее важные особенности среды IDE для разработки на Perl?
Как некоторые из вас могут знать, я являюсь ведущим разработчиком Padre, IDE Perl. В первый год своей разработки Padre стал приемлемым текстовым редактором с некоторыми дополнительными функциями для разработки на Perl.
Я хотел бы попросить сообщество Stack Overflow оказать некоторую помощь в дальнейшем продвижении проекта, чтобы превратить его в исключительную среду разработки для разработки на Perl. Так что я был бы рад прочитать, как вы думаете, каковы наиболее важные функции IDE, которые все еще отсутствуют в Padre?.
Особенно мне было бы интересно от людей, которые в настоящее время используют Eclipse + EPIC, Komodo, Visual Studio или любой из текстовых редакторов для программистов.
20 ответов
Наиболее важной особенностью IDE для разработки на Perl (включая Padre) является:
интерактивный отладчик, который на самом деле работает. Например, запоминание точек останова, возможность углубления в сложные структуры данных и копирование (в буфер обмена) должны работать с отслеживаемыми переменными, в том числе с помощью команды меню "Копировать специальные", которая позволяет отображать их в различных форматах; скажем CSV, XML или табуляция.
Две самые бесценные особенности, которые я нахожу:
- построчная отладка, точки наблюдения, точки останова и т. д., чтобы я мог правильно отлаживать свой код.
- завершение кода, поэтому мне не нужно искать документы (даже онлайн).
Хорошо, вот мой третий ответ, хотя я ненавижу это говорить.
Конкуренция довольно проста в установке. Падре нет. Я попытался обновиться до последней версии сегодня, и снова получил неудачные тесты.
Я большой пользователь Perl EPIC, и моя самая большая проблема в том, что я не могу перейти к функции, которая четко определена в текущем контексте (обычно нажатием клавиши F3). Это в значительной степени ударил или пропустил в этот момент.
Я работаю с Комодо. Я также использую другие редакторы, но большую часть времени я возвращаюсь в Komodo. Хорошая IDE должна иметь:
- Хороший отладчик. Точки останова, списки наблюдения, все, что вам нужно.
- Удаленная отладка. Возможность отладки потоков.
- Подсветка синтаксиса, включая взвешенные шрифты (я был очень разочарован Oxygen, например, XSLT IDE, где я не могу использовать жирный шрифт для выделения зарезервированных терминов)
- Завершение синтаксиса.
- Инструменты управления проектами, предпочтительно расширяемые с помощью плагинов.
Стабильность. Люди быстро отворачиваются, если их редактор выходит из строя и они теряют свою работу.
Первое, что я ищу, это какой-то обзор текущего активного файла. Я хотел бы увидеть методы / функции и, если возможно, модули use'd и особенно любые выражения use base.
Вы решили это довольно хорошо в Падре.
Хорошая интеграция VCS. Это то, что мне очень нравится в Eclipse: вы сразу видите, какие файлы имеют локальные изменения, а какие еще не добавлены в хранилище. И вы можете просматривать различные версии и иметь хороший просмотр различий всего одним щелчком мыши.
Руководитель проекта. Для меня важно иметь возможность определять набор файлов и папок, которые составляют конкретную кодовую базу. Сессии полезны, но не замена.
Тестирование интеграции.
В Perl есть отличные инструменты для юнит-тестирования. Когда я запускаю свой набор тестов и получаю сбой, я хочу увидеть код теста, который не прошел.
Хороший способ просмотреть результаты теста и посмотреть код неудачного теста вместе с ожидаемыми и реальными результатами был бы хорошим подарком.
Вопрос кажется более спорным, чем ответственным. Опасаясь быть обвиненным в нарушении авторских прав, я опубликую содержание, которое я помню из книги "Интерактивные среды программирования" Дэвида Р. Барстоу, Говарда Э. Шробе, Эрика Сандеволла.
Это не будет точно так же, как я прочитал книгу много лет назад, и я записал ее на другом языке.
ПРИНЦИПЫ ХОРОШЕЙ ИНТЕРАКТИВНОЙ ПРОГРАММИРУЮЩЕЙ СРЕДЫ
1: Know the user
+ Know the previous knowledge and practice of the user
2: Minimize the memorization
+ Selection and not characters entering
+ Names and not numbers
+ Predictable behavior: the user should have a previous impression of what the system will do
+ Possible access and changing of the parameters of the system
3: Optimization of operations
+ Fast execution of common operations
+ Inercy of visualization: the screen should change the less possible
+ Memorization of system operation in user,s memory
+ The meaning of specific operations should have a simple relationship with the state of the system
+ The system must be prepared to accept more than 10 followed
commands per second, so that it can operate on the user,s muscular memory
+ The system should be prepared to organize the parameters of a command
4: Engineer for the errors
+ Provide good error messages.
+ Engineer it to remove away the common errors.
+ The system should provide reversible actions.
+ Redundancy: the operations should have more than one way of being done.
+ Integrity of data structures.
Рефакторинг в стиле Visual-Studio для переменных и имен функций и извлечение функций. Visual studio просматривает весь модуль для всех ссылок и позволяет вам видеть все измененные строки, если вы не хотите менять один экземпляр (по какой-либо причине)....
Это может быть достигнуто с помощью use strict
; но может быть также ценной функцией, даже если нет use
явно, а именно:
на днях мы потратили около 10-20 минут на отладку следующего поведения:
my %hash;
$hash->{'key1'} = value1;
# on reading in different module
print $hash{'key1'}; # is of course empty, but was so easy to overlook in the code above
резюме: правильная безопасность Perl, введенная IDE.
Возможно, он уже реализован в Padre, как оказалось, не в Eclipse+EPIC.
Возможность настройки и запуска внешних (командной строки) инструментов. Плагины хороши, но конечным пользователям не обязательно создавать их просто для интеграции с внешним инструментом. Разрешение пользователям настраивать свои собственные инструменты обеспечивает значительную расширяемость с минимальными барьерами для входа.
Мой редактор по выбору UltraEdit. Это не IDE, но благодаря его поддержке пользовательских инструментов я смог интегрировать такие функции IDE, как lint, контроль версий, отладка и многое другое.
Я использую Emacs. Мне нужна система, которая помогает мне реорганизовывать код, особенно когда я работаю над уродливым кодом 1999 года, который использует философию "начинай с начала, переходи к концу" в сочетании с дублированием и модификацией.
Я посмотрел на Eclipse, но не могу работать с системой, которая требует от меня создания проекта, прежде чем я смогу внести в файл односимвольное исправление.
Я посмотрел на Падре, но он медленно и вылетает.
Я посмотрел на Kod, который утверждает, что настроен с помощью CSS, но не могу найти справочную страницу, которая скажет мне, где разместить CSS.
Я не знаю, сможет ли это сделать Падре, но возможность разделить экран очень важна для меня. Как пользователь VIM, я постоянно разделял свой экран, чтобы посмотреть на другой файл во время кодирования.
Возможность использовать мой собственный выбор редактора (который он может иметь, насколько я знаю). Это имеет шанс победить людей vim/emacs.
Политики окончания строки для файлов, по каталогам и по всему проекту.
Поэтому для данного проекта или каталога я бы хотел, чтобы все окончания строк были только LF. Находясь в другом каталоге, я могу пожелать иметь смесь файлов CRLF и LF.
Я много работаю над тем, что происходит между Unix и Win32.
Типичное решение автоматической конвертации всех файлов назад и вперед при переходе с платформы на платформу мне не помогло.
Когда файл создается в неправильном формате случайно, это может быть настоящей болью.
Интеграция цикла чтения-оценки-печати. Как активный пользователь Emacs, я очень ценю Sepia. Очень полезно для того, чтобы попробовать что-то перед тем, как я передам их в код.