Организация кода

Организация кода

Несколько вопросов.
1. В одном аккаунте можно ли иметь несколько оргов? Если да - то как можно создавать орги?
2. Как вообще принято организовывать код? Например если на одном аккаунте нужно работать с несколькими проетами.

Спасибо.

В Salesforce нет понятия аккаунт. Самое большое понятие - орг (organization) типа отдельный сервер.
Есть несколько типов оргов: development, production, sandbox.
Если нужно поиграться или что-то разрабатывать - можно создать development org (занимает наверное минуты 2). Development оргов можно создавать сколько душе угодно и абсолютно бесплатно и они будут существовать вечно. Единственный их минус по сравнению с платными - ограниченные ресурсы (но для целей разработки хватает выше крыши).

Обычно под несвязанные проекты заводят разные орги. Даже под один проект можно их наклепать оргов сколько душе угодно (зависит от фантазии).

т.н. орг - это "то", куда разработчик входит по логину-паролю?
Я читал что орги можно как то структурировать. Т.е. сделать один вершиной иерархии, а остальные как то к нему "подключать".

traxjava
т.н. орг - это "то", куда разработчик входит по логину-паролю?

да. это как бы VPS где лежит все. Когда создается орг - автоматически создается один пользователь с правами администратор. Т.е получается что есть сервер и root в нем. Доступ к этому серверу через общий для всех адрес входа login.salesforce.com . username - это уникальное имя для ВСЕХ оргов. Т.е. знаю username (login) мы точно знаем какой это орг.

traxjava
Я читал что орги можно как то структурировать. Т.е. сделать один вершиной иерархии, а остальные как то к нему "подключать".

Это уже тема посерьезнее и относится к оргам типа production и sandbox. Для начала это знать не надо. Достаточно dev оргов. Когда с ними наиграетесь и поймете что из себя представляет Salesforce тогда нужно переходить к платным оргам.

Я так понимаю что понятия "проект" в SF нет (только например в eclipse)?

Как взаимодействуют между собой проекты в разных оргах (могут ли вообще)? Может ли код одного орга вызывать код из другого?

traxjava
Я так понимаю что понятия "проект" в SF нет (только например в eclipse)?

Абсолютно точно! Проект больше понятие абстрактное и верно подмечено больше относится к IDE.
Мой совет сразу присмотритесь к MavensMate. Официальная Force.com IDE последнее время разочаровывает, а этот проект выстрелил и занял сердца многих SF разработчиков.

traxjava
Как взаимодействуют между собой проекты в разных оргах (могут ли вообще)? Может ли код одного орга вызывать код из другого?

Никак - орг это абсолютно обособленная среда. Как "виртуальный сервер" (я писал выше) со своей памятью, базой данных, процессором (естественно это все понятия образные, потому что это облачная технология).
Единственная возможность организивать взаимодействие между оргами - это web services (REST, SOAP). Но зачем это делать? Обычно бизнес берет себе один орг, закупает сколько надо лицензий для своих сотрудников и работает в пределах одного орга.

Dmitry Shnyrev
Никак - орг это абсолютно обособленная среда. Как "виртуальный сервер" (я писал выше) со своей памятью, базой данных, процессором (естественно это все понятия образные, потому что это облачная технология).

даже между платными оргами? Тогда зачем платные орги группируют в иерархии?

Можете прислать ссылку на информацию про иерархии?
Возможно я не понимаю про что вы хотите сказать.

Я говорю про иерархию Production <-> Sandbox для разработки. Из production орг можно сделать sandbox, так называемый "клон" (слепок) с которым можно потом работать (вести разработку). Это тоже один из вариантов разработки (без development orgs, или в сочетании с ними). Так вот эти sandbox подчиняются production и между ними можно организовать code migrations.

Между двумя Production нет никакой стандартной взаимосвязи и их никак не группируют.

Зачем вообще вам сейчас так важен вопрос взаимосвязи (группирования) оргов?

Кто-то мне утверждал что можно. Я позже начал читать про Environment Tab, который надо как-то включить обратившись в саппорт. Так в этом Environment Tab можно (судя по скринам) создавать орги.

Возможно есть такая функция для клиентов, которым нужно много платных оргов, но это явно не относится к стандартному функционалу (как вы правильно заметили - включается по запросу в саппорт). Но я еще не разу не сталкивался с такими запросами от заказчиков. В пределах одного орга можно развернуться так что можно в месяц спускать и сотни тысяч $$$ (были и такие заказчики у фирмы где я работал ранее). Хотя я слышал, чем больше заказчик, тем больше ему скидки и не удивлюсь если крупный заказчик будет платить меньше заказчика поменьше - система скидок у представителей Salesforce очень гибкая.

Dmitry Shnyrev
traxjava
Как взаимодействуют между собой проекты в разных оргах (могут ли вообще)? Может ли код одного орга вызывать код из другого?

Никак - орг это абсолютно обособленная среда. Как "виртуальный сервер" (я писал выше) со своей памятью, базой данных, процессором (естественно это все понятия образные, потому что это облачная технология).
Единственная возможность организивать взаимодействие между оргами - это web services (REST, SOAP). Но зачем это делать? Обычно бизнес берет себе один орг, закупает сколько надо лицензий для своих сотрудников и работает в пределах одного орга.

[/quote]

Вот тут ты не совсем прав. Код из одного орга может вызвать код в другом орге и получить результат через API.

Так же иногда бизнес имеет несколько прадакшенов и организвет связь между ними. Почему несколько ? в крупных организациях раньше рчень быстро выедались лимиты на батчи и скедуллеры.

traxjava
Кто-то мне утверждал что можно. Я позже начал читать про Environment Tab, который надо как-то включить обратившись в саппорт. Так в этом Environment Tab можно (судя по скринам) создавать орги.

Возможно вот это

wilder
Вот тут ты не совсем прав. Код из одного орга может вызвать код в другом орге и получить результат через API.

Ну это же тот же web service только вид с боку. Да, дергать API одного орга можно из другого - но это не есть прямое его предназначение.

wilder
Так же иногда бизнес имеет несколько прадакшенов и организвет связь между ними. Почему несколько ? в крупных организациях раньше рчень быстро выедались лимиты на батчи и скедуллеры.

Опять же это все делалось на уровне кастомизаций и не имеет ничего общего со стандартным использованием Salesforce. Это костыли.

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

О, нашел наверное то, про что говорит traxjava
Salesforce Environment Hub
Это из области ISVforce и относится к Партнерам Salesforce.
Вы это имеете в виду?

Dmitry Shnyrev
Wilder, ты как всегда хочешь забить новому человеку голову всякими хуками и костылями, которые ты познал на пути к просвещению. Но это все из разряда "высшего пилотажа" и простым 99% заказчиков нафиг не нужно.

Ну парень зато увидел полную картину :)

wilder
Ну парень зато увидел полную картину :)

Не спугни заранее

Wilder, что можешь сказать про Salesforce Environment Hub? Ты наверное с ISV дело точно имел.

Dmitry Shnyrev
Wilder, что можешь сказать про Salesforce Environment Hub? Ты наверное с ISV дело точно имел.

К сожалению, я только слышал про это :(

Ну вот, испугали человека traxjava перестал задавать вопросы

Dmitry Shnyrev
Ну вот, испугали человека traxjava перестал задавать вопросы

Нет, вы что Спасибо большое за ответы. Пока что хотел - узнал.

А правда что нет для SF такого деплой-инструмента который может деплоить сразу в нужный пакет?
Пока получается что все классы скопом валятся в обзую кучу и потом их нужно вручную через консоль распихивать в нужные пакеты.

Правда.
Обычно на одном орге разрабатывают один проект, поэтому засунуть код в пакет не представляет проблем. По мере появления кода, нового функционала он добавляется в пакет (очень похоже на тот же git)
Не думаю что на орге может появиться КУЧА классов, с которыми будет непонятно что делать. Это не Java которая генерирует тонну ненужного кода и килограммовые проекты. В Salesforce все проще. Нужно добавить страницу - это apex controller + visualforce page. Надо добавить web service - 1 класс.

Dmitry Shnyrev
В Salesforce все проще. Нужно добавить страницу - это apex controller + visualforce page. Надо добавить web service - 1 класс.

мне в этом плане APEX и ORG чем то напоминают JavaScript в браузере.

ты не видищь общей картины как работает сам браузер, просто пишешь тот функционал которые тебе нужен, браузер сам знает как твой код запустить и прочее, весь твой код фактически ранится в "сендбоксе", ты не можешь завалить браузер и тем более систему (в норме).

так и апекс в СФ: просто пиши именно то что тебе нужно и не беспокойся больше ни о чем, весь твой код будет ранится какбы в "сендбоксе" и если будут в коде проблемы - СФ перехватит их и даст тебе знать. санаторный курорт просто, а не работа...

Ну это в плане безопасности.
А в плане организации кода - Salesforce больше похож на современные топовые фреймворки - четкая организация структуры кода (файлов) apex classes, visualforce pages, triggers. Мощная ORM - забываем про всякие низкоуровневые SQL. Права доступа и все такое.
Ну и конечно безопасность! Тут Den верно подметил.
Помню случай из молодости проходили военную практику на одно из боевых пограничных застав и нам выдали AK-74 чтобы учиться разбирать, собирать. Сперва мы с них чуть ли не пылинки сдували, а потом пришел начальник заставы и сказал "если мне кто-нибудь сломает автомат, то я ему лично денежную премию с грамотой вручу" и ебанул прикладом автомата об асфальт чтобы перезарядить. После этого мы поняли, что AK-74 сломать невозможно!
Вот тоже самое и Salesforce - это AK-74 технологий программирования. Я реально не знаю что можно сделать такого чтобы сломать Salesforce и это при всей его мощности

хотя не удивлюсь если сейчас придет Wilder и скажет что он знает как сломать Salesforce :))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Dmitry Shnyrev
:D хотя не удивлюсь если сейчас придет Wilder и скажет что он знает как сломать Salesforce :))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Ну сломать не сломать, а довести до состояния иступления можно. Раньше если в Http response получить кривую HTML и выдать это в DebugLog, то салесфорс вылетал в "Internal Server Error". Остальные примеры сходу не вспомню.

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

Вопрос - для developer орга можно "сделать" sandbox?

Как то я от wilder больше ожидал в плане сломать SF😊😊😊😊. Не знаю как счас раньше было можно начать высчитовать интегральное уравнение sf вешался и обычно звонили спрашивали чего вы там делаете.

traxjava
Вопрос - для developer орга можно "сделать" sandbox?

Все можно. Вопрос времени и усилий.

wilder
Раньше если в Http response получить кривую HTML и выдать это в DebugLog, то салесфорс вылетал в "Internal Server Error".

Тоже не раз эту штуку получал.

traxjava
Вопрос - для developer орга можно "сделать" sandbox?

А смысл?

wilder
traxjava
Вопрос - для developer орга можно "сделать" sandbox?

Все можно. Вопрос времени и усилий.

Wilder в своем стиле Нельзя.

Interesting information? Help us, post link to social media..