Еще одна тема для новичков, в которой пойдет речь о базовых инструментах SFDC разработчика.
В первую очередь это три инструмента:
(1) Developer Console;
(2) VisualForce Console, открывается при редактировании APEX стрницы;
(3) Force.com IDE на базе Eclipse.
И не забываем о еще трех специализированных инструментах:
(4) ANT – MetaData migration;
(5) Data Loader – Data migration;
(6) WorkBench – как я понял, это для работы с WEB сервисами.
Какие-то еще инструменты, утилиты?
Но в данной теме речь о первых трех: Developer Console, VisualForce Console и Force.com IDE.
Они не похожи, но есть в их возможностях и схожие моменты.
Вопрос к опытных коллегам:
- В каких случаях, для каких работ, в каких ситуациях лучше использовать тот или иной инструмент?
- Какими уникальными возможностями обладают эти инструменты (т. е. что-то можно сделать только в нем, и никак иначе)?
Спасибо
В своей работе я в основном использую:
- Force.com IDE (Eclipse) - для разработки
- Ant - для переноса кода
- Setup->Logs->Debug Log для отладки
VisualForce Console (Development mode для Visualforce страниц) не использую и не советую использовать потому что очень часто ломаются javascript скрипты добавленные на страницу. Не помню точно что там Salesforce делает, но редиректы на js ломают страницу.
Тоже самое и про редактирование страницы и apex классов в браузере (Setup->Develop->Classes, Pages). Это плохой тон. К тому же уже появились слухи что Salesforce планирует перенести все редактирование кода в developer console. Так что вполне возможно, что проснувшись завтра утром вы не найдете привычные пункты в Setup.
Developer Console - меня очень давно не радует. Она у меня чаще НЕработает, чем работает. Salesforce постоянно ее меняют и пытаются улучшить, но результат пока один - все только еще хуже работает. Для целей отладки я использую Setup->Logs->Debug Log. Из преимуществ: быстрота, можно указать конкретного пользователя от которого получать логи и можно долго хранить логи (удаляются они вручную).
Data Loader и Workbench - использовал пару раз, но мой спектр задач пока обходит миграцию данных стороной.
MavensMate - возлагаю на него большие надежды, но пока он в стадии активной разработки его ненадежность только расстраивает.
Уважаемый Дмитрий, спасибо за обстоятельные и подробные ответы на мои вопросы.
Мне несколько неловно, что идет разговор двух человек и я заставляю Вас отвечать за мои вопросы. Но надеюсь, что эти темы будут полезны не только мне, но и другим людям, кто пойдет по нашим следам, и таким образом мы создаем библиотеку знаний и опыта. И пока единственное, что я могу вложить в это дело — это задавать вопросы, которые у меня не иссякают... Также прошу других участвников без колебаний участвовать в обсуждениях: информации о SFDC на русском настолько мало, что любой опыт — удачный или не удачный — может оказаться очень полезным для коллег. Спасибо
И по-теме обсуждения:
вот только вчера увидел, что в Эклипс можно кверить дату в текущем проекте! Это здорово!
Пока одно серьезно не устраивает в Эклипс: не могу визуализировать результат текущей работы с VisualForce и HTML/CSS/JS в целом.
Например, что бы увидеть результат работы в VisaulForce Console достаточно нажать Ctrl S. Как это организовать в Эклипсе - не знаю.
Спасибо Den Brown за благодарность. Вопросы пиши, это только приветствуется!
Правильно заметил что общее дело делаем.
Есть вопросы, есть ответы, и кому надо, те найдут и воспользуются информацией.
Не совсем понятно, про что это ты. Расскажи немного подробнее.
Нет этого в Эклипсе и честно не надо! Все эти модные штучки - только привязывают к конкретному инструменту. Потом только тяжелее будет.
Изменил страницу -> сохранил -> открыл (перезагрузил) страницу в браузере. Как по мне самый оптимальный вариант.
С Salesforce это не так заметно, но вот на других платформах мне кажется это очень важный фактор.
А то засядут за свои студии, а как поменять файл на лету через ssh на сервере уже целая проблема.
К хорошему привыкаешь быстро.
!!! Совсем забыл про Firebug (Dev Console в chrome). Без них я как без рук и пользуюсь наверное чаще чем инструментами, указанными выше.
Я, можно сказать случайно, кликнул на salesforce.schema файл в папке проекта в окне Package Explorer Эклипса и открылось два окошка: одно Schema - много полезной инфы там, и второе - совсем замечательное Query Results. Это как Database Explorer окошко в Visual Studio - можно кверить дату.
А, ну да. Очень полезная штука, тоже пользуюсь постоянно. Хотя мне жудко не нравится что нельзя скопировать результаты запроса в буфер обмена.
А чего только "можно кверить дату"? Там все можно кверить вроде как.
После долгих проб и ошибок с разными инструментами. Пришлось разработать свой пакет для упрощения повседневных действий. Но в принципе 90% решаемых задач позволяет решить или сам салесфорс или воркбенч. Почему не люблю Ант ? потому что не всегда приходится работать со своего компьютера на котором есть все необходимое, поэтому и делается упор на разнообразные онлайн сервисы. В частности есть неплохой сервис по миграции данных dataloader.io.
По поводу работать на разных компах - салесфорсе предоставляет возможность работать только через браузер и в этом большой плюс, но мне кажется это только ухудшает сам процесс разработки и делает разработчиков менее качественными. Сравнить с теми же java, php, ruby разработчиками. У них нет такой возможности работать через браузер, поэтому у них уровень саморазвития на голову выше (это сугубо личное мнения и сужу я по себе).
Мне тут довелось поработать на не salesforce проектах и скажу что я оказался дубом в простейших технологиях, которые оказывается знают все: развертывание и администрироваие linux серверов, баз данных, системы контроля версий, деплоймент кода. По сравнению со всем этим Ant оказывается детской игрушкой
Это я все к тому что все-таки веб технологии никогда не догонят и не заменят десктопные решения.
Кстати на тему полезных инструментов!
Недавно Salesforce подкинул подлянку и убрал колонку Code coverage со страницы с классами и перенес статистику в developer console. А там code coverage либо не работает, либо работает криво. По крайней мере я еще не встречал программиста, который бы остался довольным этими нововведениями.
В общем тут у нас в тесном кругу нашей фирмы были разработаны два консольных (java и python) приложения, которые вытягивают список всех классов и триггеров с текущим покрытием тестами (code coverage). Функционал минимальный, но получается очень наглядно и можно оценить общее состояние по тестам на орге, !в том числе увидеть незатронутые классы и триггеры с 0 покрытием (мне этого именно и не хватало).
в ближайшее время я постараюсь причесать python вариант и подарить сообществу :)
Для работы с разметкой в VF окне я поворачиваю монитор вертикально и все ок. Привык и очень удобно.
Но из головы не выходят слова Дмитрия из статьи в блоге, что только Эклипс, только Эклипс - а внутри-браузерные SF тулсы только если заночевал на запасном аэродроме.
В общем попробовал сегодян Эклипс не для бек-кодинга, а для разметки.
(1) я так понял, изначально файл сохраняется только локально, но если ты ему раз укажешь сохраниться на сервер, то он будет сохраняться и на сервер.
(2) Static Resource - это ОЧЕНЬ важно при разметке (если подключаешь туда всяко-разно JSного и стильного). И очень ожидаемо что я имею доступ к этим файлам в Эклипсе. Но эти файлы в Эклипсном навигаторе пытаются открыться как картинки!
(3) Нет ли в Эклипсе такой славной ссылки как в VF окне "Component Reference"?
ps:
и вот такую ошибку получаю когда пытаюсь сохранить пример разметки взятой из "Component Reference":
Multiple annotations found at this line:
- File only saved locally, not to server
- Save error: Conflict found while preparing to save 'standtabstest.page' to server. Remote instance has been updated since last save or sync. Use the Synchronize Perspective to resolve the conflict.
и при этом таже разметка сохраняется в VF окне без проблем. Я совсем не доволен. Поворачиваю экран вертикально.
Что-то очень странный пост Den Brown ты написал:
Что значит это :
(1) Не надо ничего указывать сохранять на сервер. Если проект Force.com в эклипс сделан правильно, то все новые (или вытянутые с орга) классы, страницы по нажатии ctrl+s будут автоматически отправляться на орг и в случае ошибки информация будет показана панеле ошибок внизу.
(2) Static Resources вешь хорошая и по правилам программного этикета туда нужно складывать js и css. Но я больше склоняюсь хранить js и css в коде страницы (вернее base template). В конечном итоге (после фазы активной разработки) обычно эти части оптимизируются и выносятся в статик ресурсы (но не всегда
). Зато все под рукой, не надо прыгать по куче файлов, особенно когда статик ресурсы хранятся в zip архиве
На счет того что у тебя статик ресурсы открываются как картинки очень интересной поведение. Обычно их можно редактировать как обычные текстовые файлы (вот скриншот для примера). Попробуй порыться в настройках eclipse.
(3)"Component Reference" - что-то не припомню такого. Инструмент может быть и полезный, но по ходу без него можно обходиться
Да кликаю в эклипсе на ресурс содержаший JS - windows запускает просмотрщик картинок...
потихоньку разбираюсь с Eclipse.
Подскажите, какие еще плагины\перспективы кроме Force.com вы используете в работе и в чем их помощь:
(1) плагины, которые используете непосредственно для SFDC разработки;
(2) другие плагины полезные для разработчика.
а дебажить APEX код классичесим способом - пошагово, с точками останова - возможно?
мой неклассический способ дебажить - это гонять код в Execute Anonimous и смотреть, что в систем-дебагах...
спасибо.
PS не могу понять, а чем отличаются между собой боковые панели Package Explorer and Navigator?
я использую Emmet, AnyEdit, Egit. Вполне хватает для force.com
потихоньку осваиваю Эклипс.
Нашел в нем View Внутренний браузер.
Вы пользуетесь им, когда например делаете фронт-енд кастомной странице, чтобы видеть результат "не выходя" из Эклипса?