|
Результаты опроса: Как вам UI
|
|
Похоже на унылое говно
|
|
20 |
68.97% |
Однозначно буду использовать
|
|
7 |
24.14% |
Пока не разобрался что это
|
|
2 |
6.90% |
|
04.06.2014, 04:35
|
Кандидат Javascript-наук
|
|
Регистрация: 03.06.2014
Сообщений: 101
|
|
Сообщение от nerv_
|
кстати, какая у тебя структура каталогов?
|
ооо, это отдельная тема) я завтра собирался (то есть через 6 часов примерно) запилить видеокурс по ui и по тому как архитектуру делать)
если в кратце то у меня 2 слоя, базовый и проэктный.
все 3 вида файлов, делятся на 2 эти слоя. Есть как базовые html так и проэктные. базовые css так и проэктные, базовые js так и проэктные.
Там короче эпик вин) если в случае с css то вроде все понятно, базовый слой это всякие .button .panel .row, а проектный это всякие .user-panel .main-menu, то как разбить на слои html и js??
В случае с js, по скольку у нас используется ui(ангуляр) который позволяет создавать директивы было принято сделать вот что:
Теперь есть такая сущности как веб компонент. Веб копоненты это такой кастомный html элемент который что то делает а настройки ему передаются через атрибуты. Так вот базовый слой создает веб компоненты (в виде директив element: true) вот, там и шаблоны директив и стили и логика. Эти компоненты могут наследовать друг друга, расширять и.т.п.
На проэктном же уровне мы из этих компонентов набираем сайт.
Логика у нас описывается в контроллерах, оформлиение в проэктных стилях, ну а разметка прямо в html.
Еще фишка в том что я использую coffee stylus и jade. для js css и html соответственно. По этому всю эту красоту прекрасно получается собрать в 3 соответствующих файлика. И выгрузить их в продакшен.
Сообщение от nerv_
|
Только еще ресурсы использую с недавнего времени.
|
ооой слууушай, годная идея, их то я спиздить и забыл совсем)))
у меня давно стояла идея запилить нечто такое тока с блекджеком и монашками)
Я короч хочу сделать что то типа чтобы когда к нам приходит массив сообщений, то UI автоматически пробегалась по ним конструктором Message и делала из них обьекты с методами. Буду называть такое ресурсы. изменишь сообщение, оно изменится и на сервере, если у тебя есть права на это. =)
Надо место чтобы их описывать и стиль описания, и место описания их взаимодействия с... короче подумать надо.
Годно годно, вначале вроде как описал $api а потом еще одну прослойку типа как ресурсы.
Запрашиваешь массив сообщений, пробегаешься по ним фиклом, меняешь что-то, или вызываешь метод remove у всех. А потом во время цикла $digest твой сервис автоматически составит запрос на удаление всех этих сообщений и отправит его =)
Последний раз редактировалось Maxmaxmaximus1001, 04.06.2014 в 05:25.
|
|
04.06.2014, 10:00
|
Кандидат Javascript-наук
|
|
Регистрация: 03.06.2014
Сообщений: 101
|
|
пипееееееееееееец ребят ангуляр такое говнно такооое говно!!
я то думал всякие сервисы типа $interval нужны для того чтобы утечек не было, вот удаляется элемент или директива в коде которой ты применил интервал, и он автоматически очищается. АН НЕТ!!! там надо вручную сбрасывать!! ну что за жесть то?? я почему сразу очистку не сделал, я не знал как автоматчически подцеплять скоуп из которого был вызван интерфал, чтобы вешать обработчик на удаление этого скоупа. батя вторые сутки не спит думает как очистку памяти запилить, а они взяли и на юзера все спихнули, он вообще ни чего не должен знать ни о какой очистке. по крайней мере о внутреннефреймворковой очистке.
Последний раз редактировалось Maxmaxmaximus1001, 04.06.2014 в 10:12.
|
|
04.06.2014, 10:50
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Maxmaxmaximus1001, я об этом тебе уже год назад говорил (и не только про это), более того, если рассматривать SPA, то это только один из огромного количество обязательных требований
Последний раз редактировалось kobezzza, 04.06.2014 в 10:54.
|
|
04.06.2014, 10:59
|
Кандидат Javascript-наук
|
|
Регистрация: 03.06.2014
Сообщений: 101
|
|
Сообщение от kobezzza
|
я об этом тебе уже год назад говорил
|
ты ни разу не говорил что в ангуляре нет автоочистки памяти
а вообще я охренел, у них там чтобы через сервис скоуп обновить надо обновить ВЕСЬ корневой скоуп!! со всеми ДЕТЬМИ!!!! уму непостижимо бля! Пришел ответ от сервера - обновим весь скоуп. В этот момент делалась анимация? Похуй, обновим весь скоуп!!! Поставил интервал на 100 миллиекунд? Будем 10 раз в секунду обновлять весь скоуп!!!
жеесть, я уже придумал новый подход к иньецированию зависимостей. тока там будут геттеры и сеттеры, так что придется забить на ie8 но я думаю это давно пора сделать.
Последний раз редактировалось Maxmaxmaximus1001, 04.06.2014 в 11:01.
|
|
04.06.2014, 20:53
|
Кандидат Javascript-наук
|
|
Регистрация: 03.06.2014
Сообщений: 101
|
|
http://javascript.ru/forum/offtopic/47728-unylogo-tresha-tred.html
Сообщение от kobezzza
|
вместо того чтобы сказать "спасибо"
|
Ты видимо что то пропустил? Мы с тобой уже эту тему обсуждали, и обсуждали что ты был прав и дал годный совет, и я спасибо говорил. Ты просто забыл) сейчас уже нет смысла спасибо говорить ведь та тема уже обмусолина. Щас тема совсем другая, что "в ангуляре нет автоматической очистки" зачем в этой теме то тебе спасибо говорить)? Ты че, правда забыл что я тебе спасибо раз десять сказал?? Когда я еще только начинал ui писать ты сказал что это очень важно и надо сразу на это задаток делать. Рассказал про то что у тя есть виджеты и у них конструкторы и деструкторы) я там всякие спасибо сказал раз 20. А потом спустя пол года, я тоже эту тему поднял и спасибо сказал). Тебе надо еще? Тебе надо больше? Отлично, как поднимится эта тема поблагодарю еще раз).
Но смысл моего выражения не "ого, ребят, я короче че придумал, надо делать уборку мусора", нет, смысл моего выражения "а помните пол года назад кобеза говорил что надо уборку делать, так вот, и все такие типа "да, да, надо", так вот, А АНГУЛЯР НЕ ДЕЛАЕТ!!!
Последний раз редактировалось Maxmaxmaximus1001, 04.06.2014 в 20:56.
|
|
04.06.2014, 20:57
|
Кандидат Javascript-наук
|
|
Регистрация: 03.06.2014
Сообщений: 101
|
|
Унылого треша тред
kobezzza, лоооооооооооооооооооооооо олл!! ты гений)!111111
ты надоумил меня на кое что щас)! вот щас реально ОЧЕРЕДНОЕ СПАСИБО)!!11
ты просто гений ты даже не осознаешь на сколько)!1 я щас просто метод destruct директивам запилю да и все!111
|
|
04.06.2014, 20:58
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
[47728] Унылого треша тред
Цитата:
|
Тебе надо еще? Тебе надо больше? Отлично, как поднимится эта тема поблагодарю еще раз).
|
Ладно, прощаю
Лови новое дровишко: помимо сборки мусора в настоящих SPA бич - это фризы браузера при переходе по страницам, т.е. 2 абсолютно разные страницы, жмамагаем и понеслось:
1) очистка памяти старой страницы, удаление старого DOM (а у нас стена сообщений с модным "вечным" скроллом где пролистано 20 страниц)
2) инициализация новой страницы, инициализация виджетов, блоков и т.д.
Очень часто бывает, что эти 2 пункта фризят браузер более чем на 50мс (у меня было и по 500мс) и это реально выглядит как полное зависание вкладки. Решение: очистка мусора и инициализация делается порционно и параллельно, т.е. setTimeout в руки и поехали (также хорошо иметь АПИ для "прогретого" потока, т.е. иметь пул Worker-ов), только вот это всё должно делать на уровне фреймворка, а не писаться для каждого блока отдельно, т.е. делаться без разработчика. Как определять что чистить и рисовать первым? Ответ: то, что на экране (т.е. если скролл скрол на середине экрана, то идиотизм начинать сверху страницы). Как узнать что на экране, если ещё никакого CSS нет? Ответ: запоминать примерную геометрию всех блоков, кешировать в локальном хранилище и учитывать при последующих загрузках.
Т.к. мой фрейворк закрытый, то ты раз уж делаешь либу для SPA, то делай её честно Как сделаешь дам новое задание, которое скорее всего заставит всё переписывать
По поводу поддержки браузеров: не будь глупцом, через пол года макс уже выйдет ИЕ12, а при условии что ты честно будешь писать либу, то до её использования пройдёт пол года минимум, так что забивай на все ИЕ кроме 11, ибо всё равно сегмент задач на которые претендует твоя либа таков, что он если и заработает в дрених браузерах, то будет нереально тормозить из-за дурацких полифилов. Юзай сеттеры, геттеры, новые структуры данных и не заморачивайся в общем.
Последний раз редактировалось kobezzza, 04.06.2014 в 21:25.
|
|
04.06.2014, 21:36
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от kobezzza
|
Решение: очистка мусора и инициализация делается порционно и параллельно
|
порционно - верю
параллельно - не верю. Воркеры не имеют доступ к dom
Сообщение от kobezzza
|
Как узнать что на экране, если ещё никакого CSS нет? Ответ: запоминать примерную геометрию всех блоков, кешировать в локальном хранилище и учитывать при последующих загрузках.
|
звучит сложно и избыточно. Зачем делать за браузер то, что должен делать он?
Сообщение от kobezzza
|
Как сделаешь дам новое задание, которое скорее всего заставит всё переписывать
|
это 5
Сообщение от kobezzza
|
По поводу поддержки браузеров: не будь глупцом, через пол года макс уже выйдет ИЕ12, а при условии что ты честно будешь писать либу, то до её использования пройдёт пол года минимум, так что забивай на все ИЕ кроме 11, ибо всё равно сегмент задач на которые претендует твоя либа таков, что он если и заработает в дрених браузерах, то будет нереально тормозить из-за дурацких полифилов.
|
Сообщение от kobezzza
|
т.е. setTimeout в руки
|
тогда уж setImmediate
Сообщение от Maxmaxmaximus1001
|
Щас тема совсем другая, что "в ангуляре нет автоматической очистки"
|
что вы говорите)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
04.06.2014, 21:42
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
порционно - верю
параллельно - не верю. Воркеры не имеют доступ к dom
|
Ну логично, что если юзать setTimeout, то в конечно счёте будет последовательно, но я имел ввиду что на один "тик" немного почистить память и немного создать.
Про Воркеры: доступ Воркеру к DOM очень даже делается: организуем протокол общения и в путь, но у меня так не делается и я не могу сказать даёт это профит или нет.
querySelectorAll('div', function (err, res) {
res[0].innerHTML(function (err, res) {
...
});
});
Цитата:
|
звучит сложно и избыточно. Зачем делать за браузер то, что должен делать он?
|
Я говорю про SPA (одностраничный сайт проще говоря), там браузер ничего не делает. А подход влоб: т.е. грохнули всю старую структуру и рисуем новую вызывает ужасные фризы. Я 2 года занимаю разработкой SPA, так что можете поверить, ну или набейте шишки сами
Цитата:
|
тогда уж setImmediate
|
Не, лучше setTimeout (именно в этом случае), т.к. он даёт время браузеру на рендеринг CSS и т.д.
Последний раз редактировалось kobezzza, 04.06.2014 в 21:48.
|
|
04.06.2014, 21:48
|
Кандидат Javascript-наук
|
|
Регистрация: 03.06.2014
Сообщений: 101
|
|
Сообщение от kobezzza
|
1) очистка памяти старой страницы, удаление старого DOM (а у нас стена сообщений с модным "вечным" скроллом где пролистано 20 страниц)
2) инициализация новой страницы, инициализация виджетов, блоков и т.д.
|
хм, у меня для этого есть директива data-if она удаляет обьект из dom намертво и деструктуризует скоуп и все обработчтки - короче очищтску делает. И если туда передано true то она снова все инициализирует.
Если мы делаем странички то нет смысла чтобы в фоне висели съинициализированные другие стнанички, по этому мы делаем их data-if.
Вот. То есть это не обычный css-show который просто анимацию скрывания делает).
Спасибо, дело в том что я в своих страницах использую как раз css-show а не data-if ))) потому что у data-if анимации нет. Щас я просто запилю ему анимацию, и начну использовать его =)
|
|
|
|