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

DTO в Salesforce

Gres, в соседней теме ты упоминал DTO.
Последнее время (в связи со сменой основного рабочего проекта) стал открывать для себя ООП (оказывается до этого то что я знал про ООП и шаблоны проектирования, можно сказать что вообще ничего не знал).
В общем столкнулся с понятием DTO на новом проекте и его повсеместном использовании. По коду видно что можно обойтись спокойно и без него, но несмотря на это DTO активно используют.

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

Предлагаю вообще организовать "неделю ООП в Salesforce" и рассказать какие шаблоны проектирования и ГЛАВНОЕ ДЛЯ ЧЕГО вы используете.

Gres, в соседней теме ты упоминал DTO.
Последнее время (в связи со сменой основного рабочего проекта) стал открывать для себя ООП (оказывается до этого то что я знал про ООП и шаблоны проектирования, можно сказать что вообще ничего не знал).
В общем столкнулся с понятием DTO на новом проекте и его повсеместном использовании. По коду видно что можно обойтись спокойно и без него, но несмотря на это DTO активно используют.

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

Предлагаю вообще организовать "неделю ООП в Salesforce" :) и рассказать какие шаблоны проектирования и ГЛАВНОЕ ДЛЯ ЧЕГО вы используете.

Немножко ссылок:
Data transfer object
what is Data Transfer Object?
Суть в том, что формат и структура хранения данных в БД и на клиенте может значительно отличаться, чтобы отдать необходимые данные клиенту, ты должен преобразовать их в определенный формат, который называется DTO.
Таким образом, клиент не знает, как хранятся данные в БД, и не зависит от их формата. А когда нет жестких зависимостей не составит труда изменить формат, как на клиенте, так и в БД.

Немножко ссылок:
[url=http://en.wikipedia.org/wiki/Data_transfer_object]Data transfer object[/url]
[url=http://stackoverflow.com/questions/1051182/what-is-data-transfer-object]what is Data Transfer Object?[/url]
Суть в том, что формат и структура хранения данных в БД и на клиенте может значительно отличаться, чтобы отдать необходимые данные клиенту, ты должен преобразовать их в определенный формат, который называется DTO.
Таким образом, клиент не знает, как хранятся данные в БД, и не зависит от их формата. А когда нет жестких зависимостей не составит труда изменить формат, как на клиенте, так и в БД. 

Сорри, за некропостинг, но забавная у вас неделя ООП получилась :)

Сорри, за некропостинг, но забавная у вас неделя ООП получилась :)

Да, поучительная :)))) Много интересного узнали и выслушали мнение каждого.
Кстати RasMisha если я правильно помню что ты мне возразил по поводу того что в Salesforce нет документации по поводу паттернов проектирования (официально желательно) но я так ответа и не услышал про то где ее найти.

Да, поучительная :)))) Много интересного узнали и выслушали мнение каждого.
Кстати RasMisha если я правильно помню что ты мне возразил по поводу того что в Salesforce нет документации по поводу паттернов проектирования (официально желательно) но я так ответа и не услышал про то где ее найти.

О!
У меня они везде. Только называются Wrapper Так уж повелось до меня, ну и мне вообщем-то пофик как оно называется, лишь бы работало и было понятно.
Так как я на сервисах сижу, то это одно из основных, с чем я работаю.
Ессесно, передавать объект клиенту со всем мусором нет смысла. Передаем только то, что надо. При чем есть базовые DTO, а есть уже с полным набором полей. Периодически, надо возвращать только базовый, в котором только ID есть, ибо такой объект уже загружен на клиенте. Например, если объект содержит список объектов. То в этом списке, порой, передается только ID.
До меня все DTO содержали поля errorMessage и что-то еще. Ну и они всегда приходили, даже если пустые. А если это список, то, ну сами понимаете. Выпилил я это и засунул errorMessage в header ответа.
Специфика приложения такая, что даже в США, не везде хороший тырнет. А в моем конкретном случае, когда работничег находится в "бункере", то ну очень медленно. Так что, чем меньше пакет, тем лучше.
Опять таки, поля тоже называются коротко, а не такоетоСуперПуперОфигенноеПоле
Внутри нигде не передаю их, только sObject.

О! :)
У меня они везде. Только называются Wrapper :( Так уж повелось до меня, ну и мне вообщем-то пофик как оно называется, лишь бы работало и было понятно.
Так как я на сервисах сижу, то это одно из основных, с чем я работаю.
Ессесно, передавать объект клиенту со всем мусором нет смысла. Передаем только то, что надо. При чем есть базовые DTO, а есть уже с полным набором полей. Периодически, надо возвращать только базовый, в котором только ID есть, ибо такой объект уже загружен на клиенте. Например, если объект содержит список объектов. То в этом списке, порой, передается только ID.
До меня все DTO содержали поля errorMessage и что-то еще. Ну и они всегда приходили, даже если пустые. А если это список, то, ну сами понимаете. Выпилил я это и засунул errorMessage в header ответа.
Специфика приложения такая, что даже в США, не везде хороший тырнет. А в моем конкретном случае, когда работничег находится в "бункере", то ну очень медленно. Так что, чем меньше пакет, тем лучше.
Опять таки, поля тоже называются коротко, а не такоетоСуперПуперОфигенноеПоле :)
Внутри нигде не передаю их, только sObject.

Chiz
У меня они везде. Только называются Wrapper

ты прямо как я, сам только наверное масяц назад узнал что это DTO

[quote="Chiz"]У меня они везде. Только называются Wrapper[/quote]
ты прямо как я, сам только наверное масяц назад узнал что это DTO :D 

Dmitry Shnyrev
ты прямо как я, сам только наверное масяц назад узнал что это DTO :D
Ну, я с ними только на Java работал немного. Да, я их не называю DTO, и каких-то специальных функций не навешиваю. Обертка и обертка. Мы (я, как разработчик сервисов, и другие разработчики приложений, кот используют "мои" сервисы) на счет этого не заморачиваемся.

[quote="Dmitry Shnyrev"]ты прямо как я, сам только наверное масяц назад узнал что это DTO :D[/quote]Ну, я с ними только на Java работал немного. Да, я их не называю DTO, и каких-то специальных функций не навешиваю. Обертка и обертка. Мы (я, как разработчик сервисов, и другие разработчики приложений, кот используют "мои" сервисы) на счет этого не заморачиваемся.

Dmitry Shnyrev
Да, поучительная :)))) Много интересного узнали и выслушали мнение каждого.
Кстати RasMisha если я правильно помню что ты мне возразил по поводу того что в Salesforce нет документации по поводу паттернов проектирования (официально желательно) но я так ответа и не услышал про то где ее найти.

Разве я так написал?
По-моему я тонко намекнул, что паттерны стоят над языком/технологией?
Та статья, кстати, мне вообще (от слова вообще) не нравится.

[quote="Dmitry Shnyrev"]Да, поучительная :)))) Много интересного узнали и выслушали мнение каждого.
Кстати RasMisha если я правильно помню что ты мне возразил по поводу того что в Salesforce нет документации по поводу паттернов проектирования (официально желательно) но я так ответа и не услышал про то где ее найти.[/quote]
Разве я так написал?
По-моему я тонко намекнул, что паттерны стоят над языком/технологией?
Та статья, кстати, мне вообще (от слова вообще) не нравится.