Eclipse как IDE - Что вы считаете отсутствующим как новичок в Java?
Я работаю над решением, которое нацелено на решение проблем, которые испытывают программисты-новички, когда они "изменяют код", при исправлении ошибок или выполнении запросов на изменение кода в процессе производства. Eclipse, как мы все знаем, является отличной средой разработки. Такие функции, как завершение кода, открытая декларация, иерархия типов, обозреватель пакетов, навигатор, поиск ссылок и т.д., Помогают людям быстрее фиксировать вещи по сравнению с тем, чтобы использовать что-то вроде Textpad.
Если вы программист java для новичков, и вы используете Eclipse IDE, какие области среды Eclipse вы считаете менее полезными/менее интуитивными? Если вы опытный программист, каковы общие проблемы, которые новички ищут для вас, чтобы решить их?
Пожалуйста, проигнорируйте проблемы, связанные с: Экспертиза домена (Бизнес-знания), Infra (где проверить ваши изменения и т.д.), связанные с производительностью (медленный поиск в eclipse и т.д.), уровень навыка на определенном языке (подумайте о разработчике как noob)... и думаю, что один язык - Java
Я сделал локальный опрос в своей небольшой команде, и вот некоторые из них:
- Новички, использующие Eclipse для обработки кода, написанного на интерфейсы, где реализация предоставляется во время выполнения. Выполнение "Открытой декларации" всегда будет показывать вам интерфейс. Иногда это может сбивать с толку.
- Eclipse не является интуитивным при разработке EJB. Конечно, вы знаете, что все, что вам нужно сделать для создания нового bean, - это щелчок правой кнопкой мыши и "Создать Bean", однако после его создания нет контекстной справки о том, каким должен быть следующий шаг. Например, генерация заглушек.
- Когда сопоставление источника данных с сущностью beans, что-то меняет что-то, закручивает весь поток вещей, а eclpise никогда не жалуется/намекает.
- При разработке приложений, использующих Struts, eclipse не скажет вам, что при изменении struts-config.xml будет затронуто определенное влияние веб-потока.
На данный момент для меня, как для кого-то, кто заинтересован в сборе мнений для моих исследований, кажется, что Eclipse может использовать больше "контекстных подсказок времени выполнения".
Я уверен, что у сообщества будет намного больше, чтобы добавить... Пожалуйста, добавьте больше своих негативных впечатлений (только с точки зрения изменения кода).
EDIT:
Я думаю, мой вопрос был слишком длинным и запутанным. Я немного перефразирую его и сделаю короткое:
В то время как "изменение кода" (не похоже на форматирование кода, связанные с ним действия, CVS и т.д.... что-то вроде рефакторинга), какая функция Eclipse IDE вам не понравилась/ненавидела больше всего? Вот примеры:
- При изменении кода, который был записан на интерфейсы: "Open Declaration/F3 в экземпляре объекта показывает интерфейс, когда реализация предоставляется во время выполнения".
- При изменении приложений с использованием EJB: нет контекстной справки
- При изменении приложений с использованием MVC (Spring/Struts): никаких предупреждений об изменении не происходит.
Ответы
Ответ 1
В Eclipse отсутствуют:
Визуализация программного обеспечения, как, например, System Complexity View [Lanza 2003]
А также Ланца, проект класса [Ducasse 2005]
Post Scriptum: Визуализация программного обеспечения в Eclipse: X-Ray предоставляет представление о сложности системы Java-проектов, http://xray.inf.usi.ch/xray.php (через @anjaguzzi и Пола Ламмерцма)
![Software Visualization]()
И затем совместная фильтрация "другие разработчики, которые редактировали этот метод, прежде чем также редактировали" [Zimmermann 2005]
И коллекция доступных для просмотра примеров, и автозаполнение на уровне этих примеров. Это, например, если вы пишете
ByteBuffer buf = file.
и, нажав автозаполнение, он должен найти в кодовой базе и во внутренних сетях примеры, которые преобразуют файлы в байтовые буферы и вставляют туда эти 10-20 строк.
И, конечно же, возможность писать unit тест, а затем в среде IDE выполняется поиск классов, которые проходят тест. Да, это можно сделать!
Этот список можно продолжать и продолжать, хорошей отправной точкой для дальнейшей работы являются материалы прошлого
которые все под эгидой конференции ICSE.
Ответ 2
Для меня большая часть проблем с новичками в Eclipse исходит из одной из сильных сторон, его конфигурируемости и структуры плагинов.
Когда мне нужно изменить свойство в Eclipse, мне всегда кажется, что нужно потратить несколько минут на разработку, где его изменить. Пример: изменение редактора Java для вставки 4 пробелов вместо вкладки. Строка поиска в свойствах всегда приветствуется: -)
Это и отсутствие документации для некоторых из плагинов всегда приносит удовольствие, когда я настраиваю проект.
EDIT: вы всегда можете показать классы, реализующие интерфейс, используя ctrl-T.
Я бы добавил, что когда у меня сложный проект, я обычно использую Refresh и Project- > Rebuild All * много. И я использую TortoiseSVN для maniuplate вне Eclipse, потому что много раз это (например, рефакторинг). Однако, если я изменяю проект за пределами Eclipse, я всегда "прекращаю Eclipse" и полностью обновляю и строю, когда перезапускаю его. В противном случае Eclipse иногда сильно путается.
Ответ 3
"Проблемы с новичками" Я видел себя (я использовал Eclipse на некоторое время, но иногда меня это "удивляет" ) и помогает коллегам начать использовать Eclipse:
- Это большой и достаточно сложный, чтобы вначале быть очень пугающим. Похоже, что люди считают, что чистые бобы легче использовать изначально. Один из коллег нашел убежище в редакторе VI для бога, в то время как...
- Установка плагинов может быть сложной (найти URL-адреса сайтов, узнавать о плагинах, почему "установить" + "обновление" в меню "Справка" )
- Обновления все еще медленны (но намного лучше, чем раньше) с Eclipse 3.5/Galileo. Трудно понять, какие плагины устанавливать по имени иногда.
- Любая платформа помимо Mac - предпочтения в меню "Окно" кажутся нелогичными?
- Понимание того, как правильно установить путь к проекту. Установка правильной версии JDK для проекта.
- Отсутствие или неожиданное взаимодействие между классами классов ant/maven build tools и функцией eclipse (ant/maven clean вызывает ошибки компилятора Eclipse при совместном использовании classpath и т.д.).
- Представления и (большое количество) перспектив сначала запутывают/подавляют. Что полезно когда? Как перетащить вид в нужное место или восстановить закрытые?
- Некоторые комбинации версий JDK/Eclipse требовали слишком много пространства PermGen, чем по умолчанию, потребовалось некоторое время для диагностики.
Ответ 4
Я думаю, что самая большая проблема, с которой я столкнулся (и по-прежнему сталкиваюсь) с Eclipse, заключается в том, что она не особенно осведомлена о стандартных технологиях, которые окружают современную разработку Java. Если я разрабатываю приложение, он может включать следующее:
- Spring
- Maven
- JSF/Struts 2
- Subversion
- JUnit
Я думаю, что Eclipse обрабатывает эти технологии в повышении уровня осведомленности: (поэтому JUnit будет в порядке, он работает из коробки, Subversion требует Subclipse, и это немного ролее, чем поддержка CVS; JSF нуждается в некоторых инструментах WTP установленный, Maven... вам, вероятно, лучше не создавать собственные команды внешних инструментов, а не доверять M2Eclipse, если в последнее время он не станет значительно лучше, а Spring, ну, как вы говорите, попробуйте ctrl-щелчок на и вы почти наверняка получите интерфейс, потому что реализация скрыта за конфигурационным файлом Spring).
Получение всего этого для совместной работы и проверки/компиляции, а затем компиляция/запуск тестов/проверка - это сложный бит. Само изменение кода, вероятно, легко:)
Ответ 5
Для меня самым большим препятствием для обучения эффективному использованию eclipse было понимание того, где установить путь к классам, а также как точно определить, что включено в путь к классам для разных этапов разработки (компиляция, сборка, тестирование). Я давно смутился о разнице между временем компиляции, конфигурациями отладки и конфигурациями классов классов. Затем, если вы выбросите ant в микс (который автоматически создает конфигурацию прогона), это делает его еще более запутанным для новичков.
Ответ 6
Как новичок, я не делал EJB или Struts. Или даже отображение источника данных. Поэтому я думаю, что название вопроса может немного ввести в заблуждение.
Я бы оценил наличие чего-то типа JadClipse, встроенного для "просмотра" кода библиотеки, когда я ударил его при отладке или тому подобное. Но должно быть сделано ОЧЕНЬ ясно, что это "восстановленный код" и не предназначен для взлома.
Во-вторых, noobs должны быть намного лучше осведомлены о том, что Shift-F2 получит им документацию API для любого класса/метода, на который они смотрят. Я знаю слишком много начинающих Java-программистов, которые изучают свои API-интерфейсы, не более чем завершение кода; им не хватает многих ценных советов, предоставленных авторами библиотеки.
Ответ 7
Средство чтения, которое генерирует код "на лету", так что для завершения проекта достаточно одного щелчка.
Ответ 8
Я нашел Visual Studio легко подобрать, я попытался щелкнуть по каждой кнопке хотя бы один раз и понял, что все это делает. Это продумано единой командой разработчиков на самом высоком уровне, и все это следует за стандартами сверху вниз, более или менее.
Затем я играю с Eclipse. С технической точки зрения, это в лучшем случае. Посмотрите на диалог настроек; это потрясающая поездка, если вы уже точно не знаете, что ищете, и то, что разработчик, работающий над этой функцией, решил назвать ее.
Конфигурация Eclipse основана на том факте, что вы уже знаете, как его настроить. Кривая обучения там ужасная, и единственная экономия - это то, что большинство настроек по умолчанию в порядке.
Ответ 9
Вот основные недостающие функции, насколько мне известно:
- Показать начало '{', когда вы находитесь в конце '}', где начало '{' находится вне представления
- Автоматическая синхронизация редактора с проводником пакетов
- Перейдите к другому представлению (проводник пакетов, схема и т.д.) с помощью клавиатуры
- Встроенный поиск, который не открывает диалог.
- Перейти к следующему местоположению ошибки с клавиатурой
- Перейти к следующей/предыдущей структуре с клавиатурой
- Больше стабильности в целом.
Эти функции отлично работают в IntelliJ. Особенно полезны # 1 и # 5.
Ответ 10
Недавно я был noob для затмения, в основном занимался Android и BlackBerry. И одна вещь, которая ускользает от меня по сей день, - это огромное множество опций и настроек и различных мест, в которых они могут быть найдены. Например, если у вас установлен плагин (скажем, плагин BlackBerry), этот параметр можно найти в общих префиксах или префиксами BlackBerry или префиксами проекта.
Это всегда охота.
Ответ 11
Интеграция VCS - как правило, разработчик также новичок в слиянии изменений, синхронизации рабочих копий, разрешении конфликтов и т.д. В Eclipse часто существует несколько способов достижения одного и того же, и я неоднократно видел эту причину путаницы (на самом деле, я тоже это видел с опытными разработчиками, они знают Subversion, но не Eclipse, и последний пытается "скрыть" "основные операции хранилища".
Ответ 12
Я думаю, что проблема со всеми IDE для начинающих - это отключение от цепочки инструментов: как компилятор берет некоторый источник и компилирует его в байт-код, который я затем запускаю с помощью виртуальной машины с правильно настроенным классом классов.
В качестве разработчика я люблю тот факт, что мне не нужно это разбираться, - и я никогда не чувствовал себя неспособным делать то, что я хочу, относительно более сложных конфигураций сборки, - но это слишком важно для новичков, чтобы понять, что происходит, когда вы нажимаете эту кнопку воспроизведения, чтобы ее игнорировать.
Ответ 13
когда я впервые попытался использовать eclipse, я абсолютно ненавидел его обстановка. Вам пришлось сделать целую кучу вещей, прежде чем вы смогли начать работать. кроме того, у вас есть способ проверить многие параметры, и это не всегда самоочевидно, что делает каждая кнопка.
вместо этого я начал использовать netbeans. более интуитивно понятным и более простым в обращении. проверьте там gui.. не на много кнопок, и большую часть времени вы знаете, что делает кнопка, даже если у вас нет подсказки java (как и в то время).
когда я вернулся к затмению (из-за некоторых функций, не поддерживаемых в netbeans), с ним было намного легче работать. поэтому некоторая часть gui может быть просто добавлена неинтуитивно, и новичкам определенно будет сложно с ней работать.
Ответ 14
- Простота
- чёткость
- консистенция
Я мог бы написать его более подробно, но я думаю, что затмение имеет избыточный вес и слишком много ориентировано на функции - вместо простоты использования. ИМО, это касается как начинающих, так и профессионалов.
Ответ 15
Eclipse не имеет визуального конструктора для компонентов Swing.
Сравните это с Visual Studio, где:
- нажмите "новая форма"
- перетащите кнопки и текстовые поля в форму, переместите их, добавьте несколько меток.
- дважды нажмите кнопку, добавьте код
- сделано, одно быстрое приложение, показать его боссу, получить оплату/продвижение по службе/перерыв на кофе
В Eclipse вам нужно либо использовать Netbeans (т.е. не Eclipse...), либо использовать IBM SWT, либо вручную скопировать формы Swing.
Я чувствую, что было бы очень приятно иметь хорошего дизайнера форм wysiwyg в форматах Eclipse для Swing.
Ответ 16
Другая запутанная часть заключается в том, что для веб-разработки есть отдельная версия, которая должна использоваться! Ну, мне это совсем не понравилось, и я знаю, что многие люди просто не об этом.
Ответ 17
Eclipse пропускает Maven Embedded в стандартном дистрибутиве, Maven помог бы любому пользователю в получении своей программы всех банок и улучшенном управлении библиотекой.
У Netbeans уже есть эти инструменты.
Кроме того, eclipse пропускает интегрированные инструменты для спящего режима, spring, xfire и tomcat с использованием maven.
Проверьте этот сайт http://maven.apache.org/
Ответ 18
Все мои другие проблемы с Eclipse уже упоминались, кроме одного: это slooooooooow. Была ли их цель доказать, что "Ява медленная" люди права? Я предполагаю, что это связано с тем, что "Eclipse делает все", но я прекратил использовать его, потому что он лагов каждый раз, когда я нажимаю на что-либо. Изменить вкладки? Лаг. Открыть настройки? Лаг. Изменить вкладки в настройках? Лаг. Это похоже на использование Photoshop с 32 Мб памяти.
О, и это невероятно уродливо. Я хотел бы получить его с помощью реальной интеграции GTK +.
Ответ 19
Интеграция Android SDK полна jank. Макеты xml не отображаются правильно. Завершение кода не работает. IBM должна исправить ошибку.