11.12.2015, 16:54
|
Профессор
|
|
Регистрация: 06.01.2012
Сообщений: 409
|
|
mongodb и frontend
Часто встречаю в вакансиях frontend требование mongodb.
Mongodb на стороне сервера работает?
Те это backend?
Какое отношение mongodb имеет к frontend'у?
Разъясните плыз /
|
|
11.12.2015, 16:57
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Монгу часто юзают с Node.js, т.е. серверная разработка, видимо вы видели именно эти вакансии.
|
|
11.12.2015, 17:05
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
а я вот пишу крутой сервер на nginx для статики, nodejs сокетах через socket.io а для монго юзаю mongosee
шикарная штука я вам скажу, файлы загружаю в несколько потоков) могу продолжить загрузку после обновления страницы и.т.п. в общем отжигалово.
создал такую абстракцию как Коллекции (ну это коллекции из монго) и Ренджи, это как бы срезы с коллекций которые реалтайм обновляются через сокеты при изменении базы. Рендж это типа offset, limit, selector
такой селелект к базе данных типа.
это я типа руки разминаю перед разработкой изоморфного фреймворка Mega для которого UIjs будет просто рендер движком.
пока изоморфности нет, то есть я пишу отдельно под сервер и отдельно под клиент, но я уже примерно представяю как должна выглядить изоморфная среда и как её сделать, в общем ждите, будет круто)
Последний раз редактировалось Mаxmaxmаximus, 11.12.2015 в 17:08.
|
|
11.12.2015, 21:21
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
kobezzza, посмотрел щас что ты дал, посмотрел примеры кода, проблевался, я вообще то не работаю напрямую, я пишу абстракцию а дальше оно само, и мне не особо интересно как оно там под каптом, я туда не заглядываю) так что собо все ровно на api и его красоту. но красота мангуста меня впечатлила сильно)
ты можешь конкретно хоть одно сравнение сделать где мангуст проигрывает? и обяьснить в чем. ну еси не влом
|
|
11.12.2015, 21:31
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
ты можешь конкретно хоть одно сравнение сделать где мангуст проигрывает? и обяьснить в чем. ну еси не влом
|
В основном всё а нюансах, поэтому не вижу смысла перечислять. Из крупного:
1) Не поддерживаются промисы;
2) Не поддерживается нормальное наследование схем через классы;
3) Нет нормального модуля валидации (только совсем примитив);
4) Дерьмовая дока (перекрёстная ссылка перекрёстной ссылок погоняет);
5) Убогое АПИ работы с курсором;
6) На нагрузке сильно проседает.
Каждому своё, но ты всегда так реагируешь на новое, а когда я тебе говно советовал?
Цитата:
|
мне не особо интересно как оно там под каптом, я туда не заглядываю
|
Тогда бы работал с драйвером напрямую, нах тебе лишние издержки (а монгуз их реально даёт).
***
А вообще поступай как знаешь, мне всё равно
|
|
12.12.2015, 01:23
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
Сообщение от kobezzza
|
Каждому своё, но ты всегда так реагируешь на новое, а когда я тебе говно советовал?
|
Я обычно наоброт новое более лучше встречаю чем старое потому чт старое надоело, я обьективен стараюсь быть но чаша весов обычно на новое склоняется только от того что оно новое) я максимум это на кофе фыркал потому что думал что глаз не сможет привыкнуть к отсутствию скобочек и я не буду знать где кончается функция. сейчас я эту проблему решил просто короткими функциями которые влазят на экран
Сообщение от kobezzza
|
Не поддерживается нормальное наследование схем через классы;
|
ВООООУ, даже не думал об этом, слушай, у меня правда коллекции наследуют друг от друга, как классы кофескрипта, а дальше по ним уже строятся схемы и модели мангуста, но я думал это можно сделать и на уровне фреймворка) не знал что нельзя
Сообщение от kobezzza
|
Нет нормального модуля валидации
|
там же функция есть валидейт, а внутри делай че хочешь, разве это не лучший валидатор? написал всяких проверок нужных тебе и применяешь там, не? типа хочется из коробки какие то выражения текстовые описывающие валидацию и учить все это? или заготовленыне функции валидации?
Сообщение от kobezzza
|
Дерьмовая дока
|
ну я прочитал тока гет стартед и понял как создавать удалять искать и сохранять модели, а дальше этого хватило чтобы абстракций понастроить. наоброт удивился что дока шикарно сделана. мож ты давно захдил на их сайт?
Сообщение от kobezzza
|
Убогое АПИ работы с курсором;
|
Наскока я понял там его (апи) вообще нет, find если в него не передать каллбак то просто возвращает курсор монговский и делай с ним че хочешь. это ж круто? или нужны типа обертки? если да то я не представляю как курсор можно сделать еще удобнее.
К тому же где оно убогое то если Model.find({selector}, {fields}, {skip:0, limit:0}, callback)
B все это вернет курсор с кторым дальше можно цепочки делать типа фильтров и сортов.
Че, неужели круче человечество придумало?
Сообщение от kobezzza
|
На нагрузке сильно проседает.
|
О так у него еще и оверхед есть? А твоя штука быстрее выходит? Это важный для меня момент кстати.
Сообщение от kobezzza
|
Тогда бы работал с драйвером напрямую, нах тебе лишние издержки
|
Да я временно его воткнул чтобы было на чем абстракцию сделать. потом вниз залезу и заменю на другой фреймворк, например тот что ты дал щас, или руками с монго буду общаться.
Сообщение от kobezzza
|
А вообще поступай как знаешь, мне всё равно
|
Ой спасибо что разрешил не исопльзовать этот фреймворк)
- Вот это используй, оно лучше.
- Слушай а чем он лучше?
- НУ НИХОЧЕШЬ НИНАДА МНЕ ФСЕРАВНО! ОЙ ФСЕЕЕЕ111111 Ц МДААА
Последний раз редактировалось Mаxmaxmаximus, 12.12.2015 в 01:32.
|
|
12.12.2015, 01:36
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
там же функция есть валидейт, а внутри делай че хочешь, разве это не лучший валидатор? написал всяких проверок нужных тебе и применяешь там, не? типа хочется из коробки какие то выражения текстовые описывающие валидацию и учить все это? или заготовленыне функции валидации?
|
Этот примитив есть, но когда у тебя начинаются проверки в зависимости от параметров, т.е. если один параметр задан, то другой становится обязательным и т.д. - начинается боль.
Цитата:
|
наоброт удивился что дока шикарно сделана. мож ты давно захдил на их сайт?
|
Там всё также, когда начнёшь в нюансы вдаваться, то поймёшь о чём я)
Цитата:
|
если да то я не представляю как курсор можно сделать еще удобнее.
|
Поддержать протокол Symbol.iterator как минимум.
буээ. После того как я перешёл на промисы под соусом async/await то от колбеков меня воротит.
|
|
12.12.2015, 02:00
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
О так у него еще и оверхед есть? А твоя штука быстрее выходит? Это важный для меня момент кстати.
|
Любая ORM накладывает издержки. Поэтому я и написал, что юзал бы тогда драйвер, раз тебе не особо нужна такая абстракция. Что касается сравнения с Iridium, то я не делал таких бенчмарков, но почти уверен, что шустрее.
Цитата:
|
Ой спасибо что разрешил не исопльзовать этот фреймворк)
|
Нез
***
Мне в иридиум нравиться классовый подход (особенно круто если писать на ТС), активное использование декораторов (я очень люблю этот подход) и всё на промисах, а не на thunk callback, как в Mongoose. Более богатый набор валидаторов и вроде хорошая дока. Конечно я не юзал его в реальном проекте, как Mongoose. Но могу сказать точно, больше Mongoose я юзать не буду, хватило.
Последний раз редактировалось kobezzza, 12.12.2015 в 02:04.
|
|
12.12.2015, 02:01
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
kobezzza,
Сообщение от kobezzza
|
буээ. После того как я перешёл на промисы под соусом async/await то от колбеков меня воротит.
|
Эээто дааа, меня бесит что приходится всюду в промис оборачивать
Кстати тока што сидел и придумал няшную штуку с реакта стырить, использовать атрибуты как компоненты как то неудобно было, приходилось дописвать префикс ui- чтобы не было конфликта с реальными атрибутами и все такое, да и параметры неудобно передавать было
и тут меня осиниило, по скольку я все ровно буду писать свой препроцессор для шаблонов, ну как у реакта, то я могу пока строку шаблона обрабатывать чем-то похожим, почему нет?
сейчас шаблоны компонентов пишутся вот так:
template: "
<div class='ddd' ui-draggable ui-window='[12, this.name]' on-click='this.click'>
{{this.name}}
</div>
"
А теперь будут писаться по другому, и можно будет в конструктор им разные парамтеры передавать (что сейчас делается оч неудобно через подстановку значения какого то атрибута в ватчер скоупа и все такое, а тут они напрямую прям в конструктор компонента прилетят)
Проблема была в том что как сказать компьюетру что это обычный атрибут а вот это вот компонент?
ДА ЭЛЕМЕНТАРНО, чому я сразу до этого не додумался?
1) Компоненты которые будут заменять элемент на какой то другой (то есть которые имеют свой шаблон), обязаны называться с заглавной буквы. А те же которые просто какое то поведение добавляют должны с маленькой называться.
2) компоненты от атрибутов будут отличаться ЭЛЕМЕНТАРНО. если это компонент то у него в конце круглые скобочки)))
ПОЧЕМУ Я СРАЗУ ТАК НЕ ПРИДУМАЛ СДЕЛАТЬ КАРЛ??)))
В итоге мы получим что-то вроде:
template: "
<div class='ddd' draggable() window(12, @name) onClick(@click)>
{{@name}}
</div>
"
Сообщение от kobezzza
|
Любая ORM накладывает издержки.
|
Спасибо КЭП, я имел ввиду овергед который оверхед всем оверхедам оверхед, а не просто пару лишних вызовов функций)
Сообщение от kobezzza
|
Поэтому я и написал, что юзал бы тогда драйвер, раз тебе не особо нужна такая абстракция.
|
Ну да мне просто щас нужно было как обработчики событий навесить кроссбраузерно, и я использовал jquery а потом будет время навешу руками обработчики и отключу jquery )) жизненно
Последний раз редактировалось Mаxmaxmаximus, 12.12.2015 в 02:04.
|
|
|
|