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

Ништяки в Lightning

Вот все хаем и хаем мы этот Lightning Components фреймворк, а люди уже много времени на нем только и пилят.

Может настало время поделиться плюсами данного фреймворка?

Какие есть ништяки которые вам запали в душу?

Вот все хаем и хаем мы этот Lightning Components фреймворк, а люди уже много времени на нем только и пилят.

Может настало время поделиться плюсами данного фреймворка?

Какие есть ништяки которые вам запали в душу? 

[img]https://s3.amazonaws.com/forcetalks/wp-content/uploads/2018/06/25080802/When-is-the-Right-Time-to-Migrate-to-Salesforce-Lightning-Experience-min.png[/img]

Может не поздно успеть запрыгнуть в последний вагон?

Может не поздно успеть запрыгнуть в последний вагон?

[img]https://img-fotki.yandex.ru/get/53211/88556700.2b/0_13970a_3fb5fc51_orig.jpg[/img]


Dmitry Shnyrev
Вот все хаем и хаем мы этот Lightning Components фреймворк, а люди уже много времени на нем только и пилят.

Вообще сейчас не хаю. Только пилю и пилю последний год)
А вот когда он ещё был в режиме бета года 2 назад тогда хаял. Падал от любого писка.

Dmitry Shnyrev
Может настало время поделиться плюсами данного фреймворка?

Не надо ничего подключать и за всё отвечает Salesforce. Они же сами и заботятся чтобы как можно больше мест в их системе это поддерживало.

Dmitry Shnyrev
Какие есть ништяки которые вам запали в душу?

Фрэймворк как фрэймворк - работает и всё :)

[quote="Dmitry Shnyrev"]Вот все хаем и хаем мы этот Lightning Components фреймворк, а люди уже много времени на нем только и пилят.[/quote]

Вообще сейчас не хаю. Только пилю и пилю последний год)
А вот когда он ещё был в режиме бета года 2 назад тогда хаял. Падал от любого писка.

[quote="Dmitry Shnyrev"]Может настало время поделиться плюсами данного фреймворка?[/quote]

Не надо ничего подключать и за всё отвечает Salesforce. Они же сами и заботятся чтобы как можно больше мест в их системе это поддерживало.

[quote="Dmitry Shnyrev"]Какие есть ништяки которые вам запали в душу? [/quote]

Фрэймворк как фрэймворк - работает и всё :)

Нашел таки время отписать!

Первый взгляд на Lightning был в стиле: что это за гавно и какие придурки его пилят?!?!?!?
Прошло пару лет и вроде бы все хорошо, но все равно чувство, что это говно, осталось. Но сейчас оно хотя бы рабочее!

Из ништяков конечно можно выделить возможность накидать на страницу разных компонент через их App Builder и получить в итоге красивую кастомную страницу, очень круто для людей которые не умееют в кодинг(но для этого надо все же уметь кодить эти самые компоненты).

Вторым ништяком можно назвать то, что в нем можно динамически создавать инпуты, дергать лейблы, пользоваться сервисами которые конвертнут тебе дату в формат юзера и прочие юзерозависимые штуки, которых так не хватало в старой ламповой комбинации VF+script(я не говорю сейчас за javascript на странице, с тонной кода) примеры(https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/expr_locale_value_provider.htm, "$A.get("$Label.namespace.labelName")", "$A.localizationService.formatDate(now)");

по-моему на этом ништяки и заканчиваются.

из того что мне не нравится:
1 - дебаггинг может превратиться в головную боооооль, потому что ты можешь сохранить какуюто невалидну дичь, и компонента просто перестанет работать, не выведя никакой ошибки. вот работала, а вот уже и нет.
2 - баги в стандартных компонентах(их просто мульен, как мне кажется)
3 - недопиленные стандартные компоненты, к примеру force:createRecord - нет возможности стандартно трекнуть нажатие кнопки cancel и повесить на эту кнопку callback, приходится извращаться. таких примеров куча, просто лень перечислять
4 -(сугубо личное мнение), мне лень настраивать typescript чтобы возможно было писать код,а потом компилить его в js.(с радостью возьму, если кто поделится :))
5 - самый главный баг/недоделка: забудь про record[my dynamic field name here] в разметке, они пока этого не сделали. и не факт что сделают.
6 - вроде есть поддержка one-way binding но она какая-то кривая и работает через какую-то задницу
7 - относительно сложно, хотя достаточно интересно релизовать handling событий и общение между разными компонентами. в том же ангуляре это 2 строчки, тут же надо создать lightning event, заюзать его во всех компонентах, потом сделать fire().
8 - когда я пытался передать функцию как аттрибут компоненты, то я был послан нах хотя в документашке вроде как написано что компоненты саппортят атрибуты с типом Function. Возможно это был единичный случай и все на самом деле работает
9 - нельзя зарендерить компоненту как PDF (я не пробовал, но думаю что нельзя, потому что лайтнинг это javascript)


для себя сделал вывод, что если работали раньше с чистым VF, переход на лайтнинг просто неизбежен, потому что он новый, стильный, мощный, а VF старый пердун

а если у вас был запилен ангуляр, то кроме как саморазвития и перехода на native lightning components(быть в тренде: мы юзаем lightning - мы крутые), смысла не особо много.

UPD: 10 - похоже есть баг при динамическом создании компонент, если несколько раз создать/удалить компоненту.
если после первого создания вызвать component.find("findable_aura_id") -> вернется object. если удалить эту компоненту, а потом заново создать, component.find("findable_aura_id") -> вернется array с одним элементом. почему - я хз фиксится примерно так, а правильно это или нет, решает каждый сам(вообще не очень праивльно, потому что кто знает в какой момент времени find вернет не один элемент, на как квик фикс сойдет XD)

var pimp = component.find('pimp_id');
if ($A.util.isArray(pimp)) {
pimp = pimp[0];
}

Нашел таки время отписать!

Первый взгляд на Lightning был в стиле: что это за гавно и какие придурки его пилят?!?!?!?
Прошло пару лет и вроде бы все хорошо, но все равно чувство, что это говно, осталось. Но сейчас оно хотя бы рабочее!

Из ништяков конечно можно выделить возможность накидать на страницу разных компонент через их App Builder и получить в итоге красивую кастомную страницу, очень круто для людей которые не умееют в кодинг(но для этого надо все же уметь кодить эти самые компоненты).

Вторым ништяком можно назвать то, что в нем можно динамически создавать инпуты, дергать лейблы, пользоваться сервисами которые конвертнут тебе дату в формат юзера и прочие юзерозависимые штуки, которых так не хватало в старой ламповой комбинации VF+script(я не говорю сейчас за javascript на странице, с тонной кода) примеры(https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/expr_locale_value_provider.htm, "$A.get("$Label.namespace.labelName")", "$A.localizationService.formatDate(now)");

по-моему на этом ништяки и заканчиваются.

из того что мне не нравится:
1 - дебаггинг может превратиться в головную боооооль, потому что ты можешь сохранить какуюто невалидну дичь, и компонента просто перестанет работать, не выведя никакой ошибки. вот работала, а вот уже и нет.
2 - баги в стандартных компонентах(их просто мульен, как мне кажется)
3 - недопиленные стандартные компоненты, к примеру force:createRecord - нет возможности стандартно трекнуть нажатие кнопки cancel и повесить на эту кнопку callback, приходится извращаться. таких примеров куча, просто лень перечислять
4 -(сугубо личное мнение), мне лень настраивать typescript чтобы возможно было писать код,а потом компилить его в js.(с радостью возьму, если кто поделится :))
5 - самый главный баг/недоделка: забудь про record[my dynamic field name here] в разметке, они пока этого не сделали. и не факт что сделают. 
6 - вроде есть поддержка one-way binding но она какая-то кривая и работает  через какую-то задницу
7 - относительно сложно, хотя достаточно интересно релизовать handling событий и общение между разными компонентами. в том же ангуляре это 2 строчки, тут же надо создать lightning event, заюзать его во всех компонентах, потом сделать fire().
8 - когда я пытался передать функцию как аттрибут компоненты, то я был послан нах :) хотя в документашке вроде как написано что компоненты саппортят атрибуты с типом Function. Возможно это был единичный случай и все на самом деле работает
9 - нельзя зарендерить компоненту как PDF :) (я не пробовал, но думаю что нельзя, потому что лайтнинг это  javascript)


для себя сделал вывод, что если работали раньше с чистым VF, переход на лайтнинг просто неизбежен, потому что он новый, стильный, мощный, а VF старый пердун

а если у вас был запилен ангуляр, то кроме как саморазвития и перехода на native lightning components(быть в тренде: мы юзаем lightning - мы крутые), смысла не особо много.

UPD: 10 - похоже есть баг при динамическом создании компонент, если несколько раз создать/удалить компоненту.
если после первого создания вызвать component.find("findable_aura_id") -> вернется object. если удалить эту компоненту, а потом заново создать, component.find("findable_aura_id") -> вернется array с одним элементом. почему - я хз :) фиксится примерно так, а правильно это или нет, решает каждый сам(вообще не очень праивльно, потому что кто знает в какой момент времени find вернет не один элемент, на как квик фикс сойдет XD)
[code]
var pimp = component.find('pimp_id');
if ($A.util.isArray(pimp)) {
    pimp = pimp[0];
}
[/code]

Класс, пасиб что поделился. Я так понимаю ты активно стал практиковать Lightning.
Жду новых рассказов.

Из ништяков, что я успел застать за очень короткий практический опыт - мне понравилось что в компоненте можно отслеживать различные глобальные события в SF или на странице. Не знаю как далеко ушла эта тема сейчас, но я жирно плюсую например событие апдейта записи. Когда у тебя на Layout добавлены компоненты которые зависят от значений в полях записи и эти значения меняются, то это событие можно отловить и перестроить компонент.

Класс, пасиб что поделился. Я так понимаю ты активно стал практиковать Lightning.
Жду новых рассказов.

Из ништяков, что я успел застать за очень короткий практический опыт - мне понравилось что в компоненте можно отслеживать различные глобальные события в SF или на странице. Не знаю как далеко ушла эта тема сейчас, но я жирно плюсую например событие апдейта записи. Когда у тебя на Layout добавлены компоненты которые зависят от значений в полях записи и эти значения меняются, то это событие можно отловить и перестроить компонент.