Ссылка на прошлый тред: >>877341 (OP)Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.Часто задаваемые вопросы:https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.mdСписок материалов для изучения:https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.mdСписок инструментов и направления JS-разработки:https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.mdJS-конфа в телеграме:https://telegram.me/jsthreadКонфа /pr/ в Slack:https://invite-me-to-2chpr.herokuapp.com/НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД! Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Сап, аномач. Вопрос к анонам, которые работают с ангуляром. Как там логин/регистрацию/доамшняя/404 правильно сделать? Есть ли какие-нибудь super simple example авторизации для ui-router? А то пиздец какой-то. Что ни найду - на 150+ строк в каждом файле с методами и контроллерами - один охуительней другого.Хочу на что-то очень простое посмотреть, а потом зарисовать схемку, чтобы окончательно разобраться уже - что куда и откуда идёт.
Скриптач, вот такой пет проект для портфолио сделал, норм?http://anoblog.herokuapp.com/
>>884399Нет. Я бы тебя зассал, чмошник. Пришёл бы ко мне на собес - а я бы зассал.
>>884399А теперь, собственно, открываю ссылку.Прикольно, кстати. Норм. Можно ещё версию в материал-дизайне сделать
>>884400>материал-дизайнеЭто как?
>>884404>материал-дизайнеЗагуглил, слишкам сложна, я же не дизайнер
>>884407Да лол, какой сложно. В бутстрап тоже не можешь? А там та же херь. Гугли ангуляр материал. Дописал md-input и радуйся
>>884399ты чо, охуел?>Пожалуйста, ввойдите в свой профиль>Пожалуйста, ввиедите пароль
>>884409Ну пожалуйста
>>884410Ладно, Арсен, только русский подучи
>>884411Из - за гринтекста не видел опечатки, лолСпасибо
>>884399Как попап на логине сделал? Хочу такой же сделать, пока не получается.
>>884416>Как Что именно тебе не понятно?
Как правильно в nodejs сделать туеву хучу insert-ов или update-ов в postgresql базу асинхронно? Дохуя - то есть база на несколько ГБ и ее нужно заполнить или обновить всю.Если делать через pg-promise - можно сделать, допустим, 10 одновременных запросов по 10к строк за раз (типа пул). Когда один из запросов завершится, посылать следующие 10к строк. Это хорощая идея?
>>884418Ну ты его делал типа кликаешь на "войти" и вызывается компонент с формой? А что бы была анимация все это оборачивал в транзишионгруп или не так?Видел, там есть готовый пакет реакт-попап, но хочется вручную сделать.
>>884424onClick => changeState({showLoginForm: true})> оборачивал в транзишионгрупДа
>>884425О, спасибо.
>>884399а ничего, что файлик js весит ~3мб?
>>884430Там кроме реакта ничего большого, вроде, нет.При этом бандл еще и минимизированный
Как быстро можно выучить реакт, если знаю js и другие языки, но фронтом мало занимался и делал все на чистом js + jquery?Алсо, если фронт - это не основное мое занятие, достаточно знать реакт, или еще ангуляр желательно?
>>884399Но подожди, у тебя же inline source map, они же больше самого бандла занимают, не делай так пожалуйста
>>884523Спасибо
Аноны, есть ли шансы устроиться джуном со знаниями ванильного жс и jquery (html/css само собой)?
>>884399Дизайн уж слишком простецкий и это портит первое впечатление. Норм для пустого портфолио, но в будущем заменить.
>>884599Нет. Я сейчас джуню - нужны реально хорошие знания 3х жс - 3, 5 и 6.Также html, css и иметь представление о scss/less.Ещё - знать сборку gulp или webpack.Ещё - какие-то знания ангуляра/реакта. Чтобы быстро включиться в проект.Гит, джира, всё такое - по-умолчанию.Я с этими знаниями сейчас месяц на испытательном, обещают $100. Ещё через месяц - 200, потом 300, как окончательный вариант.А потом уже - типа учиться и прокачиваться.
>>884608Ну и ООП забыл. Хотя бы фабрики и сервисы
>>884390Ты для обучения? Зареализуй тогда свой велосипед, как раз и разберешься. Авторизация - самый обычный http запрос.Сделай там себе роут на страничку авторизации, контроллер с полями логин, пароль и функцией для логина с помошью $http. Куда уж проще?
>>884618Честно? В том числе. Но больше - потушить свой пердак, т.к. это было моё тестовое задание, которое я провалил с успехом.И это не совсем запрос. Я пытаюсь понять, как вот такое https://github.com/cornflourblue/angular-registration-login-exampleПеревести сейчас на новомодный ES6 с этими вашими import и export default.Нашёл, блин, самый простой пример. Херотень на 1к+ строк кода.
>>884618Я мудак, анон. У него ж там ссылка на 2й ангуляр. Спасибо тебе.С утра эту херь ковыряю, глаза в точку уже.
>>884634Я нихуя не понял, но ладно. На том гитхабе вроде 1 ангуляр и вполне себе читабельный кстати. Если хочешь 1 ангуляр с чисто es6, то посмотри вот этот вот тутор: https://github.com/angular/material-start/tree/es6-tutorialзаодно material design обмажешься.Не знаю, я лично es6 плюшки использую, но сборку в одно единое приложение как-то всегда доверял gulp.
>>884658Спасибо, анон. Посмотрю. По сборке - мне тоже галп больше нравится.
>>884608От конкурентов избавляешься?
>>884704Какие тут конкуренты. Думаю уже каким-нибудь пехотинцем пойти работать на судно.Серьёзно, заебало. Нужно знание гильотины, 10 лет на плантации, из них - 5 на китайской.Ну... можем вам еды предложить
>>884706Как же ты себя не ценишь, анон. Нельзя так.
>>884723Жизнь заставит - и не на такое согласишься. В веб идут не от хорошей жизни, а чисто чтоб пожрать было что.Алсо, в ебенях на 100 баксов можно даже жить. Хуево, но лучше так, чем никак.
>>884632Обмазывайся TypeScript. Когда-нибудь придётся перекатываться на ng2https://github.com/Dimous/crt-ts-recoding/blob/master/module/controllers/IndexController.ts
>>884735Если это ты делал crt.ru, то СЕОшники тебя наверное просто обожают.
>>884753Нит. Там команда профессионалов. Меня не взяли.
>>884756Ну значит ту команду профессионалов любят. Хотя... в будущем уже будет не актуально.
>>884761Как минимум для гуглаhttps://medium.freecodecamp.com/using-fetch-as-google-for-seo-experiments-with-react-driven-websites-914e0fc3ab1#.vdap51500
>>884765То, что поисковики научились нормально работать с SPA - это по-моему относительно новая тенденция. Где-то проебал ссылку на новость.Даже в статье по ссылке пишется, что бот читает страницу, но с траблами.
>>884727А от хорошей куда идут?
>>884727Работать, вообще, идут не от хорошей жизни.
>>884608> 3х жс - 3, 5 и 6Проиграл. Был один язык, а теперь 3?
>>884727> В веб идут не от хорошей жизни, а чисто чтоб пожрать было что.Кекнулмимо-$2.5к-мидл
Подскажите как мне сделать примерно следующий функционал, вот у меня сейчас вылезает модальник, в котором можно вбить сумму и нажать кнопочку, и тогда эта сумма полетит в указанный в action пхп скрипт.Собственно что мне нужно: нужно что бы помимо поля был еще селект с 3 опциями, и если выбрана первая, то появляется еще 1 обязательное поле. Если выбрана другая опция, то например 2 дополнительных поля. И наконец если третья опция, то под ней появляется скажем 5 дополнительных обязательны полей.Далее при нажатии кнопки мне нужно склеить всё что там вбито в дополнительные поля в осмысленную красивую строчку и послать вместе с суммой на обработку скрипту.Есть идеи с чего начать? Собственно меня мучает только js-вопрос, о том как всё это сделать, отправка на скрипт и обработка потом на сервере - это для меня легко.
>>884906Забыл уточнить, что в action в итоге должно полететь 2 значения - изначальная сумма, и отдельно склеенная из дополнительных полей строчка, под двумя разными именами соответственно.Заранее спасибо.
>>884608толсто
>>884963Для выпускника универа для какой-нибудь мухосранской конторы - вполне реальные требования и зп. Другое дело, что не требуется все знать на уровне мидла. Да и вообще - там учить-то нечего.
Как сделать что бы инпут был рекваеред, только если он видимый?А когда стоит display:none то похуй было на него вообще?
>>884829В гей шлюхи.
Всем привет! Начинаю пилить новый проект и хотелось бы попробовать Angular, что мне стоит почитать, чтобы понять сам концепт и философию этого фреймворка?
>>885059http://metanit.com/web/angular/
>>885091Неплохо. Нет такого по реакту?
>>885091Разве есть смысл сейчас учить первый angular? Второй же перспективней.
>>885096Реакт же прост как палка, зачем по нему гайды?
>>885100ReactNative интересен, ищу гайды, в свете вопроса описанного тутhttps://2ch.hk/pr/res/884999.htmlСтатьи на хабре в основном говорят что такие инструменты годны только для создания прототипа, и все равно что-то серьезное придется писать на native.
>>884833Был ES3. Затем ES5. Потом ES6. А сейчас можно писать и на babel-preset-nigga-what-you-doing-stage-0-ES7.Изредка бывает полезно знать различия между редакциями.
>>885091Спасибо большое! Есть ли смысл изучать Angular 1 или лучше сразу начать со 2ой версии?
>>885180Если нет вакансии для первого, на которой уже завтра можешь работать, лучше начать со второго
>>885114А что там гайды, учишь рекат, идешь наhttps://facebook.github.io/react-native/, изучаешь туториал, все, можешь пилить приложухи на реакт-нейтив.На js.coach можешь искать компоненты под RN, добрые люди уже запилили довольно много всякого.
>>885183>js.coachпрочитал js.cocachСкажи, на сколько реакт нейтив в плане кроссплатформенности отличается от кордовы.Я так понимаю что "Learn once, write anywhere" и "Write once, run anywhere" в корне разные вещи. Можно запилить один и тот же код на реакте под андроид и айос с небольшими переделками, или же это будут две разных обертки?
Ачобусы, есть проблема. Есть 2 файла: app.js и pass.js. Так вот, из второго я беру переменную, он выглядит примерно так:const PASS = 'some data here';export {PASS};Импортирую я ее в app.js import PASS from './components/pass';дальше пытаюсь с ней что-то сделать, хотя бы вывести, но не выводится. Хотя если напрямую создать ее в app.js то все ок работает, но так нельзя. Где я ошибся, почему переменная не экспортируется нормально?
>>884963Не толсто. Минск лол
>>885098Второй перспективнее, но продакшн на нём пилить бОльшая часть контор начнёт не скоро. Банально нет той кучи инструментов и модулей, которые есть для 1.Вообще хз, в свете тенденции, что теперь новую версию чуть не каждый год хотят релизить, думаю на реакт перекатываться.Как-то не фанат я каждый год учить новый синтаксис и концепцию.
>>885326> Как-то не фанат я каждый год учить новый синтаксис и концепцию.Откуда вы лезете? Почему вы маняфантазируете вместо того, чтобы прочитать про переход ангулара на семвер?
Есть идеи у кого по >>884390 ?
>>885322export default pass
>>885334Спасибо за ответ!
Как такое http://plnkr.co/edit/UkHDqFD8P7tTEqSaCOcc?p=preview на ES2015 переписать? С этими module и component
>>885340В смысле как? Читаешь спеки, смотришь что чем можно заменить и заменяешь. Или пишешь с нуля, подсматривая в архитектуру этого приложения, что значительно прощеАлсо, это первый ангулар. Я б его сейчас уже не трогал.
>>885349В смысле за сколько я это смог бы переписать, если вообще ничего не знаю про новую модель, а делал раньше на контроллёрах и фабриках? Думаю вечерком завтра заняться. Прикидываю, что занятие на пару часов, я прав?
>>885221Можно, в текущем проекте, в котором около 7 экранов, у меня всего один компонент написан отдельно на ведро и ыфон, все остальные общие. С кордовой не работал, но типы говорили что RN после кородовы, как манна небесная
Що нужно знать js нубу, чтобы претендовать на работу ирл?
Гайз, есть смысл учить первый ангуляр? Или копать сразу второй? Слышал что у первого ангуляра проблем вагон, а во втором все исправили
>>885476ООП, ДОМ, замыкание, кроссбраузерность, ajaxjquery/фреймворк из требований вакансиишаблонизаторреакт / ангулярписать в каком-нибудь AirBnB, например
>>885515Звучит сложно.
>>885515>2к16>кроссбраузерность
>>885517ну удачидо этого доёбываются и не слабо, на собеседовании ты не скажешь "какая ещё кроссбраузерность в 2К16?"
Вопрос по Npm (или nmp?). Скажем поставил я его user/sosaka. Затем накатил фреймворк и перешёл в c/sin/sobaki. Теперь снова накатил фреймворк, (через тот же nmp - g huyeviiframe, пусть второй зависит от первого). Они установится в разные папки? (один в юзер, другой в собаку?) Они будут друг друга видеть?
>>885519Лол, меня не доебывали про кроссбраузерность.Зато спрашивали про недостатки сокетов, преимущества NoSQL и продвинутое использование гита. На фронт энд собеседовании. У меня конечно был специфический случай, но все же иметь какое-то представление о серверной части - большой плюс.
>>885528Не понял, ты в сын собаки поставил с -g ?
>>885530Да. А как надо? Хотелось бы что бы все было в одном месте, а то по невнимательности наплодил папок, и теперь все через жопу работает
>>885531Ключ -g - ставит пакет глобально. Он будет поставлен в общую папку, которую вроде как должно быть видно из любой другой папки.Ставя без -g - пакет будет поставлен в текущей папке в node_modules.При require подключении пакет ищется в текущей папке, если его нет, папкой выше, если нет, папкой выше... и так, пока не дойдет до глобального node_modules.Если поставил пакеты в папки сын собаки и юзер сосака без -g и папки не находятся в отношении родитель-потомок, пакет найден не будет. Но ты можешь вручную укзать откуда дергать пакет (с помощью относительного адреса).Например, папки сын собаки и сосака находятся в одной родительской папке. Тогда ты из папки юзер/сосака обратиться к модую в сын собаки примерно так (точно как писать не помню):package = require('.../syn/sobaki')Вроде как-то так
>>885533Спасибо анон
Нубский вопрос по js-модулям.Дано: есть бандл, собранный вебпаком (да хоть RequireJs.. неважно). Есть движок (Laravel, Yii etc). В бандле есть модуль, которому для работы нужны какие-то пользовательские данные из БД.В шаблоне написано что-то вроде <script src="i-am-idiot.js"></script><script>var user = <?php echo $user; ?> (просто пример, забей на синтаксис и ошибки).var idiot = new Idiot(user);</script>При олдскульном подходе всё работает. Но после упаковки модуля "i-am-idiot.js" с другими модулями и библиотеками, браузер говорит "Idiot is not defined". Само собой, как бы. Я понимаю, почему это происходит. Но я не понимаю, что делать? Вариант перенести запрос данных аяксом внутрь "i-am-idiot.js" - не вариант.
>>885600Зделой отдельный тег script с типом "application/json" и пиши в него данные для инициализации своего скрипта. Или я не совсем уловил суть твоей проблемы?
>>885607Не совсем. Для каждого юзера данные разные конечно. Для разных экземпляров чего-либо тоже. Например, страницы /user/123 и /user/456На первой надо юзать данные о юзере 123, на второй соответственно о юзере 456.
>>885607Ну и сопутствующая проблема. На сайте 100500 страниц. При олдскульном подходе я просто на каждой странице делаю initSomething(options). или initSomething(), когда опций нет.Если не делать этот вызов со страницы, а запихнуть в бандл, то он будет вызываться на каждой странице, потому что бандл включён в каждую страницу. Но это не то, чего хочется.
>>885611>>885613Так я не понял, чем не подходит тебе озвученный вариант?Из своего пхп скрипта пишешь в страницу тег script с данными для инициализации, хоть для каждой отдельной страницы:<script id="init" type="application/json"><?php echo "{'user': $user}"; ?></script>Потом в своем бандле, как ты его называешь, подтягиваешь эти данные со страницы:var user = JSON.parse(document.getElementById('init').innerHTML);var idiot = new Idiot(user);
>>885617Я неправильно тебя понял изначально. Я думал, ты предлагаешь на серваке создавать json-файлы. Так то конечно можно хоть в data-атрибуты инфу запихнуть. Но твой способ лучше, спасибо, возьму на заметку.Но один минус есть. initIdiot будет вызвана на каждой странице, куда подключён бандл. А нужно, чтоб вызывалась только на конкретной странице.Буквально минуту назад осенило. Может неидеальный способ, но тем не менее проблему решает. Надо просто в "i-am-idiot.js" дописать "window.Idiot = Idiot". Тогда можно спокойно юзать этот модуль только там, где мне нужно.
>>885529у меня был хуже случай, даже не заставляй вспоминать
>>884383 (OP)Что лучше учить angular или react? За каким фреймворком будущее?
>>885891Охуеть, как ты вовремя. Зашел за тем же вопросом.
>>885891>>885892Очень странный вопрос. На уровне Java или Javascript
>>885895Но выбор-то все равно нужно сделать. Это нормальный вопрос.
>>885895C чего бы? Тут сравниваются абсолютно эквивалентные вещи.
>>885897По каким критериям ты хочешь сделать выбор? За обоими фреймворками стоят крупные корпорации, в ближайшие несколько лет с ними точно ничего не случится, они будут развиваться и обростать коммьюнити. Можешь тупо выбирать то, что больше нравится>>885898Абсолютно для разных потребностей и разных проектов, как мне кажется. Реакт больше для хуяк-хуяк и маленьких проектов, ангулар же с его развитым DI, в сравнении с реактом, больше для энтерпрайза
>>885907Собственно вот такого ответа я и ожидал, начну вкатываться в ангуляр.>>885898 анон
>>885891vue.js
>>885891Таки реакт - не фреймворк, а библиотека. Так что ключевая разница в том, нужна ли тебе структура приложения, предлагаемая ангуляром, или ты спроектируешь сам. В остальном дело вкуса. Что бы ни говорили, нормально клепать можно и с тем, и с другим.
>>885992Какую структуру приложения предлагает ангуляр?
>>886015https://github.com/johnpapa/angular-styleguide
Хочу стать гуру жса. Посоветуйте литературы. В программировании не новичек, могу в инглиш.
>>886026А в шапку можешь?
>>886027Шапку уже читал, и книжек примерно на гигабайт собрал. Поэтому и спросил с чего лучше начинать.
Все, я сам разобрался. Надо выбирать React:>React JavaScript центричен>Вот оно. В этом заключается ключевое различие React и Angular. К сожалению, Angular остается HTML ориентированным. Angular 2 не удалось решить наиболее принципиальную проблему архитектуры:>Angular 2 продолжает помещать JS в HTML. React же помещает HTML в JS>Я не достаточно выделил этот раскол. Это принципиально влияет на опыт разработки. В Angular HTML ориентированный дизайн остается его слабым местом. Как я и подчеркнул в JSX: The Other Side of the Coin, JavaScript более мощный чем HTML. Гораздо логичнее усиливать возможности JavaScript для поддержки разметки, чем HTML расширять логикой. HTML и JavaScript все равно должны быть как-то склеены и JavaScript ориентированный подход React является несомненным превосходством над Angular, Ember и Knockout c их HTML ориентированным подходом.>Когда вы учите Angular, вы инвестируете своё время в приобретение знания о внутреннем языке (DSL) Angular. Полученное вам пригодится дальше, если вы будете использовать Angular. Если нет (вспоминаем, как закончилось время первого ангуляра ) — большая часть времени окажется потраченным впустую.>Когда вы учите React, вы инвестируете свое время в приобретение знания о Javascript — DSL в React практически нет. Полученное знание 100% пригодится вам на дальнейшем пути, даже если React вы использовать не будете.https://habrahabr.ru/post/274523/Ну и напоследок:>Едва выпустив Angular 2, Google анонсировала скорый релиз Angular 3 https://tproger.ru/news/angular-3-is-around-the-corner/Ебал в рот такие расклады.
>>886047>Ебал в рот такие расклады. Они просто сменили версионирование. Как огнелис.
>>886036Один хуй после половины первой книги забьешь
>>886047> Angular 2 продолжает помещать JS в HTMLНе JS в HTML, хотя его, конечно, можно туда помещать, а синтаксические конструкции, которые что-то делают. И это не путает тебя, если ты всё делаешь правильно.Более явно преимущества такого подхода видно в vuejs. Реакт, в сравнении с ним, во всех смыслах сосёт. Но ебучий маркетинг заставляет людей жрать componentWillReceiveProps
>>886076> когда вы изучаете реакт, вы инвестируете свое время в jsА что по этому пункту скажешь?
>>886089Этого я даже не понял. В других фреймворках не на жс пишешь, что ли?
Нужно сделать небольшое приложение, которое парсит содержимое некой страницы в интернете и предоставляет REST-интерфейс, который возвращает это спарсенные данные (в виде JSON).Вопрос: как реализовать кэширование / сохранение данных, чтобы при каждом запросе к приложению, оно не ходило заново в сеть, не парсило данные, а возвращало имееющиеся? Но, скажем, раз в час оно обновляло данные. Как это проще всего сделать?
>>886129Листал нулевую, увидел даунский запрос, потом увидел, что это JS-тред, и всё понял.Как реализовать кэширование? Как обычно его реализовывают. Можешь взять реляционную СУБД и складывать данные в неё. Делаешь колонку с таймшпампом последнего обновления страницы, а каждый раз при запросе проверяешь, как давно твои данные обновлялись, ну а там дальше либо просто отдаешь данные, либо обновляешь и отдаешь.Также можешь взять Redis. В твоём случае этот вариант, скорее всего, более предпочтителен, потому что ты наверняка полный кретин, а значит, получив в руки реляционную вундервафлю, сделаешь всё через жопу, но если тебе вдруг очень большой объем данных в свой кэш складывать надо и в оперативку это не влезет, то лучше не надо.И это не говоря уже о том, что можно кэш просто в переменной держать.мимо-парсер-интернетов
>>886138Там довольно сложная структура данных, поэтому варианта с бд хотелось бы избежать, чтобы не городить кучу таблиц и связей для относительно небольшого приложения. Поэтому и спросил про кэширование на уровне запроса. Типа, если я запросил данные с param1=aaa, param2=bbb, param3=ccc однажды, то при следующем таком вопросе не было нужды парсить страницу заново (некоторое время). Вот и думаю, как это кэшировать в памяти.
>>886129object.json.cash
>>886129>>886142Возникла такая идея: сохранять всё в файлы .json.Для запроса с param1=aaa, param2=bbb, param3=ccc создавать файл aaa_bbb_ccc.json и сохранять туда ответ. Работать это будет явно быстрее, чем каждый раз ходить в сеть. Однако наплодит куча файлов... И нужно будет еще придумать, где хранить timestamp. В памяти сделать что-то типа HashMap<String, TIme>?Как вам вообще идея с файлами? Имеет право на жизнь или хуйня лютая?
>>886142Я потому и упомянул Redis. Сериализуешь всё и пихаешь в key-value хранилище с таймаутом.
>>886154> хуйня лютая
>>886076А как насчет такой хуйни?>ngIf and ngFor
>>884383 (OP)сап, где можно бесплатно скачать курс Кантора по node за 2016 или хотя бы за 2015 год? Куча раздач 2013 года, но там скринкаст у него просто на ютубе лежит...
>>886142кури nginx что ли
>>886142>Там довольно сложная структура данных, поэтому варианта с бд хотелось бы избежатьkek
Не знаю, куда еще обратиться. Сомневаюсь, что тут есть знающие аноны, но всё же буду благодарен, если кто поможет. Начал настраивать API карту для одной штуки и столкнулся вот с такой хренью.То есть вроде она работает, но этот серый фон не могу понять, какого хуя он появился. Сам апи беру отсюда:http://leafletjs.com/То есть всё прописал везде, а серый фон не исчезает. Вот кароче.
>>886142> сложная структура данных, поэтому варианта с бд хотелось бы избежатьЛол, может тебе про nosql рассказать?
>>886154> И нужно будет еще придумать, где хранить timestamp.За щекой
>>886138попробуй релейт https://github.com/felixge/node-dirtyкак вариант, из запроса делай хеш, и юзай его как ключесли вообще лень что то делать и пофиг на сохранность данных, складывай всё в объект типа mapсоздай просто перед рутером переменную, она будет хранить все что ты в неё запишешь в колбеках рутера примерное решение:var cache = new Map();app.get('*', (req, res, next) => { var hash = md5(req.baseUrl) if (!cache[hash]) { cache[hash] = {wathever} } res.send('ok');})
>>886320>как вариант, из запроса делай хеш, и юзай его как ключВот нахуя? Чем урл не подходит в роли ключа?Или у него что, тот самый случай, типа приватности ради нельзя хранить исходные урлы?
>>886262Это же фон самой карты, нет?
>>886326мд5 хеш 32х значный, урл может быть макс 2000 значная и я хз, что там с разными утф8 знаками будет еще, нахуй твои экперементы.
>>886332>урл может быть макс 2000 значная и я хз, что там с разными утф8 знаками будет ещеДабы не смущать нубов, которые примут твои слова за языковые ограничения:>урл может быть макс 2000 значнаяQ: Is there a limit on length of the key (string) in JS object?A: No, there is no limit for the string length (as long as it fits into memory)http://stackoverflow.com/questions/13367391/is-there-a-limit-on-length-of-the-key-string-in-js-object>я хз, что там с разными утф8 знаками будетQ: Are there any forbidden characters in key names, for JavaScript objects or JSON strings? Or characters that need to be escaped?A: No. Any valid string is a valid key. It can even have " as long as you escape ithttp://stackoverflow.com/questions/8676011/illegal-characters-in-object-or-json-keyА так похуй, конечно, пусть хоть в Вирпул хеширует урлы.
Опять нашествие даунов в жс треде. Ничего тут не меняется.
>>886354стикер отклеился
>>886354Это ты так представился? А почему во множественном числе?
>>886355
>>886328Там по гайду должна быть полная карта загрузится. бы дальше настраивать стал, но у меня почему-то серый фон. Хотя, может, я тупой такой.
>>886371http://stackoverflow.com/a/13852053
>>884735Вот кстати тайпскрипт и нг2 всем хороши, кроме того, что минимизированные сорцы ангуляра2 весят ~3 мб. пиздец блять.А вот в плане концепции ng2+typecript - заебись. Не уверен, что ангуляр2 приживется в вебе. Кстати сайт с доками по ангуляру2 сделан на ангуляр1, то есть даже разрабы ссут использовать своё творение.
>>886516> Кстати сайт с доками по ангуляру2 сделан на ангуляр1, то есть даже разрабы ссут использовать своё творение.Очень странный вывод, учитывая, что сайт появился одновременно с началом разработки ангулара2
>>886532Окей, этого я не знал. Однако учитывая сколько ангуляр2 уже пилится, можно было бы и перенести на новую версию.
>>886363>>886367что еще спезданешь?
Не могу понять главную идею js, изучаю ноду около недели.Есть Express. Есть таблица в Постгрес. Хочу написать отдельный модуль для общения с таблицей. Получилась следующая заготовка https://ideone.com/nTErcl , она же на пикче. Как в данном случае совладать с асинхронностью: дождаться события end и вернуть из функции таблицу?
>>886595пик отвалился
Посоветуйте фреймворк для работы с cookie. Хочу, чтобы система запоминала данные, которые пользователь вводил в инпут несколько дней назад и когда он вновь зайдет на страницу, чтобы введённые им данные уже были введены в инпут.
>>886597Promises, motherfucker, do you know it??
>>886595тебе нужно:1 в контексте рутера, вызвать метод из модели2 и в его контексте (через колбэк) рендерить твои хтмл-шаблоныдумай "контекстами"
>>886635>>886597добавь lib.all(options, cb);*var model = require('model');app.get('/', (req, res, next) => {model.all(null, (err, result) => {if (err) throw (err);res.send(result.whatever);});});
>>886339я тащемто думал про это:>Microsoft Internet Explorer: Начиная с четвертой версии браузера, максимальная длина воспринимаемого URL составляет 2,083 символов. При этом длина GET-запроса лимитирована 2,048 символа. На POST никаких ограничений, понятное дело, не накладывается.
Всем доброго времени суток! Недавно начал изучать ангуляр, и сегодня столкнулся с проблемой: не могу обновить $scope:http://pastebin.com/1pA0Ma28UserSessionService.SaveData это $http
>>886636>>886635Понял в каком направлении двигаться. Тоже думал о подобном решении, но структура показалась слишком непривычной, противоестественной. Вас тут есть за что уважать. Для js после остальных языков нужно все мышление перевернуть. Спасибо!>>886629До ES6 пока не добрался. Это действительно способ, которым принято пользоваться в js? Пока не разобрался, но решение должно получиться вполне рабочим. В чем тогда разница между этим вариантом и вариантом описанным выше? кроме ES6 Буду признателен за любые рекомендации.
>>886643Попробуй добавить $scope.$apply();после $scope.user.userfio = "Trololo";
>>886655А еще лучше кинь побольше кода.
>>886655чо эта блять за доллары?) ангуляр это похапе внутри джеес?
>>886655В общем, практика показала, что проблема в том, что обновляется только $scope в пределах ng-view, как можно обновить переменную вне ng-view?
>>886665jQuery тоже "похапе внутри JS"? Perl - похапе внутри чего?
>>886656Прикрутил Scope напрямую к сервису с данными пользователя. Первый день изучаю ангуляр, и если честно, полный восторг!
>>886674Круто, но в будущем не забудь открутить, когда освоишься. Скопе в сервисе - не очень хорошая практика.
>>886677не скоп в сервисе, а сервис в скопе, неправильно сформулировал:http://pastebin.com/H1pPMwYK
>>886677Или так тоже фигово делать?
>>886682Да, фигово. Пока не заморачивайся, но в будущем надо будет.Рекомендую пройтиhttps://www.codeschool.com/courses/shaping-up-with-angular-jsЧто у тебя промисы в сервисе возвращает? $http, $q, Promise, что-то еще?
>>886685$http
>>886687Со scope apply я обосрался. В твоем случае наверное сейчас самым простым и не ломающим мозг вариантом будет почитать про $rootScope.Я лично с таким не сталкивался, так как подозреваю ты не совсем красиво пока решаешь свои задачи, но если бы пришлось разбираться, то я бы загуглилscope outside ng view
>>886665Внутриангулярные хуитки )))))xDxD
>>886690да, я сразу попытался $scope.$apply, но он падает с ошибкой, и stackoverflow толсто намекает, что $scope.$apply нужен в том случае, если переменные меняются вне angular, например в jQuery.post. У меня рвет шаблон то, что весь шаблон рендерится со $scope'ом от текущего контроллера, но вот поменять его, ска, можно только в ng-view. А, например, в ng-include уже ни-ни.
>>886702Скопы могут быть вложенными. А еще можно из скопа ребенка обращаться к скопу родителя (не всегда), по-моему это $scope.$parent. Пройди какой-нибудь пошаговый туториал и читай доку какую тебе удобно. Не будешь наступать на все возможные грабли.
>>884383 (OP)Утречка, форумчане. Собираюсь делать первый свой серьёзный проект на Node.js. Твёрдо настроен сделать не халтурное говно (как обычно), а конфетку, которую я буду использовать в будущем. Но проблема заключается в том, что я не знаю, как правильно начать, как заложить хороший фундамент ? Наслышан о готовых решениях, сборщиках проектов, паттернах проектирования и тд, но не могу понять, что мне действительно нужно и нужно ли вообще ? Что посоветуешь мне ты, анон ? Проэкт - веб-приложуха на веб-сокетах.
>>886750Гугли pandas
>>886751Загуглил. Это скорее относится именно к разработке самой приложухи. А мне же ещё систему авторизации, базу данных и много всего нужно прикрутить. Нужно что-то, что поможет создать нужные файлы, облегчит рутину ...
>>886754Рутина?Ну тебе наверное это:https://www.npmjs.com/package/generator-socketioС термином скаффолдинг вообще знаком?
>>886754поищи инфу по разработке энетерпрайз приложения
>>886644> Для js после остальных языков нужно все мышление перевернуть. Это раньше так было, сейчас, с приходом async/await, всё очень просто стало
Есть ли какая нибудь очень лёгкая в настройке и работе база данных?Есть не более 500 маленьких джейсонин, с которыми идёт работа и которые надо сохранять (иначе хватило бы и массива).
>>886789sqlite
>>886806Только если хочешь работать с sql,поищи для себя что-то вроде https://www.npmjs.com/package/node-dbi.Вообще любая распространенная бд ставится без проблем по гуглу.Еще если у тебя готовые json файлики, ты можешь читать (и перезаписывать) напрямую их.Mongodb будет очень дружественна к твоим json. Можешь вообще их сохранять полностью как таблицы, только в документоориентированных бд это называется другими терминами.
Изучаю JS, прошёл по learnjs до событий. Сейчас наткнулся на хабре на данный пост habrahabr.ru/post/312022/, и как-то приуныл. Действительно ли все это нужно изучать, и это везде требуется? Сложно ли это изучить? А то я и так JS уже месяца 3 учу, а если ещё все эти технологии так же объемны, то я до конца жизни всем этим не овладею, учитывая что они появляются постоянно.
>>886817Забей, не все так страшно. Всё выучится со временем.А вообще, в кодинге пиздец везде, в любом языке, любом направлении. Будешь разгребать моря говна, разбираться почему не работает то что должно и т.д...Добро пожаловать в реальный мир, сынок.
>>886817ты 3 месяца над learnjs сидишь? Если да - рекомендую поплотнее заняться. Там все прорешивается вдоль и поперек за 2 спокойно. (но если опыта совсем не было с другими языками, тогда может и норм побольше потратить) После него еще надо будет всякие нюансики почитать и приступать к сборщикам, фреймворкам, библиотекам, ноде и т.д.По-поводу статьи. А че в ней не так? Ну может утрировано только слегка.Надо чтобы тебе было по-приколу постоянно изучать что-то, тогда и проблем не будет. Как только более-менее освоишься много времени дальше занимать не будет. Вышла новая штука - покрутил ее, почитал статейки от умных людей (если таковые на момент выхода имеются), понял для чего зачем, какие проблеммы призвана решать. Потом, если начнется массовое использование вспомнишь что уже в ней копался и шишки набил. Ну как-то так.По-воду везде ли требуется все ли изучать.Ну я надеюсь, ты ведь хочешь быть хорошим специалистом? А хороший спец любит свою работу. Порой можно сказать, что это второе хобби. На работе одно крутишь - дома пришел - другие штуки пробуешь, поэтому так или иначе будешь вкурсе.Ты конечно можешь найти какую-нибудь непонятную контору, где вообще ни о чем не слышали и пилят свои поделия абы как. Но тебе разве не будет там грустно работать? Как еще одна проблемма: при смене работы придется искать такую же убогую...Решать конечно тебе, так что хорошо подумай.Если решился - значит делай, превозмагай если потребуется. Если нет - значит лучше найди чем другим заняться, может в тебе талантливый музыкант спит или врач или сантехник или владелец уютного кафетерия с вкусными булочками.
>>884383 (OP)Допишите в ОП посте, что всем кто боится новых версий ангуляра, огромного количества технологий - лучше выбрать другой язык и другую отрасль информатики. Есть питон, java, haskell - там все гораздо проще и нет частых обновлений. хотя эти дауны все равно шапку не читают, таких просто игнорировать
Или как советуют анон выше>>886858 заняться чем-то другим.
Как использовать PassportJS БЕЗ форм? Надо просто передать туда данные как аргументы.logIn(data) {let username = data.username, password = data.password;passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' })passport.authenticate(// ???) },
>>886907Читай доки, педорhttp://passportjs.org/docs#log-in
>>886089typescript - это зык-надстройка Javascript. Как следствие, он [bold]КОМПИЛИРУЕТСЯ[/bold] в javascript. Изучая angular, соответственно, ты изучаешь тотже жс, только с измененным синтаксисом. Это как CoffeeScript , если ты знаком с этим
>>886161> синтаксические конструкцииЭто ведь они и есть
>>886825>>886858Спасибо аноны. Работаю просто сейчас по 5 дней, после работы остается по 2-3 часа. Да и прям плотно трачу эти часы на программирование только в последний месяц. Планирую в будущем, когда появится возможность, перейти на незапарную работу дня по 3 в неделю и целиком окунуться в программирование. Алсо, читаю параллельно SICP, с виду язык scheme кажется более красивым и "стройным". Но, не уверен в актуальности лиспа, да и предвижу, что это красота есть только в учебных задачах, а в реальности куча подводных камней. Поэтому продолжаю изучать JS из-за популярности и больших возможностей этого языка.
>>886942и что с этим говном делать? как туда передать логин и паруль?
>>886960let user = { username: data.username, password: data.password }
>>886961А как получить обратно из БД юзер-дата? Там помимо юзера ещё данные которые нушны.app.post('/login', (req, res) => { const { user } = req.body; req.login(user, err => { if (err) { return err; } db.logIn().then(() => { res.redirect('/loginsucsess') }); });});logIn() { passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' }) },
>>886981там в слове success ошибка, не пинайте
>>886981>>886983Ты вообще понимаешь зачем ты пасспорт юзнаешь? Он сам эти данные достаёт при каждом запросе и кладет их в req.user
>>886985Юзаю passport чтобы сохранить сессию и соответственно постить контент от лица юзера. Зачем же его ещё юзать?
>>886987За сессию отвечает express-session, а passport нужен для аутентификации
>>886990Зачем express-session если можно сделать app.use(passport.session());
>>886991> если можно сделать app.use(passport.session());Который использует express-session, да. И служит для аутентификации, а не для сессий.
>>886995Passport exposes a login() function on req (also aliased as logIn()) that can be used to establish a login session.А это что? Написано же - сессия.
>>887004И что же происходит при этом establish, не расскажешь?
>>887006Понятия не имею. Если копаться в каждом из 40 модулей, можно и ёбнуться. Но думаю что судя по описанию, устанавливается сессия.
>>887011> Если копаться в каждом из 40 модулей, можно и ёбнутьсяА если не копаться, то можно использовать какой-то модуль, потому что все его использовать и не знать вообще зачем он тебе нужен, и нужен ли вообще. Как это делаешь ты
>>887013Я просто хотел получить данные юзера.
>>884383 (OP)Анон, а как именно ты используешь Ангуляр ?А то я вот почитал описание в интернете и так и не понял, нахуя он вообще нужен ?
>>887138https://gist.github.com/kentcdodds/6789009
>>887138Задай себе этот вопрос, когда будешь прикручивать на свой сайтик поверх jquery шаблонизатор, чтобы облегчить биндинг данных и вообще работу с html. А еще когда ты возьмешься пилить сайтик с достаточно сложной логикой и будешь охуевать от той лапши, которую ты напилил и которую надо поддерживать. Это в принципе не конкретно об ангуляре, а в целом о фреймворках.Для простых веб задач ангуляр не нужен. Для сложных - может помочь упростить разработку сейчас, и поддержку в будущем.
Привет, анон.Расскажи, в чём отличие по работе front-end у джуна и мида?Вот приходит джун и приходит мид на работу - какие задачи они будут делать? Что - привелегия джуна, а что - для джуна уже перебор?Ваять роуты на ангуляре с таблицами по ui-grids и стилизовывать это всё sass'ом - это кто?
>>887146А как именно ? Что вообще он делает, если вкратце ? Вот например JQuery: - Подключаешь через ссылку прямо в документе.- Помогает удобно искать и изменять элементы на странице- Удобно работает с событиями- Можно днлать анимацииА вот можно ли в подобном роде датя описание Ангуляру ?А то опять таки, на Википедии тоже написано что облегчает разработку одностраничных веб-приложений, но не совсем понятно каким образом ...
>>887176Если в кратце, всякую работу с dom может и ангуляр. Про дата биндинг тебе антоша сверху кинул ссылку. Ты не будешь по селектору искать элемент, брать его значения, вешать обработчики для событий, чтобы менять элемент - в ангуляре это делается значительно проще. В ангуляре события есть, но они немного другие.По-хорошему ангуляр приложения нужно писать, придерживаясь определенных правил, тогда у тебя код будет аккуратно структурирован и с ним удобно будет работать - то есть работа с бизнес-логикой в одном месте, работа с DOM - в другом месте и т.д.. Если будешь писать приложуху на jQuery, то возможно ты тоже захочешь структурировать свой код и в итоге все равно напишешь свое подобие ангуляра, но только скорее всего не без боли.Вот я тебе маленькую простыню текста написал, но смотри:если ты предложишь писать сложное веб приложение на jQuery, то на тебя посмотрят как на поехавшего. Даже если ты не хочешь, какой-то из фреймворков тебе все равно придется изучить, чтобы расти как веб деву.Кстати на некоторых проектах Angular и jQuery используются вместе.
>>887204О. от это отличньо рассписано. Спасибо Антош. теперь я окончательно сё понял.
>>887210Пожалуйста. скажи имя няши с первого пика.
>>887152Но ведь обилием "кульных терминов роуты юи юи)))" не заполнишь пустоту в голове. Когда ты будешь миддлом, тебе сами предложат эту позицию.
>>887176>>884383 (OP)тоже хочу обновить свой технолоджи стек, сейчас смотрю релейт 1. Bootstrap components written in pure AngularJS https://angular-ui.github.io/bootstrap/1.1. Bootstrap 4 components, powered by Angular 2 https://ng-bootstrap.github.io/#/home2. The most popular front-end framework, rebuilt for React http://react-bootstrap.github.io/пока не могу сделать выборв идеале хотелось бы рендерить DOM бутстрапа на node.js и на клиентахможет кто знает такие проекты, поделитесь с Анонам
Помоги разобраться, Анон. Я знаю для тебя это не составит труда. Код должен выводит натуральные числа, но при таком варианте работает не корректно http://plnkr.co/edit/YE2bsBCTGtdTHaOkHkpe?p=info, а вот при таком все норм http://plnkr.co/edit/jolZ2RF7nbe7TTa4OGNe?p=catalogue . Мне кажется что и первый вариант должен адекватно работать, но почему это не так не могу разобраться?
>>887403у тебя у первой проверке цикла 2<2
>>887403У тебя вывод числа в консоль для каждого i происходит по несколько раз. Например при i = 5 выводится в консоль при j = 2, j = 3, j = 4.
>>887321Что ты подразумеваешь под " рендерить DOM бутстрапа на node.js"Впервые с такой формулировкой сталкиваюсь.
>>887494что бы на сервере HTML (например бутсрап) имел свой виртуальный DOMтипо:var bsWgts = require('bootstrap-templates');app.get('/', () => { res.send(bsWgts.panel({ title : 'Demo', body : 'Ахуенный текст ' }));});
>>887494в ЖС есть по умолчанию релейт http://www.w3schools.com/js/js_htmldom_nodes.aspбыло бы архи норм, найти HTML бутстрапа написанный в таком формате
>>887502Но ведь... Шаблонизаторы, контекст...
>>887512>>887502>>887494вроде оно https://www.npmjs.com/package/node-bootstrap-html
>>887518да, но тебе нужно писать шаблоны на HTML самому, имхо это лишнее
>>887531>>887512похоже вот оно https://github.com/yuche/vue-strap
>>887543Ну допустим. А если тебе надо кастомизировавать бутстрпавый аккордеон? Все равно же в итоге перепишешь на рендеринг шаблона.Подскажи мне use case, когда можно использовать рендеринг html непосредственно в скрипте. Может быть тоже буду использовать.
>>887550у меня сейчас такая структураи я понял, что там templates лишнее звено, так как в pages/my-pages есть videochat.page.view.jsв котором из шаблонов собирается страницашаблоны туда поставляются в виде объектов из views/templates/templates.api.js
>>887587*ветка /page старая, она не используется и будет удалена. вместо неё будут /pages
>>887587>templates лишнее звенолишнее в плане, что мне нужно будет там делать шаблоны для компонентов бутсрапа. так то полюбому эта ветка нужна, так как в ней будут шаблоны того же <html> документа и другие стандартные вещи. проблема в бутстрапе, не охота велосипедить для него АПИ
>>884383 (OP)Перестал работать автокомплит в js, да и вообще. Куда копать? Переустанавливать пробовал, пересобирать пробовал, без толку. Сижу на archlinux, если что.
>>887587У тебя во вьюхах и бизнес-логика, и логика рендеринга?
>>887642>логика рендерингаonly this. в них только "оборачиваются" данные с /modelлогика представлена в модели. и частично в рутере
ахуеть, правильно ли я понимаю, что гит не пушит пустые папки? Какие у него еще подводные камни?
>>887652Правильно
>>887652Делай пустой файл в папке.обычно делают .gitkeep
>>887652да, делай в такой папке файл .gitkeep
>>887641> Куда копатьstackoverflow?
>>887667Я хуйло и не умею в инглиш((
>>887646>>887587>pages/my-pages есть videochat.page.view.js>в котором из шаблонов собирается страницаОбычно такое переносят в шаблонизатор.Мне твоя архитектура не внушает доверия. Не выглядит такой, чтобы легко было работать. Это коммерческий проект или твой учебный? Кто-то код смотрел, что говорили?
>>887670пипец проблема https://translate.google.de/
>>887677коммерческий, где внезапно в роли заказчика выступаю я сам. но это не суть.в данном виде паттерн приложения работает как часы. меня просто смутило, что для компонентов бутстрапа нужно будет что-то велосипедить >Обычно такое переносят в шаблонизатор."шаблонизатор" как раз и представлен модулем /templates, не?есть еще такой момент, приложение работает на sockets, тут я пока тру не решил куда поместить их логику, думаю в /router
>>887641Проиграл. Вангую, что автокомплит пропал после очередного "пакман суй".
>>887695>модулем /views/templates>fix
>>887695Я имел в виду, что сборка шаблона из партиалов, наследование шаблонов пишется непосредственно в шаблонах.
>>887715*И разруливается шаблонизатором
лол, вся суть ЖС одним логотипом
>>887695На серверном js вроде же работает правило one feature - one file ?В роутах у тебя для сокетов событие и хендлер, но сама реализация хендлера лежит отдельно. Ну да, наверное я бы и сам так делал, если бы кодил под ноду, только еще бы в имени файла обязательно обозначил, что это роуты под сокеты.
>>887715>>887716ок, в моём паттерне шаблонизатор представленный модулем /views/templates/templates.api.js предоставляет шаблоны партиалов в виде объектов (например каркас ХТМЛ дока и прочие элементы) из которых в модуле /pages/my-pages/<whatever>/<whatever>.page.view.js собирается всё что угодно и как угодно.сборка страниц происходит как на пике.инб4: это одно из 100 возможных решений, я не на что не претендую.
>>887741Я понял тебя. Я бы конечно так не делал, так как попахивает велосепидизмом с легкой формой мазохизма, но если работает и устраивает как заказчика, так и программиста лол, то почему бы и нет. Если вдруг надо будет, перепишешь.
>>887747* актуально для сложных вьюх. для простых, вроде пика скрин выглядит цивильно
>>885891angular 2
>>887739ок, получилась такая структура/router/router.http.js/router/router.sockets.js>реализация хендлера я думаю в router.sockets.js поместить события и в них же логику, типо:whatever.events.on('event one', (socket) => { socket.emit('test1', { hello: '1' });});whatever.events.on('event two', (socket) => { socket.emit('test2', { hello: '2' });});анонимные функции в примере, это же вроде и есть хендлеры?>one feature - one file хм, я думаю в отдельные файлы пилить логику для router.http или router.sockets, вроде и так уже норм разделение?
>>887760Да, верно. Анонимные функции - хендлеры.Когда-нибудь твой router.sockets может стать 2к+ строчек кода. Если вдруг ты наймешь фрилансера помогать тебе писать проект, он будет тебя материть, уверен.Вообще, почему ты не захотел следовать MVC? Есть даже уже готовые структуры node express проектов - пользуйся не хочу.
>>887747>велосепидизмда тут сложно, меня этот паттерн устраивает 10/10. меня смущает всего один момент, что для бутсрапа нет готового абстрактного класса, и мне его придётся возможно велосипедить.бутсрпап я хотел бы использовать в любом случае, так как для него есть куча готовых тем и огромное коммунити и он мобайл фирст.предложи другой вариант для клиентского UI уровня бутсрапа, как насчет ангуляра и реакта, у них есть готовые компоненты и сетка, которая еще и мобайл фирст?
>>887770>Если вдруг ты наймешь фрилансера помогать тебе писать проект, он будет тебя материть, уверенготов поспорить с тобой тут. если использовать инструмент IDE с инструментом outline, то весь код у тебя как на ладони, будь он хоть 100к строчек
>>887774>использовать IDE с инструментом outline>fix
>>887770>Вообще, почему ты не захотел следовать MVCлол так это MVC же и есть, просто дополненный, типо MVC-Х
>>887772>меня смущает всего один момент, что для бутсрапа нет готового абстрактного класса, и мне его придётся возможно велосипедить.Вот и говорю - мазохизм и велосипеды. Усложняешь вещи, которые можно было бы делать проще.IDE - шка может начать страдать от слишком больших файлов, но больше - программист. Даже с outline. Еще на репозитории в онлайн режиме сложнее будет с такими сорцами взаимодействовать.>>887784Зачем тогда роуты контроллерами сделал?
Сеточка - ну... skeleton, foundation,sass+susy...На ангуляр уже куча всякого дерьма накопилась на любой вкус, про реакт не знаю.
>>887785>Усложняешь вещи, которые можно было бы делать прощеок, я заинтригован, решение в студию>IDE - шка может начать страдать от слишком больших файлов, но больше - программистхм х/з что там у тебя за IDE такая в 2016, я пишу в eclipse neon с этим плагином https://marketplace.eclipse.org/content/tern-eclipse-ideвсё летает. насчет страданий программиста х/з, возможно дерево файлов с четкими именами наглядней. ок возможно ты тут прав, я подумаю над этим>Зачем тогда роуты контроллерами сделал?всё немного иначе чем ты думаешьв app.js всего 2ве строки// Other routesconst $router = require('./router/router.http')httpApp.all('*', $router.api) в рутере происходит что на пикекак таковой контроллер находится в /views/views.controller.jsон как раз на основе path выбирает какую подгрузить страницу из /views/pages/
Почему запрос ничего не шлёт обратно? res.send не работает, на клиенте пусто. Ошибки не выскакивают.app.post('/login', (req, res, next) => { console.log(JSON.stringify(data)) // Обьект с данными db.logIn(req, res, next).then(data => res.send(JSON.stringify(data)) );});logIn(req, res, next) { return User .findOne({ username: req.body.username }) .then((user) => { if (user.password == req.body.password) { console.log('Password is OK'); req.session.user = { id: user._id, username: user.username, color: user.color } return Promise.resolve(req.session.user) } else { return Promise.reject('Password is wrong') } }) .catch((err) => { return next(err) }) },
>>887802p.s. console.log(JSON.stringify(data)) на самом деле внутри .then перед res.send
>>887802http://stackoverflow.com/a/35034963
>>887797Честно, не знаю зачем тебе нужен абстрактный бутстрап класс, но сам факт того, что тебе понадобился подобный класс уже вызывает вопросы.Я предлагаю не рулить бутстрапом нигде, кроме непосредственно шаблона. В контексте твоего сервера, если я правильно его понимаю, ты не используешь объекты на базе твоего абстрактного бутстрап класса, но можешь подключать бутстрап партиал компоненты вида acordeon.partial.htm там где нужно. А вообще самое заебись, если твоему абстрактному верстальщику вообще не придется лезть в код, чтобы изменить где и как элементы шаблона подключаются.Еще те же самые бутстрап компоненты требуют не только хтмл, но и скрипты. Компоненты может потребоваться конфигурировать на клиентских скриптах. Как ты будешь это разруливать?Для использования ангуляров, реактов и прочего тебе нужно будет пересмотреть свою архитектуру в пользу переделки сервера в апишку.
>>887812Пиздец, я ебал мозги этим три дня, и в итоге оказалось что промис выбрасывает данные только в переменную с тем же именем что и входная. Поистине надо обладать баттхертоустойчивым пердаком чтобы с этим совладать.
>>887819>зачем тебе нужен абстрактный бутстрап классвсё просто1. на строне сервера для доставки определенных шаблонов в /views/pages/ 2. для доставки всех элементов бутстрапа на сторону клиента в скрытый элемент на странице <div class="hide js-bs-templates"></div>2й пунк, для того, что бы я потом селектором jquery мог брать оттуда готовые, отрендеренные клиентом виджеты, и вставлять их в рандомные места странницынапример:var _bs = $('div.js-html-templates');var button = _bs.find('div.button').clone();$('body').append(button.html('Кнопка #1'));$('body').append(button.html('Кнопка #2'));таки это всё работает без всяких реактов и ангуляров. клиент рендерит тебе готовые виджеты с CSS и прочими фичами, ты их лишь клонируешь и меняешь их html
>>887857*и внезапно, мы опять же приходим в итоге к MVC паттерну, но уже на строне клиента <div class="hide js-bs-templates"></div> - представляет Viewsvar _bs = $('div.js-html-templates'); представляет Controllerмоделью в этом концепте будут либо данные с сервера, либо твои данные, которые ты обернёшь в туже кнопку например в виде её innerHTML.
>>887876>var _bs = $('div.js-bs-templates')>fix
>>887857Зачем доставлять на сторону клиента все элементы бутстрапа, даже не нужные на текущей странице? Каких целей ты хочешь этим добиться?
>>887887ООП же
>>887896Ладно, чувак. Удачи тебе с проектом, желаю чтоб выстрелил. Подумаю над твоей реализацией всего, может что-то для себя найду полезное.
>>887887>>887896You wanted a banana but you got a gorilla holding the banana>>887899пасибо Анон, добра тебеесли интересно/нужно, технология проекта https://en.wikipedia.org/wiki/WebRTCфреймворк с кучей примеров и ахуенной документацией https://github.com/priologic/easyrtc
>>887909>WebRTCда, кста, учите новый термин Антохи: "servent" https://en.wiktionary.org/wiki/serventну и на засыпку, подумайте на досуге, как эта технология через пару лет изменит Мир
>>887916> пару летТы как будто первый день родился.Через пару лет уже этот новый, модный, молодежный термин устареет пару раз, будут совершенно новые концепции (которые, разумеется, потребуют все переписать с нуля).
>>887916Скорее всего понятие "браузер" довольно узко отражает всё что можно делать с помощью такого клиента. Может быть будет какой то универсальный "клиент" - все ММО игры будут работать через него, вся информация будет течь peer-to-peer как электрические импульсы между нейронами. Только здесь встаёт вопрос о том что такое говноподелие как JS в нынешнем виде при этом использовать просто идиотская идея. Нужен WebAssembly в который будет копилироваться какой то новый JS2.0 возможно с похожим синтаксисом но без всех этих багов вроде typeof null и без пяти вариантов "как сделать одно и тоже действие". Но одно можно сказать почти с уверенностью - если и будут разрабатываться интерфейсы для дополненной реальности, скорее всего они будут на языке который будет иметь похожий синтаксис и логику.
Почему в тестах querySelector и querySelectorAll работают значительно медленнее, чем getElementsByTagName, getElementById и getElementsByClassName?https://jsperf.com/element-idhttps://jsperf.com/taganamehttps://jsperf.com/classnamespeed-testhttps://jsperf.com/idtagname-speedhttps://jsperf.com/queryselectorall-radio-checkbox-test
>>887924имхо ВР на подходе, технология webRtc норм подходит для неё. думаю что всё будет штабильно>>887929>Только здесь встаёт вопрос о том что такое говноподелие как JS в нынешнем виде при этом использовать просто идиотская идеях/з, после пыха конечно первое время было непривычно работать с ЖС, но теперь у меня нооборот чувство, что ЖС как раз работает так и нужно тру языку. >без пяти вариантов "как сделать одно и тоже действие"имхо в целом если ты можешь различать {} и [] тебе должно быть похуй на синтакс и язык как таковой.кста значек для срелочных функций тоже имхо в ЖС удачно выбрали: () => {} красота имхо 10/10 просто >WebAssemblyвроде ключевые модули ноды написанны на си. имхо даже если внедрят этот твой WebAssembly, ты всёравно будешь работать сним в лексической среде через обёртку языка ЖС>typeof null старо как мир, вроде это не критично>If null is a primitive, why does typeof(null) return "object"?>Because the spec says so.>http://stackoverflow.com/a/18808252
>>887950>наоборот>fix
>>887929>синтакс жс хреньменя другое кста смущает в ЖС, конкретно в ноде. я вчера читал, что в облаке, один процесс ноды не может обратится за раз больше чем к 1,5 гигабайтам оперативной памяти и больше чем к одному ядру процессора.и что тогда получается, если моё приложение юзает вебсокеты, то как я скалирую его в облаке, на скажем 12 ядер и 24 гб памяти?кластер создать как я понял не проблема, проблема, что у каждого процесса ноды будет своё пространство имён, и в каждом таком пространстве будет свой объект с активными сокетами, если это так, как тогда сможет рандомный зокет из процесса #1 связаться с рандомным зокетом, к примеру из процесса #8 или #10? втф.
>>887950> Вроде ключевые модули ноды написанны на сиПерепишут хули. А инвесторы найдутся если это дело под дополненную реальность перепрофилировывать. Ещё Головайчук как то ныл в одном посте мол нода defected by design. К тому же три модульных системы это не найс.
>>887960ок, загуглил, как я и думал, нужна будет in memory DB, которая будет типо мостом между нодами http://socket.io/docs/using-multiple-nodes/#passing-events-between-nodesвсё просто вроде
>>887971>три модульных системычто за системы?
Бамп вопросу >>887152
switch в get-роутах не слишком bad practice?
>>888001Взять роуты, положить роуты, это всё любой должен уметь. Характеристика довольно размытая, думаю миддл - это способность сделать сложный проект одному, а сеньор уже может комбинировать языки, писать какой нибудь бэкенд на питоне.
>>888006> комбинировать языки, писать какой нибудь бэкендТо есть я, ныне мид-фрондендер, пришедший из JavaEE-бэкэнда (и пилил раньше фуллстек на дофига килострок в одиночку) - по твоему, синьор-помидор?
>>888037я мимокрокодил, если что
>>888037Лол, так я не один такой бекендер-перекатывальщик?Тебе не говорили что-то вроде переходить на фронт - плохая идея, 90% процентов работы - пофиксить кнопочку и т.д. ?Как вообще, о решении не жалеешь?
>>888006Одному? Ничего не путаешь?Сейчас, например, вдвоём с сеньором пилю проект: срок 25 дней (5 общались с заказчиком, делали акки у них в системе, определялись с технологиями, поднимали вебпак и т.п.), на фронте angular, sass, bootstrap.Система управления хостингом с админкой и отображением статуса серверов. Это рили работа на двоих на 20 дней?При том, что меня вообще pre-джуном взяли на $100 на этот месяц без какого-то оформления - тип стажировка, ещё и свой ноут взять пришлось, т.к. у них компа для меня не было. При этом компания нормальная, реально много филиалов в разных городах и странах, на кидалово не тянет. Странно.
>>888045Ну, как сказать, фронтенд более "интерактивный" что ли. Поэтому меня он больше цеплял, когда я фуллстеком занимался. Джава-тырпрайз наскучил, захотелось перемен, тем более зарплату больше предложили. Пока не жалею. Сейчас на фронтенде бурный рост (новые плюхи как грибы появляются), не заскучаешь.
>>888048Нет, не путаю. Речь идёт о том что миддл может гипотетически сделать проект, не бегая каждый день и не спрашивая советы у сеньора-помидора.
>>888048100$ за месяц? Совсем долбоёб? Помоему тебя просто наебали как лоха. Я бы даже интернет магазин не стал делать дешевле чем за 500$. Ну а то что ты описал, наверное, вполне можно поднять иза 20 дней, за соответствующую объёму работы сумму.
>>888006Ты так говоришь, будто я сеньор, ведь я все это умею. Но только хуй, я не сеньор.
>>888037Если ты будешь использовать этот стек в работе, то тебя можно назвать синьором. Но основным критерием всё же остаётся уровень зарплаты, как минимум она должна быть у тебя не меньше 3000$.
>>888069Опиши свои навыки.
>>888066Я хер знает, до этого в одной компашке работал, там $350 платили, но не сработался со старшим, который хер клал на линты, стиль кода и мозг трахал, что я пишу не как он (при том, что там eslint весь красный был).Так в том и дело, что я из-за отсутствия особого опыта пока не понимаю, что происходит. Меня предупредили, что я для заказчика - мид, а напарник - сеньор (я так понял, его с мида "подняли"). Не особо понял смысла этой махинации, правда, если меня берут типо на джуна-если-хорошо-себя-покажешь и вообще я в любой момент могу тупо не прийти на работу, меня ж ничего не связывает.Алсо ещё тестировщица нас подбодрить решила - типо проект хорошие инвестиции собрал. Поправьте, но мне не похер? Я же доли в нём не получу, а какая мне разница, что я пилю, если мой результат - 100 баксов в карман?
>>888070Толсто. Работаю за $1200
>>888080Что толстого то? Поэтому то ты и не синьор.
>>888070Сэр, у вас жир потек.ЗП никак не критерий "синьерности", а одно из следствий. Не знаю, как в других, но в моей галере одним из важнейших критериев для вердикта о результате ассесмента на сеньора - навыки общения, умение вести команду, принимать решения и т.п.
>>887950> ключевые модули ноды написанны на си++
>>888092>>887929сейчас гуглил за WebAssemblyвроде как скоро нода будет работать в этой среде по умолчанию https://github.com/nodejs/node/issues/7925пик рандом
Подскажите пожалуйста, что я делаю не так? http://pastebin.com/Ky9AG4D2Функция должна выполнить сетевой запрос, извлечь из него данные и возвратить массив элементов.Я всегда получаю пустой массив, но в консоли элементы логгируются нормально.Подозреваю, что что-то не так с точки зрения асинхронного кода. Как исправить?
>>888213>Подозреваю, что что-то не так с точки зрения асинхронного кода. Все правильно подозреваешь.>Как исправить?Использовать коллбеки (плохо) или резовлить промисы (лучше).
Очень говнокод или норм?
>>888292Да.
>>888316Что значит твоё "Да"? Что говнокод это норма?
Кто-нибудь пробовал к Backbone реакт прикручивать? Какие успехи, результат того стоит?
>>888412Троллейбус_из_хлеба.жпг
У меня такой вопрос, анонасы.Функция всегда должна что-то возвращать? Кажется я прихожу к тому, что это является best practice и т.п. Ведь, если я напишу что-то такоеlet a = 5;const aba = () => {a = 5+5;}то , если с переменной а ЧТО_ТО случится!!! - функция сделает бяку. А если бы она что-то возвращала, то сразу бы ошибку вышибла
>>888482>Функция всегда должна что-то возвращать?Любая функция в JS что-то, да возвращает.Неявно это undefined.>Кажется я прихожу к тому, что это является best practiceВ первую очередь такие функции удобно тестировать.
>>888489В смысле, очевидное применение для новичка в программировании - это использовать функции как скобки, разрезая длинный кусок кода на маленькие и короткие.Но если не думать при этом об архитектуре и взаимодействии ф-й между собой, то это то же нагромождение, только упиханное в функции. А поменяешь порядок - поставишь одну над другой - и всё сломается.
>>888292для удобства чтения начинай первую строкус с "" +var a = '' +'строка 1' +'строка 2' +'строка 3';
>>888412Какая у этого цель? Потешить твой синдром утёнка?
>>888497Ну а может лучше Настя использовать шаблонные строки из ES6 вместо конкатенации строк?
>>888499>Какая у этого цель?Облагородить реакт моделью, очевидно же.
>>888500норм технология, но зачем они в конкретном случае с моим примером и в примере того анона, которому я ответил?
>>888500>>888512почитал манул, ок каюсь https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/template_stringsтам кста пометка "экспериментальная технология"
блээээт а почему в for лупе нет разницы между ++i и i++?
>>888551Хотел ответить "съеби в js-тред с такими глупыми вопросами", но мы уже здесь
>>888557ну так тогда отвечай, свинья ебаная
>>888558> почему в for лупе...потому что мать твоя - шлюха сравнение и инкремент происходят в отдельных стейтментах
>>888561при чем тут сравнение, свинья?
>>888564>>888561>>888551>++i means i+=1; return i>i++ means oldI=i; i+=1; return oldI
>>888564При том, что от сравнения индекса с длиной обычно зависит количество итераций, тупой ты пхп-шника сын.
>>888565>>888568>эти свиньи
>>888571var i=0;var r = [i++, i, ++i, i, i--, i, --i, i];alert(r);
>>888574>alert(r);
>>888575https://jsfiddle.net/#&togetherjs=2utVUnTKqb
ну вы и свиньи конеш... даже я уже понял
>>887930
Когда в JS появится некоторая понятность и упорядоченность из коробочки? Чтобы оно все само соединялось и оптимизировалось, а ты лишь писал код?
>>888653Никогда
Что скажут ангуляро-боги?https://meebleforp.com/blog/36/angular-2-is-terrible?utm_source=forwebdev&utm_medium=announcement&utm_campaign=pochemu-angular-2-uzhasen-nestabilnye-za
>>888663Тогда по другому вопрос. Чего в принципе необходимо и достаточно для покрытия 80% задач? Эдакий принцип Паррето применительно к JS? Стабильность-простота-минимум
Ребятки, уже отписывал в фронтенд треде, спрошу и тут. Я запилил простой калькулятор и игру(найди пару) на js. В планах был засраный туду лист на jquery (типа чтоб показать, что знаю jq) и какое-то простенькое SPA на Ангуляре. Выходит, что это все нахуй не надо и не интересно работодателю? Тогда подскажите, что должно лежать на гитхабе такого, какой проект, чтоб меня хотя бы пригласили на собеседование front/js junior?
>>888680Ну епты на джуна это говно и пили.. это для миддла тебе нужны средние - крупные готовые проекты по конкретной технологии.
>>888679Ты про фреймворки сейчас?
>>888653>Когда в JS появится некоторая понятность и упорядоченность из коробочки?как только ты откроешь для себя, как console.log() смотреть что в объектах
>>888698>что лежит в объектах>fix
Итак, вопрос века, browserify или webpack?
>>888698> как только ты откроешь для себя, как console.log() смотреть что в объектах Но ведь для объектов лучше подойдет console.dir()
>>888689Да. Ну то есть я учу Яву. Стало интересно поковыряться что из себя представляет js а там какие то ебеня из кучи слов. Когда весь мир движется в сторону "make it easy!®". Js сообщество движется в сторону феодальной раздробленности.
>>888717эти "кучи слов" АПИ языка, просто не лезь в дебри сразу, юзай минимум. всё придёт само.
>>888726>всё придёт самоЛЕТ ЧЕРЕЗ 7-8
>>888726>>888717А если придет, то ты либо отрастишь бороду и будешь попивать смузи, заедая панкейками, либо убежишь из этого ада для инженеров куда-нибудь в IBM/Апач/Оракл/етц хайлоад/лоу левел связанные технологии.
>>888728Врядли в 2024 ты будешь задаваться этим вопросом. Скорее будешь сидеть в какой нибудь московской республике и думать где бы поймать прохожего на ужин.
Скриптаны, нужно в строке заменить множественные пробелы не заключенные в одинарные или двойные кавычки на одинарные пробелы. Помогите регулярку для replace запилить.
>>888801google -> build regex online
Почему tmp = undefined ?
Я в веб разработке не шарю совсем, помогите пожалуйста. Почему в гугле аппендчайлд работает, а на дваче - нет?>>889020Если tablerow1 не определен и tablerow1 не определен, то…
>>889027>div Не исправил текст после попытки запихнуть див класс. Сейчас там img, и все равно не работает.
>>889027>Если tablerow1 не определен и tablerow1 не определен, то…Но они определены. Первый равен 0, второй равен 5. Дебагер это показывает.
>>889027Полагаю, может неработать из-за строки 2 или из-за строки 5.
>>889031> if (row1 > row2)Условие не выполняется, tmp определяется в блоке по условию, которое не выполняется. Поэтому tmp = undefined.
С фленегана или кантора лучше начать?
>>889035Но ведь с главной страницей гугла этот скрипт работает. Может есть какие-то системы защиты? Их можно обойти?
Элемент оказывается добавился, просто его не видно. Но почему?
>>889046Разобрался. Спасибо.
Это норма?
>>889100хуйня
>>889100Этот >>889104 имел ввиду, что это ещё хуйня, атм и веселее штуки есть.
>>889100Это еще ерунда:constructor(){this.Bar = this.Bar.bind(this);this.Baz = this.Baz.bind(this);...this.Zaebalo = this.Zaebalo.bind(this);}
>>889100Раньше - да. Сейчас частично стрелочными функциями эту хуйню решили.
>>889027Ты уверен, что getElemByClass работает как надо?
>>889135а, надо сразу весь тред читать
решил писать всё в таком стиле, будут ли в конце проекта проблемы?
>>889151*case 'call-id-anchor' это в смысле якорь для того что бы позвонить юзеру с заданным айди, а не в смысле что я там дублирую название якоря приложение для коммуникации
>>889151var a = function(){ console.log('123') }();в хроме это пашет, что с другими бровзерами?по идее нужны еще одни скобки:var a = (function(){ console.log('123') })();почему нет ошибки?
Как это сократить?.replace(/<[^>]+>/g,'').replace(/\[b\]/,'<b>').replace(/\[\/b\]/,'</b>').replace(/\[i\]/,'<i>').replace(/\[\/i\]/,'</i>').replace(/\[s\]/,'<s>').replace(/\[\/s\]/,'</s>')
>>889259без первого replace
>>889234>>889151>In contexts where an expression is expected, wrapping in parentheses is not necessary >https://en.wikipedia.org/wiki/Immediately-invoked_function_expressionок, хуя я мастер гугла.короче этот код будет пахать везде. ок, я спокоен.для тех кто не понял для чего это: я думаю в коде таким способом создавать "именованные замыкания", которые удобно читать и которые будут служить "пространством имён".
>>889151> будут ли проблемы?Определенно. Потому что тебе руки переломают за такое. Это нечитабельно.Когда видишь var hui = function... сразу думаешь, что это просто объявление какого-нибудь коллбека. В крайнем случае можешь сделать(function huitka() { console.log("ряяя");})();если так хочешь "именованные неймспейсы". Но даже так это тупо. Лучше юзай ES6 модули, компиль бабелем и не страдай костылями.
>>889265> именованные замыканияНахуя?
>>889370фикс:"именованные замыкания"сажа случайно приклеилась
>>889373да блеать, опять сажу забыл убрать
Sup, /pr/, пришёл я в надежде получить советов мудров (и хуйцов не соснуть при этом).Есть один хуй (я), желающий вкатиться в JS разработку за несколько месяцев и делать деньги на этом фриланся.Сам JS уже практически изучен по Кантору + JS: The good parts, про DOM читал в DOM Enlightment, HTML/CSS знаю, но не особо.Доп. условия:1) Есть всякий разный опыт: написания приложений на C++ (вот-вот выложу прогу C++/Qt на 700+ строк на гитхаб), установки генту в нестандартной конфигурации (с написанием своих ебилдов) и прочего2) Сложности с мотивацией. Сейчас я делаю её таблетками и активно задрачиваю JS по 2+ часа каждый день (время дано без учёта отдыха/проверки ВК/etc), но я могу это делать только несколько месяцев, дальше уже стоит получать хоть какую-то денежную отдачу чтобы был стимул работать.3) Английский знаю недурно, спокойно могу читать какую-угодно документацию, возможно полезу на Upwork.Вопрос: какие библиотеки/фреймоворки/API изучить за эти несколько месяцев?
>>889386> вкатиться в JS разработку за несколько месяцев> фриланся))
>>889386> 700+ строк"Hello, world"?
>>889386Jquery, подтяни верстку (как бог знать не обязательно, но с гуглом должен поставленные задачи решать за адекватное время), бутстрап, какой-нибудь препроцессор, сасс, например.и фреймворк для построения крупных приложух на клиенте на твое усмотрение. Вроде ничего не забыл.По идее сможешь конкурировать с индусами или пойти в говнофирмочку. Как ни странно, можешь писать про опыт в плюсах, некоторые заказчики ценят, что перед ними не просто js макака-верстайло. Еще знание серверных языков котируется, но на мой взгляд фулл стек - это зло для старта.
>>889398> зло для стартачому?мимокрокодил
>>888653Ангуляр2/тайпскрипт. Через жопу, но что-то похожее.
Может кто-то по быстрому подсказать?Есть див с id="hyi". Внутри него лежат разные элементы в том числе и UL. Как обратиться к этому юэлу?
>>889430$("div#hui ul")
>>889433без жквери надо. но я уже разобрался, спс
>>889386Не лезь в это говно, серьёзно. Джунам только офис
>>889444> без жквери надоты хуй
Поясните за elm, годнота в целом?А то я тут issues кофейни почитал, не в том направлении они что-то движутся, что очень печалит.
>>889386Что за таблетки? тоже так хочу.
>>889398Благодарю.Только вот стоит ли хоть как-то интересоваться NodeJS?И вдогонку: стоит ли использовать Gulp и Babel в паре с NodeJS сервером, в собственных проектах?Пусть не чтобы потом зарабатывать на том, что я умею с ними работать, а просто чтобы знать?Примитивнейший NodeJS сервер у меня уже давно есть, с npm и прочим знаком, если что>>889453Заказчики неадекватны и конкуренция огромная?>>889519Эглонил, 200мг/день
>>889151перешел на react, забыл такое как страшный сон.мимо const кун () => {<tag/>}.
Высрал борду на реакте, чо дальше то делать?
>>889530Там разобраться с тем галп и бабелом - на день работы. Знать ноду лучше, чем не знать %%внезапно%. Пиздуй уже учить. Колеса в рот и с песней!>>889398Слишком большая для ньюфага зона ответственности. Проще было бы сосредоточиться на одной области и дрочить её, лучше фронт энд, так как в целом проще на мой взгляд и цена твоих косяков будет меньше для всех, включая тебя самого. Вообще похуй, куда нравится, туда и надо идти. Если интересно, то что угодно осилишь.
анон, помоги, я устал уже.Есть пустая HTML страница. Есть файл с несколькими функциями. Как сделать, чтоб функция make работала?Соль в том, что если document.write выполняется внутри загруженного скрипта, страница остается пустой. Если снаружи - конечно, все норм, но только тогда он не берет значение хэша arr[c], и тогда же нельзя вызвать функцию make().tl:dr как загрузить и вызвать рандную ФУНКЦИЮ из ДРУГОГО файла-скрипта?
>>889555А ты уверен, что в arr[c] у тебя что-то есть?Залей на https://jsfiddle.net/ свой код
>>889561блин, я уже ноут вырубил.там точно все есть. Через алерт() все работает отлично.Суть скрипта в выводе рандомного слова из введенных, как можно догадаться. Алерт(арр[с]) работает. мейк() нет. Просто докврайт тоже нет.
>>889372думал сперва писать всё одной простынкой, но теперь понял, что сила в модулях>>889370да, спасибо, понял, простынки с замыканиями не ок, нужны модули. посмотрел бабиль и другие варианты, не обессудь, но я внезапно понял что это всё делается элементарно в jquery. там еть АПИ представленный свойством $.fn, туда можно экпортировать что угодно.теперь у меня получилась структура как на пике, всё работает как нужно.цифры нужны для группирования, типо 2 всегда = контроллер и тд. в 0 самые глобальные переменные, типо: $.fn.route = window.location.href.split('//').slice(1).join().split('/');в 1 вначале идёт $.fn.uiWgts = {}; потом $.fn.uiWgts.modalForLoginButton = function(options) { ... } и так далее. ХТМЛ для виджетов клонируется с готового DOM страницы.вроде всё норм теперь. мне тру нравится
>>889563>+c ; //сделать переменную числомэто так не работает, надо c = +c
>>889535Уебищное говнище поди какое-нить.
Ищу скрипт для сортировки по тексту блока. Например, есть код: <a href="#">Анапа</a><a href="#">Астрахань</a><a href="#">Багдад</a><a href="#">Варшава</a>Если выбрана буква А, то отображать только те ссылки, у которых первая буква А. Если выбрана буква Б, то отображать только те ссылки, у которых первая буква Б и так далее согласно алфавиту. Например, как здесь https://www.aviasales.ru/airportsГуглопоиск выбиает хуеву кучу сортировщиков таблиц.
Помогите Антоны
>>889655>зачёт>чтение/запись файлов>JSСделал мой день
>>889657жи есть нодегс
Аноны поясните за принцип работы сайтов типа YouTube to mp3 converterКаким образом они из видео делают мп3 файл? По типу - "видео сначало заливается к ним на сервер, потом", пошагово.
>>889566> сила в модуляхrequire.jsbrowserifywebpackНе пиши велосипедовЛадно бы ты писал шаблонизатор, не привязанный к конкретному фреймворку, с двухсторонним биндингом, циклами, скопами и прочим. Но тут уже сделали неплохие вещи, которыми можно пользоваться, несмотря на уродливость js.
>>889633Нет, обычный красивый круд без ответов и картинок.
>>889573работает, если не use strict
Всем друзьям и не только, которые ищут работу или просто пинают хуи советую вкатываться во фронтенд и жс. Советую клитора и этот тред. Я все правильно делаю?мимо Java-господин
>>889727Хитро. Всё правильно, пусть плебеи кушают сладкий жс-хлеб.
Зачем вообще нужна NodeJS? Это же один большой костыль. Люди берут асинхронный язык, и костылят на нём последовательное выполнение (синхронный код) с помощью всякого говна вроде колбеков, промисов. Существование этого уродца это какое то недоразумение. Почему бы не использовать парралелизм нормальных языков и добавить к нему асинхронность, и соответственно роутинг без перезагрузки на клиенте? Райан Дал создал чудовище.
>>889535Теперь на vue
>>889677окай Антон, почитал манулы к твоим костылям, идеи то ок, но профитов в них я не увидел.<внезапно> есть более ультимативное и компромиссное решение. всё приложение для фронтэнда разбивать на модули, но в продакшине конкатить все файлы из каталога /static/js в один файл. на сторону клиента будет приходить один сжатый и кашированный файл например /static/js/app.js.не забывай Антоха, чем больше в твоём приложении разных чужих велосипедов, тем сложнее тебе придётся в будущем. что например будет, если через 2 года забросят browserify, когда на его место придёт очередной хипсторский костыль, ты будешь опять переписывать всё с нуля, или будешь за спасибо фиксить баги в библиотеке browserify? в этом имхо и проблема. нативному ЖС и jquery такая судьба не грозит, тут я уверен на 146%вроде я понял всё правильно, пруф ми вронг как гриццо
>>889681> круд> красивыйНа 0 делишь
>>889780webpack как раз таки и используется для бандлинга - сборки кусков в цельный проект, минификации и т.п. Жопой ты мануалы читал что ли? мимо
>>889762Меня, например, позабавило вот что: js - однопоточный, но для "имитации" многопоточности сделали событийную модель; потом делают async/await, который предназначен для линейного выполнения псевдоасинхронного кода, и все щас ссут кипятком с этого async/await. Вот это шин.
>>889780> не забывай Антоха, чем больше в твоём приложении разных чужих велосипедов, тем сложнее тебе придётся в будущем.признайся, ты не писал ничего крупнее хелловорлда для собеседования?
>>889737Пусть плебеи вкатываются в хаскель, жс, фронтентд, пхп, но благословенную жаву оставят в покое.
>>889802Событийная модель - не имитация многопоточности, а другая модель конкуррентности. Нода написана на основе libuv, а модель эта существует уже много лет (select, epoll, kqueue). Async/await, который надо сказать не только в ЖСе сейчас есть, сделан для того, чтобы писать асинхронный код без коллбэк-лапши.Чтобы ты понимал, я не ЖС/Нода-фан, просто интересуюсь темой. И давай без хейта.
>>889802Вот тут интересно написано на эту тему: https://news.ycombinator.com/item?id=12338365Даже Райан Дал ненавидит Node.js:http://harmful.cat-v.org/software/node.js
>>889827Я в том смысле, что в js сделали "ненастоящую" асинхроннлсть, когда реально работает один поток, что вынуждает писать лапшу из коллбеков даже когда реальной необходимости в этом могло бы и не быть. А потом выкатывают асинх/авейт типа "смотрите какую мы вам крутую штуку принесли", хотя это по сути костыль, который покрывает их старый костыль с псевдоасинхронностью.Никакого хейта, я сам из энтерпрайза в js перекатился.
>>889685схуяли оно будет работать? при чем тут вообще юз стрикт?>>889774с этого начинать надо былоно уже мозги зашкварены реактом и нормальные фреймворки вряд ли их спасутэто как раньше были жквери программисты теперь есть реакт программисты, синоним говнокодера
>>889843>Я в том смысле, что в js сделали "ненастоящую" асинхроннлсть, когда реально работает один потокБлядь, тебя уже поправил анон выше, а ты снова путаешь понятия асинхронной модели и многопоточной.Может быть, пора перестать думать жопой?>Никакого хейта, я сам из энтерпрайза в js перекатился.Право дело, из ынтырпрайза приходят исключительно лоботомированные личности.
>>889802> сделали событийную модель> для "имитации" многопоточностинет
>>889866> нормальные фреймворки> vue, reactСорта говна же. Нормальный фреймворк сейчас только Ember и angular2. Они юзают вообще какие-то слабосвязанные библиотеки.
>>889983angular 2 возможно станет самым годным фреймворком, но пока он сыройember годнота, тут согласенно почему ты считаешь vue говном? этакий реакт из которого выкинули все говно и оставили хорошеепри том это сейчас самый быстрый фронтэнд фреймворк в мире для большинства кейсовесли учить первый фреймворк то vue оптимальный выбор, потом года через 3 опыта перейти на ember или angular 2
>>889989В vue что хорошо, что туда еще не успели набежать говнокодеры. И новичок изучая его будет делать это по хорошим мануалам с минимальным шансом наестся говна.React сам по себе не плох, но даже сами авторы в ахуе от того, сколько говнокодеров набежало в жажде наживы и какой пиздец они вытворяют. При том эти люди еще и имеют наглость кого-то учить.
>>889989реакт быстрый, пока ты своего гавна над ним не напихаешь, чтобы всетаки доделать приложение.
>>889994самый быстрый vue, а не реактс этим даже разработчики реакта согласились, так как вместе писали бенчмарки
ТАК ЧТО УЧИТЬ-ТО?? ЭМБЕР, РЕАКТ, АНГУЛАР ИЛИ БЕКБОН?
>>889674ffmpeg
>>889989> фреймворкЭто либа блядь потому что
>>889997Лучше уж книжку по паттернам проектирования наверни, а понимание как все работает потом придет.
>>890047М?
>>890052Охуеть, либу для рендеринга теперь фреймворком называют.Хотя да, заглянул в репу, грустно стало пиздец от такой хуйни. JS проходит в сжатые сроки все то, что прошел php за 12 с хуем лет.
>>890049Посоветуй какую?
>>890056Ну там есть официальные роутер и стейт менеджмент. Так же официальная интеграция с RxJS. Почему бы и не называть фреймворком, даже если эти вещи опциональны.
Про JS чувак пишет:http://keinkeinkein.livejournal.com/141332.htmlПрофессии "дальнобойщик" и "таксист" уйдут в прошлое. Данные люди будут уволены, а те из них, кто захочет переобучиться, сделают это. Они изучат дома что-нибудь наподобие Rust, C, Golang или C++, затем выучат в общих чертах какую-нибудь узкую предметную область и пойдут работать на какой-нибудь проект. Будут работать, как все. Software development и смежные области работы, кстати, вообще не требуют ни особой генетики, ни особой структуры мозга. Все смогут работать, абсолютно все.Я думаю, что хотя бы язык Си и standard library может освоить каждый. Каждый гражданин России в возрасте от 15 до 50, не являющийся умственно отсталым, не состоящий на учете у психиатра. Не требуется там вообще (!) никакая особая структура мозга. Дальнобойщик сможет научиться использовать Vim и отладчик в том числе, если будет нормальное образование, если будут грамотно составленные курсы.Ну и JavaScript тоже каждый может освоить. События, API браузера, DOM, замыкания, области видимости, контекст вызова, итераторы. Опять же, там вообще никакая особая генетически обусловленная структура мозга не требуется. Да все могут.
>>889866но у меня же работает.
>>890065если ты автор скрина то работает потому что оно уже и так числоэта строка ничего не делает и не изменяет
Посоны, что лучше всего подходит для фронта простенького SPA-интернет магазина? Пилить буду один, чисто для себя.
>>890089SPA же хуже гуглятся, не? Для интернет-магазина это неоч.
>>890094нет, от того что приложение спа хуже оно гуглится не будет
>>890089Backbone + vue.js
>>890116React или Vue.
Вечер в радость, чефир в сладость!В общем есть пару вопросов за ваш этот jsУчусь в вузе на 3ьем курсе, курсач по web технологиям написать игру на js.Есть ли варик слизать где-то готовую или годные туториалы? просто времени в js разбираться нет, тк долги по другим предметам естьсам имею небольшой опыт работы с c++, java, asm
>>890234Хуясе.
>>890236???
>>8902381. Ты охуел, чмо ленивое?2. Что это за шарага такая?
>>890239спбгэтуЯ не ленивый, помимо этого дохуя делЭто называется путь наименьшего сопротивления или расстановка приоритетов
>>890241Какой же ты пидр, пошел отсюда нахуй в гугл.
стоит ли перекатываться с пхп на эту вашу ноду?
>>890242Какой же ты грубыйОстуди свой гнев, петух
>>890250> с говна на мочу
>>890250Зачем? Laravel один из лучших бекенд фреймворков сейчас. Гораздо лучше нодовского express для львиной доли кейсов.
>>890250да. гугли за webassembly
>>889993знакомый хохол-обосранец, работавший всю жизнь барменом и жонглером учит сейчас реакту за деньги. нет, это не троллинг и не реклама
>>890260Некорректное совершение. У ноды естьhttps://adonisjs.com
>>890276> совершениеСравнение, офкос
Сосоны, я вообще нихуя не программист на js, но у меня возникла задача поменять html страничку полностью как плагин для grease monkey. Есть ли какие-нибудь функции, типа перлового s/// чтобы быстро заменить строку, которую я нашел регэкспами на ту, что нужно мне.
У кого-то есть на примете скрипт для инфинити скролла с поддержкой grid-системы и без привязки к фреймворкам? С меня как всегда.
>>890288С меня тоже как всегда.
Задача: создать массив длинны N и заполнить каждый его элемент его же индексом, т.е. [0, 1, 2,...]Решение: Array.apply(null, {length: N}).map(Number.call, Number)А теперь задайте себе вопрос: додумался ли ты бы сам до такого красивого и компактного решения? Если нет, то даже не считай себя js-программистом. Ты обычная макака, которая без фрамеворка даже штаны себе не застегнет.
>>890296Прикольно, в 7.3 раз быстрее чем while > push.Правда такой массив ограничен 500к элементов.
>>890298Array(N).fill().map((e,i)=>i+1);а это в 45 раз быстрей
>>890294
>>890296Спецолимпиада же в другом треде, не?>>890300>Array(N).fill().map((e,i)=>i+1);Так тоже пойдет:[...new Array(n)].map((val, idx) => idx);
>>890296> красивого и компактногоС такими красивыми и компактными решениями пусть нахуй идут, олимпиадники. Кому-то потом это говно еще поддерживать
>>890318Что, после укладки шпал не остается времени на развитие?
>>890373Поддерживаемость и читаемость кода стоят над его краткостью, красотой и выходной эффективностью.Бузинес работает именно так, кид.
>>890373Уж сколько раз твердили миру, что явное лучше неявного. Я могу легко потратить минут 10 чтобы распарсить этот говнокод. Но раскидав такие кусочки говна по всему проекту, любителю-рубисту у нас, например, легко могут оставить без обеда за счет компании, так как за коммитами смотрит не один человек.
шкальники вкатывальщики выебываются, а вы ведетесь, лол
>>890045Спасибо
Аноны поясните кто-нибудь (или дайте ссылку, буду благодарен) за более лоу лвл работу обычного нод http сервера? Имеется в виду не только "app.listen()" как в книгах о ноде, а именно как это вообще происходит обмен файлами? Всякие хендшейки там протоколы и тд.Если сделать сервер на C например, это прояснится для меня или на С тоже все через библиотеки все делают?
>>890417Ты как оказался в профессии, не умея в гугл?
>>890417> а именно как это вообще происходит обмен файлами? Всякие хендшейки там протоколы и тд.Возьми да глянь исходники, хули там сложного?
>>890286.replace
Учу этот ваш JS, дошел до аякса - тут урок по RPC-XML запорот немного видос часто стоит на месте. Вообщем хуйово я его усвоил. Но лабу сделать хочу, подскажи анон, что имеется ввиду в этом пункте задания?-Обратитесь к серверу XML-RPC lab-4-server.php и вызовите метод eshop.getDeliveryMethods (без параметров). Сервер вернет XML-RPC ответ.-Создайте переменную dom и присвойте ей вернувшийся ответ.Как обратиться и передать параметры я понял, но как обратиться и вызвать метод?
>>890544> вызвать методПогугли что такое rpc и как делать post запросы с разными content-type
>>890621это я уже вроде понял, но почемуто в консоли возвращается null.Пишу так: https://jsfiddle.net/kbmnmchr/Там пару библиотек самописных подключены, но не суть. Написано то все правильно? Я имею ввиду, если написано правильно, то проблема может быть в остальных файлах? Или это норма, что condole.log возвращает нулл? сука, как же мне больно
>>890642> Написано то все правильно?По части логики наверно да. Проблема либо на сервере либо в остальных либах.
>>884432>хеллоу ворлд вкатыша>3мб>При этом бандл еще и минимизированный Да ты охуел.
>>890726У меня этот бандл всего 400кб весит.
>>890650а не имеется какого либо сжатого фака в виде документации по теме xml-rpc?
>>890789> сжатого факаСтатья на вики.
>>884390>на 150+ строк в каждом файле с методами и контроллерами - один охуительней другого.Велькам ту аур ворлд, май диар френд.А еще системы сборки, у которых зависимости и зависимости от зависимостей, и все это стоит на ките, который едет на одноколесном велосипеде и жонглирует YOBAми.И все ради того, чтобы у тебя на страничке пиздато все отображалось.
>>884390пиши на jquery
>>890812Там нихуя нет. Но уже разобрался
Аноны, какие телодвижения надо осуществить, чтобы с состояния абсолютного незнания подняться до уровня "Javascript на уровне чтения кода", и сколько приблизительно времени это займёт? Да-да, всё индивидуально, я понимаю, но хоть приблизительно.
>>890904Поздравляю, ты тупой. Там даже пример вызова блять есть.Если нужно еще подробнее, то только спека.>>890972> с состояния абсолютного незнания подняться до уровня "Javascript на уровне чтения кода"пара минут, достаточно лишь исходники открыть какие-нибудь.
>>890988>>890972чтение кода !== тупо чтение букв и слов, его нужно уметь выполнять в голове. на это в случае с ЖС уйдёт месяц-два минимум.>телодвижения разбирать рабочие примеры и курить гайды
>>890063Это галерный пропагандон. Не слушайте его.
Изобрел для себя недавно принцип построения например какой-нибудь бизнес логики, модели да хоть целого приложения.Заметьте, что любой объект(product) можно расширить любым поведением(someone). Причем пристутствуют приватные объекты и открытый доступ к ним с помощью методов. Наверняка такое уже где-то есть. Как оно называется? Пример нижеvar someone = { extend: function(extendable) { var something = {}; extendable.changeSomething = function(data) { something = data; }; extendable.getSomething = function() { return something; }; }};var factory = {set1: {},set2: {},set3: {},produce: function() { var produced = { set1: {}, set2: {} }; produced.set1 = this.set1; produced.set2 = this.set2; someone.extend(produced); return produced;}};factory.set1 = something1;factory.set2 = something2;var product = factory.produce();product.changeSomething(something3);и так далее.
>>891199Ты сейчас backbone изобрел
с чего начать изучать фреймверки, с backbone или angular
>>891222С первого, оно простое очень и хорошо позволяет понять паттерны проектирования веб приложений не отвлекаясь на пока что ненужные сложности.Можно с vue еще если не волнует что мало готовых компонентов. Под нее мануалы очень хорошие сейчас, позволяют новичку учиться делать правильно и сам этот фреймворк в отличии от всяких реактов не поощряет говнокод.
Что можно почитать про функциональное программирование на js для тупого?
>>891232http://reactivex.io/learnrx/ палю годноту
>>891235Только там надо самому делать интерактивные примеры, а не просто смотреть ответы. Иначе нихуя толку не будет.
>>891235Годно. Спасибо.
>>891235Проиграл с этой годноты
>>891314> Сломать себе браузер> Проигрывать с этого
Подскажите что можно посмотреть/почитать по React па русске
>>891369Зачем ты его так приложил?
в Node.js проблема с открытием видео вконтакте. Ссылки вида https://cs635500.vk.me/6/u225819608/videos/b179a92183.240.mp4?extra=9S....6xВ браузеер, питоне, curl'е — всё нормально, 200 OK, данные приходят. Если же, используя request, попробовать открыть это в ноде — 404.Никак не пойму, в чём может быть проблема? Никакие куки или хедеры остальным не нужны. Нода 6.4.0, реквест 2.79.
>>891470А впрочем, вопрос задал, как обычно, прямо перед тем, как наконец решить проблему. Если страницу с, собственно, сылкой на файл сначала скачать в ноде, то выдранная из той страницы ссылка (с другим ключом уже) нормально работает в ноде (и нигде больше). Видимо, та тройка шарит какой-то общий ресурс, который вконтакте считает за одно и то же, а нода — отдельная. Был бы рад объяснению происходящего.
>>891472Может дело в юзерагенте? Браузер и пистон уж точно не могут быть связаны
>>891472сравни хиддеры реквестов к тентаклю, что шлют те три клиента и нода
>>891555>>891491Хедеры я пытался разные вставлять, но курл лишь три использует и всё норм, в питоне вообще без хедеров отправлял и тоже ок, юзер-агента хоть asdf ставь. Ссылку он не открывает точно так же, как если бы я её просто на другом компьютере пытался открыть (потому я её и обрезал, собственно, вам бесполезна была бы).Можете попробовать вот отсюда https://vk.com/video-41485889_456239973 (не требует регистрации, а так любое можно) взять в коде страницы ссылку ( искать по"url240", "url360" и т.д.) и зареквестить её в ноде. Она даже в ругом браузере работает! Но не на другом компьютере (в чём угодно).
Как переписать это с колбэками?axios.get(root + '/posts/1') .then((responseOne) => { axios.get(root + '/posts/2') .then((responseTwo) => { console.log(responseOne.data.id) console.log(responseTwo.data.id) }) })
>>891579вместео get(a).then((){}) делать get(a, function(){})?
>>891593И как туда response передавать? Как сам callback вызывать?
Почему response в модуле request приходит в JSON формате а в модуле axios в JS формате? В axios встроенный парсер?
Perekot to >>891642 (OP)
>>891579нахера?
>>884727Дурак ты, из-за тебя и таких же как ты, демпингующих макак, скоро совсем джунам зп платить перестанут, а надо будет еще доплачивать первые пару лет за возмонжость поработать.Подумайте тупо логически - в маке платят 25к, там уметь вообще нихуя не надо, картоху переворачиваешь весь день и все.А чтобы актуальный стэк фронта изучить нормально надо 6-12 месяцев систематических занятий (если совсем с нуля).Сам такой же, ксатти, пашу за 20к в большой международной компании уже пол года, еще на испытательной 2 месяца за 15к сидел.Я считаю хороший джун в милионниках должен получать 30 со старта.
>>892322Уметь не надо, зато какая это унизительная и тяжелая физически работа - переворачивать картоху целый день и кричать свободная касса.А ведь от джуна толку мало, так как скорость его работы крайне низкая, он может не справится с задачей, допустит много багов.