Идиоматичный означает в соответствии с соглашениями языка. Вы хотите найти самое легкое и наиболее распространенные способы выполнения задачи вместо того, чтобы портировать Ваше знание с различного языка.
неидиоматический Python с помощью цикла с добавьте:
mylist = [1, 2, 3, 4]
newlist = []
for i in mylist:
newlist.append(i * 2)
идиоматический Python с помощью понимания списка:
mylist = [1, 2, 3, 4]
newlist = [(i * 2) for i in mylist]
У меня нет опыта работы с инструментом миграции, но я участвую в большом проекте миграции с форм на Apex. Поскольку мы начали около 2 лет назад, инструмент миграции был недоступен для нас, и мы вроде как создали свой собственный. Но преобразование действительно довольно сложно автоматизировать, за исключением простого элемента, который в основном представляет собой макет экрана и элементы. Итак, у нас есть метод создания первых вырезанных страниц Apex с правильными элементами в (более или менее) правильном макете, но тогда у нас все еще есть большая работа по проверке триггеров и библиотек форм на наличие фрагментов PL / SQL и выяснение что с ними делать (некоторые из них являются избыточным кодом, специфичным для форм, некоторые из них являются проверками на стороне клиента, которые нам нужно переписать в Javascript, некоторые - бизнес-логикой, которой вообще не должно быть в пользовательском интерфейсе и которые необходимо перемещать в пакеты).
Я думаю, что основное преимущество инструмента миграции перед то, что мы сделали сами, вероятно, является «управлением псевдопроектом», поскольку оно дает вам список вещей, которые необходимо вручную преобразовать, и отслеживает то, что вы сделали. Это принесло бы дивиденды в таком большом проекте, как наш, но, возможно, не так много в маленьких проектах. Для небольших проектов я был бы склонен сказать: «Давайте рассмотрим, что делает старое приложение Forms, переопределим требования и создадим с нуля в Apex». Вы же не хотите, чтобы ваши приложения Apex выглядели как приложения Forms с помадой на них!
некоторые из них представляют собой бизнес-логику, которой вообще не должно быть в пользовательском интерфейсе, и их нужно перемещать в пакеты).Я думаю, что главное преимущество инструмента миграции перед тем, что мы сделали сами, вероятно, является «управление псевдопроектом», в том, что он дает вам список вещей, которые нужно преобразовать вручную, и отслеживает то, что вы сделали. Это принесло бы дивиденды в таком большом проекте, как наш, но, возможно, не так много в маленьких проектах. Для небольших проектов я был бы склонен сказать: «Давайте рассмотрим, что делает старое приложение Forms, переопределим требования и создадим с нуля в Apex». Вы же не хотите, чтобы ваши приложения Apex выглядели как приложения Forms с помадой на них!
некоторые из них представляют собой бизнес-логику, которой вообще не должно быть в пользовательском интерфейсе, и их нужно перемещать в пакеты).Я думаю, что главное преимущество инструмента миграции перед тем, что мы сделали сами, вероятно, является «управлением псевдопроектом», в том, что он дает вам список вещей, которые необходимо вручную преобразовать, и отслеживает то, что вы сделали. Это принесло бы дивиденды в таком большом проекте, как наш, но, возможно, не так много в маленьких проектах. Для небольших проектов я был бы склонен сказать: «Давайте рассмотрим, что делает старое приложение Forms, переопределим требования и создадим с нуля в Apex». Вы же не хотите, чтобы ваши приложения Apex выглядели как приложения Forms с помадой на них!