24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Бля, вебпак это ебаный пиздец. Собери себе замок из лего, блять. Почему нельзя предоставить адекватные дефолтные настройки, как в рельсах/джанго? На каждый чих куча бойлерплейта.
>>871980 что тебе не нравится? рельсодауны сосут за 1к бачей макс, когда жс боги ебашут от души за 3-4к бакинских в месяц тянки текут от упоминания твой зп
аноны, хочу начать потихоньку изучать /pr , и думаю над первым языком, с которого все пойдет - стоит ли брать javascript? к слову, я полный ноль в пр про жаву в факе видел, не тыкайте плз
Сап /pr пытаюсь в качестве обучения написать такой же календарь как тут http://kozlovdenis.ru/corp#calendar только там сервер на рельсах, а я на ноде, я что то вообще не могу прикинуть с какой стороны подступиться, даже если я буду jade вьюху генерировать по post запросу для следующего месяца, ( там же отдельный роут стоит /calendar ) как я понял, как мне тогда сгенерировать текущий месяц, что то два дня уже вообще ничего в голову не идет
>>872090 в смысле там отрисовывается на данный месяц при get запросе, а потом еще POST'ом дергается на следующий/предыдущий и я хз как это на сервере сделать, подсобите хули
Аноны, помогите найти исполнителя для такой вот задачки. Готов заплатить денюшку. Пишите, кому интересно.
==========================
Есть сайт по грузоперевозкам, на котором добавили новый функционал, формы время исполнения заказа.
Выглядит это следюущим образом. Я открываю 30 заказов, выставляю свое предложение, и в новые формы, должен внести минимальное и максимальное время груза в пути.После этого разместить свой заказ. Например, если из А в Б 600 километров, то в форму один нужно поставить цифру 2, в форму 2, цифру 3( так как в днеь машина проезжает в среднем 500 км). Если дистанция 1600, то цифры вставлять надо 4-5.
Нужен простой скрипт или расширение, которое берет дистанцию (значение легко парсится), делит на 500, и ZNACHeNIe цифру вставляет в форму 1, а в форму 2, ZNACHeNIe + 1
Так как за раз открыаю по 30-100 заказов, нужно чтобы на каждой странице только на этом сайте, без ошибок значения вставлялись в форму. А Мне нужно было выставить только стоимость заказа, свой комментарий, и нажать кнопку опубликовать.
Стоимость если низкая, то обсжудается. Но насколько я понимаю, тут работу спецу на полчаса. Ибо значения форм и дистанции легко парсятся в DOM дереве, я просто не умею создавать расширения.
>>872122 если ты джун а ты джун раз только ванилу осилил едва ли тебя допустят писать SPA, ближайший год ты будешь верстать лендинги, а верстатьт их на угловом это как пытаться выебать телку в ноздрю
>>872114 нет ты не понял или я есть роут /corp в нем хеш #calendar он на текущий месяц отдает разметку, чтоб переключить на следующий, надо послать post с месяцем на /calendar я спрашиваю: как мне все это сделать на jade
>>872143 не меняет того что я сказал, если будешь пилить SPA то react/angular/vue любой бери, они делают одно и то же если будешь писать что то мелкое жкверя незаменима
>>872143 Можешь сразу браться за Ангуляр, всё понятно будет раз бэкендер, на Жквери просто глянь в общих чертах, там ничего сложного нет. Сам фулстак, в Ангуляр вкатился быстро, но вообще от ЖС блюю, конечно, очень неприятный язык.
Приветствую всех. Пилю небольшой парсер на NW.js, сейчас вся прога построена на получении исходного кода страницы через XMLHttpRequest() есть ли другой способ, я не знаю
Вопрос такой: можно ли сделать так, чтобы парсер работал через прокси Tor, который 127.0.0.1:9150 ?
>>872379 Допустим ты написал роутинг на клиенте. Что мешает потенциальному злоумышленнику правильно сформировать запрос посмотрев логику раз она вся голой жопой на клиенте и открыть нужный роут?
посоны, помогите. есть галп, он подключает модули, которые установлены в devDependencies (hmr, например). как лучше сделать, чтобы в production все собиралось, но при этом devDependencies не перемещать в dependencies?
Что меня больше всего бесит в фронтенде - пока разберешься, как настроить весь этот мегагибкий тулинг (тм), уже дедлайн. А ведь его еще сука поддерживать надо.
>>872531 Да. Все рендерится на фронтенде в таком случае. Данные в json с сервера передаются. Можно конечно их рендерить и на ноде и выдавать готовую верстку, но это редко когда нужно
>>872413 Нет ты не понял. Пусть он хоть код модифицирует. Сервер сам не должен отдавать данные не тем юзерам. Если юзер имеет доступ к данным, то он и так может их получить . Уж если угнали куки или логин с паролем, то тут уж ничего не поделаешь.
Здравствуйте, господа джиэсеры. Мне нужен ваш комментарий и совет. Вздумал я запилить велосипед микроскопический CMS в целях ликбеза. Может, послужит в качестве скелета для будущих проектов.
Поставил цель сделать решение максимально гибким и тут же встрял на первом шагу - обработчике роутов. В идеале я хотел бы иметь возможность добавлять в рантайме новые роуты и навешивать к ним дополнительные обработчики (пример юзкейса - запрос записи в блоге проходит через цепочку хендлеров и возвращает клиенту объект, например, содержащий информацию об авторе записи, дате создания и тело сообщения. Затем, при желании, добавить на тот же роут обработчик, который внесет в возвращаемый объект дополнительную информацию о кол-ве прочтений, рейтинге статьи и проч.).
Эдакий скетч решения представлен на пикрилейтед. Работает это следующим образом: в app.js есть дефолтный роут, который перехватывает все обращения, начинающиеся с /api/ и передает их обработчику в route-handler.js, в route-handler.js вызывается функция processReq, которая в зависимости от метода (GET/POST/PUT...) выдергивает из расширяемого объекта verbHandlers массив объектов, содержащих хендлеры, определяет по урлу, подходят ли они к данному запросу и, если роутматчинг выполнен, обработчикам передаются аргументы на выполнение. Результат выполнения обработчиков записывается в res.locals по рекомендации доков Express и возвращается клиенту.
А теперь вопрос - насколько такой подход уебищен и вырвиглазен? Знаю, что в случае с экспрессом, по-грамотному, необходимо использовать middleware-подход. Но с миддлварями я не понял, как динамически их подгружать, а те решения, что мелькают на stackoverflow, по сути своей, предлагают так же пушить новые обработчики в стек Express.
>>871980 Понимаешь, что это для проектов больших? Для маленьких в принципе тоже ничего сложного, но ты охуел. Еще недавно нужно было писать галп таски и вручную писать код, а сейчас десять строчек лень что ли и пяток npm i? А если больше, так у тебя и так все сложно, ты хочешь моднейшие технологии одним кликом. Ну тогда есть йобаман.
У меня печет с подобных тредов. Какие же ебаные ньюфаги собираются, которые варятся в своем дерьме, нервничают, что мало выучили. Заводы стоят, макак не хватает. Вашего ебаного галпа и ангуляра жс хватит для 50% вакансий. Рекрутеры звонят, просят порекомендовать хотя бы джуниора. Тянку проще вытащить на свидание, чем фронтендера на собеседование. Зная только ангуляр и реакт, заикнулся о переходе в другую компанию, с ходу 40к прибавили, потому что в нашу дыру уже год ищут хуесоса, который готов писать на жс и не хипстерскую хуету.
Что же вы так аутируете? Ну сделай ТУДУ этого хватит. Фантазии хоть отбавляй у всех, покажи что просто владеешь навыками и прочитал документацию от корки до корки, знаешь какие-то конструкции (80% из которых опять же будут накручены в любом туду хэллоуворлде) и если что будешь знать что гуглить если у тебя значки :: < или эштиэмэль в коде, что бы не пугался.
>>872657 > CMS > На ноде Блядь, какая же хуита. Ладно на клиенте, можно с говном смириться и писать на coffee, но сейчас на сервере много где есть нормальная асинхронщина, нет, надо жрать это дерьмо и на сервере.
>>872694 >надо жрать это дерьмо и на сервере Надо полагать, движки Ghost, Keystone, Apostrophe, Pencilblue и иже с ними - дерьмо? Automattic, наверное, тоже дерьмо, ибо планировали перевести кодовую базу на ноду. >клиенте, можно с говном смириться и писать на coffee Можно писать на CoffeeScript и в 2016, но зачем, если есть es6?
И все-таки, если оставить хейтерство в стороне, я хотел бы разобраться с хендлерами роутов. Такой подход, как у меня. допустимо использовать для динамической загрузки новых роутов и обработчиков к ним? Или есть более элегантный способ решить задачу?
>>872697 > Ты про package.json знаешь хоть что-нибудь? Пздц, откуда вы такие вылазиете
Знаю, чувак. Но у меня проблемка. Собираюсь галпом, и в галпфайле есть таска watch, которая юзает модуль browserify-hmr. Этот hmr у меня естественно в devDependencies. В продакшне же они не ставятся. Вот и прошу совета у добрых людей, как лучше сделать.
>>872657 Уебищен он частично. 1. Внутри объекта лежит URL, он должен быть на уровне конфигурации выше, чтобы экономить время того разраба, который будет палить конфигурацию (слишком долго). 2. Насколько я понял, у тебя каждый раз пробегает по всем обработчикам что ли? Поправь, если ошибаюсь.
>>872747 >2. Насколько я понял, у тебя каждый раз пробегает по всем обработчикам что ли? Поправь, если ошибаюсь.
Все верно. Я осознаю, что это пиздец - с ростом количества обработчиков сервер будет подолгу тупить, перебирая их и находя нужные. Конечно, это просто скелет, не для высокой нагрузки, но тем не менее.
>1. Внутри объекта лежит URL, он должен быть на уровне конфигурации выше, чтобы экономить время того разраба, который будет палить конфигурацию (слишком долго).
Второй вариант, о котором я думал, несколько мене гибкий, но более читаемый - назначить несколько дефолтных роутов, а в объекты, содержащие хендлеры - включать не урл, а условный алиас, например {matchGroup: 'category-lookup'}.
Выглядить это будет примерно так: app.all('/api/category/:id', catHandler), где catHandler будет точно так же пробегать по массиву хенделеров, но искать обработчики не по урл, а по соответствующему алиасу.
Но это все сорта одного говна.
Как, сохранив универсальность (т.е. не хардкодить роуты и хендлеры к ним в сам движок), грамотно составить расширяемую систему обработки запросов? Можно ткнуть меня в гитхаб какого-нибудь проекта, использующего подобный подход? Или, быть может, какой-нибудь фреймворк уже содержит такую реализацию (расширяемость роутов и цепочки хендлеров)?
>>872754 >Конечно, это просто скелет, не для высокой нагрузки, но тем не менее. Так вынеси в конфигурацию URL, тип запроса и функцию/название функции. Тогда это будет обрабатываться в 1 операцию.
Что-то типа: handlers = [ ['get', '/', 'index'] ];
А затем что-то типа controllers = { index: function (req, res) { //... } }
Алзо, твой подход вырвиглазен и на сервере будет хуёво поддерживать. На клиенте еще относительно размера приложения сгодится. Хочешь CMS - пили на модули, ядро, middleware, расширения с роутингом, базой. Если используешь REST подход, тогда модульность очень важна. Иначе все превратится в кашу и будешь 5-6 раз переписывать ядро, как это в Drupal делают который год.
>>872790 >Алзо, твой подход вырвиглазен и на сервере будет хуёво поддерживать. Мудила, его подход позволяет развязать сущности. Реализация говно, это да, но сам принцип - держать контроллеры, конфигурацию и инициализацию отдельно - не только легко и удобно поддерживать, а еще и горизонтально масштабируется.
>>872791 >> cms >> для высокой нагрузки >Ты себе хорошо её задачи вообще представляешь? Cms это отдельная подсистема проекта, она может быть как в хайлоаде, так и в чем угодно еще.
>>872779 Переосмыслил то, что ты сказал - результат на пике. В общем, при таком подходе перебор осуществляется только по массиву роутов, что с точки зрения быстродействия - оптимальный подход, нежели перебирать массив хендлеров. И, хотя объекты, хранящие обработчики и роуты, теперь явно разделены, в общем и целом код, как мне кажется, стал говнистее.
>>872790 >пили на модули, ядро, middleware, расширения с роутингом, базой Так ведь я и хочу так сделать. Приведенный код выше - лишь набросок обработки запросов / роутинг. Подразумевается, что verbRoutes и controllers - расширяемые объекты, вынесены в отдельный модуль и в процессе работы сервера могут изменяться.
>>872791 В контексте моей задачи - это обертка на CRUD'ом, если совсем уж упростить. В целях быстрой разработки типовых проектов (блоги, статейники и проч.) хочу создать максимально простое и гибкое решение. Просто фана ради, говорю же, НЕ хайлоад, об это речи даже не шло.
>>872815 >в общем и целом код, как мне кажется, стал говнистее. Без конфигурации этот код был бы в разы хуже.
>В общем, при таком подходе перебор осуществляется только по массиву роутов, что с точки зрения быстродействия - оптимальный подход, нежели перебирать массив хендлеров. Ты можешь обращаться к объекту, а не к массиву. Слишком сложная структура данных для простого действия - маппинга контроллеров на url. Олсо, есть еще подход, если ты не собираешься передавать код кому-то, то convention over configuration тебе поможет.
Здесь как-то был анон, который работает фронтэндером, а на досуге ковыряется в машинном зрении или каком-то графоне на Крестах. Если ты здесь, отзовись!
>>872832 Спасибо за рекомендации. И про CoC прочитал. Алсо, анон, ты можешь вполне резонно обвинить меня в непроходимой тупости, но каcательно твоей реализации, если в цепочке миддлварей "index" или "addSomething" добавился новый обработчик, как экспресс будет отправлять результат? Будь то res.send, res.json или res.render. Говоря проще, как в цепочке обработчиков задать последний обработчик, который и будет отправлять результирующие данные?
Для статичной конфигурации актуален такой код: app.get('/route', [arrayOfMidwares], (req, res) => { res.json(res.locals); }); Будет ли такой код справедлив и для динамически изменяемого массива arrayOfMidwares? Что-то мне подсказывает, что нет.
пацаны, почему условие не срабатывает ? что есть что: cursor = первый понедельник данного месяца, для ноября это 31 октября дальше в while цикле cursor инкрементится на 1 день, и проверяется условие http://momentjs.com/docs/#/query/is-same/ по идее цикл должен останавливаться на последнем воскресении данного месяца, для ноября это 4 декабря, там в консоли справа видно, что он показывает false и пиздует дальше WHY SO ?
>>872866 >если в цепочке миддлварей "index" или "addSomething" добавился новый обработчик, как экспресс будет отправлять результат? Цепочки миддлварей обрабатываются ДО контроллеров. Контроллер это последняя миддлваря, в которой не вызывается next(). >Будет ли такой код справедлив и для динамически изменяемого массива arrayOfMidwares? Я не понял, зачем ты так делаешь, но вся динамика должна заканчиваться на моменте до начала инициализации.
>>872899 А если, не дай Босх, мы захотим в процессе рантайма создать новые роуты и добавить/удалить обработчики к ним? Можно, конечно, сослаться на проблему в логике и сказать, что делать так не стоит, но вот если такой юзкейс приведу - используется конфигурация в несколько инстансов ноды позади nginx для балансировки нагрузки. Таким образом, если мы хотим внести изменения в роуты и обработчики, нам придется выполнить процедуры по обновлению роутов/хендлеров и перезапускать ноды. Так наверняка и делают, но проще, когда есть хотлоад сделать это несложно, но это другой вопрос модулей и в запущенных инстансах сразу отражаются изменения.
>>872912 >то это надо зашивать в конфигурацию ПЕЧАЛЬНО, ведь теряется гибкость решения.
>>872976 >Таким образом, если мы хотим внести изменения в роуты и обработчики, нам придется выполнить процедуры по обновлению роутов/хендлеров и перезапускать ноды. Ну, да, ты делаешь пуш в репозиторий, а потом делаешь пулл на сервере и ребут. Не надо маяться хуйней, плиз, это не кейс. Перезапустить сервера не так долго, чтобы это стало проблемой.
>ПЕЧАЛЬНО, ведь теряется гибкость решения. Нихуя не печально, сделай хук, чтобы после пула сразу был релоад инстансов.
>>873231 Понимаю. Просто все время, как читаю ljs.ru считал, что при создании объекта с помощью new все this получают ссылку на объект. А оказалось хуем по губам, вот жеж открытие то блять.
>>872976 Внезапно подумал, что у тебя, видимо, и правда очень большой проект. Можно попробовать посылать ноде сигналы, чтобы прочла особый формат обновления конфига, зарегала контроллеры и добавила в существующий конфиг изменения. Будет то же самое, но с возможностью динамически обновлять конфиг.
Анон, я уже заебался. Решил копнуть 2-ой ангуляр, но столкнулся с проблемой билда. Никакой блять инфы толковой нету по этому поводу. Сам гугл советует собирать через systemjs, но по нему инфы также нихуя. Сраный sass не могу в проект подключить. И нет, я не рукожопый, просто реально какая-то чушь везде водяная. Есть вариант не заморачиваться и собирать галпом, т.к. вебпак я в рот ебал за его замороченность, но хочется всё сделать по уму и красоте. Анон, посоветуй что или подкинь ссылачей на толковые шаблоны.
Алсо, буду очень признателен, если кто сможет пояснить как работает система подгрузки стилей в компонентах. По моим догадкам подгружаются только те файлы, которые используют компоненты в данный момент. Но я в этом не уверен и хотелось бы раскурить эту тему поглубже. Да и вообще тему модуль лоадеров.
>>873223 Стою на асфальте я в лыжи обутый... Методы класса в js задаются через прототип, в таком случае они действительно получают нужный тебе this. Когда ты объявляешь функцию через function и не присваиваешь ее в переменную, как в твоем случае, функция по-умолчанию получает либо глобальный контекст, либо undefined в strict режиме. А вообще, используй class и не еби мозги
>>873311 В данный момент, большинство сборщиков делают один большой bandle.js и дергают из него модули по необходимости, т.е. подгружаются один хрен все модули, это обусловлено тем, что http не умеет в параллельную загрузку. Webpack умеет в ленивую загрузку, если хочешь по красоте - используй его.
>>873316 Окей. А конкретно за systemjs не пояснишь? Почему-то же появился как логичная замена вебпаку да и сами гугловцы советуют его.
>большинство сборщиков делают один большой bandle.js Та же шляпа и со стилями. Кто-то просто по-старинке подключает один минифицированный файл, но в чём-то же есть прикол инджекта их прямо в компоненты. Хотелось бы понять в чём именно профит и как это работает в рантайме.
>>873317 >Хотелось бы понять в чём именно профит и как это работает в рантайме. В http1 лучше делать минифицированные файлы. Загрузка по требованию это для мобил, чтобы экономить траффик.
Дело вот в чем, программач. Сам студент одного недотопвузика, недопогроммист. Особо еще ничего не понимаю, но так вот. Есть программа, которая может написать скрипт запросом? Ну по типу того же харкача: 1 раз в n секунд обновить страницу 2 сохранить посты/файлы постов (опционально можно было бы как-то реализовать поиск нового треда, его открытие и скачивание не тамбнейлов, а самих файлов, но как сделать пока хз) 3 goto 1 Есть идейка просто реализовать подобное записью кликов мышкой и спецпрограммой для загрузки сайта, но так можно пропустить посты и закачиваются только тамбнейлы, плюс костыли и комп по факту неактивен
двач, а есть в express какой то более гибкий путь узнать откуда пришел запрос ? Сейчас юзаю req.get('referrer'), но там лишняя инфа которую регуляркой приходится читсить, просто API /hui должен отдавать разные данные на запрос от /anus и /vagina
>>873422 ну я глянул свойства объекта Request: там только req.baseUrl req.originalUrl req.route но это все куда пришел запрос, то есть на /hui а мне надо узнать откуда /vagina || /asshole и это инфа лежит в req.get('referrer') правда вместе с хостом и проч. ебатенью
>>873447 а че не так то ? В смысле я знаю что эту инфу проще в запрос включить на клиенте, но я планирую клиент тоже переписать на что то помоднее jquery
>>873452 блять а как вообще ты получил такую задачу как перенос этой хуиты на ноду? ты как-то тамаду этого уговорил или че алсо >на джангу слишком скучно, т.к. всю ее вызубрил что же ты с такими адскими познаниями занимаешься модернизацией сайта тамады? он твой друг?
>>873564 Функция, по всей видимости должна выдать проихведение чисел из всех массивов, которые находятся внутри массива-аргумента. Вместо console.log тебе нужно умножать
Сеньеры, вот у Илюши есть тема ООП в функциональном стиле; Он в конце пишет что такой способ наследования используется редко. Т.е не шибко задрачиваться этой хуйней?
Спасибо всем ответившим по вопросам роутинга в Node CMS, лол и организации кода контроллеров.
Особенно >>872832 анон помог. Я вот поразмыслил немного на досуге, и решил пересесть со стула Express на Koa. Там как-то логичнее реализовано подключение мидлварей, плюс Коа следит за изменениями в цепочке мидлварей искаропки.
В итоге обернул код по подключению/отключению обработчиков в единый класс, требования к конфигурации роутов оставил пока прежней, но это можно изменить. На выходе имеем динамический роутинг в рантайме, модульность и, надеюсь, читаемость.
>>871862 (OP) Сорри за офтоп. Есть одна минска команда, занимающаяся разработкой стартапов (преимущественно) для иностранных заказчиков, используя моднейшие технологии: риакт, ангулар2, ноджс на сервере и т.д. Ищем фронтенд джуниора на полный рабочий день. Варианты с удаленкой не рассматриваются. По всем интересующим вопросам пишите на - [email protected] - telegram @hitler_hitler
>>873937 В Акке красиво, конечно, сделали. Приятная глазу древовидная структура вида роут -> метод -> цепочка контроллеров.
Сейчас в моем варианте конфиг обработчиков импортируется по такой структуре: метод -> роут -> цепочка контроллеров/генераторов Причем в конец цепочки всегда пушится финальный контроллер, ответственный за отправку данных, а новые в рантайме аншифтятся в эту цепочку. Сама цепочка передается экземпляру koa через koa-compose. Можно удалить цепочку контроллеров для определенного роута, в этом случае, на самом деле, останется только один контроллер (например, для редиректа) бля, только не учел, если по этому роуту снова возникнет желание затолкать контроллеры.
Ковыряю сейчас Редукс и возник вопрос: Почему все угорели по иммутабельности?
Идея, что все данные надо хранить в одном месте мне ясна. Но нахрена при каждом измении 1 на 0 пересоздавать всю структуру и запускать все редьюсеры? Это как если бы для каждого изменения переменной в программе она бы переинициализировалась и целиком пересоздавала весь свой memory footprint.
Здесь пытаются доходчиво объяснить, но некоторые моменты спорны. Например, тот же "Performance improving" в языке, который изначально предусматривает мутабельность. Это как чистые функции в реакте - они, бесспорно, ведут себя предсказуемо и имеют более читаемый код, но относительно их быстродействия ожидания сильно преувеличены. Facebook обещает, что, дескать, когда-нибудь, быть может даже в обозримом будущем, все будет заточено под чистые функции и иммутабельность, и вот тогда-то вы и почувствуете нихуевый перформанс бустинг.
>>873998 да даже и для анонов из россии. это же как минимум прикольный жизненный ивент. вот ты борщеед без шансов найти работу, а тут зовут свои же двачеры, да еще с такими технологиями работать! будь я после школы и живи в рашке, согласился бы хоть и на татарстан(не знаю, где это, но видел прикольную картинку с дельфином).
>>873992 Спасибо, многие вопросы отпали. Короче, очередная смена парадигм...
К слову, какой-то философ выдвигал идею, что вселенная тоже иммутабельна и по сути, дискретна во времени - пересоздается с изменениями в каждый момент времени.
Думаю сюда. Вопщем всем добрый день. Помогите кто может, пожалуйста. Суть - через JS нужно заполнить родительский div дочерними div'ами, у которых уже прописаны свойства. Должно получиться аля тетрадь в клеточку. Вижу два варианта. Количество блоков произвольно по высоте и ширине. К примеру делим ширину экрана на первые два числа (1920/19), получаем число, это число блоков по ширине, и заполняем ими главный блок. По высоте от начала экрана и до конца. Второй вариант тупо заполнить родительский блок заранее заданным количеством мелких блоков. И вот главный вопрос - ка должен выглядеть код для всего этого безобразия?
>>874175 Если честно, таблицы не рассматривал, просто потому что давно ими не пользовался. Допустим. Но вопрос тогда - как создать и задать нужное кол-во столбцов и строк?
Ребят у меня самый не заезженный вопрос. Что учить react или angular?
Ну вот серьезно каково ваше мнение? Гребаный гугл обновит ангуляр уже в марте 2017. А потом каждые 6 месяцев. Фейсбук вообще не чешется но все и так понимают что реакт будет обновляться. Что лучше? Что лучше для поиска работы? Что лучше/легче учить? Что блять правильнее?
>>874269 Тогда уж советуй просто ангуляр1. То что >реак только вьюха не делает его простым в освоении. Говнокод хуячить, конечно, на чем угодно можно, но если делать все красиво, правильно и как надо, то реакт очень не простая библиотека. >>874267 Чего бояться то? Новый ангуляр это просто улучшенная и обновленная версия 2. Радоваться надо, что фреймворк улучшается! А то что боишься изменений, то может тебе лучше не в веб вкатываться, а во что-нибудь другое?
Опытные жаваскриптаны, расскажите мне, как вы манаджите авторизацию в ваших сингл пейдж аппликейшенах? Я вот взял реакт и редакс, как самые модные варианты в жаваскрипт коммунити, решил не ебать голову и написал ЖВТ имплементацию для гоу апи. TSL\SSL защищает, так что я токен собственно решил писать прямо в локал сторадж, и защищать авторизированные роуты через враппер компоненет, что-то типа миддлваре, authcomponent = > isauth? => component, так вроде все норм пацаны делают. В общем оно вроде работает, но как-то стремновато. За кражу токенов не переживаю, но боюсь за какие-то подводные камни в плане стейта джаваскриптового, подводные камни какие или ещё что.
крч я год назад увольнялся с позиции ангулар девелопера а до этого еще год(или больше) нихуя не читал по жс а тут открыл ес6 че-то и прихуел во-первых как настроить ебучий сублайм переходить на функции объявленные через стрелочку? во-вторых хули пастебин не подсвечивает синтаксис http://pastebin.com/pK6FAXnf ? в-третьих это годнота я гарантирую это. собираюсь обмазываться генераторами и промисами по полной
>>874296 > во-первых как настроить ебучий сублайм переходить на функции объявленные через стрелочку? Ват > во-вторых хули пастебин не подсвечивает синтаксис http://pastebin.com/pK6FAXnf ? Подсвечивает же > в-третьих это годнота я гарантирую это. собираюсь обмазываться генераторами и промисами по полной Промисами нужно было несколько лет назад еще обмазаться. Ты на колбэках писал, что ли?
>>874345 >ват >findSuspiciousThreads = (threads) => вот так если объявить функцию на нее не будет работать go to definition из места где она используется >подсвечивает же let игнорит например >на колбэках писал на промисах офк но без генераторов
У Babel есть более старые пресеты, чем ES5? Я хочу, чтобы он добавлял полифиллы для функций every и isInteger (пик). Сейчас у меня есть файлик polyfills.js, куда я копипастом вставляю полифиллы из MDN. Неудобно и избыточно.
>>874296 >генераторы >yield >function Ну пиздите из питона, ну пиздите нормально, yield from (уж не говоря про await), async function. Но нет, мыж жопаскриписты, нам надо все запутать, как можно более нечитабельно и неочевидно все сделать...
А можно подключать mysql/mongodb напрямую к angular ? или это считается bad practice? Вижу примеры где юзают стороннее API-прокладки на PHP к которому обращаются за данными, чтобы он сходил в базу и вернул их. На данный момент мне кажется, что это какие-то лишние телодвижения и намного логичнее было бы получить нужные данные сразу. Вот к примеру стандартный пример Todo на Angular2 - я хочу переносить данные между сессиями, как лучше хранить данные?
>>874511 Хм, я не совсем тогда понимаю концепцию ангуляра, пишут же, что это MVC. Тогда чем занимается Model? Хранит данные во время одной сессии/отправляет данные на node/php? Может кто-нибудь по хардкору пояснить, в каких связках использовать Angular2 и в чем его назначение? Вот к примеру всякие react/JSrender и тд - я c ними толком не знакомился, но по тому, что я слышал - это шаблонизаторы.
>>874523 Каких элементарных знаний? Я node сделал несколько тасков по парсингу магазинов и миграции данных между api, включая несколько проектов на sailsjs. Может тебе не хватает элементарных знаний раз ты не можешь в двух словах сделать обзор на ангуляр.
>>874517 > ангуляра, пишут же, что это MVC. Тогда чем занимается Model? MVC это не о том "куда пихать шаблоны, а где соединяться с БД", MVC это о разделении ответственностей, разделении данных и представления. Модель это не обязательно БД, поэтому видимо тот анон и пишет про отутствие у тебя элементарных знаний.
Вообще-то в ангуляре нет моделей. Есть контроллеры, но считается что это зашквар. Чоткие на 1м и все на 2м пишут всё в директивах (во 2м убрали контролеры ваще потому что зашквар).
>>874596 Почему бы тебе в detectButthurt проверяющие функции не вызывать так: return f1() || f2() || f3() Or же ленивый, не будет вычислять остальное, если где-то уже true. Оптимизация.
>>874618 Ну, по мне так dogsOut(thread.comments) не хуже читается, чем dogsOut а уж синтаксис let имяПеременной = имяПеременной(); красоты точно не добавляет. Но тебе виднее, тыж творец.
>>874508 Вообще можно и даже не считается чем то плохим. Но надо смотреть каждый случай. И да, я видел проект где можно дергать напрямую из бд что захочется.
Как сменить целый body страницы на двоще без пикрелейтед. Прямое изменение display не помогает. html=document.body.innerHTML.replace(/а/,"б"); document.body.innerHTML=html;
Сегодня был на собеседовании в одной крупной московской компании (начинается на О). Дали задачу - взять нерабочую программу и исправить её так, чтобы она заработала, при этом не меняя её общей структуры. Программа - простой FizzBuzz (https://habrahabr.ru/post/278867/). Я за полчаса не успел, МНЕ ПЕРЕЗВОНЯТ, но бумажку с задачей я всё-таки выпросил домой. Перенёс в ideone - может кто решит.
Аноны мы тестовом обучаем людей на уровень Pre-junior Наша программа: Git, github basics, writing good commit messages Linux, command line basics, network basics HTML, CSS, JS basics Ruby/Python basics Deployment process (heroku, digital ...) pip, rvm, nvm, npm TDD, BDD - to get familiar with Basic FP vocabulary, OOP patterns vocabulary MVC basics
А также даем задания по Реакту Если интересно Велком discord*gg/Qawcm
Я знаю, что здесь сидят синьеры с 100500К в минуту и мой вопрос для них будет семечками: 1. Как используя mongojs и ангуляр-1/express добавлять новую коллекцию при нажатии submit button? 2. Как получить доступ к этим коллекциям и распарсить их вместе с данными с помощью ng-repeat?
>>874881 Задачка годная, спору нет. Просто у меня пробелы в знаниях синтаксиса жс, те же промисы мельком прочитал пол года назад и забыл. А так вполне себе ок, одобряю.
>>874790 Ебать, как же у меня горит. И такое спрашивают в крупной московской фирме? Почему мне в средне-фирме не ДС\2 просили на доске алгоритм обхода дерева в глубину написать и набросать хэш таблицу.
>>874927 Не знаю, зачем спрашивать обход дерева в вебе. Они бы ещё попросили компилятор для простого языка написать. Скорее всего это была паршивая конторка, где все видам кодеров тестируются по одной методичке.
>>874855 Ты не понимаешь базовых приципов построения приложения Твой запрос начинается с кнопки, то есть ангулара -> его принимает экспресс, валидирует его Можешь ли ты создавать коллекцию? Можешь ли ты брать с неё данные? Можешь ли ты писать в неё данные? и делает нужные запросы в базу -> монго. Просто база, ей вообще всё равно кто и что с ней делает, её задача исполнять нужные запросы
Анон, подскажи с выбором. Допустим, я студентота, вкатываюсь в жс (ангуляры 1-2), пилю пет проекты, мечтаю о 300к/с. И тут мне друг предлагает пойти пхп кодером в одну вебстудию за 20к в месяц, плюс премии. Стоит ли соглашаться? С пыхой я уже работал и вернуться в нее не составит особых проблем, но есть несколько камней. 1) Время, которого и так немного из-за универа и всякой хуйни типо лаб на жабе. 2) Пхп вряд ли мне в будущем поможет перекатиться на ангуляр господина 300к/с. Или я не правильно рассуждаю и надо соглашаться на такую подработку?
>>874965 Допишу. Официального опыта пока нет, но пилил пару приложений за которые все то стыдно фрилансом, как раз на пхп. А тут официальная вакансия и деньги все таки. Ну и опыт работы со всеми вытекающими.
>>874966 >>874965 Ну так как-то не очень корректно сравнивать. Всё-таки ты можешь быть как пыхарем, так и ангуларщиком в пределах одной вакансии. Одно другому не мешает, более того - дополняет. Ты хочешь только фронтендщиком быть или фулстак-господином?
>>874969 Да, ты прав, что можно иметь в рукаве пхп/ангуляр стак и с ним тоже, наверняка, есть работа. И многие мечтают даже о вакансии пхп кодера. Но тогда времени не будет хватать для изучения жс, ангуляра и всего прочего. А вообще в планах еще expressjs для общего развития посмотреть.
Допустим, я рисую в фотошопе круг разделённый на несколько сегментов (макаба лежит, так что ссылка на пикчу http://imgur.com/o6knD66 ). Мне надо сделать, чтобы при двойном клике на одном из сегментов на этом сегменте отобразилась новая картинка, а рядом с кругом появилась текстовая информация.
Не знаю, как нагуглить, с помощью чего и как это делается, неужели с джаваскриптом. Сам учил пхп и базы данных, только немного касался джаваскрипта.
>>875008 Это достаточно сложная задача, чтоб запилить её вообще без знаний верстки и жс. Самый простой путь для тебя это просто нарисовать два вида "лепестков", открытые и закрытые. И просто менять их жс'ом при клике
Анончики, направьте, я туплю видимо. Есть группа картинок, 9 штук к примеру. У них есть превью. По клику показывается детальная, на fancybox. Хочу сделать чтобы детальная картинка грузилась после клика на превью, а не сразу, при этом оставить функционал fancybox, листать галерею и тп, как это реализовать? Если нажали листать, и следующая детальная еще не была загружена, надо ее грузить. Куда копать?
>>875040 Дело же не в mean. У тебя нет представления о работе интернета и общения клиента с сервером. Почитай про http, сессии и авторизацию. Mean это стек, он за такое пояснять не будет, он представляет собой просто шаблон из инструментов для построения клиент-серверного приложения
>>875043 Че то я затупил пиздец, у фансибокса же просто пишется ссылку на картинку, а он ее не грузит заранее, а именно после клика. Чет я прогнал пиздец.
>>875009 Внимание, вопрос. Как сделать так, чтобы на клик реагировала только часть картинки без альфа канала >>875008? Каждый сегмент же это прямоугольная картинка, но по факту мне нужно реагировать только на его "треугольную" часть.
Народ,поясните плз повёлся на nmp. Сделал проэкт на реакте через это заклинание npm install -g create-react-app create-react-app hello-world cd hello-world npm start иии собно хуле,миллиард папок, еще срань какаято,хуй пойми где что и зачем поясните плз или дайте ссылку на гайдик какой-то ибо нихуя не нагуглил
>>875258 пиздец блять все разобрался оказывается когда берёшь элемент getElementsByName то их там типо дохуя а когда просто id берешь то он там типо один и всё норм
Аноны, почему не получается в монгузе сделать картинку по умолчанию? Например: const mySchema = Schema{ image: {type: String, default: 'http://url.jpg' } } Не работает то есть в html'е стоит <img src=""> , зато если вручную вбить то все ок. И это не только с картинкой, вообще по дефолту ничего не ставится. В чем загвоздка?
Нихуя не понимаю как работает ивент луп. Вот есть рекурсивный процесс ноды, и дальше чо он делает? Запускаются асинхронные процессы, КАК они в очередь event queue то добавляются? Что такое thread pool? Все объясняют хуй знает что и каждый по разному. Не могу воспринимать это как черный ящик
>>875373 спасибо. чес гря не знаю, что посоветовать. я мало читал, что конкретно не помню и не дочитал ни одной книжки до конца. из good parts может половину осилил. алсо, хочешь верь,а хочешь нет, но я писал все в жопу укуренный, а сегодня еще и подвыпивший. поэтому завтра рефакторинг!
>>875370 во первых use strict нахуй не сдался там. на template literals ты явно хуй положил? замени underscore на lodash, и если уж используешь только _.filter, то можно импортнуть только его from 'lodash.filter' а вообще молодец, я нихуя не умею :(
Доброй ночи двачеры олдфаги программисты хакеры и просто красавчики.
Хочу вам рассказать о моей истории, она печальна и от итога хочется только плакать. Её можно пропустить, самое интересное про джаву в конце.
Я 5 лет отучился на юриста в гавноиституте, на 5ом курсе типа стажером в 2011 работал за 10тыщ р. Получив диплом я просто не знал что делать и пошел в армию. Там было по началу не очень, но потом норм. Вышел и пошел работать монтажником в Билайн, туда позвали друзья. Потом все крымнаш и Билайн сразу подразвалился, после чего я лишился работы. Решил пойти по специальности и начать с низов. Устроился в суд. Проработав почти 2 года предложили стать помощником судьи, но я не решился и свалил. Сейчас работаю за 30 тыщ (скоро будет 35) и мне это немного не нравится. Я считаю себя не плохим специалистом, что доказывает мою профессиональность на нынешнем месте, где начальник, который выступает экспертом на телевидении, дает мне вести дела своей жены и тёщи. Ну потолок в этой фирме 45-50. При этом мешать с говном будут. Юриспруденция это вилы пацаны. Серьезно, гнилая система. Что суды, что юристы - паразиты системы. Нет правды в ней. Нет силы.
А теперь о джаве. Я смотрел вакансии разных специалистов и программисты не плохо получают. Решил начать изучать. Полез на двач, наткнулся на эту тему, месяца два назад. Но долго я тут не тусил и пошел на ютуб. Там попытался пройти 2 видеокурса, но у меня не получилось даже настроить джаву, что бы проходить уроки. Уже как две недели копаюсь и пытаюсь создать свой сайт для старта бизнеса. В итоге дошел до уроков html5. Залез на сайт с работой и опять там нужна джава, в вакансиях html.
Вопросы. Реально мне в 28 лет, переучиться на программиста? Можно тут найти наставника, который за скромную 1000р будет мне говорить что изучить и отвечать на вопросы? Вёрстка сайтов самое простое?
>>875399 >2k16 >Путать Джаву и Джаваскрипт. Классика. Первое что ты должен был усвоить - это то, что это разные языки. Вроде уже не школьник, человек с образованием. Видимо, тебе трудно будет. Можешь, конечно, попробовать, если есть желание, время и упорство, но не факт, что у тебя что-то получится.
Джейсаны, я как-то задавал этот вопрос, и мне на него ответили, но все же я задам его снова, немного подробнее изложив суть.
Насколько плохо оставлять ассерты в продакшн коде? Смысл в том, что ассерты у меня используются в цепочке верификации введенных данных (например, до передачи их функциям по работе с БД). Сама цепочка заключена в конструкцию try/catch с последующей обработкой эксепшонов, т.е. стектрейс у меня не вываливается в stdout, а месседж из эксепшона возвращается клиенту с описанием ошибки. Достоинством такого подхода я вижу превосходную читаемость, отсутствие внешних зависимостей и конструкций вида if-else-then/switch.
В прошлый раз анон сказал, что в продакшне нужно отдельные хендлеры вешать для верификации данных и обработки ошибок. Но чем такой вариант не подходит для использования в продакшне?
>>875399 Если ты не тролль, то учти что время указанное в оп посте при таких дебильных вопросах да еще и в 28 лет можешь смело умножать на три. Итого к 30 может быть ты и станешь джуном. Хуйня полная. Советую тебе лучше гастером в европу валить, может и осядешь там где нибудь.
анон, смотри, есть такая проблема: есть айфрейм с тонной своего js среди которого инициализация яндекс счётчика которому передаются document и window, НО при инициализации в айфрейме document и window берутся от страницы куда встраивается айфрейм, вместо объектов этого айфрейма. Как можно получить изнутри айфрейма эти объекты, не слишком вылазя за его пределы?
>>875008 Придумай что-то по проще, зачем страдать хуетой.
Открою секрет, пользователей тошнит от сложного, пусть даже "красивого" дезайна. Чем проще и понятнее интерфейс, тем меньше тошноты испытывает юзер.
Просто нужно понимать, ты делаешь сайт для детей или взрослых людей. Если детей, то анимации и свистоперделки оправданы, а если для взрослой аудитории, то это дерьмо будет только вызывать раздражение.
К тому же учти, что есть большой класс пользователей, у которых по дефолту js отключен и у тебя сайт не будет у них работать. Всегда нужно дублировать функционал и тестировать работу сайта без js и с ним.
>>875428 >есть большой класс пользователей, у которых по дефолту js отключен Таких даже не 5% (95% людей — быдло, ко-ко-ко), а каких-то 0.5%. Максимум. Надо быть поехавшим, чтобы по дефолту отключать js в браузере.
Блять читаю вашего Кантора и до прототипного ооп было все стирильно и логично, но тут не могу уловить цепочку. Может кто на пальцах объяснить. Или тут тупо надо запомнить?
>>875517 >>875518 Ага, спасибо. Почитаю, просто немного запутано получилось. Получается, что объект жив пока на него есть ссылка. Т.е фактически роли не играет кто его создал, важно чтоб на него кто-то ссылался. И если даже родитель, изменит свое свойство, то сам объект жив в другой ссылке. Ну а изменения этого объекта, это изменение, т.е работа с самим объектом? Правильно понимаю?
>>875520 Я не из тех анонов, что пидорят JS за его архитектуру, и понятно, что вышеприведенный пример - одно из свойств языка, но, блядь, у этой хуйни есть полезный/жизненный use case? Разве инстансу не должно быть поебать на родительский объект, как бы последнего не содомизировали? Разве инстанс при new не должен создавать изолированную копию всех свойств?
Почти, но не совсем. Никакого такого родителя так-то нету по факту. Это нужно понимать по-другому ИМХО: prototype = это свойство функции в котором лежит объект и при создании объекта с ключевым словом new в его (новосозданого объекта) уже не скрытое свойство __proto__ попадёт ссылка на объект которые лежит в prototype. А правила для работы с объектами везде одинаковые, всё остальное верно
>>875524 >Разве инстансу не должно быть поебать на родительский объект, как бы последнего не содомизировали? Разве инстанс при new не должен создавать изолированную копию всех свойств?
>>875524 В скриптоте вообще строго не должно быть по факту все ООП поеботы. Вот этот весь синтаксический сахар ввиде индусского ооп в ES6/TypeScript сделать во-первых: 1. Для того чтобы индуссам было понятно. 2. Огромные проекты требует тупого и примитивного ООП которые должно быть вшито в язык. Чтобы обезьяны могли поддерживать.
>>875526 Все всосал. Спасибо за помощь. Бля как-то ООП в функциональном стиле проще, что ли. Ну я уже привык, каждая тема это вызов для человека который никогда программированием не занимался.
Считаю, что вся сложность у вкатывальщиков с понимание прототипного ооп без полного клонирования прототипа, в изначальной перегруженности языка (которая к слову продолжается и по сей день). Оператор new лишний, ровно как и введный сахар для классов.
Все, что нужно в языке это объекты (которые в суть хэш-таблицы). По литералу {} должен был создаваться нулевой объект с прототипом null. Прототип должен бы был устанавливаться установкой все того же __proto__, который был неперечисляемым по умолчанию, а еще лучше чтобы это был символ (жаль что символы ввели так поздно, на них вообще стоило бы изначально повесить всю метаинформацию, которая сейчас устанавливается через отдельные методы). Ну и функции, которые объекты первого порядка.
Ибо как сложность, как я вижу уже много лет, у всех этих неосоиляторов, помимо привычек, на первых парах осложняется еще и скрытой магией, с динамическим созданием объекта и линковкой с prototype хранящимся в конструкторе).
Много лишнего. Еще больше лишнего продолжают тазщить и теперь, по инерции.
>>875539 Да ладно, прям сложности. У поца появился вопрос, пацанре с двача всегда помогут. Поц сказал, что всосал с проглотом. Проблемы нет, все норм, пусть расширяет сознание.
>>875540 Очевидно потому, что ты ничего не понимаешь в объектной системе языка и плохо читаешь маны?
Объект, к которму ты применяеш фриз и объект хранящийся в prototype это два разных объекта, и дескрипторы у них разные, и один вообще может быть просто объектом, а другой быть callable, например. И еще много чего может. Хочешь заморозить всю цепочку - так морозь всю цепочку.
>Почему я ударил в морду Пете, а у Васи и Коли не появился синяк?
>>875539 >Еще больше лишнего продолжают тазщить и теперь, по инерции. Преувеличиваешь. Если вкатывальщик с this и прототипном ООП разберётся, то всё остальное хуйня в принципе. Язык минималистичный даже с новыми фичами. Один из немногих очень минималистичных попсовых языков, за что я его собственно и люблю. Просто некоторые костыли так часто писались что его пришлось добавить в стандартную либу (А вообще даже либой назвать её тяжело). А вообще несмотря на все его недостатки. Я уже за год работы с браузером 2Д графикой использую чистый JS безовсякого говна типа жиквери используется лишь йоба либы для серьёзной математики типа phaser.
На JS я могу выразить то что думаю достаточно быстро, на Java у меня такого не было.
>>875545 В том то и дело, что без new и class{} его минималистичность только выиграла бы. Прототипы и конструкторы и this никуда бы не делось. Но не было бы этого разъебенства, когда объект можно запилисть через Object.create а потом приминить к нему функцию, выполянющюю роль констркутора. Или создать class{} но внезапно чтобы запилить свойства, ане методы в прототип нужно возвращаться все к тому же class.prototype
Или пилить функции конструкторы со свойством хранящим ссылку на прототип.
Много вариантов это всегда плохо. В том, что описал я есть все. Из него можно было бы слепить повер все это, под задачу проекта. А когда это конструкции языка, будут вечные холивары - о том, как правильнее.
>>875551 Сделал бы лучше cons(1, cons(2, cons(3, cons(4, cons(5, null))))) Или ещё лучше Cons.fromArray([1, 2, 3, 4, 5]) Которые внутри делают всё те же new Cons. Удобнее же, читабельнее.
чуваки интересна вообще кому движуха с es6 дрочильней? а то мне кажется я хуетой занимаюсь выкладывая сорсы сюда и это никому не надо сегодня ниче не рефакторил. подрубил вк апи и теперь бугуртарий ретранслирует бугурты и бэ в вк сообщество. ток у них ограничение окаывается на 50 постов в сутки
Подкиньте алгоритм: Полное описание задачи Клиент делает GET запрос с параметром Query: ?fullname в виде Имя Отчество Фамилия (или Имя Фамилия или Фамилия), ваша задача сделать вывести инициалы в таком виде: Фамилия И. О. ( или Фамилия И.). Результат нужно вывести в виде строки, при неверных входных данных нужно вывести слово Invalid fullname.
>>875782 хз насколько ты следишь за историей моих постов, но я челик который год долбил дурь и играл в дотан, не писав и строчки кода. тут вышел из анабиоза узнал, что в жс завезли каких-то фич. ну и написал этот бугуртарий чтобы часть из них заценить. разумеется все эти дни я продолжал адски угорать, например, и поверхностно осилил только немного текстов про генераторы. вон даже темплейт литералс для меня стали сюрпризом. поясняй почему async-await сосут у ко и генераторов.
>>875788 быстрофикс Если 3 элимента в массиве - выводишь фамилию, потом первые буквы Если 2 элемента выводишь фамилию и первую букву имени Если цифры или символы то выводишь ошибку (это проверяется регуляркой)
>>875851 Ну, да, так этап верификации у меня - это звено в цепочке промисов. Предрекаю лучи поноса в свой адрес, но я использовал ассерты для формальной проверки введенных данных в формах на входе изоморфно, лол, на клиенте тоже были ассерты через Chai, пиздец, да? и проверки целостности результатов выборки из БД на выходе (это потому, что у меня in-memory store с персистентностью, поэтому не факт, что БД не развалилась к хуям.
>>875965 Да то же самое только чуточку лучше, потому что вместо yield более осмысленное для асинхронщины await, и не надо вызывать co или там Promise.coroutine, а просто ключевое слово async вместо этого.
>>876047 последние полтора года работал исключительно как жс кодер с ангуларом. и так все жсеры в фирме. отдельно было подразделение верстал со своим тимлидом и т.д. очень удобно. сидишь и делаешь задачи вместо еботни с версткой(будь она проклята). вообще не верстаю уже много лет занимаясь исключительно жсом и счатслив охуенно по этому поводу. не представляю сколько всего нужно сейчас знать верстальщику учитывая все эти пре-процессоры, хтмл5, мобильные клиенты и т.п. должно быть сегодня времена когда проблемы были уровня сделать костыль для старых ослов, вспоминаются олдфагами верстки как неплохие.
>>876052 Верстка то не пугает. Просто я бэкэндщик, но у меня в душе немного засел мамкин ололо-дезигнер. Сейчас пробую мобайл, но там ПОВОРОТ ЭКРАНА БАТАРЕЯ КОСТЫЛЬ ЧЕРЕЗ КОСТЫЛЬ АПИ. Вот и есть мысли перекатиться в чистый фронт, без серверки. Ток вакансий по такому мало даже в моем дс-2
>>876074 Понимаешь, дело в том, что мы тут в восточной Европе - ебаные дикари, которые всегда отстают от западных тенденций на три-четыре года. А сегодня (2016 год) если ты веб (web) дизайнер, который не может в вёрстку и хорошее понимание аксессабилити - ты хуй в говне никому не нужный. Да ив фотошопе никто сайты не делает уже лет десять наверное, такие дела.
Аноны, нужна помощь. Плагин в опере стал сам по себе какого-то хера отключаться, примерно каждый час берёт и сам отключается, нашёл его файлы. Можно ли как-то это убрать? Ладно пусть он сам по себе отключаться будет, но не каждый час, а примерно 15-18 часов. Сам вопрос, какая конкретна строка может за это отвечать?
>>876169 К сожалению разработчик пидорасина самый настоящий. Он не просто код обновил, он его в одну строку написал. Так что хреново получается. Что в блокноте, что в Notepad++ он выдает его одной блять массивной строкой.
>>876134 const guard = require('async-middleware').wrap; >>876139 Это просто для удобства. Я пишу сообщение и жму отправить, потом ввожу капчу сразу с десятка борд/тредов и оно отправляется сразу во все. Мне это нужно для популяризации незаслуженно обделённого вниманием сётакона с тентаклями в бордосфере. > ты борщеед? Да, бросил последнюю работу 2 года назад. Обратно кодить за деньги пока не особо тянет. Думаю пойти баристой или закладочником, лол.
>>876234 >пробовал перезагрузить компьютер? Не смешная шутка. Вообще фишка с выключением по времени и в одну строку код написать, это пришло после обновления плагина. Автор просит якобы теперь заплатить за фулл версию.
РУбрика - ньюфажный вопрос. Почему у меня в хроме не получается заставить скрипт выполняться после загрузки hml? Пробовал все как тут http://front-end.su/2016/02/12/load-events/, не работает даже джиквери. Зато все норм в фаерфоксе, даже в древнем IE. ЧЯДНТ?
>>876276 http://ideone.com/sEtpWq В скрипте просто window.onLoad = function(){ alert('a'); } Работает во всех браузерах, кроме хрома. Т.е. в хроме алерт всплывает до загрузки самой странички.
>>876320 Мамаша твоя не осилила тебя уму-разуму научить, быдло ебаное Джаваскрипт твой это ебаный рак индустрии, надеюсь все кто на нем пишут попадут в ад
>>876326 Потому что onload это подгрузка данных и только. Мб алерт в хроме до рендера, собственно, содержимого, в остальных оно отрисовывается, хотя и там и там формально все загружено. Различия в реализации, хуе-мое. DOMContentLoaded попробуй, плюс еще в жиквери есть тоже функция своя для отслеживания полной загрузки и отрисовки.
>>876317 У меня в Chromium 54 всё загружается до запуска скрипта судя по тому что работает вот это: window.onload = function(){ document.getElementById('changable').textContent = "Nah, fuck this shit"; alert('a'); } Может просто рендериться не успевает, но документ к моменту запуска уже загружен и DOM дерево готово, раз его можно дёргать. HTML такой же, только у тега p стоит id="changable"
>>876485 Ты кароч неправ. Думаешь я не читал это? Я уже все пути перепробовал. Там какая то хрень с упаковкой вебпаком экспресса, как сервер паковать? Хотя бы минифицировать.
Вопрос - с точки зрения повышения скиллов, по данным сорцам можно учиться / вдохновляться / заимствовать в своих разработках? Просто хочу понять, насколько качественен код того анона. Наверняка же его поделия обсуждались, и не раз, но я проебал их мимо своих глаз. То есть интересует своего рода кодревью в двух словах, буквально.
>>876540 > по данным сорцам можно учиться / вдохновляться / заимствовать в своих разработках? Нет, на node.js максимум только деньги можно пилить, не больше. Люди, пишушие на этом говне для себя - дауны ебаные, которые на Аде никогда мк не программировали.
> Установите MySQL и выполните следующие команды для создания двух необходимых таблиц С блога который раз проигрываю.
>>876579 >Люди, пишушие на этом говне для себя - дауны ебаные. Я АСУшник, пишу на JS "джаст фо фан". Использовал ноду в различных приложениях, в т.ч. для вызова WinAPI через FFI, для опроса различных девайсов по COM-порту, для работы по USB (запись/чтение в девайс). Сейчас небольшое приложение на ноде накатал для контроля технологических параметров для одного испытательного стенда гидравлического оборудования. Во всех случаях на JS кодинг доставлял удовольствие.
Бесспорно, все вышеперечисленное можно было сделать и на других языках, и, возможно, результирующие программы были бы на них лучше по каким-то критериям, но ведь тред посвящен JS. Посему, отзываться от людах, пишущих на JS, как о "даунах ебаных" здесь, по меньшей мере, неуместно. Меньше хейта, мэн.
ЖС ебаный пиздец же, как на нем вообще можно для фана писать? Динамикопараша с кучей костылей, уродливый ооп, нечитаемый синтаксис, уебищные либы. Хотя для говноедов-байтослесарей-асушников может быть все не так и плохо, им и говно конфеткой кажется
>>876603 Жс-мирок - это элитные экстремальные технологии для бывших лиспохаскеров. Я пишу на ноде, потому что ненавижу программировать что-либо, кроме reaktor, и потому хочу закончить как можно быстрее.
>>876621 Это божественно. Только let'ы немного смазывают общую картину. Это тот самый мультипостер для борд? Есть шанс того, что ты выложишь код на жидхуб?
>>876621 > технологии для бывших лиспохаскеров Не оправдывай своё говнокодерство мифическим элитным мирком, которого нет, тем более бывших лисперов не бывает. Перекатываются, а уж тем более на такую говнину, лишь те, кто не осилил работать свой головой на себя либо у них выбора не осталось.
>>876621 Алзо пиздец у меня от этого говнокода в глазах закололо. Отсутствие комментариев через полгода превращают js и php говнину в неподдерживаемый кал. Даже в исходниках openssl на чистом С разобраться проще без комментариев, имея багаж знаний в математике, чем во внутренностях очередного говнофреймворка. Отсуствие типизации или хотя бы выведения типов заставляет держать в голове кучу лишнего говна. Есть jsdoc, но он не всегда хорош.
>>876634 Удваиваю, уважаю лисп, но блюю от жса. Часто слышу, что "жс-это современный лисп и т.д.", но это нихуя не так. Такое могут сказать только люди, которые на Лиспе не писали ну или просто дауны. И если уж на то пошло, ЖС имеет отношение к Лиспу такое же, как любой другой динамический язык.
>>876625 > Только let'ы немного смазывают общую картину. В смысле, что лучше было сonst? Я использую const только для глобальных связываний, а внутри функций лень думать о (им)мутабельности параменных. Моё мнение - что компилятор сам прекрасно вычисляет что меняется а что нет при приведении кода к SSA, а ради читабельности внутри функций оно не настолько критично. > ты выложишь код на жидхуб? Да, вброшу куда-нибудь сюда ссылку. >>876634 Я так тоже говорил 10 лет назад, когда программирование для меня было развлечением, а не инструментом. Просто я тогда не знал настоящих развлечений, не было полноценных источников кайфа, не с чем было сравнить.
>>876645 > не было полноценных источников кайфа Так ты героинщик? Так бы и писал сразу, а то я все на вы и на вы. > Я так тоже говорил 10 лет назад, когда программирование для меня было развлечением Если я в 37 лет начну относиться к этому хоть как-нибудь серьёзно, лучше пойду из окна выброшусь.
>Я так тоже говорил 10 лет назад, когда программирование для меня было развлечением, а не инструментом. Где-то я это уже слышал. В Го-треде любят повторять эту фразу, когда оправдываются.
не могу понять почему какие-то чуваки приходят в жс тред и говорят что жс говно, а чуваки сидящее тут начинают оправдываться это какое-то соревнование в тупизне?
Пытаюсь я сделать изоморфное приложение на основе https://github.com/coodoo/react-redux-isomorphic-example — но не могу понять, что делать с роутингом. Серверный метод match реакт-роутера возвращает какую-то хуйню, из которой можно вытащить список компонентов для рендеринга, но выходит как-то черезжопно. Как бы мне изящно определить, какие данные я должен засунуть в store? Не проверять же компоненты через instanceof.
Задачка: в своём проекте хочу сделать страницу для описания каждого аэропорта в мире. Но делать это вручную чота зашквар. Появилась идея - сверстать шаблон для таких страниц и заполнять его по ajax. Например, у меня есть ссылка <a href="/airport-template/" data-airport="sheremetyevo">Шереметьево</a>. При нажатии на эту ссылку js-скрипт будет брать данные из атрибута data-airport и отправлять их на страницу шаблона, заполнять эту страницу в соответствии с нужным аэропортом и сразу перенаправлять пользователя на эту страницу. Это будет работать и можно ли это организовать в принципе?
>>876706 Во-первых, у меня не особо много времени, чтобы разбираться во фреймворках. Во-вторых, не берусь за фреймворки без фундаментального понимания JS. Я один разработчик в большом проекте, и PHP и JS - я заебусь один со всем этим разбираться.
Хей, котаны. А вы сплитите свои редьюсеры атомарно в круд приложениях? Например у меня есть коллекция Users и к этой коллекции четыре круд акшена. Общий паттерн структуры у меня обычно Feature First, поэтому у меня есть фолдер Users > List | New | Edit. И внутри каждого сабфолдера свои контейнеры, компоненты, ассесты, стили и вся хурма. Раньше я обычно и каждому сабфолдеру давал свой redux фолдер, где хранил всю редакс инфраструктуру. А сейчас вот пишу приложение и делаю общий redux в руте фичур фолдера и там складирую все константы, акшены и один редьюсер, который хостит все круд операции. Брат пока жив. А как вы обычно строите структуру?
>>876713 > Во-первых, у меня не особо много времени, чтобы разбираться во фреймворках. Через год > Я один разработчик в двух больших проектах, бля нахуя я это написал, блядь это ж давно реализовали. Опа, какой мудак это писал. Сука ну за що
Есть файлы 1.html 1.js 2.html 2.js Допустим на первой странице я что-то делал и хочу скопировать инфу (например значение переменной А) на вторую странице и работать с этой инфой во втором js файле. Я знаю что так можно сделать если использовать один (общий) js файл. А если их два?
На мочан, я погляжу, добавили какие-то стикеры. Что это я понятия не имею, но говорят лютейший зашквар. Короче говоря: Как проще всего скрыть пост со словом "стикер" с помощью JS-юзерскрипта? Куклу не люблю.
>>876694 Если тебе нужна индексация поисковиков, то это делается на стороне сервера, а не клиента. На стороне клиента это делается примерно так, как ты описал, да
>>877041 Ты знаешь для чего нужна минификация? > использование в будущих проектах с многочисленным роутингом/restful api А причем тут сборка? Как она способствует этому?
>>877044 > почему ты считаешь что упаковка не имеет место быть Потому что я не вижу для этого ни одной причины. Мне кажется, что сборкой бэкенда в один минифицированный файл будет заниматься только тот, кто вообще не понимает что такое сборка и для чего она нужна
>>877047 Я просто решил намекнуть тебе, что ты занимаешься полнейшей хуйней и лучше бы тебе сконцентрироваться на самом приложении и его работе, а не несколько дней носиться с минификацией бэкенда. Ну тебе, наверное, виднее
>>876657 Прикручивать линты, смотреть на их подкрашивания, постоянно переключаться между разными вариантами (let и const), писать на два символа больше - это всё слишком большой напряг для такой лютой хуйни. Ящитаю, необъяснимое желание для локальных переменных нахуярить const всегда когда возможно - это признак аутизма.
>>877083 Есть один чувак прошаренный. Короче он говорит, что просто коммьюнити больное, поэтому и лепят везде тройное равно, пишут const и т.д. Ну и еще он говорил, что чем ближе люди к tc39 - тем чаще в их коде let.
Если бы двойное равно не работало через жопу, не лепили бы. Ты только посмотри на эту хуйню http://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison и, заодно, посмотри во что раскрывается ToNumber и ToPrimitive. Не удивительно, что большая часть js-программистов не хочет держать в голове все эти охуительные правила и каждый раз вычислять в голове безопасно ли в данном случае использовать ==, а просто используют === всегда.
>>877138 Они недостаточно ортодоксальны для секты, тащемта, они допускают использование летов (при этом рекомендуют отказаться от var'ов вовсе). Я категорически с этим не согласен - нужны только консты, при этом без фанатизма - мутабельности объектов и массивов вполне достаточно, чтобы писать без код без мозгоебли и при необходимости обновлять рефы. Но это, конечно, вкусовщина.
>>877126 Да мне похер кто и почему сколько равно лепит - я передал слова чувака, а не пришел тут холивары разводить у вас и без этого тред в последнее время скатился в какую-то жопу.
>>877140 >они допускают использование летов >%variable_name% is never reassigned. Use 'const' instead. (prefer-const) И это не предупреждение, а полноценная ошибка. Но я так-то свой конфиг экстенджу от бнбшного и уже привык. Минимальные поправки я конечно сделал, как-то: "no-nested-ternary": 0, "no-plusplus": 0 (вообще дичь), "arrow-parens": 0 и другие мелочи.
>>877146 >"no-plusplus": 0 (вообще дичь) Меня здесь пидорили как-то за участок кода с такими вот унарными операциями. Подозреваю, что дело в читаемости. Сдается мне, охуевшие от многочасовой рутинной работы глаза легче найдут код вида varName = varName + 1; нежели varName ++;
>>877152 Беда с ними в том, что результат зависит от порядка (префикс\постфикс) и может привести к путанице. А выигрыша они никакого не дают, кроме краткости. Но на набор\чтение пары лишних слов ты потратишь меньше времени, чем на обмозговывание того, что там возвращается, а что в скоупе останется. Следовательно, к хуям плюсплюсы.
>>877155 Лучше слушать выебшиков с их уникальным бескомпромиссным видением прекрасного. Нахуя тебе пару лишних клавиш нажимать, не для того тебя мамочка растила.
>>877150 Честно, я не люблю судить о людях по их внешнему виду, но этого горбатого дрища слушать не хочется. И выступает он, если судить по тому видео, что было в посте, хуево.
>>877152 Проблема возникает не когда у varName++ на отдельной строке, а когда начинают писать конструкция вида varName1 = fn(varName1, varName2++).
Этот тред посвящён главному языку будущего - 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.md
JS-конфа в телеграме:
https://telegram.me/jsthread
Конфа /pr/ в Slack:
https://invite-me-to-2chpr.herokuapp.com/
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.