Неплохая статья по эффективной работе в Eclipse топик-ссылка

Статья не моя. Большая часть этого хорошо известна тем, кто работает в Eclipse постоянно. Но это именно то "недостающее звено", которого часто нехватает "новичкам" и использующим его крайне редко. После освоения этих фич, Eclipse обычно перестаёт казаться "сложным" и начинает нравиться. По крайней мере, у меня так и произошло N лет назад. Нужно оговориться, что статья про Eclipse JDT. Но многие полезные фичи работают и в Eclipse CDT, который часто используется в качестве основы embedded IDE.

Комментарии (120)

RSS свернуть / развернуть
Описание более чем кучи сочетаний клавиш, для embedded IDE она слишком тяжела и перегружена функциями, которые в большинстве случаев не нужны. Все равно многое приходится добавлять скриптами. Туже самую компиляцию со своими ключами, прошивку камня, перекладка промежуточных копий в резервный каталог, например, после 5-ой или N-ой сборки.
0
Здесь не идёт речь о сборке или прошивке, здесь рассматриваются совершенно другие аспекты использования — бытрая навигация по коду, поиск, рефакторинг и тд. Речь прежде всего про _эффективную_ работу с исходным кодом.

Пока проект размером с helloworld, а времени столько, что можно спокойно «я вот сейчас пойду, поищу, где это там определено» и «потрачу-ка я 5 минут на переименование этой константы везде» — можно и по-старинке. Но если освоить — очень экономит время.

По поводу «слишком тяжела и перегружена» — это не более чем вопрос привычки. На вкус и цвет… Одним notepad слишком сложен, другим emacs слишком примитивен.
+2
для embedded IDE она слишком тяжела и перегружена функциями, которые в большинстве случаев не нужны
Скорее ими никто пользоваться не умеет. Хотя, в принципе, для камня, который можно полностью забить килострокой кода даже на ассемблере это и не нужно.
перекладка промежуточных копий в резервный каталог, например, после 5-ой или N-ой сборки.
А вот это лучше переложить на VCS.
Туже самую компиляцию со своими ключами, прошивку камня
Ну, эклипс полуфабрикат и содержит только общее — систему работы с кодом. Заточки под конкретные таргеты к ней нужно добавлять отдельно. Радует, что некоторые производители МК начали сами это делать. Тем более что МК с килословом памяти отходят в прошлое и инструменты работы с кодом становятся все актуальнее.
+1
VGA, ну почему же, вполне даже эклипс замечательно на ембеддеде прижился. Сперва я думал что так только у меня и еще у некоторых, щас, я уже 3 месяца как работаю с TI DSP, так вот ихний CCS5 они построили на базе еклипса, и правильно сделал, получилась канфетка. Я например кайфую щас от CCS5, в то время как CCS3 был ихний софт, и мне показался унылым гавном. Так что за еклипсом будущее весьма большое.
0
хех сравнил. ты еще сравни, скажем, иар со студией или эклипсом. но это ведь не говорит о том, что лучше эклипса нет. просто стало искаропки чуть лучше. не более того.

ЗЫЖ мой выбор — слик, есличо
0
взаимно. я тоже слик абажаю. до этого часто юзал, пытался даже его как плагин еклипса юзать, не фонтан ) 2 кухарки на одной кухне…
В конторах где я работал, ломанные IDE юзать нельзя, так что слик пролетает… Следовательно альтернативу вижу только — еклипс, перепробовал много, остановился на нём.
0
жму руку. (тоже на мегаджоне распробовал? ;) )
но да, на безальтернативье и эклипс — рыба…
0
Из мне известных на Eclipse перешли только TI да Microchip. Keil по прежнему страшный, IAR предлагает (наконец-то!) Eclipse как альтернативный редактор, Atmel перешла на MSVS (это тоже хорошо, только у них руки из задницы, судя по AVR Studio 5). STM отдает на откуп другим, плюс собственная STVD, вроде того же пошиба, что AVRStudio 4. Гм, ну NXP еще CodeRed предлагает эклипсовый.
Ну получше становится, да.
0
У Microchip'а не Eclipse (Oracle's NetBeans вроде не???)… Хотя может меня подводит память?)
0
Гм, действительно. Мне почему-то помнилось, что MPLAB X на Eclipse.
0
SiLabs тоже на эклипсе среду сделали, и атмел для АВР32.
0
и атмел для АВР32.
Какую? Они ж вроде aStudio с пятой версии на MSVS пилят.
0
0
Как то просматривал среду для Arduino, вот действительно сделано для любого специалиста и для программера, и для рядового паятеля. Все понятно и не требует изучения ни среды, ни азов пользования клавиатурой.
0
хорошо понимаю Вашу т.з. Но у меня, например, ситуация обратная — когда беру в руки IAR/Keil мне хочется выть от того, что не могу делать _быстро_ привычные вещи, что нужно нудно елозить мышкой по окнам, скролить, пользоваться тупым текстовым поиском чаще, чем это реально необходимо и тд.

Мне кажется VGA правильно сказал — по мере роста возможностей и ресурсов MCU это будет востребовано всё больше.
+1
Тут могу согласится, но как только ты выходишь за рамки небольшого контроллера с сильно ограниченным объемом памяти, так появляется возможность не ужимать себя в объеме. Тогда блочное программирование ускоряет процесс многократно. Взять тот же LD — вы пишете логику работы не задумываясь о размере выходного бинарника. Таким образом мы идем к тому, что бросить мышкой объект в среду разработки с указанием входных и выходных данных проще и быстрее. Когда оптимизация кода вас не беспокоит (это должны делать писатели этих модулей), скорость разработки и качество повышается.
0
Оптимизацией кода тоже удобней заниматься в нормальной IDE с нормальной навигацией. Кодонавигация не нужна только тогда, когда и кода-то практически нет — сотня строк. Уже на килостроке навигация себя оправдывает.
0
ооо, как я Вас понимаю, уважаемый…
В Keil еще куда не шло, но вот IAR… просто выбешивает своей убогостью.
Мои проекты не вмещаются в 1к строк кода на цэ или цэпэпэ, поэтому такие фишечки как автокомплит, нажатие cntrk+click для поиска тела функции/метода, автозамена — все это делает работу приятной. Наконец-то можно сосредоточится на самом коде, а не на запоминаний названия класса\метода вплоть до регистра каждой буквы.
0
Arduino IDE — это не среда, это недоблокнот с кнопкой запуска. К нему даже альтернативные IDE пишут. Хотя и они больше напоминают недоблокнот, разве что MDI, а не SDI.
0
Не стоит смешивать любителей и профи, ни один профи не назовет одну среду хорошей, а другую не очень. Какая принята в качестве де-факта в коменде на той и обязан писать, при смене команды меняется среда и разговоры… «а вот в прошлой команде писани на ААА» сводятся — мы пишем на РРР и все.
0
ни один профи не назовет одну среду хорошей, а другую не очень.
Еще как назовет. Написать профи может и в блокноте, если выбора нет. Но если есть — выберет более подходящий инструмент.
сводятся — мы пишем на РРР и все.
Перед этим, как правило, происходит выбор среды по тем или иным характеристикам. И если и выберут убожество вроде IAR — то только потому, что другого выбора нет.
0
Для вас убожество, а для меня «среда, которая выполняет поставленные перед ней задачи».
0
Ну, задачу отладки она выполняет хорошо. Нормальный бы редактор туда. Да и альтернатив IAR'у как раз обычно нет.
0
Да и альтернатив IAR'у как раз обычно нет.
Но заслуга это не среды, а компилятора и отладчика.
0
Во многих случаях выбор IDE отдается на усмотрение разработчика. И файлы специфичные для IDE не комитятся в общий код.
0
Ардуиновская среда слишком примитивная и не имеет даже минимума необходимого для удобной работы. Впрочем да, я сужу с колокольни своих привычек и опыта.
+1
перекладка промежуточных копий в резервный каталог, например, после 5-ой или N-ой сборки.
Откройте уже наконец для себя системы контроля версий! 2013 год на дворе, до сих пор перекладывают копии в резервный каталог. ЗАЧЕМ?!

Удивляюсь я с инженеров, пришедших в программирование с железа — как будто они до сих пор в 1980-ом где-то.

Впрочем, думаю, настоящие железячники смотрят на стиль работы с электроникой тех, кто пришёл (как я) из программирования.
+2
… настоящие железячники так же смотрят на стиль работы…
0
очень сильно подозреваю, что так и есть =))
0
Но это не повод не учиться!
Более того — сейчас же всё на компьютере — схема, симуляция, плата — это всё работа с файлами, даже если не программировать, и работа многостадийная, с ошибками, откатами назад, разными версиям (а что будет если попробовать так? А вот так?) — я просто не понимаю, как в таких условиях НЕ СТРАШНО работать без системы версий.
0
Оооо, батнька — я Вам сейчас интересную штуку скажу =)

Очень часто есть простые и эффективные инструменты. Очень часто есть вполне умные люди. Которые никак не могут освоить эи простые инструменты. И вовсе не потому, что им не дано или они недостаточно умны, нет!

Просто иногда необходимо, даже самому умному человеку, чтобы кто-то подошёл к нему, взял за пуговицу и сказал: «чувак, пойдём я тебе покажу как это быстро, просто и полезно! это совсем нестрашно!»

Тоесть нужны такие специальные люди, которые умеют самые сложные вещи объяснять _просто_ и доступно.
В силу того, что наша инженерная культура своими корнями наследует традиции немецкой технической школы, у нас всегда был дефицит таких людей. Это реальная объективная сложность.

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

У нас мало _качественных_ популяризаторов. Как только наши «популяризаторы» начинают рассказывать что-то продвинутое, они тут же норовят надуть щёки и напустить сложности. Есть хорошие, но их крайне мало и на все отрасли нехватает.

строго IMHO
0
Кстати, если кого не испугает английский, то ОЧЕНЬ рекомендую try.github.com/ — основы git за 15 минут.
+1
А каким браузером это смотреть? Попробовал Оперой 12.13 и IE7, не запустилось. IE спросил о доверии к сайту, а Опера просто белый фон показала.
0
Chrome полет нормальный=)
0
Эти броузеры скорее всего режут javascript на незнакомом сайте — msie по паранойечке, а opera скорее всего так настроена.

Там по-идее ничего кроме html5+css+js ненужно
0
Спасибо, значит дома из под хрома гляну)
0
перегружена функциями, которые в большинстве случаев не нужны
Не нужны — не пользуйтесь.
Туже самую компиляцию со своими ключами,
Тут одно из двух: или сборка делается мейком, или компиляция со своими ключами из среды таки имеется.

P.S. если чего не хватает, а вам сильно нужно — еклипс допиливается достаточно просто.
0
Достаточно сказать, что в эклипсе действительно можно делать все — от РС (lin/win) до эмбеда и мобайла.
Все и везде. И на чем угодно, хоть на пытоне
Чего не скажешь о других.
В отличие от проприетарщины, не требует установки и спокойно работает с флешки.
Я б тоже с удовольствием, но корпоративная культура заставляет колхозить в МСВС
+1
Оно очень тормозное. Не знаю как вы этот эклипс юзаете. Впрочем, M$VS >= 2005 — тоже жутко тормозная (и глючная).
NetBeans — побыстрее и поаккуратнее (впрочем, для явы это почти идеал). Для Си неплохая — M$VS 2003.
0
Оно очень тормозное.
Выбросьте винду.
+3
Хороший ответ.
0
Еклипсу надо нормально работающую файловую систему. В винде многопоточное обращение к большому количеству мелких файлов тормозит. Но именно это нужно сделать эклипсу для того, что бы распарсить все сорсы и построить нужные индексы. Поэтому в винде он тормозит пока не устаканится. В линухе все эти вещи происходят не в пример быстрее и тормозов не заметно. Так что ответ совершенно по делу. Хотя, конечно, применительно к тому, кому я отвечал он и не в прок.
0
А если оставить винду, но поставить SSD?
0
Ситуация, конечно, улучшится, но как по мне, то проще выбросить винду :)
+2
таки проще поставить ссд, чем красноглазить потом
вин8 особенно хорош и быстр даже на 4-5 летнем железе, а уж с сата3 и новыми процессорами просто летает
0
чем красноглазить потом
Отчего же «потом», вы уже. Собственно, этот процесс и не прекращался никогда.
0
только остро стоит вопрос совместимости, особенно со старым ПО. То что в семёрке и хрюше годами работало без нареканий, в восьмерке падает по каждому чиху. Провел мышку над окном — приложение упало. Свернул окно — приложение упало. Вызвал интерфейс метро — приложение повисло с нулевой загрузкой проца.
Так что только вин7 допустим. В отличие от восьмерки на ней все работает, и ресурсы не отличаются.
0
Ничего выбрасывать ненадо. Даже в висте на 3Gb RAM Eclipse работает вполне нормально. Уж на 2Gb современные версии имеют право тормозить слегка =)

Вообще тут всё просто — если мне по-быстрому отредактировать один-два файла, то я возьму vim, notepad++ или sublime (emacs для ценителей). А вот если я затеваю _работу_ с кодом, ощутимую по трудозатратам — я возьму Eclipse. И если он тормозит — что-то сделаю с машиной.

Каждой задаче — свой инструмент.
+2
Уж на 2Gb современные версии имеют право тормозить слегка =)
Требования у вас! Как у оперы…
:)
0
… бросьте вы этот вздор, сударь. ну о чем вы говорите. еклипс замечательно работает, а если еще и модули ненужные поотключать, то еще и чуток быстрее становится.
Разумеется, что на медленных машинах он тормоз жуткий, ну так только ж давайте не забывать что за бортом 2013 и нынче все писюки не менее 1,5-2ГГц, и винты шустрые также, так-что весьма быстро он работает, более того ОЗУ жрет вменяемо и работает быстро когда загрузится. А то что он загружается 10сек вместо 2-3 как у блокнота, так это не вопрос обсуждения, вы ж его не запускаете каждую минуту, а раз-два в день, так что не неда этот аргумет как домовклов мечь показывать.
0
давайте не забывать что за бортом 2013 и нынче все писюки не менее 1,5-2ГГц
А зачем текстовому редактору 1,5-2ГГц?
А то что он загружается 10сек вместо 2-3 как у блокнота
Какие 2-3 сек? Блокнот открывается мгновенно (наверно, за 100 мс). А M$VS 2003 загружается за 1-2 сек.
Windows XP на VirtualBox (после очистки от мусора вроде восстановлений системы, SFC, всяких там центров безопасности, визуальных тем и т.п.) грузится за 5-6 секунд. Вот так и должен работать весь софт.

А не тупить после каждого нажатия.
0
А зачем текстовому редактору 1,5-2ГГц?
IDE — не просто текстовый редактор. Ей приходится на лету выполнять разбор написанного и многое другое, так что требования вполне оправданы.
0
выполнять разбор написанного и многое другое
Да, работа с текстов в стиле паскаля или жабы вполне может требовать гигагерц…
-1
ну, некоторым и фара для проектов хватает. бывает.
иногда это даже лечится…
0
Да, работа с текстов в стиле паскаля или жабы вполне может требовать гигагерц…
С С — не меньше. Особенно учитывая, что парсится паскаль куда быстрее.
0
Не тот язык, который разбирается в IDE, а тот, на котором она написана. Сишник разберёт строку на месте, не потратив ни одного лишнего байта или такта. Паскалянт будет на каждую мелочь заводить временную строку. В яве же всё ещё хуже…
-1
Сишник разберёт строку на месте, не потратив ни одного лишнего байта или такта.
смеялся. громко. даже домашних разбудил.
0
Не вижу над чем тут смеяться. Смеяться надо над тем, как новомодные программисты любую пузырьковую сортировку размазывают на 10 экранов со всеми своими оопами и паттернами. Что касается Си, проще, удобней и оптимальней его строковой библиотеки что-нибудь придумать крайне трудно. По крайней мере, ничего лучше нет.
-1
Что касается Си, проще, удобней и оптимальней его строковой библиотеки что-нибудь придумать крайне трудно.
Легко и непринужденно.
По крайней мере, ничего лучше нет.
Если ничего другого не знать, то да.
0
Смеяться надо над тем, как новомодные программисты любую пузырьковую сортировку размазывают на 10 экранов со всеми своими оопами и паттернами.
Не порите чушь, ей больно. Как раз «новомодные программисты» не могут себе позволить роскоши «размазывать на 10 экранов», поэтому даже весьма нетривиальные вещи зачастую внешне выглядят очень просто.
+1
поэтому даже весьма нетривиальные вещи зачастую внешне выглядят очень просто
Это только если готовое вызвать.
0
Это только если готовое вызвать.
Отнюдь. Впрочем, откуда вам это знать…
0
Если бы вы разбирались в вопросе, то знали бы, что с точки зрения грамматики С куда более сложный и неудобный язык. Кроме того, препроцессор накладывает свою собственную грамматику, которая сильно отличается от грамматики самого языка. К этому надо добавить, что парсинг «на лету» должен быть весьма устойчив к ошибкам.

P.S. столь нелюбимая вами жаба не смотря на внешнюю похожесть с С, имеет весьма простую грамматику и очень удобна для разбора, в том числе «на лету»
+1
я не уверен, что человек понимает о чём здесь речь… оговорка про «редактор» неслучайна
0
Я думаю, он не понимает даже зачем это вообще нужно. Оно действительно не нужно, если сложность проектов не поднимается выше уровня «помигать светодиодиками на межке», а весь текст программы помещается на пару экранов.
+1
А зачем текстовому редактору 1,5-2ГГц?
ттююю… ну прям как маленький… шоб фоном виртуалка с линухом/виндой (подчеркнуть с религиозными предпочтениями) крутилась!!111адын
0
зачем текстовому редактору
Я спросил про редактор. Но, похоже, категориями кроме "!!111адын" ты мыслить не способен.
зы. M$VS 2003 прекрасно работает с 2-3 запущенными виртуалками. Новомодные же эклипсы тормозят и на полностью свободной системе.
-1
Вам весьма трезво ответили, жаль сарказм вы не поняли.
Какой блокнот, о чем вы? Студия? отличный тоже вариант, но у разных людей категории удобства и комфорта разные. Лично мне в студии не комфортно аж ни разу. В еклимсе менее комфортней чем в сликедите, но на фоне всего чего яписал выше, еклипс приятней и удобней. Он на лету распарсивает огромное кол-во возможностей и чудесно работает с много сот мегабайтными проектами, чего к сожелению не умеет студия, ибо задыхается. А вот еклипс и слик справляются на ура. И лично мне глубоко начхать сколько оно загружается 1 2 или 5 сек, я подожду, зато работать буду с полным комфортом и огромной скоростью. +мультиплатформенность, а так как я линуксоид, то мне это принципиально, работать в одной среде не зависимо от ОС.
Ради бога. вас ни в чем ни кто не собирается переубеждать, так что не принимайте все близко к сердцу. а то трёп скатится в уныние
0
чудесно работает с много сот мегабайтными проектами
Просто интересно, а где ты их берешь?
0
та на предыдущих работах приходилось работать с исходниками от управляемых свичей, сеттопбоксов, внутреностей ОС андроида, ядра линукса, итд. Так сказать, приходлось. ;)
0
Вы знаете, чем редактор _текста_ отличается от «редактора» языка програмирования? Вам знакомо понятие code introspection? Есть понимание зачем это нужно?
+1
Вы знаете, чем редактор _текста_ отличается от «редактора» языка програмирования?
Ничем. Программы пишутся в текстовом редакторе.
-1
Ничем. Программы пишутся в текстовом редакторе.
Вы не поверите, но программы часто состоят из более чем одного файла. И тогда оказывается, что процентов 80 времени при редактировании и написании уходит на навигацию по коду. Это если редактор остается текстовым обычным редактором.
+2
По поводу MSVS2008/2010 могу сказать следующее (в защиту).

1) Это вполне нормальная среда разработки для специалиста по встраиваемым системам. Она также универсальна, т.е. можно найти дополнения для чего-то экзотического, если нужно. Например, я писал на современном фортране 2003 в 2008 студии и отлаживал код в ней же. Или другой пример: для студии есть специальное дополнение, которое совмещает студию с Enterprize Architect. При этом вы можете разрабатывать код на C++, начиная с более высокого уровня иерархии, при помощи языка UML2. Я пробовал такое проектирование для встраиваемых приложений, вполне себе рабочая связка, если стандартны предприятия пропагандируют такой подход. Кто не знает поясню, это означает, что скелет классов вы как бы рисуете в специализированной программе (дополнении), а она ведёт работу по учёту классов и методов. Вам не нужно руками писать названия и сам обёрточный код. Всё это делает среда, причём в обоих направлениях: из UML2 в C++ код и обратно из C++ кода в UML2. Это прививает некоторую дисциплину и подход к проектированию сверху.

2) Чтобы не вестись на оценочные мнения типа «M$VS >= 2005 — тоже жутко тормозная (и глючная)» и «Выбросьте винду», вы можете самостоятельно попробовать как будет работать среда на вашем железе. Может быть вы не настолько консервативны и имеете свежее железо. Что же касается кода, то могу предложить уже настроенные шаблонные проекты для C++. Они находятся вот тут: mysvn.ru/avr/templates/ — это мои шаблоны для нескольких AVR контроллеров серии mega. Проекты настроены для работы с двумя компиляторами: IAR 6.10 и WinAVR-20100110 (gnu c++ компилятора в его составе).

3) Как выглядит работа с упомянутыми шаблонами вкратце можно посмотреть на примере проекта средней сложности — файлового менеджера на ATmega16 @ 16 МГц. Вот видео: www.youtube.com/watch?v=6OPQV9aZWaE (6-минутный ролик). Проект полностью написан в VS2008 (исключая заимствованный драйвер PetitFS).

4) А теперь о достоинствах и недостатках, т.е. плюсах и минусах. О них я могу судить, т.к. достаточное время пользовался студией именно для целевого назначения — работа над кодом для встраиваемых приложений.

Из недостатков я бы выделил следующее:
— среда достаточно увесистая, но, учитывая, что для AVR родная среда разработки теперь мало чем отличается от VS, то этот момент сглаживается (AVR Studio 6 на текущий момент основана на VS2010 и имеет размер дистрибутива около 800 Мб);
— из-за отличия в формате вывода потока ошибок для gnu утилит и стандартов MS, переход по ошибкам компиляции стандартно не поддерживается, но это можно поправить специальной настройкой командной строки, отфильтровав поток при помощи sed (потокового фильтра), в моих шаблонах это уже сделано;
— опять же из-за отличия стандартов нельзя так просто отлаживать код прямо в VS, т.е. саму среду можно использовать только для работы с кодом, а всю отладочную работу нужно сделать стандартными средствами;
— наибольшее удобство при проектировании кода будет при использовании C++ проектов, т.к. среда больше ориентирована именно на них (это можно рассматривать и как недостаток, и как достоинство, в зависимости от изначальных требований).

Каких-то других значимых недостатков не вспомнил. Теперь о достоинствах:
— современная многофункциональная среда для разработки кода, даже без дополнений она может многое;
— работа с makefile (это стандартная вещь, без неё бы ничего не работало);
— цветовая раскраска присутствует и относительно гибкая (мне это важно, т.к. я всегда использую только чёрный фон во всех средах разработки). Тут должен отметить, что VS умеет подсвечивать логику препроцессора. Это очень помогает и я мало где это видел. Тем, у кого есть витиеватые препроцессорные ветки, это очень понравится (у меня они есть в файле ISRList.cpp). Причём, если код препроцессора «открывается», то функции внутри также парсятся и переход на них становится доступен из среды.
— панели, окошки, fullscreen — всё можно настроить под себя.
— работа с svn через дополнение visualsvn (другие не использовал), все команды доступны в дереве проекта или пункте меню;
— есть простая функция для построения диаграммы классов, чтобы выполнить общий обзор проекта. Может быть иногда полезна, если нужно кому-то что-то показать.

Отдельно можно сказать про навигацию в проектах C++. Самая используемая клавиша F12 — это переход на функцию/метод под курсором. Автодополнение присутствует и лично меня оно вполне устраивает. Всё остальное в общем вполне типовое и можно добраться до любых дебрей кода, если только это не мудрёные шаблоны. Рефакторинга или какой другой постобработки по умолчанию нет, но её можно добавить, например, при помощи дополнения DevExpress. Толку от этого для встраиваемых приложений будет не много, а вот если вы пишите на C#, то там да, дополнение будет предлагать вам как лучше переписать код, вычёркивая излишние по его мнению строки кода, вот так (кликабельно):

Подсказка DevExpress, C#, MSVS2010

Это очень помогает писать аккуратно. Наверняка многие пишут не только для встраиваемых систем. Вот пример того как навыки работы в VS могут пригодиться, если вы постепенно перейдёте на C#, где писать намного легче, чем на C++, тем более, когда часть работы среда может сделать за тебя.
+1
  • avatar
  • uni
  • 06 февраля 2013, 11:14
Спасибо Вячеслав. Надо сказать, впечатлён… Моё восприятие MSVS застряло где-то на уровне 2005-2008. Не знал что они стали настолько продвинуты.
0
Пожалста. А уж как я был впечатлён, я ведь DevExpress не для этого себе ставил, мне нужна была их продвинутая библиотека компонентов. Когда поставил, то обнаружил, что весь код какой-то стал разукрашенный со всех сторон. К примеру, меня долго выводило из себя какое-то странное подчёркивание под строкой Color.White или других подобных с цветами, пока не снизошло озарение, что это цвет, который я выбрал в коде. Он парсится и отображается в зависимости от выбранного. До сих пор не могу понять почему до меня это так долго доходило. При нажатии на цветовую полоску появляется окно выбора цвета и в код вставляется уже выбранный идентификатор цвета.

После такого озарения я прошёлся по всем раздражавшим меня подчёркиваниям и узнал как же избыточно оказывается я пишу код. Вот ещё пример подсказки, где я даже не знал, что в C# можно так делать инициализацию (кликабельно):

C#, MSVS2010, подсказка DevExpress

Так же как в Эклипсе (вроде там есть) или NetBeans справа есть дополнительная полоска (возле прокрутки), где показываются отметины с какими-то проблемами кода. Подводишь к ним курсор и тебе показывается описание проблемы, совета и т.д. Тут на картинке уже таковых мало, т.к. я по всем прошёлся и оптимизировал код. После такого помощника возвращаться к Delphi или к чему-то другому уже как-то не очень хочется, всё смотрится уныло.

Но такое, я думаю, возможно пока только кода на Java или C#, т.к. они попроще C++ и не так сложно что-то предлагать в качестве замены. Ещё такая вещь удобна при начальном изучении языка, т.к. иногда такое предложит, что сам удивляешься. Это уже уровень, на котором пишут современные программисты (автодополнение отдыхает, это уже автодописание). У DevExpress на ютубе, кстати, можно найти наверное видео по всем этим фичам, но некогда было поисками заниматься. Это ещё самые простые подсказки, есть сложнее, но я их не использую, ибо пока там для меня магия — нужно понимать почему было предложено сделать именно так (дополнение может запросто за тебя целый метод оформить и в код вставить, но это привыкать надо как использовать).
0
Как бы отучить студию запихивать в подсказку (по Ctrl+Space) имена не относяшиеся к МК?
Стирание WIN32 из настроек проекта не помогает…
0
Честно говоря, я этим не пользуюсь, т.к. количество объектов в проекте у меня не так много и они, как правило, находятся внутри статических классов. Поэтому практически весь код пишется с использованием этих объектов и крутится вокруг них, параметров методов и локальных переменных, а их поля и методы всегда нормально показываются. Видимо это важно для Си проектов, где очень много как раз глобальных определений.

Я посмотрел на такой список в проекте uSD и не сказал бы что там так уж много каких-то сторонних заимствований, вроде даже я их и не нашёл.

Приведите пример идентификаторов и имя файла, из которого они взяты. Студия при выборе идентификатора показывает рядом подсказку, распарсивая то место, откуда он был взят.
0
Например так:
0
Дело тут, очевидно, в том, что IntelliSense обрабатывает файлы из каких-то сторонних папок. Я попробовал загрузить шаблон проекта ATmega16 в VS2008 и VS2010. Результат для меня одинаковый в обоих случаях: ничего лишнего. Нужно покопаться где-то в настройках среды и убрать лишние пути поиска. Возможно проблема может быть вот на этой вкладке:

MSVS2010, IntelliSense, include.

Чтобы тут не писать по поводу моих шаблонных проектов, если ещё будут вопросы, то лучше их оформить отдельно на форуме в разделе AVR.
0
Вот как это выглядит в MSVS2008:

MSVS2008, IntelliSense.

Ваш список идентификаторов какой-то маленький. Он отфильтрован, что склоняет меня к мысли об использовании какого-то нестандартного дополнения к студии и выглядит иначе. Следовательно, проблема может быть в настройках этого дополнения. Да, кстати, а студия какая?
0
Студия 2008-я, из дополнений — Visual Assist X (кстати рекомендую — мощная штука).

PS. Возможно дело в настройках студии — у неё тоже пути к либам где-то были.
0
Да, я так и понял. В этом у нас отличие. У меня уже стоит одно мощное дополнение, которое очень сильно внедряется в студию, поэтому я не спешу пока добавлять что-то похожее, чтобы они не конфликтовали. Ищите проблему в настройках Visual Assist, ибо это он судя по всему делает автодополнение. У меня же оно стандартное, насколько я понял.
0
А что за addon у вас если не секрет?
0
Это не секрет, я о нём тут уже написал и даже несколько картинок показал: DevExpress 12.1. Есть на рутрекере. Это не просто дополнение, а также ещё огромный набор продвинутых компонентов. Но я его использую в основном для C# и просто так его ставить нет особого смысла.
0
DevExpress 12.1 прибили там, осталась только старая версия — можете куда нибудь залить и дать ссылку на мыло anatol911 (a) майл тчк ру? (анатол девятьсот одинадцать)
0
Или DevExpress последний 2012.1.6, а в него входит Universal 12.1?
0
Надо же, действительно, темы нет. Сам торрент занимает 1.3 Гб. Его ещё можно поискать на руборде, там много есть тем по этой библиотеке, кстати, этот набор компонентов есть и как VCL для Borland'а (у меня в Delphi 7 установлен, но я пока не пользовался). Это для любителей Delphi.

П.С. Я попробовал прицепить папку к моему ftp, нужно посмотреть есть или нет извне. Ссылка на мой ftp есть у меня в профиле на форуме (в подписи), ник: уни. Называется так: «DevExpress Dxperience Universal 2012».
0
не на руборде не на nnm не нашел. попробую на ftp зайти
0
Попробуй еще dumpz.ru пошерстить. По крайней мере дополнения и компоненты к Delphi я именно там ищу.
0
кстати, этот набор компонентов есть и как VCL для Borland'а (у меня в Delphi 7 установлен, но я пока не пользовался). Это для любителей Delphi.
Там только компоненты, или дополнение к среде тоже есть? Лично меня только оно и заинтересовало. На сейчас у меня Delphi расширяют MMX (более продвинутый аналог CodeInsight) и Castalia (в основном расширения функциональности редактора, приближающие его к новым Delphi, остальное есть в ММХ). Хорошие штуки, только Castalia глючновата.
0
Нет, такого дополнения как для C# нет, просто большой набор компонентов (штук 100):
DevExpress VCL

Они знамениты своими grid'ами и отчётами. У меня самого почти во всех Дельфи используется пара дополнений: CnPack и GExperts. Их возможностей хватает, чтобы осовременить старые версии.
0
Жаль.
GExperts меня вроде не впечатлил в свое время, а вот второй надо посмотреть.
0
В GExperts я Code Formatter использую, в Delphi 7 он работает, а вот для остального нужно как-то собирать и подключать. Это один из двух автоматических утилит, которые мне известны для паскаля. Вторую ещё не пробовал, а эта утилитка по форматированию более менее устраивает. Она немного примитивна (не всё, что я бы хотел, можно настроить), но очень выручает, когда я изучаю чужой код. Я его сначала переформатирую под себя, нажав Ctrl + Alt + F, а потом изучаю. Очень удобно.
0
Для форматирования кода я использую DelFor/DelForEx (Ex is for Expert), но нужен он только чтобы привести автошему и ей подобные сорцы к читабельному виду. Собственно, как и тебе.
0
Что то я заблудился там у вас — на мыло сбросьте pls адрес и что еще для доступа надо — мыло выше в сообщении
0
Отправил личным сообщением здесь. Папка должна быть в корне, я её жесткой ссылкой прикрепил, локально проверил, вроде видна.
0
Спасибо!
0
я там не докачал пару файлов — постоянно обрывается соединение, а автодокачка не поддерживается почему то -посему сообщи когда доступ к ftp будет pls!
0
Думаю, будет проще по скайпу передать: viacheslavmezentsev. Не знаю почему докачка не работает, долго разбираться.
0
СКАЙП старый взломали — новый надо регистрировать. Ручками клеется докачка — Осталось докачать только DXperience-12.1.5.exe ~30МБ только ЕГО ВЫЛОЖИТЕ pls!
0
Не в тему Вообще мы соседи я из Перми, а Екатеринбург тобишь Свердловск моя Родина и моих предков, там у меня вся родня живет.
0
У меня богатая география. Родился/вырос на Украине в Энергодаре (Запорожская АЭС), жил/учился в Сибири (Нижневартовск, НВ ГРЭС), а доучивался и живу теперь на Урале, хотя родители все с Урала.
0
Я выложил опять. Не знал, что скайп кому-то нужен.
0
Моя неосторожность была — плугинов левых наставил. Думаю из за денег — у меня там порядка 10EUR лежало для прямых звонков на телефон.
0
Вроде в инете проскакивала инфа, что для угона скайпа достаточно знать на какое мыло он зареган. Нинай, починили ли эту дырку.
0
Спасибо — скачал
0
Поставил себе поверх DevExpress'а в 2008 студии Visual Assist X (1925). Пока вроде конфликтов не наблюдаю между дополнениями. Стало чуть дольше загружаться и ещё разукрасистей, чем было. Словари для проверки правописания брать тут: Visual Assist проверка русской орфографии – словари не работают?

Настраивать пути для автодополнения так:

Visual Assist X Options

Тогда получится вот такой эффект в вашем случае:

VAX code completion
0
Они находятся вот тут: mysvn.ru/avr/templates/ — это мои шаблоны для нескольких AVR контроллеров серии mega.
Можно ли их скачать целиком (все сразу, а не каждый файл отдельно)?
0
Можно конечно, я думал, что это заметно. Это ссылка на svn репозиторий с анонимным доступом на чтение. Там можно не просто код скачать, но и его историю посмотреть и любую ревизию выдернуть. Для того чтобы скачать себе все проекты нужно установить специальное дополнение для проводника TortoiseSVN. Ссылки есть в каждом проекте в файле readme.txt. После установки (и русификации) нужно сделать Экспорт из репозитория в любую папку. Для этого нужно в пустой папке в проводнике нажать ПКМ и выбрать в меню TortoiseSVN/Экспорт… Там ввести полную ссылку на репозиторий из строки броузера (вместе с https). При этом в папку по умолчанию попадёт последняя ревизия всех проектов.
0
Спасибо, попробую экспортировать.
0
Кроме TortoiseSVN можно использовать любой другой клиент. Если полноценно работать с SVN не собираешься — лучше всего установить консольный клиент и получить копию командой
svn co https://mysvn.ru/avr/templates/ templates

Если шаблоны обновятся, то для получения самой свежей версии не потребуется качать заново — достаточно выполнить в папке с шаблонами команду
svn update
0
Я бы рекомендовал всё-таки экспортом сливать, т.е. такой командой:
svn export https://mysvn.ru/avr/templates/ templates

Так можно иметь не привязанную копию и препарировать её по своему усмотрению для изучения, а потом уже где-нить рядышком положить рабочую копию.
0
Да, так тоже можно. Я не пользуюсь этим вариантом только потому, что хочу сохранить возможность обновиться по svn update. Ну и в полноценной РК можно всегда откатиться к оригиналу командой svn revert, если случайно закосячил.
0
Вы бы файлы шаблонов зазипировали и куда нибудь положили! С GDB пробовали работать из под VS? Может статью набацаете как работать с ARM-ами и GCC из под VS? Как make file настраивать под VS? И с отладчиком научить работать. Ошибки компиляции по строкам определяются в редакторе VS? То же бы парсер настроить.
0
Ребята прикрутили GDB к VS visualgdb.com/, — платная, но я сам не проверял, по некоторым отзывам сыровата, кто то пробовал с ней работать?
P.S. про скачивание шаблонов — уже вижу с помощью svn предлагаете.
0
в ссылку запятая забралась!
0
На счёт ARM'ов я пока не специалист. Будет опыта столько же, как с AVR, напишу. Работу с makefile можно посмотреть на примере моих шаблонных проектов. Там нужно просто в настройках проекта задать три внешние команды и всё (build, build all, clean), а уж как вы их вызывать будете то ваше дело. Компиляция определяется по регулярному выражению для строки, если есть совпадение, то Студия «видит» ошибку. Она и так их видит, но строку перехода не определяет, т.к. у неё регулярка не рассчитана на работу с форматом вывода gnu (отличие буквально либо в запятой, либо в двоеточии, я не помню уже).

Что же касается GDB в VS, то мне этого не нужно. Я представляю как это может выглядеть и именно поэтому оно мне не нужно. Могу привести такой недавний пример одного товарища, который настолько уверовал в непогрешимость GDB + Eclipse, что, когда я ему указал на явную ошибочность его утверждения, он пропустил это мимо ушей. Я ему это даже доказал по его же просьбе и всё равно это на него не повлияло. Поэтому я с тех пор осторожно отношусь в людям, которое свято пропагандируют такую связку.

Зашёл я как-то по вот этой ссылке: Eclipse+AVR+ARM: первые шаги. Часть шестая.
Там в конце статьи есть такой абзац:
Зато есть одно несомненное преимущество данного вида отладки: ни студия, ни протеус не позволяют вести отладку C++-проектов, а для GDB и Eclipse — это раз плюнуть. Такие вот итоги этой огромной статьи.

Самое для меня смешное было вот это: Такие вот итоги этой огромной статьи.

Ниже в комментариях я ему написал, что итоги не верные. Ему это не понравилось. Я написал и показал на пальцах на форуме целых 3 варианта отладки C++ проекта без Eclipse: ТЕМА: Eclipse+AVR+ARM: первые шаги. Часть шестая.

Как видно, такая демонстрация не убедила эклиповца в своих выводах. Мои шаблонные проекты можно отлаживать примерно 5-ю способами (симуляция или железо) без использования Eclipse + GDB, поэтому я и говорю, что мне пока этого хватает, т.е. используя:
— AVR Studio (симуляция и отладка в железе),
— Atmel Studio (симуляция),
— Proteus сам по себе (симуляция с виртуальным железом),
— Proteus в связке с AVR Studio (симуляция с виртуальным железом),
— IAR (симуляция и отладка в железе).

Спрашивается: Зачем мне ещё одна очередная связка, если она заведомо хуже вышеупомянутых (для AVR)?
0
Спрашивается: Зачем мне ещё одна очередная связка, если она заведомо хуже вышеупомянутых (для AVR)?
Не АВРом единым :)
GDB == стандарт. АВРстудия — частная поделка.
0
Когда я вижу реализацию отладки в Eclipse (меня это раздражает, т.к. я привык к более полной информации в стиле студии) и такую же в IAR или AVR Studio, то у меня создаётся впечатление, что стандарт — это то, во что вкладываются деньги и благодаря чему и получается результат. Что мне от того, что Eclipse можно с GDB связать? По факту ведь это и есть «поделка» по сравнению с оригинальным софтом. Да и как можно назвать родной софт поделкой?

Не AVR'ом единым — тут я не спорю, но факт остаётся фактом. Отладка в железе у IAR и AVR Studio более качественная, чем в связке Eclipse + GDB. К тому же студия бесплатная.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.