Регистрация  |  Вход

Зачем нужна IDE разработчикам Salesforce?

Доброго времени суток всему сообществу разработчиков Salesforce.

Краткий ликбез

Все вопросы нацелены на получение общего представления о рабочем процессе. Основная задача - не углубляясь в детали, получить представление о том для чего используется Salesforce, какого рода задачи решаются с помощью этой платформы и какие инструменты для этого предоставлены. Больше всего меня интересует язык программирования Apex и все что с ним связано.

Вопросы

Хотел обратиться к вам со следующими вопросами:

1)Насколько я понял одной из ключевых концепций является "No Codding", так ли это? В каких случаях и как часто Вам приходилось использовать Apex?

2)Для чего вы используете meta.xml? Приходится ли вам их править вручную?

3)При создании нового проекта вы импортируете все, что есть в вашей организации? (все доступные триггеры и классы) или не импортируете ничего, а только добавляете новое? Как происходит процесс добавления нового триггера, класса? Какие существуют нюансы командной разработки.

4)Пользуетесь ли вы системами контроля версий, в частности Git? Каким вы видите этот процесс?

5)Salesforce API позволяет выкачать доступные sObjects в виде xml (файлы с расширением .object в Eclipse), правите ли вы их вручную? Для чего вы можете их себе импортировать локально?

Благодарю за внимание.

Доброго времени суток всему сообществу разработчиков Salesforce.

[b]Краткий ликбез[/b]

Все вопросы нацелены на получение общего представления о рабочем процессе. Основная задача - не углубляясь в детали, получить представление о том для чего используется Salesforce, какого рода задачи решаются с помощью этой платформы и какие инструменты для этого предоставлены. Больше всего меня интересует язык программирования Apex и все что с ним связано.
 
[b]Вопросы[/b]

Хотел обратиться к вам со следующими вопросами:

1)Насколько я понял одной из ключевых концепций является "No Codding", так ли это? В каких случаях и как часто Вам приходилось использовать Apex? 

2)Для чего вы используете meta.xml? Приходится ли вам их править вручную? 

3)При создании нового проекта вы импортируете все, что есть в вашей организации? (все доступные триггеры и классы) или не импортируете ничего, а только добавляете новое? Как происходит процесс добавления нового триггера, класса? Какие существуют нюансы командной разработки.

4)Пользуетесь ли вы системами контроля версий, в частности Git? Каким вы видите этот процесс?

5)Salesforce API позволяет выкачать доступные sObjects в виде xml (файлы с расширением .object в Eclipse), правите ли вы их вручную? Для чего вы можете их себе импортировать локально? 

Благодарю за внимание.

Предлагаю собрать ответы на все эти вопросы в виде статьи и сделать из неё статью.

1. Типовые задачи малого бизнеса почти всегда можно решить без кодирования. Но если у вас достаточно сложный бизнес процесс, то без кодирования трудно обойтись.

2. Лично я эти файлы использую что бы что-то исправить.

3. Все зависит от необходимости. Иногда все выкачиваю но чаще только то что нужно.
В последнее время ИДЕ работает просто ужасно, поэтому новые классы и триггеры создаю через веб.
При коллективной разработке есть море нюансов. Тема для отдельной статьи.

4. Смотри ответ выше.

5. Правлю и частенько особенно когда делаю деплой на другой орг.

Предлагаю собрать ответы на все эти вопросы в виде статьи и сделать из неё статью.

1. Типовые задачи малого бизнеса почти всегда можно решить без кодирования. Но если у вас достаточно сложный бизнес процесс, то без кодирования трудно обойтись.

2. Лично я эти файлы использую что бы что-то исправить.

3. Все зависит от необходимости. Иногда все выкачиваю но чаще только то что нужно.
В последнее время ИДЕ работает просто ужасно, поэтому новые классы и триггеры создаю через веб.
При коллективной разработке есть море нюансов. Тема для отдельной статьи.

4. Смотри ответ выше.

5. Правлю и частенько особенно когда делаю деплой на другой орг.

wilder
Предлагаю собрать ответы на все эти вопросы в виде статьи и сделать из неё статью.

1. Типовые задачи малого бизнеса почти всегда можно решить без кодирования. Но если у вас достаточно сложный бизнес процесс, то без кодирования трудно обойтись.

2. Лично я эти файлы использую что бы что-то исправить.

3. Все зависит от необходимости. Иногда все выкачиваю но чаще только то что нужно.
В последнее время ИДЕ работает просто ужасно, поэтому новые классы и триггеры создаю через веб.
При коллективной разработке есть море нюансов. Тема для отдельной статьи.

4. Смотри ответ выше.

5. Правлю и частенько особенно когда делаю деплой на другой орг.

2. По умолчанию meta.xml содержит только API Version(После создания нового класса в Force.com IDE). Если почитать документацию про meta.xml мы увидим такие поля как namespace и fullName.

"fullName" соответствует имени класса (почему он не задается по умолчанию?) и при каких обстоятельствах вы задаете его вручную? С namespace более менее понятно из документации, есть ли какие то нюансы которые там не описаны и не показаны здесь?

4. Я выкачивал готовые проекты с GitHub. К примеру этот. С помощью какого инструмента я могу задеплоить объекты, классы и триггеры с этого проекта на свой орг неймспейс? Я как понимаю тут может помочь Ant Migration Tools или я не прав?

5. Я встречал такой meta.xml файл:

<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>28.0</apiVersion>
<packageVersions>
<majorNumber>3</majorNumber>
<minorNumber>0</minorNumber>
<namespace>npe01</namespace>
</packageVersions>
<packageVersions>
<majorNumber>3</majorNumber>
<minorNumber>1</minorNumber>
<namespace>npo02</namespace>
</packageVersions>
<status>Active</status>
</ApexClass>

Документация гласит что

packageVersions - The list of installed managed package versions that are referenced by this Apex class.

Внутри этого класса создается такая локальная переменная

npo02__Households_Settings__c hs = UTIL_CustomSettingsFacade.getHouseholdsSettings();

Насколько я понял если не прописать в meta.xml packageVersions зависимость на namespace npo02 - компилятор будет выдавать что-то в духе "Cannot resolve 'npo02__Households_Settings__c'. Зависимости на эти неймспейсы надо прописывать вручную? или IDE или веб консоль делает это автоматически?

[quote="wilder"]Предлагаю собрать ответы на все эти вопросы в виде статьи и сделать из неё статью.

1. Типовые задачи малого бизнеса почти всегда можно решить без кодирования. Но если у вас достаточно сложный бизнес процесс, то без кодирования трудно обойтись.

2. Лично я эти файлы использую что бы что-то исправить.

3. Все зависит от необходимости. Иногда все выкачиваю но чаще только то что нужно.
В последнее время ИДЕ работает просто ужасно, поэтому новые классы и триггеры создаю через веб.
При коллективной разработке есть море нюансов. Тема для отдельной статьи.

4. Смотри ответ выше.

5. Правлю и частенько особенно когда делаю деплой на другой орг.[/quote]

2. По умолчанию meta.xml содержит только API Version(После создания нового класса в Force.com IDE). Если почитать [url=http://www.salesforce.com/us/developer/docs/api_meta/Content/meta_classes.htm]документацию[/url] про meta.xml мы увидим такие поля как namespace и fullName. 

"fullName" соответствует имени класса (почему он не задается по умолчанию?) и при каких обстоятельствах вы задаете его вручную? С namespace более менее понятно из документации, есть ли какие то нюансы которые там не описаны и не показаны [url=https://help.salesforce.com/HTViewHelpDoc?id=register_namespace_prefix.htm&language=en_US]здесь[/url]? 

4. Я выкачивал готовые проекты с GitHub. К примеру [url=https://github.com/financialforcedev/fflib-apex-common]этот[/url]. С помощью какого инструмента я могу задеплоить объекты, классы и триггеры с этого проекта на свой орг неймспейс? Я как понимаю тут может помочь Ant Migration Tools или я не прав?

5. Я встречал такой meta.xml файл: 

[code]<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>28.0</apiVersion>
    <packageVersions>
        <majorNumber>3</majorNumber>
        <minorNumber>0</minorNumber>
        <namespace>npe01</namespace>
    </packageVersions>
    <packageVersions>
        <majorNumber>3</majorNumber>
        <minorNumber>1</minorNumber>
        <namespace>npo02</namespace>
    </packageVersions>
    <status>Active</status>
</ApexClass>[/code]

Документация гласит что [quote]packageVersions - The list of installed managed package versions that are referenced by this Apex class.[/quote]

Внутри этого класса создается такая локальная переменная 
[code]npo02__Households_Settings__c hs = UTIL_CustomSettingsFacade.getHouseholdsSettings();[/code]

Насколько я понял если не прописать в meta.xml packageVersions зависимость на namespace npo02 - компилятор будет выдавать что-то в духе "Cannot resolve 'npo02__Households_Settings__c'. Зависимости на эти неймспейсы надо прописывать вручную? или IDE или веб консоль делает это автоматически?


Очень интересные у вас вопросы, Michael. Вы не с той стороны пошли изучать Salesforce.
Все моменты разработки в Salesforce можно понять сделав задание по Workbook. Времени уйдет наверное полдня-день зато все аспекты, где используется код поймете.

Я разработчик, Вот мои вот ответы:

Michael
1)Насколько я понял одной из ключевых концепций является "No Codding", так ли это? В каких случаях и как часто Вам приходилось использовать Apex?

Приходится использовать часто, очень часто. Salesforce предоставляет очень много функционала из коробки, но чтобы его использовать заказчик должен его изучить, понять принципы, философию. А обычно как происходит - покупается Salesforce и ставятся требования "хотим это". Конечно можно долго объяснять что можно использовать из коробки, зачем нужно то или это, а вот это сделать сложно. В таких случаях проще это дело закодировать отдельной страницей (функционалом), тем более что это не сложно и в Salesforce для этого все есть (в Enterprise Edition и выше).

Michael
Для чего вы используете meta.xml? Приходится ли вам их править вручную?

Ни для чего не использую. Это уже совсем из области высшего программирования. В 99% случаев можно обойтись без них и использовать Setup раздел самого salesforce.

Michael
3)При создании нового проекта вы импортируете все, что есть в вашей организации? (все доступные триггеры и классы) или не импортируете ничего, а только добавляете новое? Как происходит процесс добавления нового триггера, класса? Какие существуют нюансы командной разработки.

Обычно импортирую что нужно править. Раньше импортировал все. Разницы нет, только много лишнего будет болтаться в проекте. Создаю новые элементы прямо в Force.com IDE.

Michael
4)Пользуетесь ли вы системами контроля версий, в частности Git? Каким вы видите этот процесс?

Использую везде. если у клиента есть система контроля версий, подключаюсь и использую ее. В большинстве случаем использую локальный репозиторий git чисто для себя в целях не "прое...ть" что-нибудь.

Michael
5)Salesforce API позволяет выкачать доступные sObjects в виде xml (файлы с расширением .object в Eclipse), правите ли вы их вручную? Для чего вы можете их себе импортировать локально?

Не импортирую, не использую в Force.com IDE. Все прекрасно изменяется в самом Salesforce.

Michael
Основная задача - не углубляясь в детали, получить представление о том для чего используется Salesforce, какого рода задачи решаются с помощью этой платформы и какие инструменты для этого предоставлены.

Salesforce используется в основном для автоматизации бизнес процессов. Использует кто как. Если заказчик потратил время и деньги на изучение данной платформы, то большая часть тасков решается стандартным функционалом. Если надо что-то нестандартное то в код идут Apex, Visualforce, API и куча куча всего. Для программирования используются Force IDE на базе Eclipce (официально от Salesforce) или сейчас набирает популярность MavensMate. Большая часть работы (настройки) производится в разделе Setup через браузер.

Очень интересные у вас вопросы, Michael. Вы не с той стороны пошли изучать Salesforce.
Все моменты разработки в Salesforce можно понять сделав задание по Workbook. Времени уйдет наверное полдня-день зато все аспекты, где используется код поймете.

Я разработчик, Вот мои вот ответы:
[quote="Michael"]1)Насколько я понял одной из ключевых концепций является "No Codding", так ли это? В каких случаях и как часто Вам приходилось использовать Apex?[/quote]
Приходится использовать часто, очень часто. Salesforce предоставляет очень много функционала из коробки, но чтобы его использовать заказчик должен его изучить, понять принципы, философию. А обычно как происходит - покупается Salesforce и ставятся требования "хотим это". Конечно можно долго объяснять что можно использовать из коробки, зачем нужно то или это, а вот это сделать сложно. В таких случаях проще это дело закодировать отдельной страницей (функционалом), тем более что это не сложно и в Salesforce для этого все есть (в Enterprise Edition и выше).

[quote="Michael"]Для чего вы используете meta.xml? Приходится ли вам их править вручную?[/quote]
Ни для чего не использую. Это уже совсем из области высшего программирования. В 99% случаев можно обойтись без них и использовать Setup раздел самого salesforce.

[quote="Michael"]3)При создании нового проекта вы импортируете все, что есть в вашей организации? (все доступные триггеры и классы) или не импортируете ничего, а только добавляете новое? Как происходит процесс добавления нового триггера, класса? Какие существуют нюансы командной разработки.[/quote]
Обычно импортирую что нужно править. Раньше импортировал все. Разницы нет, только много лишнего будет болтаться в проекте. Создаю новые элементы прямо в Force.com IDE.

[quote="Michael"]4)Пользуетесь ли вы системами контроля версий, в частности Git? Каким вы видите этот процесс?[/quote]
Использую везде. если у клиента есть система контроля версий, подключаюсь и использую ее. В большинстве случаем использую локальный репозиторий git чисто для себя в целях не "прое...ть" что-нибудь.

[quote="Michael"]5)Salesforce API позволяет выкачать доступные sObjects в виде xml (файлы с расширением .object в Eclipse), правите ли вы их вручную? Для чего вы можете их себе импортировать локально?[/quote]
Не импортирую, не использую в Force.com IDE. Все прекрасно изменяется в самом Salesforce.

[quote="Michael"]Основная задача - не углубляясь в детали, получить представление о том для чего используется Salesforce, какого рода задачи решаются с помощью этой платформы и какие инструменты для этого предоставлены.[/quote]
Salesforce используется в основном для автоматизации бизнес процессов. Использует кто как. Если заказчик потратил время и деньги на изучение данной платформы, то большая часть тасков решается стандартным функционалом. Если надо что-то нестандартное то в код идут Apex, Visualforce, API и куча куча всего. Для программирования используются Force IDE на базе Eclipce (официально от Salesforce) или сейчас набирает популярность MavensMate. Большая часть работы (настройки) производится в разделе Setup через браузер.  

Michael
2. По умолчанию meta.xml содержит только API Version(После создания нового класса в Force.com IDE). Если почитать документацию про meta.xml мы увидим такие поля как namespace и fullName.
...

Все что в этом сообщении ниже - это все из области высшего пилотажа. Если разобраться с основами, то таких вопросов (когда до них дойдет очередь) не будет. Изучите (пройдите) workbooks от Salesforce. Рыться в xml это не Salesforce style, это больше для гуру.

[quote="Michael"]2. По умолчанию meta.xml содержит только API Version(После создания нового класса в Force.com IDE). Если почитать документацию про meta.xml мы увидим такие поля как namespace и fullName.
...
[/quote]

Все что в этом сообщении ниже - это все из области высшего пилотажа. Если разобраться с основами, то таких вопросов (когда до них дойдет очередь) не будет. Изучите (пройдите) workbooks от Salesforce. Рыться в xml это не Salesforce style, это больше для гуру.

Michael
5. Я встречал такой meta.xml файл:

<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>28.0</apiVersion>
<packageVersions>
<majorNumber>3</majorNumber>
<minorNumber>0</minorNumber>
<namespace>npe01</namespace>
</packageVersions>
<packageVersions>
<majorNumber>3</majorNumber>
<minorNumber>1</minorNumber>
<namespace>npo02</namespace>
</packageVersions>
<status>Active</status>
</ApexClass>
Документация гласит что


packageVersions - The list of installed managed package versions that are referenced by this Apex class.
Внутри этого класса создается такая локальная переменная

npo02__Households_Settings__c hs = UTIL_CustomSettingsFacade.getHouseholdsSettings();


Этот xml говорит о том, что код, который вы импортируете зависит от пакетов npe01 (версии 3.0) и npo02 (версии 3.1). так же это видно по коду npo02__Households_Settings__c (префикс пакета npo02__).

т.е. ставите эти пакеты себе на орг (из AppExchange возможно) и только после этого у вас получится залить код из примера на орг.

Если у вас на орге стоят (или удалось найти) версии более поздней версии, то в meta.xml можно поменять версии пакетов зависимостей.

[quote="Michael"]5. Я встречал такой meta.xml файл:

<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>28.0</apiVersion>
    <packageVersions>
        <majorNumber>3</majorNumber>
        <minorNumber>0</minorNumber>
        <namespace>npe01</namespace>
    </packageVersions>
    <packageVersions>
        <majorNumber>3</majorNumber>
        <minorNumber>1</minorNumber>
        <namespace>npo02</namespace>
    </packageVersions>
    <status>Active</status>
</ApexClass>
Документация гласит что


packageVersions - The list of installed managed package versions that are referenced by this Apex class.
Внутри этого класса создается такая локальная переменная 

npo02__Households_Settings__c hs = UTIL_CustomSettingsFacade.getHouseholdsSettings();[/quote]


Этот xml говорит о том, что код, который вы импортируете зависит от пакетов npe01 (версии 3.0) и npo02 (версии 3.1). так же это видно по коду npo02__Households_Settings__c (префикс пакета npo02__).

т.е. ставите эти пакеты себе на орг (из AppExchange возможно) и только после этого у вас получится залить код из примера на орг.

Если у вас на орге стоят (или удалось найти) версии более поздней версии, то в meta.xml можно поменять версии пакетов зависимостей.

Dmitry Shnyrev
Michael
2. По умолчанию meta.xml содержит только API Version(После создания нового класса в Force.com IDE). Если почитать документацию про meta.xml мы увидим такие поля как namespace и fullName.
...

Все что в этом сообщении ниже - это все из области высшего пилотажа.

Я очень часто использую эти файлы что бы поднять API version для всего проекта сразу.

[quote="Dmitry Shnyrev"][quote="Michael"]2. По умолчанию meta.xml содержит только API Version(После создания нового класса в Force.com IDE). Если почитать документацию про meta.xml мы увидим такие поля как namespace и fullName.
...
[/quote]

Все что в этом сообщении ниже - это все из области высшего пилотажа. [/quote]

Я очень часто использую эти файлы что бы поднять API version для всего проекта сразу.

wilder
Я очень часто использую эти файлы что бы поднять API version для всего проекта сразу.

Это ты имеешь в виду для разработки managed package?

[quote="wilder"]Я очень часто использую эти файлы что бы поднять API version для всего проекта сразу.[/quote]
Это ты имеешь в виду для разработки managed package?

Немного опережу твой ответ, wilder.
Если имеешь дело с пакетами, особенно их разработкой и публикацией, то, да, с xml придется сталкиваться.
Но это частный случай разработки на Salesforce - это тема разработки своего приложения для продажи. В большинстве случаев клиентам надо просто допилить какой-то функционал на орге. Тогда никаких версий пакетов не будет и xml не понадобится

Немного опережу твой ответ, wilder.
Если имеешь дело с пакетами, особенно их разработкой и публикацией, то, да, с xml придется сталкиваться.
Но это частный случай разработки на Salesforce - это тема разработки своего приложения для продажи. В большинстве случаев клиентам надо просто допилить какой-то функционал на орге. Тогда никаких версий пакетов не будет и xml не понадобится :) 

т.е. ставите эти пакеты себе на орг (из AppExchange возможно) и только после этого у вас получится залить код из примера на орг.

Если у вас на орге стоят (или удалось найти) версии более поздней версии, то в meta.xml можно поменять версии пакетов зависимостей.

Да, я в курсе про Exchange. Вопрос был в том, что если мы поставили пакеты себе на орг и где-то используем классы из орг-а, то в meta.xml человек вручную это прописал? Или это добавляется автоматически. И что будет если удалить все из meta.xml - будет ли работать ? Конечно на этот вопрос я могу ответить себе сам, проделав это на практике. Но может вы с этим уже сталкивались и подскажете зачем там эта запись, может есть еще какие нюансы? Возможно ли, что человек ее прописывает вручную - для того чтобы, если вдруг кто-то попытается удалить этот пакет из нашего орга, - ему скажет что нельзя, т.к это используется там-то и там-то?

Если имеешь дело с пакетами, особенно их разработкой и публикацией, то, да, с xml придется сталкиваться.
Но это частный случай разработки на Salesforce - это тема разработки своего приложения для продажи. В большинстве случаев клиентам надо просто допилить какой-то функционал на орге. Тогда никаких версий пакетов не будет и xml не понадобится

А как много в мире Salesforce разработчиков, можно ли где то посмотреть статьи? я пытался что-нибудь найти но безуспешно. Хочу понять насколько эта технология сейчас в тренде. Понятное дело что в России не очень, но меня больше интересует западный рынок.

Изучите (пройдите) workbooks от Salesforce. Рыться в xml это не Salesforce style, это больше для гуру.

Ну я прошел тот Workbook который вы здесь показывали.
Я создал пару кастомных обжектов, парочку табов. Написал вспомогательный класс который достает мне все имена моего продукта и использовал его в триггере, чтобы выдавать ошибку если мы пытаемся добавить дубликат. Но это вроде все очень просто, я бы хотел больше понять возможный workflow.

1) Выстраиваете ли вы иерархию между классами, или это не совсем актуально для Апекса? И все прочие плюшки от ООП. Когда необходимо использовать интерфейсы, какого рода задачи в этом случае могут стоять.

2) Как часто вы встречали проекты на Апексе, где хотя бы over 100+ классов (без учета тестовых классов), там есть все прелести ООП и т.д?

[quote]т.е. ставите эти пакеты себе на орг (из AppExchange возможно) и только после этого у вас получится залить код из примера на орг.

Если у вас на орге стоят (или удалось найти) версии более поздней версии, то в meta.xml можно поменять версии пакетов зависимостей.[/quote]

Да, я в курсе про Exchange. Вопрос был в том, что если мы поставили пакеты себе на орг и где-то используем классы из орг-а, то в meta.xml человек вручную это прописал? Или это добавляется автоматически. И что будет если удалить все из meta.xml - будет ли работать ? Конечно на этот вопрос я могу ответить себе сам, проделав это на практике. Но может вы с этим уже сталкивались и подскажете зачем там эта запись, может есть еще какие нюансы? Возможно ли, что человек ее прописывает вручную - для того чтобы, если вдруг кто-то попытается удалить этот пакет из нашего орга, - ему скажет что нельзя, т.к это используется там-то и там-то?

[quote]Если имеешь дело с пакетами, особенно их разработкой и публикацией, то, да, с xml придется сталкиваться.
Но это частный случай разработки на Salesforce - это тема разработки своего приложения для продажи. В большинстве случаев клиентам надо просто допилить какой-то функционал на орге. Тогда никаких версий пакетов не будет и xml не понадобится[/quote]

А как много в мире Salesforce разработчиков, можно ли где то посмотреть статьи? я пытался что-нибудь найти но безуспешно. Хочу понять насколько эта технология сейчас в тренде. Понятное дело что в России не очень, но меня больше интересует западный рынок.

[quote]Изучите (пройдите) workbooks от Salesforce. Рыться в xml это не Salesforce style, это больше для гуру.[/quote]

Ну я прошел тот Workbook который вы здесь показывали.
Я создал пару кастомных обжектов, парочку табов. Написал вспомогательный класс который достает мне все имена моего продукта и использовал его в триггере, чтобы выдавать ошибку если мы пытаемся добавить дубликат. Но это вроде все очень просто, я бы хотел больше понять возможный workflow.

1) Выстраиваете ли вы иерархию между классами, или это не совсем актуально для Апекса? И все прочие плюшки от ООП. Когда необходимо использовать интерфейсы, какого рода задачи в этом случае могут стоять.

2) Как часто вы встречали проекты на Апексе, где хотя бы over 100+ классов (без учета тестовых классов), там есть все прелести ООП и т.д?

если просто сделать воркбук то вопросы про meta.xml вряд ли сами возникнут
прямо сейчас salesforce востребована, компании на западе внедряют его повсюду потому что это приносит деньги и быстро. Автоматизировал рутину -> начал продавать больше или освободил рабочие места etc etc.
что будет дальше? сложно предсказать. Сейчас сектор развивается девелоперов ищут, готовы много платить, в Штатах то точно.

Ну и если заказчик нанимает меня на работу это подразумевает кодинг. 100% кодинг. Если бы не надо было кодить ему нужен был бы salesforce administrator а не developer - дешевле и проще найти.

если просто сделать воркбук то вопросы про meta.xml вряд ли сами возникнут :)
прямо сейчас salesforce востребована, компании на западе внедряют его повсюду потому что это приносит деньги и быстро. Автоматизировал рутину -> начал продавать больше или освободил рабочие места etc etc.
что будет дальше? сложно предсказать. Сейчас сектор развивается девелоперов ищут, готовы много платить, в Штатах то точно.

Ну и если заказчик нанимает меня на работу это подразумевает кодинг. 100% кодинг. Если бы не надо было кодить ему нужен был бы salesforce administrator а не developer - дешевле и проще найти.

Michael
Да, я в курсе про Exchange. Вопрос был в том, что если мы поставили пакеты себе на орг и где-то используем классы из орг-а, то в meta.xml человек вручную это прописал? Или это добавляется автоматически.

Все добавляется автоматически. Никто meta.xml ручками не делает. На счет удалить и что произойдет - если не ошибаюсь просто не сохранится, будет ругаться.

[quote="Michael"]Да, я в курсе про Exchange. Вопрос был в том, что если мы поставили пакеты себе на орг и где-то используем классы из орг-а, то в meta.xml человек вручную это прописал? Или это добавляется автоматически. [/quote]
Все добавляется автоматически. Никто meta.xml ручками не делает. На счет удалить и что произойдет :) - если не ошибаюсь просто не сохранится, будет ругаться.

Michael
А как много в мире Salesforce разработчиков, можно ли где то посмотреть статьи? я пытался что-нибудь найти но безуспешно. Хочу понять насколько эта технология сейчас в тренде. Понятное дело что в России не очень, но меня больше интересует западный рынок.

Ну рынок конечно очень специфический и намного меньше чем рынок того же ruby или python. Но в США и Канаде и в Англии спрос достаточно приличный. Посмотрите предложение по работе на основных рекрутинговых сайтах. Прелесть в том что разработчиков (толковых) еще меньше. Поэтому без работы точно остаться сложно (а с английским вообще нереально). На счет статей и списка разработчиков единственный официальный ресурс salesforce community, а так же куча мелких блогов на вордпрес. Недостатка с материалах вообще нет, информации много. Вот реальных спецов, которые делятся своими знаниями мало, ну и понятно - это же бизнес, бабки.

[quote="Michael"]А как много в мире Salesforce разработчиков, можно ли где то посмотреть статьи? я пытался что-нибудь найти но безуспешно. Хочу понять насколько эта технология сейчас в тренде. Понятное дело что в России не очень, но меня больше интересует западный рынок.[/quote]
Ну рынок конечно очень специфический и намного меньше чем рынок того же ruby или python. Но в США и Канаде и в Англии спрос достаточно приличный. Посмотрите предложение по работе на основных рекрутинговых сайтах. Прелесть в том что разработчиков (толковых) еще меньше. Поэтому без работы точно остаться сложно (а с английским вообще нереально). На счет статей и списка разработчиков единственный официальный ресурс salesforce community, а так же куча мелких блогов на вордпрес. Недостатка с материалах вообще нет, информации много. Вот реальных спецов, которые делятся своими знаниями мало, ну и понятно - это же бизнес, бабки. 

Michael
Ну я прошел тот Workbook который вы здесь показывали.
Я создал пару кастомных обжектов, парочку табов. Написал вспомогательный класс который достает мне все имена моего продукта и использовал его в триггере, чтобы выдавать ошибку если мы пытаемся добавить дубликат. Но это вроде все очень просто, я бы хотел больше понять возможный workflow.

1) Выстраиваете ли вы иерархию между классами, или это не совсем актуально для Апекса? И все прочие плюшки от ООП. Когда необходимо использовать интерфейсы, какого рода задачи в этом случае могут стоять.

2) Как часто вы встречали проекты на Апексе, где хотя бы over 100+ классов (без учета тестовых классов), там есть все прелести ООП и т.д?

Нету в Salesforce "красивых" ООП проектов на 100 классов. Уже эту тему здесь обсуждали. Некогда этим заниматься. Обычная задача стоит сделать страничку, показать данные, обработать, положить в базу. Не нужна здесь красота, а поэтому все примитивно и легко. Если нужна красота и мозги напрячь советую поискать что-то другое, например Go (сделать web приложение) вот где действительно придется мозгами покрутить чтобы сделать красиво. А Salesforce - это CRM, а apex это всего лишь маленький инструмент, который позволяет чуть-чуть подпилить основной функционал. И не нужен нам никакой ООП, если не хотите себе и заказчику жизнь испортить.

[quote="Michael"]Ну я прошел тот Workbook который вы здесь показывали. 
Я создал пару кастомных обжектов, парочку табов. Написал вспомогательный класс который достает мне все имена моего продукта и использовал его в триггере, чтобы выдавать ошибку если мы пытаемся добавить дубликат. Но это вроде все очень просто, я бы хотел больше понять возможный workflow.

1) Выстраиваете ли вы иерархию между классами, или это не совсем актуально для Апекса? И все прочие плюшки от ООП. Когда необходимо использовать интерфейсы, какого рода задачи в этом случае могут стоять.

2) Как часто вы встречали проекты на Апексе, где хотя бы over 100+ классов (без учета тестовых классов), там есть все прелести ООП и т.д?[/quote]

Нету в Salesforce "красивых" ООП проектов на 100 классов. Уже эту тему здесь обсуждали. Некогда этим заниматься. Обычная задача стоит сделать страничку, показать данные, обработать, положить в базу. Не нужна здесь красота, а поэтому все примитивно и легко. Если нужна красота и мозги напрячь советую поискать что-то другое, например Go (сделать web приложение) вот где действительно придется мозгами покрутить чтобы сделать красиво. А Salesforce - это CRM, а apex это всего лишь маленький инструмент, который позволяет чуть-чуть подпилить основной функционал. И не нужен нам никакой ООП, если не хотите себе и заказчику жизнь испортить.

Нету в Salesforce "красивых" ООП проектов на 100 классов. Уже эту тему здесь обсуждали. Некогда этим заниматься. Обычная задача стоит сделать страничку, показать данные, обработать, положить в базу. Не нужна здесь красота, а поэтому все примитивно и легко. Если нужна красота и мозги напрячь советую поискать что-то другое, например Go (сделать web приложение) вот где действительно придется мозгами покрутить чтобы сделать красиво. А Salesforce - это CRM, а apex это всего лишь маленький инструмент, который позволяет чуть-чуть подпилить основной функционал. И не нужен нам никакой ООП, если не хотите себе и заказчику жизнь испортить.

Если проекты довольно простые, то вот хочу вернуться к теме топика. Нужна ли IDE разработчикам? Все существующие являются open-source. Если будет IDE на порядок выше всех существующих, к примеру на базе Intellij Platform - но платная, и годовая лицензия будет стоить 50-80$ , перейдут на нее разработчики? Как вы считаете? Перешли бы Вы на такую IDE?

[quote]Нету в Salesforce "красивых" ООП проектов на 100 классов. Уже эту тему здесь обсуждали. Некогда этим заниматься. Обычная задача стоит сделать страничку, показать данные, обработать, положить в базу. Не нужна здесь красота, а поэтому все примитивно и легко. Если нужна красота и мозги напрячь советую поискать что-то другое, например Go (сделать web приложение) вот где действительно придется мозгами покрутить чтобы сделать красиво. А Salesforce - это CRM, а apex это всего лишь маленький инструмент, который позволяет чуть-чуть подпилить основной функционал. И не нужен нам никакой ООП, если не хотите себе и заказчику жизнь испортить.[/quote]

Если проекты довольно простые, то вот хочу вернуться к теме топика. Нужна ли IDE разработчикам? Все существующие являются open-source. Если будет IDE на порядок выше всех существующих, к примеру на базе Intellij Platform - но платная, и годовая лицензия будет стоить 50-80$ , перейдут на нее разработчики? Как вы считаете? Перешли бы Вы на такую IDE?

Dmitry Shnyrev
Но в США и Канаде и в Англии спрос достаточно приличный. Посмотрите предложение по работе на основных рекрутинговых сайтах.

easy, easy, boy.

реальное кол-во предложений на рынке труда намного меньше видимого.

вот представьте, одна приличная контора выставила вакансию на девелопера. И тут же 5-10 рекрутинговых агентств выставили такую же вакансию - чтобы найти подходящего человека и продать той приличной конторе.

так что большая часть тех объявлений который мы видим на западных сайтах - это многократные эхо нескольких реальных вакансий. так что реальное кол-во вакансй в 4-5 раз меньше. Но они конечно есть, и надеюсь будут только прибывать.

Michael
Если будет IDE на порядок выше всех существующих, к примеру на базе Intellij Platform - но платная, и годовая лицензия будет стоить 50-80$ , перейдут на нее разработчики? Как вы считаете? Перешли бы Вы на такую IDE?

думаю, что перешли бы, если

Michael
Если будет IDE на порядок выше всех существующих

[quote="Dmitry Shnyrev"]Но в США и Канаде и в Англии спрос достаточно приличный. Посмотрите предложение по работе на основных рекрутинговых сайтах.[/quote]

easy, easy, boy.

реальное кол-во предложений на рынке труда намного меньше видимого.

вот представьте, одна приличная контора выставила вакансию на девелопера. И тут же 5-10 рекрутинговых агентств выставили такую же вакансию - чтобы найти подходящего человека и продать той приличной конторе.

так что большая часть тех объявлений который мы видим на западных сайтах  - это многократные эхо нескольких реальных вакансий. так что реальное кол-во вакансй в 4-5 раз меньше. Но они конечно есть, и надеюсь будут только прибывать.

[quote="Michael"]Если будет IDE на порядок выше всех существующих, к примеру на базе Intellij Platform - но платная, и годовая лицензия будет стоить 50-80$ , перейдут на нее разработчики? Как вы считаете? Перешли бы Вы на такую IDE?[/quote]

думаю, что перешли бы, если [quote="Michael"]Если будет IDE на порядок выше всех существующих[/quote]

Если Иде удобная то 50-80 баксов в год не проблема.

Если Иде удобная то 50-80 баксов в год не проблема.

Michael
Если будет IDE на порядок выше всех существующих, к примеру на базе Intellij Platform - но платная, и годовая лицензия будет стоить 50-80$ , перейдут на нее разработчики? Как вы считаете? Перешли бы Вы на такую IDE?

Если ее уровень будет выше чем у официальной Force.com IDE, то перешли бы я думаю. Сам без ума от продуктов Intellij, везде использую их продукты: саму Intellij Idea вместе с Go плагином для изучения Go. PHPStorm для php, RubyMine для Rails. Доволен как слон. Когда возвращаюсь на Salesforce с его Force.com IDE реально плююсь.
Я бы купил такой плагин. Но пока его даже в планах ни у кого нет. А построить нормальную альтернативу Force.com IDE это не пара дней работы.

[quote="Michael"]Если будет IDE на порядок выше всех существующих, к примеру на базе Intellij Platform - но платная, и годовая лицензия будет стоить 50-80$ , перейдут на нее разработчики? Как вы считаете? Перешли бы Вы на такую IDE?[/quote]
Если ее уровень будет выше чем у официальной Force.com IDE, то перешли бы я думаю. Сам без ума от продуктов Intellij, везде использую их продукты: саму Intellij Idea вместе с Go плагином для изучения Go. PHPStorm для php, RubyMine для Rails. Доволен как слон. Когда возвращаюсь на Salesforce с его Force.com IDE реально плююсь.
Я бы купил такой плагин. Но пока его даже в планах ни у кого нет. А построить нормальную альтернативу Force.com IDE это не пара дней работы. 

Если ее уровень будет выше чем у официальной Force.com IDE, то перешли бы я думаю. Сам без ума от продуктов Intellij, везде использую их продукты: саму Intellij Idea вместе с Go плагином для изучения Go. PHPStorm для php, RubyMine для Rails. Доволен как слон. Когда возвращаюсь на Salesforce с его Force.com IDE реально плююсь.
Я бы купил такой плагин. Но пока его даже в планах ни у кого нет. А построить нормальную альтернативу Force.com IDE это не пара дней работы.

Поскольку Вы знакомы с продукцией JetBrains, как вы считаете что должно быть обязательно в такой IDE?

Я могу выделить следующее:

1) Обработка ошибок без вызова Validate, то есть собственноручно написанный парсер. Как только программист допускает ошибку - IDE сразу говорит об этом.
2) На любом элементе (метод, поле, конструктор) можно вызывать акцию Find Usages.
3) Code completion (понимающий контекст).
4) Навигация по проекту ("Go to..." Class, Symbol, File)
5) Разрешение ссылок - ("Ctrl + Click" action)
6) Поиск по проекту ("Find in Path" action)
7) Inspections (К примеру Redundant variables)
8) Quick Fixes (к примеру "Introduce Local Variable" action, или предложение создания класса, sObject-a)
9) Show Unused Elements (если метод или поле нигде не используются IDE говорит об этом)
10) Find in Path (К примеру какой-то триггер выводит сообщение об ошибке, мы видим это на сайте и хотим найти где эта ошибка формируется в проекте. "Find in Path" action -> find "some text" = и видим везде где в проекте есть такой текст.
11) Rename
12) Автоматическое форматирование текста - убирание лишних пробельных символов и так далее. "Ctrl+Alt+L" action
13) Различные иконки у тестов и классов, у интерфейсов и триггеров. (Так же показывается мини-иконка с модификатором доступа) like in Java.
14) Возможно будет полезно группировать классы по их namespacePrefix?

А что можете Вы выделить? Чем помимо этого списка она обязательно должна отличаться от Force.com IDE?

А построить нормальную альтернативу Force.com IDE это не пара дней работы.

Это не один месяц работы команды из нескольких человек:)

Нету в Salesforce "красивых" ООП проектов на 100 классов. Уже эту тему здесь обсуждали.

А можете дать ссылку на эту тему?

[quote]Если ее уровень будет выше чем у официальной Force.com IDE, то перешли бы я думаю. Сам без ума от продуктов Intellij, везде использую их продукты: саму Intellij Idea вместе с Go плагином для изучения Go. PHPStorm для php, RubyMine для Rails. Доволен как слон. Когда возвращаюсь на Salesforce с его Force.com IDE реально плююсь.
Я бы купил такой плагин. Но пока его даже в планах ни у кого нет. А построить нормальную альтернативу Force.com IDE это не пара дней работы.[/quote] 

Поскольку Вы знакомы с продукцией JetBrains, как вы считаете что должно быть обязательно в такой IDE?

Я могу выделить следующее:

1) Обработка ошибок без вызова Validate, то есть собственноручно написанный парсер. Как только программист допускает ошибку - IDE сразу говорит об этом.
2) На любом элементе (метод, поле, конструктор) можно вызывать акцию Find Usages.
3) Code completion (понимающий контекст). 
4) Навигация по проекту ("Go to..." Class, Symbol, File)
5) Разрешение ссылок - ("Ctrl + Click" action)
6) Поиск по проекту ("Find in Path" action)
7) Inspections (К примеру Redundant variables) 
8) Quick Fixes (к примеру "Introduce Local Variable" action, или предложение создания класса, sObject-a)
9) Show Unused Elements (если метод или поле нигде не используются IDE говорит об этом)
10) Find in Path (К примеру какой-то триггер выводит сообщение об ошибке, мы видим это на сайте и хотим найти где эта ошибка формируется в проекте. "Find in Path" action -> find "some text" = и видим везде где в проекте есть такой текст.
11) Rename
12) Автоматическое форматирование текста - убирание лишних пробельных символов и так далее. "Ctrl+Alt+L" action
13) Различные иконки у тестов и классов, у интерфейсов и триггеров. (Так же показывается мини-иконка с модификатором доступа) like in Java.
14) Возможно будет полезно группировать классы по их namespacePrefix?

А что можете Вы выделить? Чем помимо этого списка она обязательно должна отличаться от Force.com IDE?

[quote]
А построить нормальную альтернативу Force.com IDE это не пара дней работы.[/quote] 
Это не один месяц работы команды из нескольких человек:)

[quote]Нету в Salesforce "красивых" ООП проектов на 100 классов. Уже эту тему здесь обсуждали.[/quote]
А можете дать ссылку на эту тему?
 

Michael, ты перечислил практически все что должна уметь IDE для Salesforce.
На счет ошибки сразу, конечно было бы полезно, но я сомневаюсь что это возможно. Все-таки компиляцию на стороне SF не так просто описать в плагине.
А так что больше всего нравится в Intelij IDEA:
поиск по коду, навигация по коду и подсветка кода,
автодополнение (! это особенно, такое чувство что IDE сама за меня код пишет.)
нравится встроенная поддержка систем контроля версий (В Eclipce она тоже есть на основе плагинов, но по сравнению с Intellij IDEA напоминает кастыль, который писал первокурсник).
то что к Salesforce особо не будет относиться - жуть как нравится возможность удаленной разработки, в сочетании с Vagrant это просто рай какой-то.
И вообще, все сделано с какой-то любовью что-ли, все такое родное. Eclipse после этого кажется каким-то франкенштейном, составленным из чужих друг для друга кусков.

Michael, ты перечислил практически все что должна уметь IDE для Salesforce.
На счет ошибки сразу, конечно было бы полезно, но я сомневаюсь что это возможно. Все-таки компиляцию на стороне SF не так просто описать в плагине.
А так что больше всего нравится в Intelij IDEA: 
поиск по коду, навигация по коду и подсветка кода, 
автодополнение (! это особенно, такое чувство что IDE сама за меня код пишет.) 
нравится встроенная поддержка систем контроля версий (В Eclipce она тоже есть на основе плагинов, но по сравнению с Intellij IDEA напоминает кастыль, который писал первокурсник). 
то что к Salesforce особо не будет относиться - жуть как нравится возможность удаленной разработки, в сочетании с Vagrant это просто рай какой-то. 
И вообще, все сделано с какой-то любовью что-ли, все такое родное. Eclipse после этого кажется каким-то франкенштейном, составленным из чужих друг для друга кусков.

Michael
А можете дать ссылку на эту тему?

Как Вы обходитесь без Generic Types и Reflection API?

[quote="Michael"]А можете дать ссылку на эту тему? [/quote]
[url=https://salesforce-developer.ru/forum/topic-kak-vy-obhodites-bez-generic-types-i-reflection-api]Как Вы обходитесь без Generic Types и Reflection API?[/url]

Michael
Поскольку Вы знакомы с продукцией JetBrains, как вы считаете что должно быть обязательно в такой IDE?

да, там куча мелочей чего надо сделать:

в execute anonymous хотя бы чтоб номера строк были, а в его Results был бы поиск, ну хотя бы фильтрация Дебагов - такой простой вещи нет!

А если бы в APEX test runner была бы подсветка покрытого - непокрытого кода, как есть в Дев Консоли, то вообще бы плелестно было бы...

а если бы автозаполнение (ну или хотя бы варианты предлагались) по кастомным объектам-полям...

а если бы там можно было бы дебажить JavaScript - хотя бы базовые вещи - как в ВизуалСтудио - по вообще красава...

На западе могло бы найтись много покупателей.

Интересно, а зачем мы все это обсуждаем?
Нам ведь дадут бесплатно поюзать хотя бы бета-версию?

[quote="Michael"]Поскольку Вы знакомы с продукцией JetBrains, как вы считаете что должно быть обязательно в такой IDE?[/quote]

да, там куча мелочей чего надо сделать:

в execute anonymous хотя бы чтоб номера строк были, а в его Results был бы поиск, ну хотя бы фильтрация Дебагов - такой простой вещи нет!

А если бы в APEX test runner была бы подсветка покрытого - непокрытого кода, как есть в Дев Консоли, то вообще бы плелестно было бы...

а если бы автозаполнение (ну или хотя бы варианты предлагались) по кастомным объектам-полям...

а если бы там можно было бы дебажить JavaScript - хотя бы базовые вещи - как в ВизуалСтудио - по вообще красава...

На западе могло бы найтись много покупателей.

Интересно, а зачем мы все это обсуждаем? 
Нам ведь дадут бесплатно поюзать хотя бы бета-версию?

А как вы используете вложенные классы?

public class ApexType {

public class NestedClass {

}
}

Я как понимаю обращение к классу NestedClass осуществляется всегда через имя обрамляющего класса?

ApexType.NestedClass innerInstance = new ApexType.NestedClass();

А вот такая конструкция будет ошибочна:

ApexType outerInstance = new ApexType();
outerInstance.new NestedClass();

Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).

To define a class, specify the following:

Access modifiers:
You must use one of the access modifiers (such as public or global) in the declaration of a top-level class.
You do not have to use an access modifier in the declaration of an inner class.

Почему в документации говорится, что мы не должны использовать модификаторы доступа у вложенного класса? Компилятор в веб консоли никак не реагирует если мы добавим модификатор public.

А как вы используете вложенные классы?

[quote]public class ApexType  {

    public class NestedClass {

    }
}[/quote]

Я как понимаю обращение к классу NestedClass осуществляется всегда через имя обрамляющего класса?

ApexType.NestedClass innerInstance = new ApexType.NestedClass();

А вот такая конструкция будет ошибочна:

[quote]ApexType outerInstance = new ApexType();
outerInstance.new NestedClass();[/quote] 

Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).

[quote]To define a class, specify the following:

    Access modifiers:
        You must use one of the access modifiers (such as public or global) in the declaration of a top-level class.
        You do not have to use an access modifier in the declaration of an inner class.[/quote] 

Почему в документации говорится, что мы не должны использовать модификаторы доступа у вложенного класса? Компилятор в веб консоли никак не реагирует если мы добавим модификатор public.

Michael
Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).

В основном использую для создания комплексных структур для передачи в Visualforce page для вывода.
Например надо отобразить список контактов, но не просто контактов, а еще какие-то данные которые рассчитываются на лету и не входят в список полей контекта.

public ContactWrapper() {
public Contact contact { get; set; }
public Boolean bool { get; set; }
public ContactWrapper(Contact contact, Boolean bool) {
this.contact = contact;
this.bool = bool
}
}

List<ContactWrapper> contacts = new List<ContactWrapper>()

Michael
Почему в документации говорится, что мы не должны использовать модификаторы доступа у вложенного класса? Компилятор в веб консоли никак не реагирует если мы добавим модификатор public.

Почему не должны использовать - даже не задумывался, я всегда использую public на автомате чтобы inner class был доступен на VF странице. Может без него тоже будет работать

[quote="Michael"]Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).[/quote]
В основном использую для создания комплексных структур для передачи в Visualforce page для вывода.
Например надо отобразить список контактов, но не просто контактов, а еще какие-то данные которые рассчитываются на лету и не входят в список полей контекта.

[code]
public ContactWrapper() {
    public Contact contact { get; set; }
    public Boolean bool { get; set; }
    public ContactWrapper(Contact contact, Boolean bool) {
        this.contact = contact;
        this.bool = bool
    }
}

List<ContactWrapper> contacts = new List<ContactWrapper>()
[/code]

[quote="Michael"]Почему в документации говорится, что мы не должны использовать модификаторы доступа у вложенного класса? Компилятор в веб консоли никак не реагирует если мы добавим модификатор public.[/quote]
Почему не должны использовать - даже не задумывался, я всегда использую public на автомате чтобы inner class был доступен на VF странице. Может без него тоже будет работать :) 

Den Brown
Интересно, а зачем мы все это обсуждаем?
Нам ведь дадут бесплатно поюзать хотя бы бета-версию?

В рамках работы занимался я разработкой Force.com плагина для Intellij платформы. Нет ничего невозможного скажу я вам. Руководствовался документацией по API и циклом статей на хабре. Что касается работы с API - нет ничего сложного, все библиотеки есть. Главный вопрос - необходимо достаточно хорошо знать openAPI от Intellij. Все пишется на джаве. За пару недель активной разработки худо-бедно мой плагин умел создавать проект и основные компоненты (классы, страницы итд) , деплоить/сливать исходники и что то еще по мелочи. А так да - для получения на выходе толкового продукта необходимы опытные люди и время..

[quote="Den Brown"]Интересно, а зачем мы все это обсуждаем? 
Нам ведь дадут бесплатно поюзать хотя бы бета-версию?[/quote]
В рамках работы занимался я разработкой Force.com плагина для Intellij платформы. Нет ничего невозможного скажу я вам. Руководствовался документацией по API и [url=http://habrahabr.ru/post/187106/]циклом статей на хабре[/url]. Что касается работы с API - нет ничего сложного, все библиотеки есть. Главный вопрос - необходимо достаточно хорошо знать openAPI от Intellij. Все пишется на джаве. За пару недель активной разработки худо-бедно мой плагин умел создавать проект и основные компоненты (классы, страницы итд) , деплоить/сливать исходники и что то еще по мелочи. А так да - для получения на выходе толкового продукта необходимы опытные люди и время..

В рамках работы занимался я разработкой Force.com плагина для Intellij платформы.

И почему бросили?

[quote]В рамках работы занимался я разработкой Force.com плагина для Intellij платформы.[/quote]

И почему бросили? 

Michael
И почему бросили?

скажем так, приостановил работу, т.к. появилась загрузка по salesforce. это мероприятие изначально задумывалось как исследование, оценка масштаба и объема работы по данной теме

[quote="Michael"]И почему бросили?[/quote]
скажем так, приостановил работу, т.к. появилась загрузка по salesforce. это мероприятие изначально задумывалось как исследование, оценка масштаба и объема работы по данной теме

Надоел мне Эклипс, перешел на SubLime & MavensMate. Пока очень положительные впечатления.

Надоел мне Эклипс, перешел на SubLime & MavensMate. Пока очень положительные впечатления.

wilder
Надоел мне Эклипс, перешел на SubLime & MavensMate. Пока очень положительные впечатления.

Ждем подробностей о положительных впечатлениях

[quote="wilder"]Надоел мне Эклипс, перешел на SubLime & MavensMate. Пока очень положительные впечатления.[/quote]
Ждем подробностей о положительных впечатлениях :) 

wilder
Надоел мне Эклипс, перешел на SubLime & MavensMate. Пока очень положительные впечатления.

Ну не знаю, я попробовал MavensMate - сильных положительных впечатлений он у меня не оставил. Во-первых были проблемы с запуском, мне пришлось самому вручную ставить Python, настраивать и прописывать что-то в ручную в файликах (это кошмар просто) т.к "изкоробки" не запустилось. Думаю если у пользователя не стоит задача "жизнь положить, но таки запустить MavensMate" - то он уйдет в нормальную IDE не особо задумываясь. Создание проекта через открытие окошка в браузере? И я так и не нашел как импортить проекты из Eclipse в Mavensmate (если к примеру проект хранился на Github)

Пока очень положительные впечатления.

Но все же, чем же он хорош?

Кто что может сказать о возможности деплоить на Salesforce сразу с Github?

Кто этим пользуется, популярно ли это в целом у разработчиков?

[quote="wilder"]Надоел мне Эклипс, перешел на SubLime & MavensMate. Пока очень положительные впечатления.[/quote]

Ну не знаю, я попробовал MavensMate - сильных положительных впечатлений он у меня не оставил. Во-первых были проблемы с запуском, мне пришлось самому вручную ставить Python, настраивать и прописывать что-то в ручную в файликах (это кошмар просто) т.к "изкоробки" не запустилось. Думаю если у пользователя не стоит задача "жизнь положить, но таки запустить MavensMate" - то он уйдет в нормальную IDE не особо задумываясь. Создание проекта через открытие окошка в браузере? И я так и не нашел как импортить проекты из Eclipse в Mavensmate (если к примеру проект хранился на Github)

[quote]Пока очень положительные впечатления.[/quote] 
Но все же, чем же он хорош? 

Кто что может сказать о возможности [url=http://andyinthecloud.com/2013/09/24/deploy-direct-from-github-to-salesforce/]деплоить на Salesforce сразу с Github[/url]?

Кто этим пользуется, популярно ли это в целом у разработчиков?

Michael
Кто что может сказать о возможности деплоить на Salesforce сразу с Github?

Это что-то новое.
На первый взгляд это просто стороннее приложение, которое вытягивает данные из вашего репозитория и заливает их в salesforce орг.
Пока слишком сомнительно доверять это дело кому-то кроме самого себя. Тем более что такое сделать очень просто с помощью git + ant на локальной машине.

[quote="Michael"]Кто что может сказать о возможности деплоить на Salesforce сразу с Github?[/quote]
Это что-то новое.
На первый взгляд это просто стороннее приложение, которое вытягивает данные из вашего репозитория и заливает их в salesforce орг.
Пока слишком сомнительно доверять это дело кому-то кроме самого себя. Тем более что такое сделать очень просто с помощью git + ant на локальной машине. 

Michael
И я так и не нашел как импортить проекты из Eclipse в Mavensmate

Тоже не совсем правильный подход. Проект хранится в Salesforce где и выполняется. В Eclipse всего лишь его удаленная копия. Не надо переносить проект из Eclipse в MavensMate, надо просто создать новый проект. А вот как к новому проекту прикрутить GitHub вот это уже отдельный вопрос.

[quote="Michael"]И я так и не нашел как импортить проекты из Eclipse в Mavensmate[/quote]
Тоже не совсем правильный подход. Проект хранится в Salesforce где и выполняется. В Eclipse всего лишь его удаленная копия. Не надо переносить проект из Eclipse в MavensMate, надо просто создать новый проект. А вот как к новому проекту прикрутить GitHub вот это уже отдельный вопрос.

Michael
И я так и не нашел как импортить проекты из Eclipse в Mavensmate

Вот тут все есть

[quote="Michael"]И я так и не нашел как импортить проекты из Eclipse в Mavensmate[/quote]

[url=http://mavensmate.com/Plugins/Sublime_Text/Existing_Projects]Вот тут все есть[/url]

wilder
Вот тут все есть

Спасибо за ссылку.

В веб-консоли я создал обрамляющий класс TestClass, внутри него внутренний класс SomeInnerClass. По всему остальному проекту к SomeInnerClass можно получить доступ только если обращаться как к TestClass.SomeInnerClass, но внутри TestClass мы можем получить доступ и без ссылки на обрамляющий класс(Компилятор не ругается на такую конструкцию), но побочным эффектом будет не работающий code completion.

public class TestClass {

private final SomeInnerClass myField = new SomeInnerClass();

public void doSome() {
myField.method1();
}

public class SomeInnerClass {

public void method1(){}
}
}

Теперь же если мы создадим top-level класс с именем SomeInnerClass:

public class SomeInnerClass {

public void topClassMethod(){

}
}

То вызов code completion в следующем месте будет отрабатывать как для top-level SomeInnerClass

но при попытке компиляции мы получим

Method does not exist or incorrect signature: [TestClass.SomeInnerClass].topClassMethod()

Это получается баг в code completion API Salesforce, насколько я понимаю и Force.com IDE и MavensMate построены на Tooling API значит там будет такой же баг?

В целом я должен считать что в подобной ситуации Вложенный класс имеет высший приоритет при вызове code completion, resolve references etc. ?

[quote="wilder"]Вот тут все есть[/quote]

Спасибо за ссылку.

В веб-консоли я создал обрамляющий класс TestClass, внутри него внутренний класс SomeInnerClass. По всему остальному проекту к SomeInnerClass можно получить доступ только если обращаться как к TestClass.SomeInnerClass, но внутри TestClass мы можем получить доступ и без ссылки на обрамляющий класс(Компилятор не ругается на такую конструкцию), но побочным эффектом будет не работающий code completion.

[quote]public class TestClass {

  private final SomeInnerClass myField = new SomeInnerClass();

  public void doSome() {
    myField.method1();
  }

  public class SomeInnerClass {

    public void method1(){}
  }
}[/quote]

Теперь же если мы создадим top-level класс с именем SomeInnerClass: 

[quote]public class SomeInnerClass {
	
    public void topClassMethod(){
        
    }
}
[/quote]

То вызов code completion в следующем месте будет отрабатывать как для top-level SomeInnerClass

[img]http://s020.radikal.ru/i706/1411/a4/a9a5a1715bc1.png[/img]

но при попытке компиляции мы получим

[quote]Method does not exist or incorrect signature: [TestClass.SomeInnerClass].topClassMethod()[/quote]

Это получается баг в code completion API Salesforce, насколько я понимаю и Force.com IDE и MavensMate построены на Tooling API значит там будет такой же баг?

В целом я должен считать что в подобной ситуации Вложенный класс имеет высший приоритет при вызове code completion, resolve references etc. ?


Dmitry Shnyrev
На счет ошибки сразу, конечно было бы полезно, но я сомневаюсь что это возможно. Все-таки компиляцию на стороне SF не так просто описать в плагине.

Возможно, нужно просто описать грамматику языка, это не так сложно, просто нужно время.

[quote="Dmitry Shnyrev"]На счет ошибки сразу, конечно было бы полезно, но я сомневаюсь что это возможно. Все-таки компиляцию на стороне SF не так просто описать в плагине. [/quote]
Возможно, нужно просто описать грамматику языка, это не так сложно, просто нужно время.

Michael
1) Выстраиваете ли вы иерархию между классами, или это не совсем актуально для Апекса? И все прочие плюшки от ООП. Когда необходимо использовать интерфейсы, какого рода задачи в этом случае могут стоять.

2) Как часто вы встречали проекты на Апексе, где хотя бы over 100+ классов (без учета тестовых классов), там есть все прелести ООП и т.д?


ООП всегда актуально, без него невозможно жить.
Также использую самописную реализация dependency injection.
Мечтаю о Reflection API и дженериках.

[quote="Michael"]1) Выстраиваете ли вы иерархию между классами, или это не совсем актуально для Апекса? И все прочие плюшки от ООП. Когда необходимо использовать интерфейсы, какого рода задачи в этом случае могут стоять.

2) Как часто вы встречали проекты на Апексе, где хотя бы over 100+ классов (без учета тестовых классов), там есть все прелести ООП и т.д? [/quote]
ООП всегда актуально, без него невозможно жить.
Также использую самописную реализация dependency injection.
Мечтаю о Reflection API и дженериках.

Alexey Pchelkin
В рамках работы занимался я разработкой Force.com плагина для Intellij платформы. Нет ничего невозможного скажу я вам. Руководствовался документацией по API и циклом статей на хабре. Что касается работы с API - нет ничего сложного, все библиотеки есть. Главный вопрос - необходимо достаточно хорошо знать openAPI от Intellij. Все пишется на джаве. За пару недель активной разработки худо-бедно мой плагин умел создавать проект и основные компоненты (классы, страницы итд) , деплоить/сливать исходники и что то еще по мелочи. А так да - для получения на выходе толкового продукта необходимы опытные люди и время..

Делал тоже самое только под Visual Studio, а также писал синтаксический анализатор для APEX (Antlr 3.5)
Но, увы, нужно время....

[quote="Alexey Pchelkin"]В рамках работы занимался я разработкой Force.com плагина для Intellij платформы. Нет ничего невозможного скажу я вам. Руководствовался документацией по API и циклом статей на хабре. Что касается работы с API - нет ничего сложного, все библиотеки есть. Главный вопрос - необходимо достаточно хорошо знать openAPI от Intellij. Все пишется на джаве. За пару недель активной разработки худо-бедно мой плагин умел создавать проект и основные компоненты (классы, страницы итд) , деплоить/сливать исходники и что то еще по мелочи. А так да - для получения на выходе толкового продукта необходимы опытные люди и время..[/quote]
Делал тоже самое только под Visual Studio, а также писал синтаксический анализатор для APEX (Antlr 3.5)
Но, увы, нужно время....

Michael
BrainEngine,

Кст, легко декомпилируется :)

[quote="Michael"] BrainEngine,[/quote]
Кст, легко декомпилируется :)

Michael
Ну я много слышал что Force.com плохая. Вот хочу узнать, а какая IDE будет считаться хорошей.

Есть желание что-то написать?
Собственная инициатива или команда разработчиков?

[quote="Michael"]Ну я много слышал что Force.com плохая. Вот хочу узнать, а какая IDE будет считаться хорошей. [/quote]
Есть желание что-то написать?
Собственная инициатива или команда разработчиков?

Gres
Alexey Pchelkin
В рамках работы занимался я разработкой Force.com плагина для Intellij платформы. Нет ничего невозможного скажу я вам. Руководствовался документацией по API и циклом статей на хабре. Что касается работы с API - нет ничего сложного, все библиотеки есть. Главный вопрос - необходимо достаточно хорошо знать openAPI от Intellij. Все пишется на джаве. За пару недель активной разработки худо-бедно мой плагин умел создавать проект и основные компоненты (классы, страницы итд) , деплоить/сливать исходники и что то еще по мелочи. А так да - для получения на выходе толкового продукта необходимы опытные люди и время..

Делал тоже самое только под Visual Studio, а также писал синтаксический анализатор для APEX
Но, увы, нужно время....

Писал парсер апекс классов на апексе если нужно могу поделиться логикой

[quote="Gres"][quote="Alexey Pchelkin"]В рамках работы занимался я разработкой Force.com плагина для Intellij платформы. Нет ничего невозможного скажу я вам. Руководствовался документацией по API и циклом статей на хабре. Что касается работы с API - нет ничего сложного, все библиотеки есть. Главный вопрос - необходимо достаточно хорошо знать openAPI от Intellij. Все пишется на джаве. За пару недель активной разработки худо-бедно мой плагин умел создавать проект и основные компоненты (классы, страницы итд) , деплоить/сливать исходники и что то еще по мелочи. А так да - для получения на выходе толкового продукта необходимы опытные люди и время..[/quote]
Делал тоже самое только под Visual Studio, а также писал синтаксический анализатор для APEX
Но, увы, нужно время....[/quote]

Писал парсер апекс классов на апексе если нужно могу поделиться логикой

Gres
Делал тоже самое только под Visual Studio

Это случайно не Ваша статья на хабре?

[quote="Gres"]Делал тоже самое только под Visual Studio[/quote]
Это случайно не Ваша [url=http://habrahabr.ru/post/213677/]статья[/url] на хабре? :)


Michael
Это случайно не Ваша статья на хабре?

Нет

[quote="Michael"]Это случайно не Ваша статья на хабре? [/quote]
Нет

Michael
Тут несколько раз упомянули что все легко и просто. Насколько мне подсказывает опыт, все далеко не так просто как кажется. И в 98 случаях из 100 дальше

Реализуемо, но трудозатратно

[quote="Michael"]Тут несколько раз упомянули что все легко и просто. Насколько мне подсказывает опыт, все далеко не так просто как кажется. И в 98 случаях из 100 дальше [/quote]
Реализуемо, но трудозатратно

Michael
Яркие примеры любая из существующих Апекс IDE включая их веб-консоль :)

Нигде еще не видел автокомплита, поддерживающего текущий контекст

[quote="Michael"]Яркие примеры любая из существующих Апекс IDE включая их веб-консоль :)[/quote]
Нигде еще не видел автокомплита, поддерживающего текущий контекст

Michael
Тут несколько раз упомянули что все легко и просто. Насколько мне подсказывает опыт, все далеко не так просто как кажется.

где было про легко и просто? Вопрос в том, кто сможет и захочет инвестировать ресурсы в реализацию подобной затеи. Среди коллег на нашей фирме я не встречал людей, которые пришли к salesforce из той же java. Тем более спецов по intellij openapi. Джавистам есть чем заняться. А кому кроме разработчиков из SF-сообщества это нужно? никому. поэтому если что и получится когда нибудь, то только из open-source проектов обычных энтузиастов

[quote="Michael"]Тут несколько раз упомянули что все легко и просто. Насколько мне подсказывает опыт, все далеко не так просто как кажется. [/quote]
где было про легко и просто? Вопрос в том, кто сможет и захочет инвестировать ресурсы в реализацию подобной затеи. Среди коллег на нашей фирме я не встречал людей, которые пришли к salesforce из той же java. Тем более спецов по intellij openapi. Джавистам есть чем заняться. А кому кроме разработчиков из SF-сообщества это нужно? никому. поэтому если что и получится когда нибудь, то только из open-source проектов обычных энтузиастов

Alexey Pchelkin
А кому кроме разработчиков из SF-сообщества это нужно? никому. поэтому если что и получится когда нибудь, то только из open-source проектов обычных энтузиастов

Собственно как с MavensMate и получилось. Если не ошибаюсь начала его делать как-то давным давно один хороший человек. И не побоялся трудностей. И вот что в итоге получилось Все пользуются Только сколько на это сил и времени ушло и все по ходу бесплатно

[quote="Alexey Pchelkin"]А кому кроме разработчиков из SF-сообщества это нужно? никому. поэтому если что и получится когда нибудь, то только из open-source проектов обычных энтузиастов[/quote]
Собственно как с MavensMate и получилось. Если не ошибаюсь начала его делать как-то давным давно один хороший человек. И не побоялся трудностей. И вот что в итоге получилось :) Все пользуются :) Только сколько на это сил и времени ушло и все по ходу бесплатно :) 

Alexey Pchelkin
А кому кроме разработчиков из SF-сообщества это нужно?

Главное чтобы разработчикам SalesForce это было действительно нужно. И они готовы были подсказать, что им нужно и чего они хотят.

[quote="Alexey Pchelkin"]А кому кроме разработчиков из SF-сообщества это нужно?[/quote]
Главное чтобы разработчикам SalesForce это было действительно нужно. И они готовы были подсказать, что им нужно и чего они хотят.

Что используешь в качестве синтаксического анализатора?

Что используешь в качестве синтаксического анализатора?

Как обрабатываешь ситуацию, когда контекст невалиден, а нужно сделать автокомплит?

Как обрабатываешь ситуацию, когда контекст невалиден, а нужно сделать автокомплит?

больше всего помог Дмитрий. Спасибо.

больше всего помог Дмитрий. Спасибо.


Michael
Пока больше всего помог Дмитрий. Спасибо.

Тема получилась большая, участие приняли многие, так что думаю можно благодарить всех :),
ну и отдельное спасибо тебе за вопросы.

[quote="Michael"] Пока больше всего помог Дмитрий. Спасибо.[/quote]
Тема получилась большая, участие приняли многие, так что думаю можно благодарить всех :),
ну и отдельное спасибо тебе за вопросы. 

Michael
Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).

по-моему самый типичный случай использования вложенных классов в АПЕКС- это класс-клиент для ВЕБ-сервиса, сгенерированный из ВИСДОЛа, - вот где им раздолье.

[quote="Michael"]Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).[/quote]

по-моему самый типичный случай использования вложенных классов в АПЕКС- это класс-клиент для ВЕБ-сервиса, сгенерированный из ВИСДОЛа, - вот где им раздолье.

Den Brown
Michael
Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).

по-моему самый типичный случай использования вложенных классов в АПЕКС- это класс-клиент для ВЕБ-сервиса, сгенерированный из ВИСДОЛа, - вот где им раздолье.

Или для вывода на странице сложных структур данных

[quote="Den Brown"][quote="Michael"]Можете пару слов сказать о необходимости применения Вами вложенных классов, я как понимаю распространненый случай применения - это перечисления (enum).[/quote]

по-моему самый типичный случай использования вложенных классов в АПЕКС- это класс-клиент для ВЕБ-сервиса, сгенерированный из ВИСДОЛа, - вот где им раздолье.[/quote]

Или для вывода на странице сложных структур данных

по-моему самый типичный случай использования вложенных классов в АПЕКС- это класс-клиент для ВЕБ-сервиса, сгенерированный из ВИСДОЛа, - вот где им раздолье.

Или для вывода на странице сложных структур данных

Можете привести примеры? Может там что-то можно улучшить? Resolve references, autocomplete, rename в каких-то специфических ситуациях? Или как-то автоматизировать процесс генерации, чтобы этим занималась IDE?

[quote]по-моему самый типичный случай использования вложенных классов в АПЕКС- это класс-клиент для ВЕБ-сервиса, сгенерированный из ВИСДОЛа, - вот где им раздолье.[/quote]
[quote]
Или для вывода на странице сложных структур данных[/quote]

Можете привести примеры? Может там что-то можно улучшить? Resolve references, autocomplete, rename в каких-то специфических ситуациях? Или как-то автоматизировать процесс генерации, чтобы этим занималась IDE? 

Michael
Можете привести примеры? Может там что-то можно улучшить? Resolve references, autocomplete, rename в каких-то специфических ситуациях? Или как-то автоматизировать процесс генерации, чтобы этим занималась IDE?

возьмите какой-нибудь WSDL и сгенерируйте с него класс-клиент в в Орге.

Хотите организовать герерацию класс клиента из WSDL в IDE? это большое дело. думаю здесь многие дадут советы с какими проблемами иногда сталкиваемся при генерации клиента в Орге. А потребность интеграции СФ с др системами - только нарастает.

[quote="Michael"]Можете привести примеры? Может там что-то можно улучшить? Resolve references, autocomplete, rename в каких-то специфических ситуациях? Или как-то автоматизировать процесс генерации, чтобы этим занималась IDE?[/quote]

возьмите какой-нибудь WSDL и сгенерируйте с него класс-клиент в в Орге.

Хотите организовать герерацию класс клиента из  WSDL в IDE? это большое дело. думаю здесь многие дадут советы с какими проблемами иногда сталкиваемся при генерации клиента в Орге. А потребность интеграции СФ с др системами - только нарастает.

Хорошо было бы реализовать удобный процесс деплоя с возможностью просмора различий в метаданных.

Хорошо было бы реализовать удобный процесс деплоя с возможностью просмора различий в метаданных.

Gres
Хорошо было бы реализовать удобный процесс деплоя с возможностью просмора различий в метаданных.

Это вообще мечта, боюсь что придется это делать самому.

[quote="Gres"]Хорошо было бы реализовать удобный процесс деплоя с возможностью просмора различий в метаданных.[/quote]

Это вообще мечта, боюсь что придется это делать самому.

wilder
боюсь что придется это делать самому.

Сделать из этого еще один плагин к Sublime, как расширение к MavensMate и пустить в массы.

[quote="wilder"]боюсь что придется это делать самому.[/quote]
Сделать из этого еще один плагин к Sublime, как расширение к MavensMate и пустить в массы. 

Dmitry Shnyrev

Привет, хотел задать пару вопросов:

Пользуются ли разработчики GitHub? И в целом git? Как происходит обмен сорцами и происходит ли вообще (как помимо manadged, unmanadget packages)?

[quote="Dmitry Shnyrev"][/quote]

Привет, хотел задать пару вопросов:

Пользуются ли разработчики GitHub? И в целом git? Как происходит обмен сорцами и происходит ли вообще (как помимо manadged, unmanadget packages)?

Michael
Dmitry Shnyrev

Привет, хотел задать пару вопросов:

Пользуются ли разработчики GitHub? И в целом git? Как происходит обмен сорцами и происходит ли вообще (как помимо manadged, unmanadget packages)?

Ясное дело что почти все пользуются SVC. У кого git, у кого bitbucket, у кого что-то другое. Обмен исходниками - достаточно странный вопрос. Внедрение кода происходит через пакеты.

Что Вы подразумеваете под словом - ОБМЕН ?

[quote="Michael"][quote="Dmitry Shnyrev"][/quote]

Привет, хотел задать пару вопросов:

Пользуются ли разработчики GitHub? И в целом git? Как происходит обмен сорцами и происходит ли вообще (как помимо manadged, unmanadget packages)?[/quote]

Ясное дело что почти все пользуются SVC. У кого git, у кого bitbucket, у кого что-то другое. Обмен исходниками - достаточно странный вопрос. Внедрение кода происходит через пакеты. 

Что Вы подразумеваете под словом - ОБМЕН ?

Привет Michael.
Очень даже пользуются, но не конкретно GitHub сколько закрытыми репозиториями (все-таки бизнес сфера накладывает свои ограничения на размещения исходников на стороне). Очень часто поднимают свои репозитории на локальных серверах. Но в общем ответ - системы контроля версий это скорее обязательное требование для нормального проекта, а где будете размещать репозиторий это уже частности.

manadged, unmanadget packages это скорее для распространения, продажи, но не для обмена между разработчиками.

Привет Michael.
Очень даже пользуются, но не конкретно GitHub сколько закрытыми репозиториями (все-таки бизнес сфера накладывает свои ограничения на размещения исходников на стороне). Очень часто поднимают свои репозитории на локальных серверах. Но в общем ответ - системы контроля версий это скорее обязательное требование для нормального проекта, а где будете размещать репозиторий это уже частности.

manadged, unmanadget packages это скорее для распространения, продажи, но не для обмена между разработчиками.

wilder
У кого git, у кого bitbucket,

bitbucket это тоже git (или mercurial для любителей)

[quote="wilder"]У кого git, у кого bitbucket,[/quote]
bitbucket это тоже git (или mercurial для любителей)

Dmitry Shnyrev
wilder
У кого git, у кого bitbucket,

bitbucket это тоже git (или mercurial для любителей)

По большрму счету да, но у него кроме всего прочего есть интеграция с JIRA, и туда можно прикручивать автоматизацию типа BAMBOO. Достаточно удобная штука.

[quote="Dmitry Shnyrev"][quote="wilder"]У кого git, у кого bitbucket,[/quote]
bitbucket это тоже git (или mercurial для любителей)[/quote]

По большрму счету да, но у него кроме всего прочего есть интеграция с JIRA, и туда можно прикручивать автоматизацию типа BAMBOO. Достаточно удобная штука.

Я находил несколько проектов на Гитхабе.
К примеру: https://github.com/SalesforceFoundation/Cumulus

В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами.
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами.

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Спасибо.

Я находил несколько проектов на Гитхабе. 
К примеру: https://github.com/SalesforceFoundation/Cumulus

В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами. 
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами. 

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Спасибо.   

Michael
Я находил несколько проектов на Гитхабе.
К примеру: https://github.com/SalesforceFoundation/Cumulus

В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами.
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами.

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Спасибо.

если у Вас в орге не установлены эти пакеты, то скорее всего вы чего-то не предусмотрели. Например можно попробовать найти недостающие пакеты на Apexchange или обратиться в службу поддержки салесфорс с этим вопросом.

[quote="Michael"]Я находил несколько проектов на Гитхабе. 
К примеру: https://github.com/SalesforceFoundation/Cumulus

В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами. 
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами. 

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Спасибо.[/quote]

если у Вас в орге не установлены эти пакеты, то скорее всего вы чего-то не предусмотрели. Например можно попробовать найти недостающие пакеты на Apexchange или обратиться в службу поддержки салесфорс с этим вопросом.

wilder
Michael
Я находил несколько проектов на Гитхабе.
К примеру: https://github.com/SalesforceFoundation/Cumulus

В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами.
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами.

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Спасибо.

если у Вас в орге не установлены эти пакеты, то скорее всего вы чего-то не предусмотрели. Например можно попробовать найти недостающие пакеты на Apexchange или обратиться в службу поддержки салесфорс с этим вопросом.

Опять же всегда можно обратиться к разработчикам Cumulus.

[quote="wilder"][quote="Michael"]Я находил несколько проектов на Гитхабе. 
К примеру: https://github.com/SalesforceFoundation/Cumulus

В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами. 
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами. 

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Спасибо.[/quote]

если у Вас в орге не установлены эти пакеты, то скорее всего вы чего-то не предусмотрели. Например можно попробовать найти недостающие пакеты на Apexchange или обратиться в службу поддержки салесфорс с этим вопросом.[/quote]

Опять же всегда можно обратиться к разработчикам Cumulus.

Michael
В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами.
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами.

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Dmitry Shnyrev
manadged, unmanadget packages это скорее для распространения, продажи, но не для обмена между разработчиками.

Дмитрий, можете прокомментировать мой последний вопрос?


Так же хотел спросить про action загрузки содержимого пакета в Eclipse. В каких случаях и как часто Вы ее применяете?

Как часто вы пользуетесь загрузкой каких-либо метаданных кроме классов, триггеров, visualforce pages?
К примеру зачем нужны apps, что там можно подправлять вручную в Eclipse?

[quote="Michael"]В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами.
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами.

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.[/quote]

[quote="Dmitry Shnyrev"]manadged, unmanadget packages это скорее для распространения, продажи, но не для обмена между разработчиками.[/quote]

Дмитрий, можете прокомментировать мой последний вопрос?


Так же хотел спросить про action загрузки содержимого пакета в Eclipse. В каких случаях и как часто Вы ее применяете?  

[img]http://klikr.org/05f82c66a119ede2afb8d4a670bc.png[/img]



Как часто вы пользуетесь загрузкой каких-либо метаданных кроме классов, триггеров, visualforce pages?
К примеру зачем нужны apps, что там можно подправлять вручную в Eclipse?

[img]http://klikr.org/44eed29bd6d5c773260aec5f4123.png[/img]

Michael
Michael
В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами.
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами.

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.

Дмитрий, можете прокомментировать мой последний вопрос?

Решить проблему с "недоставленными" пакетами просто - надо их собственно установить. Я не знаком конкретно с проектом Cumulus, но не думаю что разработчики не описали процесс установки и мне кажется зависимости должны быть описаны. Не думаю что там могут быть какие-то сложные моменты. Установка пакетов в Salesforce очень простая и на 99% автоматическая процедура.

Репозиторий(CSV) и орг физически никак не связаны. Связаны они через ваш комп, локальную папку проекта. Т.е. напрямую сливать/заливать из репозитория в Salesforce нельзя. Таким образом получается доступ к репозиторию != доступ к оргу. И то и то надо настраивать отдельно.

Michael, чисто из любопытства. По вашим вопросам видно, что вы только пришли в Salesforce. Зачем тогда вы сразу взялись за сторонние проекты (Culumbus). Пойму если такое перед вами стоит требование - разобраться с этим пакетом. Но если вы таким образом решили изучить Salesforce, то это совсем неправильный путь и подобные задачи явно не из разряда "для изучения".

[quote="Michael"][quote="Michael"]В этом проекте используются классы из установленных пакетов, с разными неймспейс префиксами.
У меня в орге, эти пакеты не установлены. Какие шаги я должен сделать, чтобы я смог выкачать проект Cumulus и установить в свой орг. Как решать проблему с "недоставлеными" пакетами.

Можно ли сделать вывод - что: Те кто имеют доступ к репозиторию - всегда имеют доступ к общему оргу, в котором установлены все необходимые пакеты.[/quote]

Дмитрий, можете прокомментировать мой последний вопрос?
[/quote]

Решить проблему с "недоставленными" пакетами просто - надо их собственно установить. Я не знаком конкретно с проектом Cumulus, но не думаю что разработчики не описали процесс установки и мне кажется зависимости должны быть описаны. Не думаю что там могут быть какие-то сложные моменты. Установка пакетов в Salesforce очень простая и на 99% автоматическая процедура.

Репозиторий(CSV) и орг физически никак не связаны. Связаны они через ваш комп, локальную папку проекта. Т.е. напрямую сливать/заливать из репозитория в Salesforce нельзя. Таким образом получается доступ к репозиторию != доступ к оргу. И то и то надо настраивать отдельно.

Michael, чисто из любопытства. По вашим вопросам видно, что вы только пришли в Salesforce. Зачем тогда вы сразу взялись за сторонние проекты (Culumbus). Пойму если такое перед вами стоит требование - разобраться с этим пакетом. Но если вы таким образом решили изучить Salesforce, то это совсем неправильный путь и подобные задачи явно не из разряда "для изучения".



Michael
Так же хотел спросить про action загрузки содержимого пакета в Eclipse. В каких случаях и как часто Вы ее применяете?

Никогда не применяю не было необходимости.

[quote="Michael"]Так же хотел спросить про action загрузки содержимого пакета в Eclipse. В каких случаях и как часто Вы ее применяете?[/quote]
Никогда не применяю :) не было необходимости.

Michael
Как часто вы пользуетесь загрузкой каких-либо метаданных кроме классов, триггеров, visualforce pages?
К примеру зачем нужны apps, что там можно подправлять вручную в Eclipse?

Часто, тут нет ничего страшного. По умолчанию проект включает большую часть необходимого для разработки, но иногда чтобы, например, не тянуть весь проект, или добавить что-то используется этот инструмент. Его можно кстати вызывать и после создания проекта, чтобы изменить содержимое проекта.
Обычно создание проекта делается по умолчанию.

Apps это своего рода контейнеры для логического объединения функционала. Они появляются справа вверху в выпадающем списке. Обычно их используют для настройки внешнего вида интерфейса - группировка Tabs.

[quote="Michael"]Как часто вы пользуетесь загрузкой каких-либо метаданных кроме классов, триггеров, visualforce pages? 
К примеру зачем нужны apps, что там можно подправлять вручную в Eclipse?[/quote]
Часто, тут нет ничего страшного. По умолчанию проект включает большую часть необходимого для разработки, но иногда чтобы, например, не тянуть весь проект, или добавить что-то используется этот инструмент. Его можно кстати вызывать и после создания проекта, чтобы изменить содержимое проекта.
Обычно создание проекта делается по умолчанию.

Apps это своего рода контейнеры для логического объединения функционала. Они появляются справа вверху в выпадающем списке. Обычно их используют для настройки внешнего вида интерфейса - группировка Tabs.

Dmitry Shnyrev
Решить проблему с "недоставленными" пакетами просто - надо их собственно установить. Я не знаком конкретно с проектом Cumulus, но не думаю что разработчики не описали процесс установки и мне кажется зависимости должны быть описаны. Не думаю что там могут быть какие-то сложные моменты. Установка пакетов в Salesforce очень простая и на 99% автоматическая процедура.

Репозиторий(CVS) и орг физически никак не связаны. Связаны они через ваш комп, локальную папку проекта. Т.е. напрямую сливать/заливать из репозитория в Salesforce нельзя. Таким образом получается доступ к репозиторию != доступ к оргу. И то и то надо настраивать отдельно.

Дмитрий, большое спасибо за ответы.
Да, я не являюсь специалистом в Salesforce. У меня не стоит задача разобраться как ставить конкретно Cumulus или какой либо другой конкретный проект. Мне важно понять весь workflow разработчика.

Вот вы говорите что установка пакетов это на 99% автоматический процесс:

Но это подразумевается что вы сами идете на AppExchange ищете там нужное и ставите себе?
Меня же интересует можно ли действительно полностью автоматизировать этот процесс, как говориться по принципу "большой зеленой кнопки".

К примеру, мне отвечали еще такое:

"У них Jenkins развернут для сборки. Видимо он дергает инсталл пакетов через API. Вот вывод в лог ci.salesforcefoundation.org/job/Cumulus_dev/lastBuild/console"

[quote="Dmitry Shnyrev"]Решить проблему с "недоставленными" пакетами просто - надо их собственно установить. Я не знаком конкретно с проектом Cumulus, но не думаю что разработчики не описали процесс установки и мне кажется зависимости должны быть описаны. Не думаю что там могут быть какие-то сложные моменты. Установка пакетов в Salesforce очень простая и на 99% автоматическая процедура.

Репозиторий(CVS) и орг физически никак не связаны. Связаны они через ваш комп, локальную папку проекта. Т.е. напрямую сливать/заливать из репозитория в Salesforce нельзя. Таким образом получается доступ к репозиторию != доступ к оргу. И то и то надо настраивать отдельно.[/quote]

Дмитрий, большое спасибо за ответы.
Да, я не являюсь специалистом в Salesforce. У меня не стоит задача разобраться как ставить конкретно Cumulus или какой либо другой конкретный проект. Мне важно понять весь workflow разработчика.

Вот вы говорите что установка пакетов это на 99% автоматический процесс:

Но это подразумевается что вы сами идете на AppExchange ищете там нужное и ставите себе?
Меня же интересует можно ли действительно полностью автоматизировать этот процесс, как говориться по принципу "большой зеленой кнопки".

К примеру, мне отвечали еще такое:

"У них Jenkins развернут для сборки. Видимо он дергает инсталл пакетов через API. Вот вывод в лог ci.salesforcefoundation.org/job/Cumulus_dev/lastBuild/console"




Michael
Вот вы говорите что установка пакетов это на 99% автоматический процесс:
Но это подразумевается что вы сами идете на AppExchange ищете там нужное и ставите себе?

Собственно ДА. Или если пакета нет на AppExcange, то установить его можно просто получив ссылку для установки с орга, где собирается пакет.

Michael
"У них Jenkins развернут для сборки. Видимо он дергает инсталл пакетов через API. Вот вывод в лог ci.salesforcefoundation.org/job/Cumulus_dev/lastBuild/console"

О какая красота. Вот тут уже мне самому по ходу надо разбираться. Никогда не сталкивался с Jenkins.

[quote="Michael"]Вот вы говорите что установка пакетов это на 99% автоматический процесс:
Но это подразумевается что вы сами идете на AppExchange ищете там нужное и ставите себе? [/quote]
Собственно ДА. Или если пакета нет на AppExcange, то установить его можно просто получив ссылку для установки с орга, где собирается пакет.

[quote="Michael"]"У них Jenkins развернут для сборки. Видимо он дергает инсталл пакетов через API. Вот вывод в лог ci.salesforcefoundation.org/job/Cumulus_dev/lastBuild/console"[/quote]
О какая красота. Вот тут уже мне самому по ходу надо разбираться. Никогда не сталкивался с Jenkins.

Я бы не советовал начинать разбираться с Cumulus. Оно не очень простое, и система сборки требует middleware (написанное на Python) а также весьма не простую связку с Git и Jenkins.

Я бы не советовал начинать разбираться с Cumulus. Оно не очень простое, и система сборки требует middleware (написанное на Python) а также весьма не простую связку с Git и Jenkins.

А что вообще за зверь такой, этот Cumulus? Чем он так хорош?

А что вообще за зверь такой, этот Cumulus? Чем он так хорош?

Хотел еще спросить по триггерам вопрос.

Зачем дана возможность определять поля, проперти, методы, внутренние классы в Триггерах?

Как это используется? Как используете лично вы? Есть ли какие-то нюансы?

Хотел еще спросить по триггерам вопрос.

Зачем дана возможность определять поля, проперти, методы, внутренние классы в Триггерах?

Как это используется? Как используете лично вы? Есть ли какие-то нюансы?

Michael
Зачем дана возможность определять поля, проперти, методы, внутренние классы в Триггерах?

Хороший вопрос. Честно никогда не пользовался, да собственно и не знал что там можно что-то кроме стандартной структуры использовать, не было необходимости.
Вот пользуюсь такими простыми структурами
https://developer.salesforce.com/page/Apex_Code_Best_Practices
т.е. объявление триггера
trigger accountTrigger on Account (before insert, before update) {
...
}

и внутри его логика

[quote="Michael"]Зачем дана возможность определять поля, проперти, методы, внутренние классы в Триггерах?[/quote]
Хороший вопрос. Честно никогда не пользовался, да собственно и не знал что там можно что-то кроме стандартной структуры использовать, не было необходимости.
Вот пользуюсь такими простыми структурами
https://developer.salesforce.com/page/Apex_Code_Best_Practices
т.е. объявление триггера
[code]trigger accountTrigger on Account (before insert, before update) {
    ...
}
[/code]
и внутри его логика

Michael
Хотел еще спросить по триггерам вопрос.

Зачем дана возможность определять поля, проперти, методы, внутренние классы в Триггерах?

Как это используется? Как используете лично вы? Есть ли какие-то нюансы?

Мне кажется это все от лукавого:)

Пиши свой тригер диспетчер и не заморачивайся

[quote="Michael"]Хотел еще спросить по триггерам вопрос.

Зачем дана возможность определять поля, проперти, методы, внутренние классы в Триггерах?

Как это используется? Как используете лично вы? Есть ли какие-то нюансы?[/quote]

Мне кажется это все от лукавого:)

Пиши свой тригер диспетчер и не заморачивайся

Dmitry Shnyrev
А что вообще за зверь такой, этот Cumulus? Чем он так хорош?

Меня тоже это интересует.

[quote="Dmitry Shnyrev"]А что вообще за зверь такой, этот Cumulus? Чем он так хорош?[/quote]
Меня тоже это интересует.

Michael, можно узнать, как поживает ваш плагин для IDEA?
Будет ли он выложен в публичный доступ и примерные сроки?

[url=https://salesforce-developer.ru/community/other/michael]Michael[/url], можно узнать, как поживает ваш плагин для IDEA?
Будет ли он выложен в публичный доступ и примерные сроки?

А можете подсказать о Custom Settings Methods. Что это такое и как вы его использовали в своей практике?

А можете подсказать о Custom Settings Methods. Что это такое и как вы его использовали в своей практике?

Michael
А можете подсказать о Custom Settings Methods. Что это такое и как вы его использовали в своей практике?

Michael, просьба в следующий раз новые вопросы выноси в отдельные темы Понимаю что эту ветку ты создал, то вопрос уже не имеет отношение к основному вопросу "Зачем нужна IDE разработчикам Salesforce?"
По самому вопросу - не "Custom Settings Methods", а Custom Settings - это такие специальные объекты где лучше всего хранить данные для настройки приложения. Вот в этой статье, я описал по русски что это, для чего используется и как используется. Храним в Salesforce настройки для приложения

[quote="Michael"]А можете подсказать о Custom Settings Methods. Что это такое и как вы его использовали в своей практике?[/quote]
Michael, просьба в следующий раз новые вопросы выноси в отдельные темы :) Понимаю что эту ветку ты создал, то вопрос уже не имеет отношение к основному вопросу "Зачем нужна IDE разработчикам Salesforce?"
По самому вопросу - не "Custom Settings Methods", а Custom Settings - это такие специальные объекты где лучше всего хранить данные для настройки приложения. Вот в этой статье, я описал по русски что это, для чего используется и как используется. [url=https://salesforce-developer.ru/hranim-v-salesforce-nastroyki-dlya-prilozheniya]Храним в Salesforce настройки для приложения[/url]

Мой вопрос благополучно проигнорен! ):

Мой вопрос благополучно проигнорен! ):

Gres
Мой вопрос благополучно проигнорен! ):

Я думаю Michael просто интересовался из любопытства про IDEA+Salesforce. Если бы кто-то реально занимался разработкой мы бы уже узнали.
Вот тут, http://vk.com/salesforcedevelopers как-то давно (7 мая 2013) Павел Демещик говорил что займется разработкой плагина под IDEA. Если кто его знает, поинтересуйтесь о результатах. Может у него какие наработки остались.

[quote="Gres"]Мой вопрос благополучно проигнорен! ):[/quote]
Я думаю Michael просто интересовался из любопытства про IDEA+Salesforce. Если бы кто-то реально занимался разработкой мы бы уже узнали. 
Вот тут, http://vk.com/salesforcedevelopers как-то давно (7 мая 2013) Павел Демещик говорил что займется разработкой плагина под IDEA. Если кто его знает, поинтересуйтесь о результатах. Может у него какие наработки остались.

Dmitry Shnyrev
Gres
Мой вопрос благополучно проигнорен! ):

Я думаю Michael просто интересовался из любопытства про IDEA+Salesforce. Если бы кто-то реально занимался разработкой мы бы уже узнали.
Вот тут, http://vk.com/salesforcedevelopers как-то давно (7 мая 2013) Павел Демещик говорил что займется разработкой плагина под IDEA. Если кто его знает, поинтересуйтесь о результатах. Может у него какие наработки остались.

Он же даже скрины постил с результатами работы, так что я думаю, что какая-то разработка все таки имела место.

[quote="Dmitry Shnyrev"][quote="Gres"]Мой вопрос благополучно проигнорен! ):[/quote]
Я думаю Michael просто интересовался из любопытства про IDEA+Salesforce. Если бы кто-то реально занимался разработкой мы бы уже узнали. 
Вот тут, http://vk.com/salesforcedevelopers как-то давно (7 мая 2013) Павел Демещик говорил что займется разработкой плагина под IDEA. Если кто его знает, поинтересуйтесь о результатах. Может у него какие наработки остались.[/quote]
Он же даже скрины постил с результатами работы, так что я думаю, что какая-то разработка все таки имела место.

Скрины не видел. А куда он их постил?

Скрины не видел. А куда он их постил?

Чего-то я туплю
там же ссылка на git https://github.com/Nailan/force.com-plugin-for-intellij-idea
2 года назад последний коммит - по ходу все заглохло.

Чего-то я туплю
там же ссылка на git https://github.com/Nailan/force.com-plugin-for-intellij-idea
2 года назад последний коммит - по ходу все заглохло.

Dmitry Shnyrev
Скрины не видел. А куда он их постил?

Сюда, на форум, с примерами реализации.
Но потом они были успешно удалены.

[quote="Dmitry Shnyrev"]Скрины не видел. А куда он их постил? [/quote]
Сюда, на форум, с примерами реализации.
Но потом они были успешно удалены.

Dmitry Shnyrev
Чего-то я туплю
там же ссылка на git https://github.com/Nailan/force.com-plugin-for-intellij-idea
2 года назад последний коммит - по ходу все заглохло.

Ну там вообще считай ничего нет.

[quote="Dmitry Shnyrev"]Чего-то я туплю
там же ссылка на git https://github.com/Nailan/force.com-plugin-for-intellij-idea
2 года назад последний коммит - по ходу все заглохло.[/quote]
Ну там вообще считай ничего нет.

Прикольно, что-то это прошло мимо меня. Или у меня уже потеря памяти.

Прикольно, что-то это прошло мимо меня. Или у меня уже потеря памяти.

Dmitry Shnyrev
Прикольно, что-то это прошло мимо меня. Или у меня уже потеря памяти.

Возможно, я просто читал эту тему в нужный момент. (:

[quote="Dmitry Shnyrev"]Прикольно, что-то это прошло мимо меня. Или у меня уже потеря памяти.[/quote]
Возможно, я просто читал эту тему в нужный момент. (:

(hidden)

[size=5](hidden)[/size]

Michael
Gres, вот если вы поподробнее опишите чего бы вы хотели, и что вам кажется "удобным" я был бы благодарен.

Самое главное, чего хотелось бы это полноценной IDE:
- контекстного автокомплита
- встроенной возможности отладки проекта (break points)
- удобной навигации по проекту (go to file/class/definition/method)
- просмотра зависимостей
- возможности гибкой настройки структуры проекта (выделение кастомный слоев/папок)
- удобного процесса деплоя (просмотр изменений, выбор инстанса итд)
Все остальное считаю вторичным или уже отчасти реализованным.
Если есть вопросы, готов помочь, пишите.

[quote="Michael"]Gres, вот если вы поподробнее опишите чего бы вы хотели, и что вам кажется "удобным" я был бы благодарен.[/quote]
Самое главное, чего хотелось бы это полноценной IDE:
- контекстного автокомплита
- встроенной возможности отладки проекта (break points)
- удобной навигации по проекту (go to file/class/definition/method)
- просмотра зависимостей
- возможности гибкой настройки структуры проекта (выделение кастомный слоев/папок)
- удобного процесса деплоя (просмотр изменений, выбор инстанса итд)
Все остальное считаю вторичным или уже отчасти реализованным.
Если есть вопросы, готов помочь, пишите.

Gres
смотра зависи
Gres
Самое главное, чего хотелось бы это полноценной IDE:
- контекстного автокомплита
- встроенной возможности отладки проекта (break points)
- удобной навигации по проекту (go to file/class/definition/method)
- просмотра зависимостей
- возможности гибкой настройки структуры проекта (выделение кастомный слоев/папок)
- удобного процесса деплоя (просмотр изменений, выбор инстанса итд)
Все остальное считаю вторичным или уже отчасти реализованным.
Если есть вопросы, готов помочь, пишите.

Полезная инфа.

[quote="Gres"]смотра зависи[/quote][quote="Gres"]Самое главное, чего хотелось бы это полноценной IDE: 
- контекстного автокомплита 
- встроенной возможности отладки проекта (break points) 
- удобной навигации по проекту (go to file/class/definition/method) 
- просмотра зависимостей 
- возможности гибкой настройки структуры проекта (выделение кастомный слоев/папок) 
- удобного процесса деплоя (просмотр изменений, выбор инстанса итд) 
Все остальное считаю вторичным или уже отчасти реализованным. 
Если есть вопросы, готов помочь, пишите.[/quote]

Полезная инфа.

- Просмотр каких зависимостей? Вы имеете ввиду поставленные пакеты?


- Просмотр каких зависимостей? Вы имеете ввиду поставленные пакеты?


Michael
- 2 пункта пока нет.

Видел попытку реализации в BrainEngine и MavensMate, не понравилось, хотелось бы чего-то более приемлимого и удобного.
Michael
- Можете поподробнее расписать процесс деплоя, который был бы удобным.

Хотелось бы иметь возможность
- выбора метаданных для деплоя (руками/регуляркой/критериально/всю)
- выбора инстанса и хранения его данных, чтобы не приходилось каждый раз их вводить, а также возможности ввести часто используемые инстансы
- получения выбранных метаданных из орга, в который идет деплой
- возможность сравнения метаданных (удобный diff + разрешение конфликтов)
- возможность увидеть итоговый список метаданных, что будет изменено, что перезаписано итд.
- валидация деплоя
- деплой + опциональный запуск тестов на инстансе.
Michael
- Просмотр каких зависимостей? Вы имеете ввиду поставленные пакеты?

Нет, но это тоже было бы неплохо.
Хотелось бы видеть где используется тот или иной метод, переменная, константа, а также было бы неплохо построить дерево зависимостей.
Например, в Visual Studio есть References над каждым методом, также по ним удобно смотреть используется этот код или нет.
Это все только базовые вещи.
Можно написать достаточно много по поводу возможностей рефакторинга, анализа проекта и различнх метрик, но на данный момент считаю это избыточным.
Хотелось бы, конечно, увидеть продукт с базовыми возможностями.
Спасибо.

[quote="Michael"]- 2 пункта пока нет. [/quote]
Видел попытку реализации в BrainEngine и MavensMate, не понравилось, хотелось бы чего-то более приемлимого и удобного.
[quote="Michael"]- Можете поподробнее расписать процесс деплоя, который был бы удобным. [/quote]
Хотелось бы иметь возможность 
- выбора метаданных для деплоя (руками/регуляркой/критериально/всю)
- выбора инстанса и хранения его данных, чтобы не приходилось каждый раз их вводить, а также возможности ввести часто используемые инстансы
- получения выбранных метаданных из орга, в который идет деплой
- возможность сравнения метаданных (удобный diff + разрешение конфликтов)
- возможность увидеть итоговый список метаданных, что будет изменено, что перезаписано итд.
- валидация деплоя
- деплой + опциональный запуск тестов на инстансе. 
[quote="Michael"]- Просмотр каких зависимостей? Вы имеете ввиду поставленные пакеты?[/quote]
Нет, но это тоже было бы неплохо.
Хотелось бы видеть где используется тот или иной метод, переменная, константа, а также было бы неплохо построить дерево зависимостей.
Например, в Visual Studio есть References над каждым методом, также по ним удобно смотреть используется этот код или нет.
Это все только базовые вещи.
Можно написать достаточно много по поводу возможностей рефакторинга, анализа проекта и различнх метрик, но на данный момент считаю это избыточным.
Хотелось бы, конечно, увидеть продукт с базовыми возможностями.
Спасибо.

Возможно, было бы удобно встроить в инструмент, более тесную интеграцию с СФ, например, создание dev инстанса и деплой туда текущего кода.
Но также на данный момент считаю это избыточным. (:

Возможно, было бы удобно встроить в инструмент, более тесную интеграцию с СФ, например, создание dev инстанса и деплой туда текущего кода.
Но также на данный момент считаю это избыточным. (:

Gres
Хотелось бы иметь возможность
- выбора метаданных для деплоя (руками/регуляркой/критериально/всю)
- выбора инстанса и хранения его данных, чтобы не приходилось каждый раз их вводить, а также возможности ввести часто используемые инстансы
- получения выбранных метаданных из орга, в который идет деплой
- возможность сравнения метаданных (удобный diff + разрешение конфликтов)
- возможность увидеть итоговый список метаданных, что будет изменено, что перезаписано итд.
- валидация деплоя
- деплой + опциональный запуск тестов на инстансе.

а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?

[quote="Gres"]Хотелось бы иметь возможность
- выбора метаданных для деплоя (руками/регуляркой/критериально/всю)
- выбора инстанса и хранения его данных, чтобы не приходилось каждый раз их вводить, а также возможности ввести часто используемые инстансы
- получения выбранных метаданных из орга, в который идет деплой
- возможность сравнения метаданных (удобный diff + разрешение конфликтов)
- возможность увидеть итоговый список метаданных, что будет изменено, что перезаписано итд.
- валидация деплоя
- деплой + опциональный запуск тестов на инстансе. [/quote]

а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?

Michael
а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?

Всех

[quote="Michael"]а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?[/quote]
Всех

Gres
Michael
а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?

Всех

Ну тут ты наверное погорячился. Почти все там есть, ну может только кроме выбора чего-либо регуляркой. Проблема в эклиасе в другом. Время деплоя больше чем у анта от 2-х до 4-х раз. И вот это сертезно раздражало.

[quote="Gres"][quote="Michael"]а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?[/quote]
Всех[/quote]

Ну тут ты наверное погорячился. Почти все там есть, ну может только кроме выбора чего-либо регуляркой. Проблема в эклиасе в другом. Время деплоя больше чем у анта от 2-х до 4-х раз. И вот это сертезно раздражало.

Michael
Gres
Хотелось бы иметь возможность
- выбора метаданных для деплоя (руками/регуляркой/критериально/всю)
- выбора инстанса и хранения его данных, чтобы не приходилось каждый раз их вводить, а также возможности ввести часто используемые инстансы
- получения выбранных метаданных из орга, в который идет деплой
- возможность сравнения метаданных (удобный diff + разрешение конфликтов)
- возможность увидеть итоговый список метаданных, что будет изменено, что перезаписано итд.
- валидация деплоя
- деплой + опциональный запуск тестов на инстансе.

а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?


1. - нет удобного выбора метаданных, только чекбоксы, что очень неудобно
2. - не сохраняются данные для логина на инстанс
3. +/- есть только полный бэкап
4. - сравнения метаданных нет
5. +/- подсвечивается не всегда нужным цветом
6. +
7. +/- запуска тестов нет
Итого: только 1 полноценный +

[quote="Michael"][quote="Gres"]Хотелось бы иметь возможность
- выбора метаданных для деплоя (руками/регуляркой/критериально/всю)
- выбора инстанса и хранения его данных, чтобы не приходилось каждый раз их вводить, а также возможности ввести часто используемые инстансы
- получения выбранных метаданных из орга, в который идет деплой
- возможность сравнения метаданных (удобный diff + разрешение конфликтов)
- возможность увидеть итоговый список метаданных, что будет изменено, что перезаписано итд.
- валидация деплоя
- деплой + опциональный запуск тестов на инстансе. [/quote]

а чем с точки зрения "удобного" деплоя плох Еклипс? каких пунктов из этого списка в нем нет?[/quote]
1. - нет удобного выбора метаданных, только чекбоксы, что очень неудобно
2. - не сохраняются данные для логина на инстанс
3. +/- есть только полный бэкап
4. - сравнения метаданных нет
5. +/- подсвечивается не всегда нужным цветом
6. + 
7. +/- запуска тестов нет
Итого: только 1 полноценный +

Gres
- нет удобного выбора метаданных, только чекбоксы, что очень неудобно

Хотел бы обсудить подробнее некоторые моменты. Как можно связаться с вами (skype, email) ?

[quote="Gres"] - нет удобного выбора метаданных, только чекбоксы, что очень неудобно [/quote]

Хотел бы обсудить подробнее некоторые моменты. Как можно связаться с вами (skype, email) ?

Michael
Gres
- нет удобного выбора метаданных, только чекбоксы, что очень неудобно

Хотел бы обсудить подробнее некоторые моменты. Как можно связаться с вами (skype, email) ?


Написал Вам.

[quote="Michael"][quote="Gres"] - нет удобного выбора метаданных, только чекбоксы, что очень неудобно [/quote]

Хотел бы обсудить подробнее некоторые моменты. Как можно связаться с вами (skype, email) ?[/quote]
Написал Вам.

Dmitry Shnyrev
Gres
Мой вопрос благополучно проигнорен! ):

Я думаю Michael просто интересовался из любопытства про IDEA+Salesforce. Если бы кто-то реально занимался разработкой мы бы уже узнали.
Вот тут, http://vk.com/salesforcedevelopers как-то давно (7 мая 2013) Павел Демещик говорил что займется разработкой плагина под IDEA. Если кто его знает, поинтересуйтесь о результатах. Может у него какие наработки остались.

Всем привет, случайно нашел эту тему. Ребят, я 2 года назад прогал на Apex / Visualforce, потом я перепробовал все на этой платформе и перешел на Java. После этого захотелось облегчить жизнь коллегам из Salesforce department и я посмотрел как разрабатываются плагины для идеи, придумал примерную архитектуру, но не было времени реализовать. Сейчас я работаю в собственной компании datarockets http://datarockets.com , мы пишем на Ruby on Rails. Времени еще меньше, поэтому могу только координировать тех, кто хочет разрабатывать такой плагин.
Кстати, по поводу тулзов для Apex кода есть одна небольшая законченная тула - https://github.com/Nailan/apex-code-inspector . Ищет лимитированные операции (SOQL, SOSL, send email) в циклах и todo в коде (писал для своих джуниоров, чтобы не тратить время на одно и то же). Для этой тулы я продумал продолжение - алгоритм динамического анализа (построение синтаксических деревьев + их обхов) + style checker, но опять же нет времени реализовать, но могу поделиться со всеми желающими своими наработками.
email: p.demeshchik@gmail.com

[quote="Dmitry Shnyrev"][quote="Gres"]Мой вопрос благополучно проигнорен! ):[/quote]
Я думаю Michael просто интересовался из любопытства про IDEA+Salesforce. Если бы кто-то реально занимался разработкой мы бы уже узнали. 
Вот тут, http://vk.com/salesforcedevelopers как-то давно (7 мая 2013) Павел Демещик говорил что займется разработкой плагина под IDEA. Если кто его знает, поинтересуйтесь о результатах. Может у него какие наработки остались.[/quote]
Всем привет, случайно нашел эту тему. Ребят, я 2 года назад прогал на Apex / Visualforce, потом я перепробовал все на этой платформе и перешел на Java. После этого захотелось облегчить жизнь коллегам из Salesforce department и я посмотрел как разрабатываются плагины для идеи, придумал примерную архитектуру, но не было времени реализовать. Сейчас я  работаю в собственной компании datarockets http://datarockets.com , мы пишем на Ruby on Rails. Времени еще меньше, поэтому могу только координировать тех, кто хочет разрабатывать такой плагин.
Кстати, по поводу тулзов для Apex кода есть одна небольшая законченная тула - https://github.com/Nailan/apex-code-inspector . Ищет лимитированные операции (SOQL, SOSL, send email) в циклах и todo в коде (писал для своих джуниоров, чтобы не тратить время на одно и то же). Для этой тулы я продумал продолжение - алгоритм динамического анализа (построение синтаксических деревьев + их обхов) + style checker, но опять же нет времени реализовать, но могу поделиться со всеми желающими своими наработками.
email: p.demeshchik@gmail.com

Ну раз пошла такая пруха.... Может кому нужен парсер апекс классов?

Ну раз пошла такая пруха.... Может кому нужен парсер апекс классов?

wilder
Ну раз пошла такая пруха.... Может кому нужен парсер апекс классов?

Выкладывай, посмотрим.

А у меня есть пример описания грамматики и постороения синтаксического дерева для Apex.

Тут, наверно, каждый второй чем-то подобным занимался)

[quote="wilder"]Ну раз пошла такая пруха.... Может кому нужен парсер апекс классов?[/quote]
Выкладывай, посмотрим.

А у меня есть пример описания грамматики и постороения синтаксического дерева для Apex.

Тут, наверно, каждый второй чем-то подобным занимался)

wilder
Может кому нужен парсер апекс классов?

А что делает парсер Apex классов? Что он там парсит?

[quote="wilder"]Может кому нужен парсер апекс классов?[/quote]
А что делает парсер Apex классов? Что он там парсит?

Dmitry Shnyrev
А что делает парсер Apex классов? Что он там парсит?

Если говорить с точки зрения компиляторов, то парсинг(разбор) - это так называемая вторая фаза компиляции или выполнение синтаксического анализа. Результатом обычно является синтаксическое дерево.

Если анализ обнаруживает,что исходная программа неверно составлена синтаксически либо дефектна
семантически, он должен выдать информативные сообщения об этом, чтобы пользователь мог исправить обнаруженные ошибки.


А если в более широком смысле, то парсинг можно определить как процесс поиска определенной информации, а так же разбиение данных на смысловые части.

[quote="Dmitry Shnyrev"]А что делает парсер Apex классов? Что он там парсит?[/quote]

Если говорить с точки зрения компиляторов, то парсинг(разбор) - это так называемая вторая фаза компиляции или выполнение синтаксического анализа. Результатом обычно является синтаксическое дерево.

Если анализ обнаруживает,что исходная программа неверно составлена синтаксически либо дефектна  
семантически, он должен выдать информативные сообщения об этом, чтобы пользователь мог исправить обнаруженные ошибки. 


А если в более широком смысле, то парсинг можно определить как процесс поиска определенной информации, а так же разбиение данных на смысловые части.

Спасибо, Michael, за информацию

Wilder, а что представляет собой информация на выходе твоего парсера? В каком она виде?

Спасибо, Michael, за информацию :)

Wilder, а что представляет собой информация на выходе твоего парсера? В каком она виде?

Dmitry Shnyrev
Спасибо, Michael, за информацию

Wilder, а что представляет собой информация на выходе твоего парсера? В каком она виде?

Набор информации о классе, какие методы есть, какие иннтер классы и так далее. Куда выкладывать ?

[quote="Dmitry Shnyrev"]Спасибо, Michael, за информацию :)

Wilder, а что представляет собой информация на выходе твоего парсера? В каком она виде?[/quote]

Набор информации о классе, какие методы есть, какие иннтер классы и так далее. Куда выкладывать ?

wilder
Куда выкладывать ?

Что за вопрос? На Github конечно

[quote="wilder"]Куда выкладывать ?[/quote]
Что за вопрос? На Github конечно :)