Какой framework выбрать для изучения?

130 просмотров
Перейти к первому непрочитанному сообщению

Yevgen

не прочитано,
4 авг. 2010 г., 10:19:0204.08.2010
– ruFlex
Здесь перечислены основные на данный момент.

Cairngorm, Parsley, PureMVC, Mate, Swiz, Robotlegs

Встречал несколько раз упоминание, что Cairngorm скорее мертв, чем
жив, но он был одним из первых.
Подобная тема обсуждалась, но давно. Хотелось бы свежих данных на эту
тему.

Роман Гулиев

не прочитано,
4 авг. 2010 г., 10:27:4304.08.2010
– ruf...@googlegroups.com
Cairngorm и Mate — для флекса. PureMVC — полезен для изучения теории,
но ни один реальный проект я не стал бы на нем писать. Про остальные
не могу ничего сказать.

--
Best Regards
Roman 'Obi' Guliev

Julius [gmail]

не прочитано,
4 авг. 2010 г., 10:51:4704.08.2010
– Yevgen
Использую только puremvc т.к. там испортить ничего нельзя :)
Советую swiz.

______________
Jloa.

Yuri Zhloba

не прочитано,
4 авг. 2010 г., 11:34:4404.08.2010
– ruf...@googlegroups.com
Изучить -- все. Использовать -- Матэ ( или любой другой, который понравиться после изучения всех :)
Или вообще никакой не использовать. Это тоже приемлимый вариант, но его можно выбрать, опять таки, после изучения всех.

Еще один хороший вариант -- изучить тот фреймворк, который используют в компании, куда вы планируете устроиться на работу :) Например во Флексис используют Матэ.

Denis Borisenko

не прочитано,
4 авг. 2010 г., 12:22:1604.08.2010
– ruf...@googlegroups.com
Лично я считаю лучшим фреймворком Robotlegs. Я в нем не нашел слабых мест и считаю его почти совершенным MVCS фреймворком. Там более совершенно устроены injections, чем в mate. Там все делается на уровне мета-программирования, что все очень комфортно. Кроме того, есть возможность использовать не Flash'овую событийную систему, а использовать Signal'ы.

PureMVC мне не нравится своими широковещательной статичной событийной системой. Там события обрабатывает не конкретный экземпляр, а все экземпляры класса. Подробнее на руфлеше я уже высказывал свои негодования. Или можно об этом почитать тут: http://blog.dborisenko.com/2010/01/15/shirokoveschatelnyie-opovescheniya-v-puremvc/

С Craingorm' ом работал давно.. помню только мнение, что он убог.. а конкретики не помню.. Кажется там не была предусмотрена возможность приложения не с одним ядром (multicore)

Mate мне вааще не понравился... там все зашито в (m)xml... вот один из примеров: в метод инвокере зашито имя метода как строка.. что затрудняет рефакторинг. <MethodInvoker method="methodToExecute"

Короче, после того как начнешь работать в Robotlegs — тебе покажется убогим любой другой фреймворк.. мое мнение...
Там все сделано круто, через метатэги и метопрограммирование, возможно юзать сигналы.. короче, самый крутой фреймворк...

zall...@gmail.com

не прочитано,
12 авг. 2010 г., 07:41:2812.08.2010
– ruFlex
Кэйнгорм хорош только для Flex проектов, он подразумевает
использование биндинга повсемесно, что плохо отражается на
производительности. Работал с версиями 0.99 и 2. В версии 3 вообще
ничего не понял и забил. PureMVC использую сейчас. Но мне не он не
очень нравится из-за неоднозначности распределения функционала по
медиаторам командам и проксям. Но если принять свои собственные
правила для этого то жить можно. Это самый распространенный фреймворк,
я бы даже сказал классический. Начать лучше с него.


On 4 авг, 20:22, Denis Borisenko <dborise...@gmail.com> wrote:
> Лично я считаю лучшим фреймворком Robotlegs. Я в нем не нашел слабых мест и
> считаю его почти совершенным MVCS фреймворком. Там более совершенно устроены
> injections, чем в mate. Там все делается на уровне мета-программирования,
> что все очень комфортно. Кроме того, есть возможность использовать не
> Flash'овую событийную систему, а использовать Signal'ы.
>
> PureMVC мне не нравится своими широковещательной статичной событийной
> системой. Там события обрабатывает не конкретный экземпляр, а все экземпляры
> класса. Подробнее на руфлеше я уже высказывал свои негодования. Или можно об

> этом почитать тут:http://blog.dborisenko.com/2010/01/15/shirokoveschatelnyie-opoveschen...


>
> С Craingorm' ом работал давно.. помню только мнение, что он убог.. а
> конкретики не помню.. Кажется там не была предусмотрена возможность
> приложения не с одним ядром (multicore)
>
> Mate мне вааще не понравился... там все зашито в (m)xml... вот один из
> примеров: в метод инвокере зашито имя метода как строка.. что затрудняет
> рефакторинг. <MethodInvoker method="methodToExecute"
>

> Короче, после того как начнешь работать в Robotlegs -- тебе покажется убогим

firsoff

не прочитано,
12 авг. 2010 г., 07:58:0212.08.2010
– ruFlex
День добрый, очень интересует Robotlegs есть что нибудь на русском?
сам уже где то год делаю проекты на PureMVC

с уважением.

Yuri Zhloba

не прочитано,
12 авг. 2010 г., 09:51:5712.08.2010
– ruf...@googlegroups.com
> есть что нибудь на русском?
Да забудте вы уже про русский :) На руском что-нибудь бывает с отставанием на 2-3 года, и только 1% от того, что есть на англиском (или даже меньше).

Читайте первоисточники и будете хорошими профессионалами.

Олег Галабурда

не прочитано,
12 авг. 2010 г., 09:57:2112.08.2010
– ruf...@googlegroups.com
Здрасте!

> Читайте первоисточники и будете хорошими профессионалами.

Даже с использованием http://translate.google.com есть высокая
вероятность стать хорошим профессионалом. У меня уже давно этот сервис
на хоткее в опере.

--
Oleg Galaburda
http://blog.actualwave.com/
http://jsinterface.googlecode.com/
http://guibuilder.org/

firsoff

не прочитано,
12 авг. 2010 г., 09:58:2212.08.2010
– ruFlex
*ушел читать матчасть по английскому*
=)

Daniil Tutubalin

не прочитано,
12 авг. 2010 г., 12:14:2112.08.2010
– ruf...@googlegroups.com
По поводу robotlegs...
Почитал немного официальную доку и впечатления от стороннего разработчика.

И вот какой момент я не понял: как инжектировать экземпляры классы,
которых может быть много?
Если экземпляр может быть только один, то тут всё ясно: если пока не
было, создать новый, если уже есть, инжектировать существующий.
А если у класса может быть несколько экземпляров, как указать, который
из них инжектировать?

Или этот случай роботлегсом не обрабатывается и надо использовать
классические средства (типа передачи аргумента в конструктор)?

Victor Kostin

не прочитано,
12 авг. 2010 г., 15:40:1712.08.2010
– ruf...@googlegroups.com
Чтобы инжектировать конкретный экземпляр класса:

[Inject]
public var myDependency:Depedency; //unnamed injection

injector.mapVaue(Depedency1, Instance);

Чтобы инжектировать конкретный экземпляр класса в конкретное место
используется именование в метатэге:

[Inject(name="myNamedDependency")]
public var myNamedDependency:Depedency; //named injection

Тогда иньекция делается так:
injector.mapVaue(Depedency2, Instance, "myNamedDependency");

Кстати, интересно посмотреть, что будет если использовать вызвать оба
способа одновременно - подозреваю что runtime error. Завтра попробую.

И в частности по поводу named injections в robotlegs на английском:
http://knowledge.robotlegs.org/discussions/questions/135-unnamed-vs-named-injection-swiftsuspenders-adapters

zG

не прочитано,
13 авг. 2010 г., 02:10:1113.08.2010
– ruFlex
Все круто в robotlegs, только использование метатегов вносит
значительный overhead... что по сравнению с Mate является минусом.

> И в частности по поводу named injections в robotlegs на английском:http://knowledge.robotlegs.org/discussions/questions/135-unnamed-vs-n...

firsoff

не прочитано,
13 авг. 2010 г., 02:47:4113.08.2010
– ruFlex
господа, а не подскажите - что это за штука такая - injection - зачем
она вообще нужна в контексте robotlegs ( да и вообще)?
с уважением.

Андрей Скорик

не прочитано,
13 авг. 2010 г., 04:05:3813.08.2010
– ruf...@googlegroups.com
4 августа 2010 г. 18:19 пользователь Yevgen
<yevgen.kr...@gmail.com> написал:

> Здесь перечислены основные на данный момент.
>
> Cairngorm, Parsley, PureMVC,  Mate, Swiz, Robotlegs
>

Для флекса - Mate (с оговорками), А вообще смотрел бы в сторону Parsley

Swiz - похож на Mate идеологией.. но имхо как-то напряжнее

PureMVC - как коню шоры.. хорош для начала, ибо принуждает следовать
своим принципам.

--
С уважением, Скорик Андрей. andrew...@gmail.com

Victor Kostin

не прочитано,
13 авг. 2010 г., 04:17:2513.08.2010
– ruf...@googlegroups.com
Robotlegs построен на использовании dependency injection (DI) -
встраивания зависимостей. В частности для этого используется swift
suspenders - движок для встраивания зависимостей.
Основной смысл - loose coupling (слабое связывание). Решает проблему
как обеспечить зависимость, незначительное влияние изменений и
повысить возможность повторного использования кода.

Класс с высокой степенью связанности (или жестко связанный) зависит
от множества других классов. Что приводит к проблемам:

* Изменения в связанных классах приводят к локальным изменениям в
данном классе.
* Затрудняется понимание каждого класса в отдельности.
* Усложняется повторное использование, поскольку для этого
требуется дополнительный анализ классов, с которыми связан данный
класс.

DI используется в Parsley, Mate, Swiz, Robotlegs, а в последней версии
(3й) Cairngorm предлагает также использовать DI и рекомендует для
этого Parsley.

И да, последнее время я использую Robotlegs.

Оверхед при использовании метатегов несомненно минус. Возможность
использования без Flex - плюс. В отличие от Mate легче проводить
рефакторинг. Ну а впрочем у каждого фрэймворка есть свои плюсы и
минусы

Ilja Panin

не прочитано,
13 авг. 2010 г., 04:46:1413.08.2010
– ruf...@googlegroups.com
Я люблю мате.
В нем ничего лишнего. И он не "агрессивный". Он самодостаточный. Ничего лишнего
Вы пишите только логику частей своего приложения, не отвлекаясь на мате.
При хорошем коде мате легко выпиливается при желании и легко
встраивается. Все легко покрывается тестами.
Мате не только flex фреймворк. При некоторых телодвижениях он начинате
работать с флешом.

Метатеговые фрейворки имеют минус в том что вы всегда должны быть в
"тонусе" и понимать что куда вы заижектили/что вызывается. Все эти
связи у вас разбросаны по коду, собрать во едино картину проекта
трудно. Мате позволяет все эти связи вынести в евент мапы и иметь
более четкую картину что же происходит.

В "обычной" жизни вам совсем будут ненужны всякие навороты и фичи всех
фреймворков. Как только у вас появляется очень сложный и большой
проект то фреймворки в нем ровным счетом ничего не решают. Тут все
больше строится на оргинизации комманды и соглашениях принятых в
комманде, и правильной организации кода.
Вообще ни один из фреймворков не является серебряной пулей и если вы
пишите говнокод то никакой фреймворк вам не поможет. Если вы пишите
хороший код, то любой из фреймворков будет вам помощником, правда,
некоторые довольно агрессивны в плане "правил помощи".


2010/8/13 Victor Kostin <victor...@gmail.com>:

> --
> Все правила мейл листа руФлекс:
> http://groups.google.com/group/ruflex/web/ruflex?hl=ru
>
> Русскоязычная Flex-вики: http://wiki.flash-ripper.com/
> Страница группы с поиском: http://groups-beta.google.com/group/ruflex?hl=ru
>
> RSS 2.0-канал группы (50 новых тем ):   http://groups.google.com/group/ruflex/feed/rss_v2_0_topics.xml?num=50
>
> RSS 2.0-канал группы (50 новых сообщений):  http://groups.google.com/group/ruflex/feed/rss_v2_0_msgs.xml?num=50
>
> Первое правило мейл листа руФлекс:
> Письма отправляются в UTF-8 с ящика, на который пришло письмо.
>
> Второе правило мейл листа руФлекс:
> Ненужные цитаты при ответе удаляются.
>
> Написать в группу: ruf...@googlegroups.com
> Отписаться: ruflex-un...@googlegroups.com

--
Ilja Panin
http://the33cows.com

firsoff

не прочитано,
13 авг. 2010 г., 05:46:0413.08.2010
– ruFlex
[Оверхед при использовании метатегов ] можете пояснить что это?
с уважением

kuril

не прочитано,
13 авг. 2010 г., 08:37:3813.08.2010
– ruFlex

> Метатеговые фрейворки имеют минус в том что вы всегда должны быть в
> "тонусе" и понимать что куда вы заижектили/что вызывается. Все эти
> связи у вас разбросаны по коду, собрать во едино картину проекта
> трудно. Мате позволяет все эти связи вынести в евент мапы и иметь
> более четкую картину что же происходит.

В идеологии DI есть понятие конфигурации, где определяется что куда
заижектили. Обычно это файл xml, как в Spring. В Мате евент мапы тоже
выполняют функцию файла конфигурации, но проблема в том, что матешная
мапа выходит за рамки декларативности, простого описания зависимостей,
и включает в себя императивную составляющую, то есть
последовательность выполнения комманд, например, в каком-нибудь
EventHandlers мы вызываем HTTPServiceInvoker, затем результат вызова
отправляем в Менеджер и испускаем EventAnnouncer, и вот уже xml у нас
выглядит как код приложения. Программирование на декларативном xml не
приводит ни к чему хорошему, характерный пример тому jelly
http://commons.apache.org/jelly/. Кроме того, мапы мате без
дополнительных телодвижений можно использовать только с Flex, хотя в
том же Parsley файл конфигурации может быть как mxml, так и xml. А
насчет разбросанности связей, так Context в Robotlegs тоже собирает
воедино картину проекта как и евент мапа, но при этом является as
классом и лучше воспринимается IDE, не говоря уже о компиляторе,
который много чего не сможет проверить в EventMap.

Ilja Panin

не прочитано,
13 авг. 2010 г., 09:03:3513.08.2010
– ruf...@googlegroups.com
Я не буду спорить потому, что в мире нет ничего идеального.
Все люди делают свой выбор по нуждам, потребностям и удобствам и
недостаткам (какие всегда есть и будут т.к. ничего идеального нет).
Я свой выбор сделал и пока не жалею, пока всего хватает.

2010/8/13 kuril <kuril2008a...@gmail.com>:

Ответить всем
Отправить сообщение автору
Переслать
0 новых сообщений