Есть ли преимущество при внедрении ActionScript в MXML при разработке приложений Flex? - PullRequest
1 голос
/ 13 февраля 2010

Я всегда думал, что отделить пользовательский интерфейс от логики - это то же самое, что и использование файлов классов в Flash CS3 / CS4 или MVC в веб-инфраструктурах, но в последнее время появилось множество примеров и публикаций с использованием ActionScript, встроенных в MXML.

Есть ли польза от этого? Я что-то упустил?

Ответы [ 4 ]

2 голосов
/ 13 февраля 2010

По моему опыту, нет особой разницы, пишете ли вы компонент в ActionScript + MXML или только в ActionScript. Лично, если я пишу что-то сложное с небольшой логикой, я сделаю это в MXML. И наоборот, если код тяжелый и имеет небольшую разметку, я напишу это в Actionscript.

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

2 голосов
/ 13 февраля 2010

Не слишком увлекайтесь "правилами" MVC и тому подобного. В конечном итоге вы хотите, чтобы ваш код был настроен таким образом, чтобы он сводил к минимуму влияние / отток будущих изменений. Менее важно, где находится код, и более важно, что и как он взаимодействует с другим кодом. Я вижу, что многие люди берут простой компонент, такой как экран входа в систему, и создают модели, представления, контроллеры, помощники представлений, фасады сервисов и т. Д. В итоге получается более 75 строк кода для того, что должно быть около 20. также распространяет код среди множества файлов, а не одного. Так что, в конце концов, вы сделали обслуживание трудным, а не легким. Я не спорю с тем, чтобы игнорировать шаблоны проектирования, а скорее практичен в этом. Надеюсь, это поможет.

1 голос
/ 13 февраля 2010

Я согласен с Эрихом Дуглассом, в точку.Как правило, если я могу сделать макет с MXML, его будет проще поддерживать.Я имею в виду, кто хочет написать все это дерьмо в переопределении createChildren, если вам не нужно?Кроме того, MXML легче читать.

Что бы вы ни делали, помните, что если вы просто вызываете отдельный файл сценария для компонента MXML (Foo.mxml вызывает Foo.as для его ActionScript), вы теряете функцию подсветки кода, которая помогает вам работатьмежду MXML и ActionScript.Мне нравится держать их обоих в одном месте, поэтому, когда я нажимаю на идентификатор в элементе MXML, я сразу вижу, где на него ссылаются в AS.

1 голос
/ 13 февраля 2010

Я иду по нескольким простым правилам:

  • Если фрагмент кода представляет собой всего лишь одну короткую строку, и это не то, что вы можете использовать в другом месте - просто приклеить код - поместите его непосредственно в тег MXML.
  • Если он слишком длинный, чтобы удобно размещаться в теге MXML, или это то, что может использовать несколько компонентов в этом файле MXML, поместите его в функцию в теге Script в том же файле и вызовите функцию из тега MXML ( s).
  • Все остальное - полные классы, большие функции, вещи, используемые несколькими файлами MXML, - помещается в отдельный файл .as. Это включает в себя методы с одним LOC, которые являются частью более крупного класса, в отличие от автономных функций, охватываемых другими правилами.
...