На мой взгляд, проблема реализации PureMVC именно в плохих архитектурных решениях и незнаниях возможностей фреймворка.
PureMVC заставляет писать тонны бойлерплейта, которые, вообще говоря, не нужны.
Так же в нём есть куча велосипедов: там написали свой NSNotification и свой NSNotificationCenter.
А уж выуживание объектов по строковому ключу — вообще за гранью добра и зла.
В любом случае, в чём
somethingManager = (TCSomethingManager*) [[ECApplicationFacade getInstance] retrieveProxy:[TCSomethingManager NAME]];
лучше, чем
somethingManager = [TCSomethingManager sharedManager];
я не понимаю.
На мой взгляд практический любой велосипед, реализующий MVC-паттерн будет лучше, чем PureMVC. Ну или возможен вариант, что в том проекте, откуда я беру примеры, его просто «неправильно приготовили».
Имхо, Pure MVC под ObjC надо обходить за версту. У меня складывается впечатление, что его разработчики увидели впервые Objective-C и iOS/OsX именно при портировании.
PureMVC ломает типичный подход UIKit, когда UIViewController является контроллером, а UIView, соответственно, вью. В терминах PureMVC UIViewController это View, а UIVIew существует вообще где-то сбоку.
В копилку плохого кода, который порождает PureMVC в кривых неопытных руках: govnokod.ru/9614
При этом всём версия под Java для постороннего взгляда кажется значительно вменямее.
Я на системнике умудрился язычок из разъёма выломать. Правда для этого понадобилось на вставленный штекер уронить переднюю панель от выдвижного ящика с высоты 40 см. Штекер остался целым, кстати.
Имена методов неудачные.
Тот же откомментированный «IsLevelRunning» делает не то, что написано в его имени. Это скорее «VerifyIsLevelsRunning» или как-то так. Если бы имя было правильное — комментарий был бы не нужен.
Справедливости ради надо заметить, что однажды антивирус меня таки спас: блокировал открытие заражённого pdf. То ли даташит, то ли ещё что-то такое из, как казалось, надёжного источника. Был это бесплатный Comodo Internet Security, кстати.
Так что здравый смысл — штука хорошая, но антивирус как страховка — вполне себе.
Попробуйте Vuze. Он же Azerus. Этакий комбайн с поддержкой очень многих интересных фич: Работа через Tor/I2P, использование нескольких соединений, сопряжение клиентов в локальной сети, скачивание одного файла из нескольких торрентов и много чего ещё интересного.
Только надо будет переключиться на «классический» интерфейс — «новый» часто пытается показывать сообщения в духе «я бесплатный, но купите меня».
Из фич, которые хотелось бы увидеть когда-нибудь: зумирование страницы колесом мыши при наведении курсора на ползунок зума (просто при наведении, без нажатия каких-либо кнопок)
Если сделаете возможность добавления кнопок-веб-страниц в боковую панель и перенос по строкам (знаю, что ядро хромиума, но вдруг) — прощу всё заранее ^^
Вот мне сейчас предлагают обновиться с кукурузника на новую Феррари. Вот только Феррари летать не умеет. Когда научится (желательно с вертикальным взлётом, кукурузнику ВПП какая-никакая нужна) — тогда и обновлюсь. Да и Бентли у меня есть уже, которая, впрочем, тоже не летает.
Shit happens.
Использовать два джойстика одним пальцем, имхо, не вариант. В принципе, есть настройка функционала, но кнопок и так всего 32, что для русского мало даже в полном комплекте.
А как у вашей клавиатуры с, хм, со «специальными возможностями»?
Получить травму пальца, или, упаси макаронный монстр, лишиться его, и возможность использовать вашу клавиатуру встаёт под большой вопрос.
Насколько я понял, на Вавилоне 5 не было маршевых двигателей, но маневровые установлены были. В ходе сериала они ими пользовались ещё как минимум раз: чтобы остановить вращение станции после выстрела Центурианского крейсера (последняя серия то ли 2го, то ли 3го сезона — там по сюжету предоставили убежище Нарнийскому крейсеру, о чём узнали Центуриане).
PureMVC заставляет писать тонны бойлерплейта, которые, вообще говоря, не нужны.
Так же в нём есть куча велосипедов: там написали свой NSNotification и свой NSNotificationCenter.
А уж выуживание объектов по строковому ключу — вообще за гранью добра и зла.
somethingManager = (TCSomethingManager*) [[ECApplicationFacade getInstance] retrieveProxy:[TCSomethingManager NAME]];
лучше, чем
somethingManager = [TCSomethingManager sharedManager];
я не понимаю.
На мой взгляд практический любой велосипед, реализующий MVC-паттерн будет лучше, чем PureMVC. Ну или возможен вариант, что в том проекте, откуда я беру примеры, его просто «неправильно приготовили».
PureMVC ломает типичный подход UIKit, когда UIViewController является контроллером, а UIView, соответственно, вью. В терминах PureMVC UIViewController это View, а UIVIew существует вообще где-то сбоку.
В копилку плохого кода, который порождает PureMVC в
кривыхнеопытных руках: govnokod.ru/9614При этом всём версия под Java для постороннего взгляда кажется значительно вменямее.
Тот же откомментированный «IsLevelRunning» делает не то, что написано в его имени. Это скорее «VerifyIsLevelsRunning» или как-то так. Если бы имя было правильное — комментарий был бы не нужен.
Так что здравый смысл — штука хорошая, но антивирус как страховка — вполне себе.
Только надо будет переключиться на «классический» интерфейс — «новый» часто пытается показывать сообщения в духе «я бесплатный, но купите меня».
Вот как тут:
yadi.sk/i/Zf34Vi7qeGdBw
P.S: А где vivaldi:config? :)
Использовать два джойстика одним пальцем, имхо, не вариант. В принципе, есть настройка функционала, но кнопок и так всего 32, что для русского мало даже в полном комплекте.
Получить травму пальца, или, упаси макаронный монстр, лишиться его, и возможность использовать вашу клавиатуру встаёт под большой вопрос.