Двач.hk не отвечает.
Вы видите копию треда, сохраненную 7 декабря 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
37 Кб, 1052x1052
JavaScript #68 #871862 В конец треда | Веб
Ссылка на прошлый тред: >>864691 (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.md

JS-конфа в телеграме:
https://telegram.me/jsthread

Конфа /pr/ в Slack:
https://invite-me-to-2chpr.herokuapp.com/

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
#2 #871866
все в жс трейде лохи
#3 #871957
>>871862 (OP)
что нужно запилить чтобы взяли на работу?
могу в реакт, коа, ангуляр1
>>871960
#4 #871960
#5 #871980
Бля, вебпак это ебаный пиздец. Собери себе замок из лего, блять. Почему нельзя предоставить адекватные дефолтные настройки, как в рельсах/джанго?
На каждый чих куча бойлерплейта.
#6 #871983
>>871980
что тебе не нравится?
рельсодауны сосут за 1к бачей макс, когда жс боги ебашут от души за 3-4к бакинских в месяц
тянки текут от упоминания твой зп
#7 #872002
>>871980
Ты че, ретард? Там одной строчкой любой модуль подключается. Проще вебпака сборщик придумать сложно
>>872022
2 Кб, 379x35
#8 #872009
#9 #872011
>>872009
))))))))))))))))))))
#10 #872022
>>872002

>Проще вебпака сборщик придумать сложно


Gulp.
885 Кб, Webm
#11 #872024
#12 #872029
Всем привет, а почему жс такое дурное дерьмо для дебилов?
#13 #872032
Какой же днищенский тгхед.
#14 #872033
Почему именно в жс треде столько хейтеров?
>>872037
1 Кб, 72x68
#15 #872035
#16 #872037
>>872033
потому что долбаёбы ниосиляторы :)
>>872040
#17 #872040
>>872037
то чувство когда вкатился месяц назад в жс и смотришь на всех как долбаебов))))
мань, наклепай ка формочек, шоб красиво было
#18 #872049
аноны, хочу начать потихоньку изучать /pr , и думаю над первым языком, с которого все пойдет - стоит ли брать javascript? к слову, я полный ноль в пр
про жаву в факе видел, не тыкайте плз
>>872051
#19 #872051
>>872049
Не стоит, начинай с C.
>>872053>>872054
#20 #872053
>>872051
понял, может подскажешь ресурсов по типу learn.javascript.ru , только для изучения С?
>>872059
#21 #872054
>>872051
да, и собственно, почему начал изучение именно веба - в математике старше 11 класса полный ноль, или это не столь важно?
>>872059
#22 #872059
>>872053
ftp://telezhnikov com/other/result-A4-v0_1.pdf

>>872054
Не важно.
>>872061
#23 #872061
>>872059
спасибо, милейший
дай бог здоровья :]
#24 #872090
Сап /pr пытаюсь в качестве обучения написать такой же календарь как тут
http://kozlovdenis.ru/corp#calendar
только там сервер на рельсах, а я на ноде, я что то вообще не могу прикинуть с какой стороны подступиться, даже если я буду jade вьюху генерировать по post запросу для следующего месяца, ( там же отдельный роут стоит /calendar ) как я понял, как мне тогда сгенерировать текущий месяц, что то два дня уже вообще ничего в голову не идет
>>872094
#25 #872094
>>872090
в смысле там отрисовывается на данный месяц при get запросе, а потом еще POST'ом дергается на следующий/предыдущий и я хз как это на сервере сделать, подсобите хули
>>872114
#26 #872114
>>872094

Query параметры?
>>872138
#27 #872118
Аноны, помогите найти исполнителя для такой вот задачки. Готов заплатить денюшку. Пишите, кому интересно.

==========================

Есть сайт по грузоперевозкам, на котором добавили новый функционал, формы время исполнения заказа.

Выглядит это следюущим образом. Я открываю 30 заказов, выставляю свое предложение, и в новые формы, должен внести минимальное и максимальное время груза в пути.После этого разместить свой заказ.
Например, если из А в Б 600 километров, то в форму один нужно поставить цифру 2, в форму 2, цифру 3( так как в днеь машина проезжает в среднем 500 км). Если дистанция 1600, то цифры вставлять надо 4-5.

Нужен простой скрипт или расширение, которое берет дистанцию (значение легко парсится), делит на 500, и ZNACHeNIe цифру вставляет в форму 1, а в форму 2, ZNACHeNIe + 1

Так как за раз открыаю по 30-100 заказов, нужно чтобы на каждой странице только на этом сайте, без ошибок значения вставлялись в форму. А Мне нужно было выставить только стоимость заказа, свой комментарий, и нажать кнопку опубликовать.

Стоимость если низкая, то обсжудается. Но насколько я понимаю, тут работу спецу на полчаса. Ибо значения форм и дистанции легко парсятся в DOM дереве, я просто не умею создавать расширения.

=======================
>>872374>>873593
#28 #872122
есть ли смысл учить жквери после ванилы, или можно сразу браться за ангулар?
>>872134
#29 #872134
>>872122
если ты джун а ты джун раз только ванилу осилил едва ли тебя допустят писать SPA, ближайший год ты будешь верстать лендинги, а верстатьт их на угловом это как пытаться выебать телку в ноздрю
>>872143
#30 #872138
>>872114
нет ты не понял или я есть роут /corp в нем хеш #calendar он на текущий месяц отдает разметку, чтоб переключить на следующий, надо послать post с месяцем на /calendar я спрашиваю: как мне все это сделать на jade
>>872191
#31 #872143
>>872134
я вообще бекендер, хочу быть фулстак господином, и упражняться я буду на своих проектах.
>>872145>>872160
#32 #872145
>>872143
не меняет того что я сказал, если будешь пилить SPA то react/angular/vue любой бери, они делают одно и то же
если будешь писать что то мелкое жкверя незаменима
#33 #872160
>>872143
Можешь сразу браться за Ангуляр, всё понятно будет раз бэкендер, на Жквери просто глянь в общих чертах, там ничего сложного нет.
Сам фулстак, в Ангуляр вкатился быстро, но вообще от ЖС блюю, конечно, очень неприятный язык.
>>872192>>872414
#34 #872191
>>872138
Html сверстаешь табами, данные по праздникам получишь по аяксу, можно еще зашить прямо в html-ноду аттрибутом.
#35 #872192
>>872160

> от ЖС блюю, конечно, очень неприятный язык.


Да пошел ты.
js-фан
>>872197
#36 #872197
>>872192
поддвачну адеквата
#37 #872202
Разбираю JS сookbook от O'Reilly и делаю упражнения на w3resource. Когда все проработаю - начну джейквери. Правильно делаю?
>>872208
#38 #872208
>>872202
Тащемта, жквери намного проще жс. Зная жс, тебе вообще не придется что-то учить и понимать в нем
#39 #872357
Приветствую всех. Пилю небольшой парсер на NW.js, сейчас вся прога построена на получении исходного кода страницы через XMLHttpRequest() есть ли другой способ, я не знаю

Вопрос такой: можно ли сделать так, чтобы парсер работал через прокси Tor, который 127.0.0.1:9150 ?
>>872689>>875854
#40 #872372
Зачем нужен redux и клиентский рендеринг? Это же просто гиперуёбищно с точки зрения безопасности. Годится ли это на что то кроме хелоуворлдов?
#41 #872374
>>872118

> Но насколько я понимаю, тут работу спецу на полчаса.


Нищая скупая пидорашка, пшёл вон из треда.
#42 #872379
>>872372

> Это же просто гиперуёбищно с точки зрения безопасности


С точки зрения безопасности у тебя бэк не должен отдавать секретные сведения.
>>872394
#43 #872394
>>872379
Допустим ты написал роутинг на клиенте. Что мешает потенциальному злоумышленнику правильно сформировать запрос посмотрев логику раз она вся голой жопой на клиенте и открыть нужный роут?
#44 #872396
>>872394
Ничего. Правильный роут должен быть закрыт для левых юзеров.
>>872413
#45 #872409
https://github.com/jamesknelson/raw-react-part-3/blob/master/src/actions/contact.js#L35

Ребята, а здесь разве не напрямую человек state изменяет?
Правильно было бы var cForms = Object.assign({}, state.contactsForms, update);

Или я ошибаюсь?
>>873813
#46 #872413
>>872396
Ну, соответственно, делаем вывод что роутинг на клиенте не нужен?
>>872586>>872741
#47 #872414
>>872160
согласен
жс говнище ебанное, кто тут фанатеет от этой хуйни - говноеды
#48 #872419
Яваскрипту осталось недолго.
Трепещите, JS - смерды.
>>872512
#49 #872422
Объясните нуфане, зачем нужны фреймворки и где они используются
>>872529
#50 #872428
посоны, помогите. есть галп, он подключает модули, которые установлены в devDependencies (hmr, например). как лучше сделать, чтобы в production все собиралось, но при этом devDependencies не перемещать в dependencies?
>>872640
#51 #872480
>>872394
CORS, аутентификация, авторизация. Ты совсем даун?
#52 #872482
Что меня больше всего бесит в фронтенде - пока разберешься, как настроить весь этот мегагибкий тулинг (тм), уже дедлайн. А ведь его еще сука поддерживать надо.
#53 #872483
>>872372
Ты идиот?
#54 #872503
>>872372

> Это же просто гиперуёбищно с точки зрения безопасности.


Ну покажи дыры в безопасности у gmail, например
468 Кб, 1930x1110
#55 #872512
>>872419
Да пиздос
#56 #872529
>>872422
Чтобы не писать говно на жкуери. Используются в SPA.
>>872531
#57 #872531
>>872529
Только для них, что ле?
>>872533
#58 #872533
>>872531
Да. Все рендерится на фронтенде в таком случае. Данные в json с сервера передаются.
Можно конечно их рендерить и на ноде и выдавать готовую верстку, но это редко когда нужно
>>872537>>872585
#59 #872534
Где брать/пиздить работы в портфолио под js ? В данный момент изучаю вью и хочу попрактиковаться.
В тренде Идей 003 мало чего под фронт есть
#60 #872537
>>872533
Чтобы стать фуллстак веб макакой нужно еще и язык под бэк освоить?
>>872539
#61 #872539
>>872537
ЖСа хватит он и на фронтенде и на бекенде используется (node.js)
#62 #872585
>>872533
isomorphic spa почти всем крупным конторам нужен
>>872587>>872743
#63 #872586
>>872413
Нет ты не понял. Пусть он хоть код модифицирует. Сервер сам не должен отдавать данные не тем юзерам. Если юзер имеет доступ к данным, то он и так может их получить . Уж если угнали куки или логин с паролем, то тут уж ничего не поделаешь.
#64 #872587
>>872585
Щас еще много на ангуляре первом сидит, а там с изоморфностью жопа.
>>872590
#65 #872590
>>872587
тогда только так https://prerender.io/
#66 #872598
>>872534
бампну вопрос
#67 #872616
>>872534
>>872534
g i t h u b
81 Кб, 807x605
#68 #872640
>>872428
бамп)
>>872692
36 Кб, 654x763
#69 #872657
Здравствуйте, господа джиэсеры. Мне нужен ваш комментарий и совет.
Вздумал я запилить велосипед микроскопический CMS в целях ликбеза. Может, послужит в качестве скелета для будущих проектов.

Поставил цель сделать решение максимально гибким и тут же встрял на первом шагу - обработчике роутов.
В идеале я хотел бы иметь возможность добавлять в рантайме новые роуты и навешивать к ним дополнительные обработчики (пример юзкейса - запрос записи в блоге проходит через цепочку хендлеров и возвращает клиенту объект, например, содержащий информацию об авторе записи, дате создания и тело сообщения. Затем, при желании, добавить на тот же роут обработчик, который внесет в возвращаемый объект дополнительную информацию о кол-ве прочтений, рейтинге статьи и проч.).

Эдакий скетч решения представлен на пикрилейтед.
Работает это следующим образом:
в app.js есть дефолтный роут, который перехватывает все обращения, начинающиеся с /api/ и передает их обработчику в route-handler.js,
в route-handler.js вызывается функция processReq, которая в зависимости от метода (GET/POST/PUT...) выдергивает из расширяемого объекта verbHandlers массив объектов, содержащих хендлеры, определяет по урлу, подходят ли они к данному запросу и, если роутматчинг выполнен, обработчикам передаются аргументы на выполнение.
Результат выполнения обработчиков записывается в res.locals по рекомендации доков Express и возвращается клиенту.

А теперь вопрос - насколько такой подход уебищен и вырвиглазен?
Знаю, что в случае с экспрессом, по-грамотному, необходимо использовать middleware-подход. Но с миддлварями я не понял, как динамически их подгружать, а те решения, что мелькают на stackoverflow, по сути своей, предлагают так же пушить новые обработчики в стек Express.

Короче, буду рад советам мудрым.
>>872694>>872747
#70 #872668
>>871980
Понимаешь, что это для проектов больших? Для маленьких в принципе тоже ничего сложного, но ты охуел. Еще недавно нужно было писать галп таски и вручную писать код, а сейчас десять строчек лень что ли и пяток npm i? А если больше, так у тебя и так все сложно, ты хочешь моднейшие технологии одним кликом. Ну тогда есть йобаман.
#71 #872669
>>872534

У меня печет с подобных тредов. Какие же ебаные ньюфаги собираются, которые варятся в своем дерьме, нервничают, что мало выучили. Заводы стоят, макак не хватает. Вашего ебаного галпа и ангуляра жс хватит для 50% вакансий. Рекрутеры звонят, просят порекомендовать хотя бы джуниора. Тянку проще вытащить на свидание, чем фронтендера на собеседование. Зная только ангуляр и реакт, заикнулся о переходе в другую компанию, с ходу 40к прибавили, потому что в нашу дыру уже год ищут хуесоса, который готов писать на жс и не хипстерскую хуету.

Что же вы так аутируете? Ну сделай ТУДУ этого хватит. Фантазии хоть отбавляй у всех, покажи что просто владеешь навыками и прочитал документацию от корки до корки, знаешь какие-то конструкции (80% из которых опять же будут накручены в любом туду хэллоуворлде) и если что будешь знать что гуглить если у тебя значки :: < или эштиэмэль в коде, что бы не пугался.
#72 #872678
Что почитать про разработку UI по типу http://www.martinfowler.com/eaaDev/uiArchs.html ?
>>872697
#73 #872689
>>872357
Можно.
>>873514
46 Кб, 450x600
#74 #872692
>>872640
Ну плиз
>>872697
#75 #872694
>>872657

> CMS


> На ноде


Блядь, какая же хуита. Ладно на клиенте, можно с говном смириться и писать на coffee, но сейчас на сервере много где есть нормальная асинхронщина, нет, надо жрать это дерьмо и на сервере.
>>872717>>872745
#76 #872697
>>872678
Material design от гугла и hig от GNOME
>>872692
Ты про package.json знаешь хоть что-нибудь? Пздц, откуда вы такие вылазиете
>>872705>>872738
#77 #872705
>>872697
Я про программирование, а не дизайн.
#78 #872717
>>872694

>надо жрать это дерьмо и на сервере


Надо полагать, движки Ghost, Keystone, Apostrophe, Pencilblue и иже с ними - дерьмо?
Automattic, наверное, тоже дерьмо, ибо планировали перевести кодовую базу на ноду.

>клиенте, можно с говном смириться и писать на coffee


Можно писать на CoffeeScript и в 2016, но зачем, если есть es6?

И все-таки, если оставить хейтерство в стороне, я хотел бы разобраться с хендлерами роутов. Такой подход, как у меня. допустимо использовать для динамической загрузки новых роутов и обработчиков к ним?
Или есть более элегантный способ решить задачу?
>>872790
#79 #872738
>>872697

> Ты про package.json знаешь хоть что-нибудь? Пздц, откуда вы такие вылазиете



Знаю, чувак. Но у меня проблемка. Собираюсь галпом, и в галпфайле есть таска watch, которая юзает модуль browserify-hmr. Этот hmr у меня естественно в devDependencies.
В продакшне же они не ставятся. Вот и прошу совета у добрых людей, как лучше сделать.
>>873196
#80 #872741
>>872394
>>872372
>>872413
Про то, что у каждого клиента своя сессия, ты не слышал?
#81 #872743
>>872585
Не, это всего лишь тренд. Писать изоморфный код тяжелее.
#82 #872745
>>872694
Съеби нахуй уже отсюда.
>>872790
#83 #872747
>>872657
Уебищен он частично.
1. Внутри объекта лежит URL, он должен быть на уровне конфигурации выше, чтобы экономить время того разраба, который будет палить конфигурацию (слишком долго).
2. Насколько я понял, у тебя каждый раз пробегает по всем обработчикам что ли? Поправь, если ошибаюсь.
>>872754
#84 #872754
>>872747

>2. Насколько я понял, у тебя каждый раз пробегает по всем обработчикам что ли? Поправь, если ошибаюсь.



Все верно. Я осознаю, что это пиздец - с ростом количества обработчиков сервер будет подолгу тупить, перебирая их и находя нужные. Конечно, это просто скелет, не для высокой нагрузки, но тем не менее.

>1. Внутри объекта лежит URL, он должен быть на уровне конфигурации выше, чтобы экономить время того разраба, который будет палить конфигурацию (слишком долго).



Второй вариант, о котором я думал, несколько мене гибкий, но более читаемый - назначить несколько дефолтных роутов, а в объекты, содержащие хендлеры - включать не урл, а условный алиас, например {matchGroup: 'category-lookup'}.

Выглядить это будет примерно так:
app.all('/api/category/:id', catHandler), где catHandler будет точно так же пробегать по массиву хенделеров, но искать обработчики не по урл, а по соответствующему алиасу.

Но это все сорта одного говна.

Как, сохранив универсальность (т.е. не хардкодить роуты и хендлеры к ним в сам движок), грамотно составить расширяемую систему обработки запросов? Можно ткнуть меня в гитхаб какого-нибудь проекта, использующего подобный подход?
Или, быть может, какой-нибудь фреймворк уже содержит такую реализацию (расширяемость роутов и цепочки хендлеров)?
#85 #872779
>>872754

>Конечно, это просто скелет, не для высокой нагрузки, но тем не менее.


Так вынеси в конфигурацию URL, тип запроса и функцию/название функции. Тогда это будет обрабатываться в 1 операцию.

Что-то типа:
handlers = [
['get', '/', 'index']
];

А затем что-то типа controllers = {
index: function (req, res) {
//...
}
}

Ну, и вызывать соотв.
>>872815
#86 #872790
>>872717

> и иже с ними - дерьмо?


Да.
>>872717

> если есть es6?


Ой, добавили модули и стрелочные функции в говно, теперь это говно с сахаром!

>>872745
Или что?

Алзо, твой подход вырвиглазен и на сервере будет хуёво поддерживать. На клиенте еще относительно размера приложения сгодится.
Хочешь CMS - пили на модули, ядро, middleware, расширения с роутингом, базой. Если используешь REST подход, тогда модульность очень важна. Иначе все превратится в кашу и будешь 5-6 раз переписывать ядро, как это в Drupal делают который год.
>>872796>>872815
#87 #872791
>>872754

> cms


> для высокой нагрузки


Ты себе хорошо её задачи вообще представляешь?
#88 #872792
>>872791

>написал говенный код


>да лана это ж цмс))))))00

>>872822
#89 #872796
>>872790

>Алзо, твой подход вырвиглазен и на сервере будет хуёво поддерживать.


Мудила, его подход позволяет развязать сущности. Реализация говно, это да, но сам принцип - держать контроллеры, конфигурацию и инициализацию отдельно - не только легко и удобно поддерживать, а еще и горизонтально масштабируется.
>>872805
#90 #872801
>>872791

>> cms


>> для высокой нагрузки


>Ты себе хорошо её задачи вообще представляешь?


Cms это отдельная подсистема проекта, она может быть как в хайлоаде, так и в чем угодно еще.
212 Кб, Webm
#91 #872805
>>872796

> позволяет развязать сущности


> горизонтально масштабируется

>>872808
#92 #872808
>>872805
Зарепортил хуемразь.
>>872863
34 Кб, 804x645
#93 #872815
>>872779
Переосмыслил то, что ты сказал - результат на пике.
В общем, при таком подходе перебор осуществляется только по массиву роутов, что с точки зрения быстродействия - оптимальный подход, нежели перебирать массив хендлеров.
И, хотя объекты, хранящие обработчики и роуты, теперь явно разделены, в общем и целом код, как мне кажется, стал говнистее.

>>872790

>пили на модули, ядро, middleware, расширения с роутингом, базой


Так ведь я и хочу так сделать. Приведенный код выше - лишь набросок обработки запросов / роутинг.
Подразумевается, что verbRoutes и controllers - расширяемые объекты, вынесены в отдельный модуль и в процессе работы сервера могут изменяться.

>>872791
В контексте моей задачи - это обертка на CRUD'ом, если совсем уж упростить.
В целях быстрой разработки типовых проектов (блоги, статейники и проч.) хочу создать максимально простое и гибкое решение. Просто фана ради, говорю же, НЕ хайлоад, об это речи даже не шло.
>>872832
#94 #872822
>>872792
Не траль, пжалст.
Я разобраться хочу и понять, какое решение лучше применить.
33 Кб, 568x373
#95 #872832
>>872815

>в общем и целом код, как мне кажется, стал говнистее.


Без конфигурации этот код был бы в разы хуже.

>В общем, при таком подходе перебор осуществляется только по массиву роутов, что с точки зрения быстродействия - оптимальный подход, нежели перебирать массив хендлеров.


Ты можешь обращаться к объекту, а не к массиву.
Слишком сложная структура данных для простого действия - маппинга контроллеров на url.
Олсо, есть еще подход, если ты не собираешься передавать код кому-то, то convention over configuration тебе поможет.
#96 #872835
>>872832

> for (const handler of handlers) {


app[handler[0]](handler[1], controllers[handler[2]]);
}

>


Пофиксил.

>

#97 #872846
Здесь как-то был анон, который работает фронтэндером, а на досуге ковыряется в машинном зрении или каком-то графоне на Крестах.
Если ты здесь, отзовись!
#98 #872863
>>872808
cъеби в /фг, пидор
#99 #872866
>>872832
Спасибо за рекомендации. И про CoC прочитал.
Алсо, анон, ты можешь вполне резонно обвинить меня в непроходимой тупости, но каcательно твоей реализации, если в цепочке миддлварей "index" или "addSomething" добавился новый обработчик, как экспресс будет отправлять результат? Будь то res.send, res.json или res.render.
Говоря проще, как в цепочке обработчиков задать последний обработчик, который и будет отправлять результирующие данные?

Для статичной конфигурации актуален такой код:
app.get('/route', [arrayOfMidwares], (req, res) => { res.json(res.locals); });
Будет ли такой код справедлив и для динамически изменяемого массива arrayOfMidwares? Что-то мне подсказывает, что нет.
>>872899>>872912
267 Кб, 1599x767
#100 #872873
пацаны, почему условие не срабатывает ?
что есть что:
cursor = первый понедельник данного месяца, для ноября это 31 октября дальше в while цикле cursor инкрементится на 1 день, и проверяется условие http://momentjs.com/docs/#/query/is-same/
по идее цикл должен останавливаться на последнем воскресении данного месяца, для ноября это 4 декабря, там в консоли справа видно, что он показывает false и пиздует дальше
WHY SO ?
#101 #872875
>>872873

Что за ideшечка?
>>872880
#102 #872880
>>872875
atom гитхабовский, шторм мой комплюктер не вывозит
#103 #872896
>>872873
https://jsfiddle.net/w2a0fcdo/
исходник если че
алсо вангую что с мутабельностью проебался
#104 #872899
>>872866

>если в цепочке миддлварей "index" или "addSomething" добавился новый обработчик, как экспресс будет отправлять результат?


Цепочки миддлварей обрабатываются ДО контроллеров. Контроллер это последняя миддлваря, в которой не вызывается next().

>Будет ли такой код справедлив и для динамически изменяемого массива arrayOfMidwares?


Я не понял, зачем ты так делаешь, но вся динамика должна заканчиваться на моменте до начала инициализации.
>>872976
260 Кб, 1598x684
#105 #872907
>>872873
я еблан, он по миллисекундам сравнивает, дочитал доку которую сам же скинул
#106 #872912
>>872866
Если тебе надо кастомно проводить реквест через миддлварю, в зависимости от url, то это надо зашивать в конфигурацию.
>>872976
#107 #872976
>>872899
А если, не дай Босх, мы захотим в процессе рантайма создать новые роуты и добавить/удалить обработчики к ним?
Можно, конечно, сослаться на проблему в логике и сказать, что делать так не стоит, но вот если такой юзкейс приведу - используется конфигурация в несколько инстансов ноды позади nginx для балансировки нагрузки. Таким образом, если мы хотим внести изменения в роуты и обработчики, нам придется выполнить процедуры по обновлению роутов/хендлеров и перезапускать ноды.
Так наверняка и делают, но проще, когда есть хотлоад сделать это несложно, но это другой вопрос модулей и в запущенных инстансах сразу отражаются изменения.

>>872912

>то это надо зашивать в конфигурацию


ПЕЧАЛЬНО, ведь теряется гибкость решения.
#108 #873196
>>872738
А почему ты что-то собираешь в продакшене?
>>873249
80 Кб, 676x467
#109 #873223
Пагни выручайте, квешчиан релейтед.
Почему контекст теряется в том месте?
>>873231>>873315
#110 #873231
>>873223
она бы и "давала ссылку" если бы было
this.getBoilTime = function ....
а там
function getBoilTime
>>873239
#111 #873234
>>872976

>Таким образом, если мы хотим внести изменения в роуты и обработчики, нам придется выполнить процедуры по обновлению роутов/хендлеров и перезапускать ноды.


Ну, да, ты делаешь пуш в репозиторий, а потом делаешь пулл на сервере и ребут. Не надо маяться хуйней, плиз, это не кейс. Перезапустить сервера не так долго, чтобы это стало проблемой.

>ПЕЧАЛЬНО, ведь теряется гибкость решения.


Нихуя не печально, сделай хук, чтобы после пула сразу был релоад инстансов.
#112 #873237
>>872976
У тебя что, 1000 инстансов что ли?
#113 #873239
>>873231
Понимаю. Просто все время, как читаю ljs.ru считал, что при создании объекта с помощью new все this получают ссылку на объект. А оказалось хуем по губам, вот жеж открытие то блять.
#114 #873240
>>872976
Внезапно подумал, что у тебя, видимо, и правда очень большой проект. Можно попробовать посылать ноде сигналы, чтобы прочла особый формат обновления конфига, зарегала контроллеры и добавила в существующий конфиг изменения. Будет то же самое, но с возможностью динамически обновлять конфиг.
>>873242
#115 #873242
>>873240

>добавила в существующий конфиг изменения


При условии, что у каждого инстанса ноды свой конфиг, конечно.
#116 #873249
>>873196
Сборка при деплое heroku
Почему бы и да?
24 Кб, 750x422
#117 #873311
Анон, я уже заебался. Решил копнуть 2-ой ангуляр, но столкнулся с проблемой билда. Никакой блять инфы толковой нету по этому поводу. Сам гугл советует собирать через systemjs, но по нему инфы также нихуя. Сраный sass не могу в проект подключить. И нет, я не рукожопый, просто реально какая-то чушь везде водяная.
Есть вариант не заморачиваться и собирать галпом, т.к. вебпак я в рот ебал за его замороченность, но хочется всё сделать по уму и красоте.
Анон, посоветуй что или подкинь ссылачей на толковые шаблоны.

Алсо, буду очень признателен, если кто сможет пояснить как работает система подгрузки стилей в компонентах. По моим догадкам подгружаются только те файлы, которые используют компоненты в данный момент. Но я в этом не уверен и хотелось бы раскурить эту тему поглубже. Да и вообще тему модуль лоадеров.
>>873316
#118 #873315
>>873223
Стою на асфальте я в лыжи обутый...
Методы класса в js задаются через прототип, в таком случае они действительно получают нужный тебе this.
Когда ты объявляешь функцию через function и не присваиваешь ее в переменную, как в твоем случае, функция по-умолчанию получает либо глобальный контекст, либо undefined в strict режиме. А вообще, используй class и не еби мозги
#119 #873316
>>873311
В данный момент, большинство сборщиков делают один большой bandle.js и дергают из него модули по необходимости, т.е. подгружаются один хрен все модули, это обусловлено тем, что http не умеет в параллельную загрузку.
Webpack умеет в ленивую загрузку, если хочешь по красоте - используй его.
>>873317
#120 #873317
>>873316
Окей. А конкретно за systemjs не пояснишь? Почему-то же появился как логичная замена вебпаку да и сами гугловцы советуют его.

>большинство сборщиков делают один большой bandle.js


Та же шляпа и со стилями. Кто-то просто по-старинке подключает один минифицированный файл, но в чём-то же есть прикол инджекта их прямо в компоненты. Хотелось бы понять в чём именно профит и как это работает в рантайме.
>>873318
#121 #873318
>>873317

>Хотелось бы понять в чём именно профит и как это работает в рантайме.


В http1 лучше делать минифицированные файлы. Загрузка по требованию это для мобил, чтобы экономить траффик.
#122 #873349
.foreach vs .map
Чё быстрее?
>>873351>>873417
#123 #873351
>>873349
цикл
#124 #873412
Дело вот в чем, программач.
Сам студент одного недотопвузика, недопогроммист. Особо еще ничего не понимаю, но так вот.
Есть программа, которая может написать скрипт запросом? Ну по типу того же харкача:
1 раз в n секунд обновить страницу
2 сохранить посты/файлы постов (опционально можно было бы как-то реализовать поиск нового треда, его открытие и скачивание не тамбнейлов, а самих файлов, но как сделать пока хз)
3 goto 1
Есть идейка просто реализовать подобное записью кликов мышкой и спецпрограммой для загрузки сайта, но так можно пропустить посты и закачиваются только тамбнейлы, плюс костыли и комп по факту неактивен
#125 #873415
двач, а есть в express какой то более гибкий путь узнать откуда пришел запрос ? Сейчас юзаю req.get('referrer'), но там лишняя инфа которую регуляркой приходится читсить, просто API /hui должен отдавать разные данные на запрос от /anus и /vagina
>>873418>>873422
#126 #873417
>>873349
асимптотически одинаково
#127 #873418
>>873415
перемудрил чота ты
#128 #873422
>>873415
Ну ты бы хоть доки открыл разок. либо ты хуево объясняешь
>>873425>>873430
#129 #873425
>>873422
ну я глянул свойства объекта Request:
там только
req.baseUrl
req.originalUrl
req.route
но это все куда пришел запрос, то есть на /hui
а мне надо узнать откуда /vagina || /asshole
и это инфа лежит в req.get('referrer') правда вместе с хостом и проч. ебатенью
#130 #873430
>>873422
сейчас вот так работает, пока, просто должен быть путь попроще

// http://localhost:3000/hui => [ 'http:', '', 'localhost:3000', 'hui' ] => // hui
const from = req.get('referrer').split('/').slice(-1).toString();
>>873434
#131 #873434
>>873430
req.headers['referer']
наркоман блядь
>>873436>>873437
#132 #873436
>>873434
там один хуй лежит http://localhost:3000/butthole
и мне так и так придется его преобразовывать т.к. мне надо знать именно /butthole или /cunt
алсо в доках вот так http://expressjs.com/en/api.html#req.acceptsLanguages
#133 #873437
>>873434
энивей спасибо анон, я просто думал что для такого уже есть метод у Request и я его просто не знаю
>>873442
#134 #873442
>>873437
это ты долбоеб который пишет кмс на ноде?
>>873444>>873445
#135 #873444
>>873442

>это ты долбоеб который пишет кмс на ноде?


Нет, не он.
И почему сразу долбоеб-то?
#136 #873445
>>873442
нет, я тот гений, что переносит этот сайт
http://kozlovdenis.ru/
на ноду
и там для календаря разные ивенты:
корпоративы http://kozlovdenis.ru/corp#calendar
или
свадьбы http://kozlovdenis.ru/wedding#calendar
и мне надо узнать какой тип данных отдавать и для этого /calendar должен узнать откуда пришел запрос
http://kozlovdenis.ru/corp
или
http://kozlovdenis.ru/wedding
#137 #873447
>>873445
проиграл
>>873448
#138 #873448
>>873447
а че не так то ? В смысле я знаю что эту инфу проще в запрос включить на клиенте, но я планирую клиент тоже переписать на что то помоднее jquery
>>873451
#139 #873449
>>873445
Сайт душевно больного человека ей богу.
>>873450
#140 #873450
>>873449
тамада же, это его хлеб чем больше всякого говна тем паче
#141 #873451
>>873448
зачем вообще переносить сайт-визитку тамады на ноду блять? ты бы еще на хачкеле его написал, борщеед блять.
>>873452>>873453
#142 #873452
>>873451
пых не знаю, а на джангу слишком скучно, т.к. всю ее вызубрил
#143 #873453
>>873451
Будет асинхронный сайт тамады. Я бы над оптимизацией подумал прогрузки всего этого говна, очень долго и микролаги
>>873454
#144 #873454
>>873453

>асинхронный сайт тамады


киберпанк уровня /pr
#145 #873459
>>873452
блять а как вообще ты получил такую задачу как перенос этой хуиты на ноду? ты как-то тамаду этого уговорил или че
алсо

>на джангу слишком скучно, т.к. всю ее вызубрил


что же ты с такими адскими познаниями занимаешься модернизацией сайта тамады? он твой друг?
>>873462
#146 #873462
>>873459

> он твой друг?


хуже - брат
>>873463>>873466
5 Кб, 184x184
#147 #873463
27 Кб, 321x317
#148 #873466
>>873462
ты развеселил меня своей глупостью. проси чего пожелаешь
>>873468
#149 #873468
>>873466
чето тебя не очень смешные вещи веселят
#150 #873476
>>873452
ну тогда сделай на фласке, один хуй там прослойка как и express
#151 #873514
>>872689
Это хорошая новость. Подскажи же конретнее, бро, я уже заебался гуглить.
>>875854
#152 #873518
>>873452

> джангу слишком скучно, т.к. всю ее вызубрил


> вызубрил


Лол
#153 #873524
>>873523
родина может спать спокойно
12 Кб, 502x294
#154 #873564
Обьясните пожалуйста, что здесь происходит? Это сложный пример?
#155 #873576
>>873564
Функция, по всей видимости должна выдать проихведение чисел из всех массивов, которые находятся внутри массива-аргумента.
Вместо console.log тебе нужно умножать
#156 #873593
>>872118

> Но насколько я понимаю, тут работу спецу на полчаса.



Я думал это шутят так.
#157 #873647
>>873564
первый день знаком с программированием?
#158 #873782
Сеньеры, вот у Илюши есть тема ООП в функциональном стиле;
Он в конце пишет что такой способ наследования используется редко. Т.е не шибко задрачиваться этой хуйней?
>>873831
#159 #873813
>>872409
напрямую
#160 #873817
>>873445
А нахуй там нода? wordpress - красный максимум в качестве бека для подобного говнеца, ну и реверс-прокси nginx
#161 #873831
115 Кб, 890x2257
#162 #873895
Спасибо всем ответившим по вопросам роутинга в Node CMS, лол и организации кода контроллеров.

Особенно >>872832 анон помог.
Я вот поразмыслил немного на досуге, и решил пересесть со стула Express на Koa.
Там как-то логичнее реализовано подключение мидлварей, плюс Коа следит за изменениями в цепочке мидлварей искаропки.

В итоге обернул код по подключению/отключению обработчиков в единый класс, требования к конфигурации роутов оставил пока прежней, но это можно изменить.
На выходе имеем динамический роутинг в рантайме, модульность и, надеюсь, читаемость.
>>873936
10 Кб, 480x480
#163 #873896
>>871862 (OP)
Сорри за офтоп. Есть одна минска команда, занимающаяся разработкой стартапов (преимущественно) для иностранных заказчиков, используя моднейшие технологии: риакт, ангулар2, ноджс на сервере и т.д. Ищем фронтенд джуниора на полный рабочий день. Варианты с удаленкой не рассматриваются. По всем интересующим вопросам пишите на
- jN*OsjobminskANUSg"%GmailPUNCTUM*-Ycom
- telegram @hitler_hitler
#164 #873897
>>873896
Алсо работникам выдают корпоративные макбуки/мини
#165 #873900
>>873896
Ты серьёзно думаешь что кто то поедет в минск?
#166 #873902
>>873896
Нашел, где искать.
>>873909
#167 #873909
>>873900
Ты не поверишь, но некоторые уже здесь живут.
>>873902
Найс знаток, я уже одного поднял отсюда
>>873911>>873940
#168 #873911
>>873909

А что по зп?
>>874106
#169 #873934
>>872754

> Или, быть может, какой-нибудь фреймворк уже содержит такую реализацию (расширяемость роутов и цепочки хендлеров)?


http://doc.akka.io/docs/akka-http/current/scala/http/routing-dsl/index.html
>>873936
#170 #873936
>>873934
Выглядит офигенно, но Akka же для JVM?
Энивей с наколхозил рабочий пример на Koa >>873895
>>873937
#171 #873937
>>873936
Сделай такое же дерево хендлеров, в жс поделии это будет всяко проще чем сделано в хайлоад-реалтайм-стриминг акке со статической типизацией.
>>873942
#172 #873940
>>873909
Найс выборка.
#173 #873942
>>873937
В Акке красиво, конечно, сделали.
Приятная глазу древовидная структура вида
роут -> метод -> цепочка контроллеров.

Сейчас в моем варианте конфиг обработчиков импортируется по такой структуре:
метод -> роут -> цепочка контроллеров/генераторов
Причем в конец цепочки всегда пушится финальный контроллер, ответственный за отправку данных, а новые в рантайме аншифтятся в эту цепочку.
Сама цепочка передается экземпляру koa через koa-compose.
Можно удалить цепочку контроллеров для определенного роута, в этом случае, на самом деле, останется только один контроллер (например, для редиректа) бля, только не учел, если по этому роуту снова возникнет желание затолкать контроллеры.

На первый взгляд работает.
#174 #873954
>>873900
я б поехал, но я не джун нихуя и бабла хочу соответственно

из-молдвской-мухосрани-кун
#175 #873985
Ковыряю сейчас Редукс и возник вопрос:
Почему все угорели по иммутабельности?

Идея, что все данные надо хранить в одном месте мне ясна.
Но нахрена при каждом измении 1 на 0 пересоздавать всю структуру и запускать все редьюсеры?
Это как если бы для каждого изменения переменной в программе она бы переинициализировалась и целиком пересоздавала весь свой memory footprint.

Не понимаю выгоды.
>>873992
#176 #873992
>>873985
https://stackoverflow.com/questions/34385243/why-is-immutability-so-importantor-needed-in-javascript

Здесь пытаются доходчиво объяснить, но некоторые моменты спорны.
Например, тот же "Performance improving" в языке, который изначально предусматривает мутабельность.
Это как чистые функции в реакте - они, бесспорно, ведут себя предсказуемо и имеют более читаемый код, но относительно их быстродействия ожидания сильно преувеличены.
Facebook обещает, что, дескать, когда-нибудь, быть может даже в обозримом будущем, все будет заточено под чистые функции и иммутабельность, и вот тогда-то вы и почувствуете нихуевый перформанс бустинг.
>>874010
#177 #873998
>>873900
А в чем проблема? Из белорусской мухосрани съехать в Минск вполне хорошее решение.
Да и тут много вообще анонов не из России, а вообще с СНГ.
>>873999
#178 #873999
>>873998
да даже и для анонов из россии. это же как минимум прикольный жизненный ивент. вот ты борщеед без шансов найти работу, а тут зовут свои же двачеры, да еще с такими технологиями работать! будь я после школы и живи в рашке, согласился бы хоть и на татарстан(не знаю, где это, но видел прикольную картинку с дельфином).
#179 #874010
>>873992
Спасибо, многие вопросы отпали. Короче, очередная смена парадигм...

К слову, какой-то философ выдвигал идею, что вселенная тоже иммутабельна и по сути, дискретна во времени - пересоздается с изменениями в каждый момент времени.
#180 #874083
>>873896
Только начинающих в ангуляр2, но имеющий опыт работы на фронте в 2 года берёте? :3
>>874106
#181 #874106
>>874083
Вообще обычно мы по определенным причинам только джунов ищем, но я могу попробовать пропихнуть тебя. Пиши на почту или в телегу, обсудим все)

>>873911
Зп будет зависеть от результатов собеса, но в целом не ниже среднего по минску
#182 #874161
Думаю сюда.
Вопщем всем добрый день. Помогите кто может, пожалуйста. Суть - через JS нужно заполнить родительский div дочерними div'ами, у которых уже прописаны свойства. Должно получиться аля тетрадь в клеточку. Вижу два варианта. Количество блоков произвольно по высоте и ширине. К примеру делим ширину экрана на первые два числа (1920/19), получаем число, это число блоков по ширине, и заполняем ими главный блок. По высоте от начала экрана и до конца. Второй вариант тупо заполнить родительский блок заранее заданным количеством мелких блоков. И вот главный вопрос - ка должен выглядеть код для всего этого безобразия?
>>874175
#183 #874175
>>874161
Тебе точно div'ы нужны? Есть же таблицы для подобного
>>874177
#184 #874177
>>874175
Если честно, таблицы не рассматривал, просто потому что давно ими не пользовался. Допустим. Но вопрос тогда - как создать и задать нужное кол-во столбцов и строк?
>>874197>>874227
28 Кб, 256x256
#185 #874180
>>871862 (OP)
Вебпаканы, поясните, Webpack 2 уже готов к применению в продакшене? И есть ли у него еще какие-то киллер-фичи, кроме три-шейкинга?
49 Кб, 500x513
#186 #874182
fdsfsd
@
fdsfsd
#187 #874197
>>874177
гуглить попробуй
это же какой-то простейший жквери
>>874198
#188 #874198
>>874197
Я в JS нуб. Рисовать только умею, да простенькую хрень на html+css написать могу.
#189 #874227
>>874177

> Но вопрос тогда - как создать и задать нужное кол-во столбцов и строк?


http://jquery-docs.ru/manipulation/append/
https://learn.javascript.ru/while-for
#190 #874267
Ребят у меня самый не заезженный вопрос.
Что учить react или angular?

Ну вот серьезно каково ваше мнение? Гребаный гугл обновит ангуляр уже в марте 2017. А потом каждые 6 месяцев. Фейсбук вообще не чешется но все и так понимают что реакт будет обновляться.
Что лучше? Что лучше для поиска работы? Что лучше/легче учить? Что блять правильнее?
>>874269>>874279
#191 #874269
>>874267
от 2 ангуляра ты ахуеешь чуть более чем полностью, реак только вьюха, хочешь быстрые бабки, учи первый ангуляр, будешь поддерживать legacy
>>874279
#192 #874279
>>874269
Тогда уж советуй просто ангуляр1.
То что

>реак только вьюха


не делает его простым в освоении. Говнокод хуячить, конечно, на чем угодно можно, но если делать все красиво, правильно и как надо, то реакт очень не простая библиотека.
>>874267
Чего бояться то? Новый ангуляр это просто улучшенная и обновленная версия 2. Радоваться надо, что фреймворк улучшается! А то что боишься изменений, то может тебе лучше не в веб вкатываться, а во что-нибудь другое?
sage #193 #874282
Опытные жаваскриптаны, расскажите мне, как вы манаджите авторизацию в ваших сингл пейдж аппликейшенах? Я вот взял реакт и редакс, как самые модные варианты в жаваскрипт коммунити, решил не ебать голову и написал ЖВТ имплементацию для гоу апи. TSL\SSL защищает, так что я токен собственно решил писать прямо в локал сторадж, и защищать авторизированные роуты через враппер компоненет, что-то типа миддлваре, authcomponent = > isauth? => component, так вроде все норм пацаны делают. В общем оно вроде работает, но как-то стремновато. За кражу токенов не переживаю, но боюсь за какие-то подводные камни в плане стейта джаваскриптового, подводные камни какие или ещё что.
>>874300
#194 #874291
Я вам работы принес.

http://jobs.kink.com/
>>874343
#195 #874296
крч я год назад увольнялся с позиции ангулар девелопера
а до этого еще год(или больше) нихуя не читал по жс
а тут открыл ес6 че-то и прихуел
во-первых как настроить ебучий сублайм переходить на функции объявленные через стрелочку?
во-вторых хули пастебин не подсвечивает синтаксис http://pastebin.com/pK6FAXnf ?
в-третьих это годнота я гарантирую это. собираюсь обмазываться генераторами и промисами по полной
>>874345>>874434
#196 #874300
>>874282
1. isauth = true
2. script run
3. get secret component
4. ???
5. profit
#197 #874343
>>874291
Классно у них там, уютно
#198 #874345
>>874296

> во-первых как настроить ебучий сублайм переходить на функции объявленные через стрелочку?


Ват

> во-вторых хули пастебин не подсвечивает синтаксис http://pastebin.com/pK6FAXnf ?


Подсвечивает же

> в-третьих это годнота я гарантирую это. собираюсь обмазываться генераторами и промисами по полной


Промисами нужно было несколько лет назад еще обмазаться. Ты на колбэках писал, что ли?
>>874407
#199 #874407
>>874345

>ват


>findSuspiciousThreads = (threads) =>


вот так если объявить функцию на нее не будет работать go to definition из места где она используется

>подсвечивает же


let игнорит например

>на колбэках писал


на промисах офк но без генераторов
19 Кб, 620x168
#200 #874422
У Babel есть более старые пресеты, чем ES5? Я хочу, чтобы он добавлял полифиллы для функций every и isInteger (пик). Сейчас у меня есть файлик polyfills.js, куда я копипастом вставляю полифиллы из MDN. Неудобно и избыточно.
>>874574
#201 #874434
>>874296

>генераторы


>yield


>function


Ну пиздите из питона, ну пиздите нормально, yield from (уж не говоря про await), async function.
Но нет, мыж жопаскриписты, нам надо все запутать, как можно более нечитабельно и неочевидно все сделать...
>>874435>>874448
#202 #874435
>>874434
yield ❄
function❄
разметка сожрала звездочки
#203 #874448
>>874434
встретил знакомые слова и взбугуртнул на самоподдуве? найс
>>874602
91 Кб, 1167x511
#204 #874466
Нашел на просторах инета гайд по Angular2 в том числе с примером итогового приложения: https://github.com/olegpolyakov/angular2do/tree/v0.5
И вот там в файле https://github.com/olegpolyakov/angular2do/blob/v0.5/app/app.component.ts
использованы directives в @Component, но сейчас мне это возвращает ошибку, видимо приложение устарело за полгода и свойство directives уже удалено, так как теперь будет выглядеть передача директив?
Без них я получаю ошибку в браузере:
>>874489
#205 #874488
и форматирования нормального не завезли для es6 в сублайм
у меня баребух
че делать пацантре
>>874765
#206 #874489
>>874466
Всё, разобрался, оказалось теперь достаточно вынести подключение компонентов в app.module и подключить в @ngModule как declarations
#207 #874508
А можно подключать mysql/mongodb напрямую к angular ? или это считается bad practice? Вижу примеры где юзают стороннее API-прокладки на PHP к которому обращаются за данными, чтобы он сходил в базу и вернул их. На данный момент мне кажется, что это какие-то лишние телодвижения и намного логичнее было бы получить нужные данные сразу.
Вот к примеру стандартный пример Todo на Angular2 - я хочу переносить данные между сессиями, как лучше хранить данные?
>>874511>>874759
#208 #874511
>>874508
ты хочешь к бд подключиться из браузера
ну блять, как думаешь, вэри бэд практис это или на пол шишечки?
>>874517
#209 #874517
>>874511
Хм, я не совсем тогда понимаю концепцию ангуляра, пишут же, что это MVC. Тогда чем занимается Model? Хранит данные во время одной сессии/отправляет данные на node/php?
Может кто-нибудь по хардкору пояснить, в каких связках использовать Angular2 и в чем его назначение? Вот к примеру всякие react/JSrender и тд - я c ними толком не знакомился, но по тому, что я слышал - это шаблонизаторы.
>>874523>>874567
#210 #874523
>>874517
бля даж хз че те ответить,какой-то ты даун без элементарных знаний. иди гугл дрочи, тебе рано с людьми разговаривать
>>874541
#211 #874541
>>874523
Каких элементарных знаний? Я node сделал несколько тасков по парсингу магазинов и миграции данных между api, включая несколько проектов на sailsjs.
Может тебе не хватает элементарных знаний раз ты не можешь в двух словах сделать обзор на ангуляр.
>>874549
#212 #874549
>>874541
Что для парсинга юзал кстати?
мимо другой анон
#213 #874567
>>874517

> ангуляра, пишут же, что это MVC. Тогда чем занимается Model?


MVC это не о том "куда пихать шаблоны, а где соединяться с БД", MVC это о разделении ответственностей, разделении данных и представления. Модель это не обязательно БД, поэтому видимо тот анон и пишет про отутствие у тебя элементарных знаний.
>>874572
#214 #874572
>>874567
а ты дружелюбный
#215 #874574
>>874422
Для IE8 пишешь что ли?
#216 #874575
Вообще-то в ангуляре нет моделей. Есть контроллеры, но считается что это зашквар. Чоткие на 1м и все на 2м пишут всё в директивах (во 2м убрали контролеры ваще потому что зашквар).
#217 #874596
http://pastebin.com/riT44b9K
сегодняшняя версия es6 дрочильни
co+генераторы+промисы
>>874607>>875370
#218 #874602
>>874448
Найс с твоей мамкой был, за 8 месяцев до твоего рождения.
А кривой пиздинг синтаксиса генераторов очевиден.
>>874606
#219 #874606
>>874602
да ради бога лишь бы ты чувствовал себя хорошо
>>874609
#220 #874607
>>874596
Почему бы тебе в detectButthurt проверяющие функции не вызывать так:
return f1() || f2() || f3()
Or же ленивый, не будет вычислять остальное, если где-то уже true. Оптимизация.
>>874618
#221 #874609
>>874606
You're no fun anymore
#222 #874618
>>874607
экономия на спичках, а так читаемость лучше имхо
>>874646
#223 #874646
>>874618
Ну, по мне так
dogsOut(thread.comments) не хуже читается, чем dogsOut
а уж синтаксис
let имяПеременной = имяПеременной();
красоты точно не добавляет.
Но тебе виднее, тыж творец.
>>874651
#224 #874651
>>874646

>dogsOut(thread.comments) не хуже читается, чем dogsOut


ну ты до конца-то пиши. полностью это будет так:

return subjContainsKw || capsOn || dogsOut;
vs
return expr.test(thread.subject.toLowerCase()) || checkCaps(thread.comment) || countDogs(thread.comment) > 0;

ну даже не знаю
#225 #874673
сап двощ. какая есть самая простая йоба для лайврелоада в браузере?
не хочется каждый раз галпфайл ваять
>>874680>>874681
#226 #874680
>>874673

расширение для хрома на обновление страницы
>>874692>>874702
#227 #874681
>>874673
prepros/coala
>>874692>>874702
#228 #874692
>>874681
>>874680

а есть что-нибудь такое, что мне не надо будет устанавливать в систему; что-нибудь без гуев
>>874695
#229 #874695
>>874692
алсо мне пока для простой верстки нужно
хуяк-хуяк...
пока ниче компилить нинад
#230 #874702
>>874680
>>874681
вот, короч, нашел browsersync
клевая штука
пока за глаза
спасибо за помощь, няши ;3
#231 #874759
>>874508
Вообще можно и даже не считается чем то плохим. Но надо смотреть каждый случай.
И да, я видел проект где можно дергать напрямую из бд что захочется.
#232 #874765
>>874488
Поставь babeljs синтакс из пакетного менеджера сублайма
>>874769
#233 #874769
>>874765
все равно ставит пробел между yield и звездочкой при форматировании
49 Кб, 1018x569
#234 #874770
Как сменить целый body страницы на двоще без пикрелейтед. Прямое изменение display не помогает.
html=document.body.innerHTML.replace(/а/,"б");
document.body.innerHTML=html;
#235 #874790
Сегодня был на собеседовании в одной крупной московской компании (начинается на О). Дали задачу - взять нерабочую программу и исправить её так, чтобы она заработала, при этом не меняя её общей структуры. Программа - простой FizzBuzz (https://habrahabr.ru/post/278867/). Я за полчаса не успел, МНЕ ПЕРЕЗВОНЯТ, но бумажку с задачей я всё-таки выпросил домой. Перенёс в ideone - может кто решит.

Сама программа: http://ideone.com/GXAPfl
#236 #874847
>>874790
на кого собеседовался?
#237 #874854
>>874871>>874872
#238 #874855
Я знаю, что здесь сидят синьеры с 100500К в минуту и мой вопрос для них будет семечками:
1. Как используя mongojs и ангуляр-1/express добавлять новую коллекцию при нажатии submit button?
2. Как получить доступ к этим коллекциям и распарсить их вместе с данными с помощью ng-repeat?
>>874955
#239 #874857
>>874790
http://ideone.com/qAkPYu
Задача ерундовая, видимо ты переволновался.
>>874873
#240 #874871
>>874854

>output(allNumbers)


Поправил тебя: Promise.all(allNumbers).then(console.log);
ОЗОЗА
>>874873
#241 #874872
>>874854
пиздос, я бы походу не прошел.
Хотя в целом понял что делает прога. Либо бы сократил ее, убрав промис (зачем он вообще тут?).
>>874873
#242 #874873
>>874872
>>874857
вот у этого чувака норм решение вообще

как я наваял нахуй не надо, лол

>>874871
а у этого надо массив в then перебрать, чтобы выводило не массивом
#243 #874875
>>874790
Это на джуна?Тогда я выпиливаюсь нахуй
>>874881>>874928
#244 #874881
>>874875
Да там реально элементарно, просто мы тупим. должно быть на джуна, нахуй мидлу такую херь подсовывать
>>874889
#245 #874889
>>874881
Задачка годная, спору нет. Просто у меня пробелы в знаниях синтаксиса жс, те же промисы мельком прочитал пол года назад и забыл. А так вполне себе ок, одобряю.
#246 #874912
>>874790
http://ideone.com/znJFSR
Я учусь. Кто шарит, скажите вот такое решение зашквар?
#247 #874927
>>874790
Ебать, как же у меня горит. И такое спрашивают в крупной московской фирме? Почему мне в средне-фирме не ДС\2 просили на доске алгоритм обхода дерева в глубину написать и набросать хэш таблицу.
>>874934
#248 #874928
>>874875
если для тебя FizzBuzz сложно, то лучше действительно выпились
#249 #874934
>>874927
Не знаю, зачем спрашивать обход дерева в вебе. Они бы ещё попросили компилятор для простого языка написать. Скорее всего это была паршивая конторка, где все видам кодеров тестируются по одной методичке.
>>874940
#250 #874940
>>874934
На самом деле обход дерева не сложная хуйня, но в вебе рили бесполезная.
#251 #874955
>>874855
Ты не понимаешь базовых приципов построения приложения
Твой запрос начинается с кнопки, то есть ангулара -> его принимает экспресс, валидирует его Можешь ли ты создавать коллекцию? Можешь ли ты брать с неё данные? Можешь ли ты писать в неё данные? и делает нужные запросы в базу -> монго. Просто база, ей вообще всё равно кто и что с ней делает, её задача исполнять нужные запросы
>>875040
#252 #874965
Анон, подскажи с выбором.
Допустим, я студентота, вкатываюсь в жс (ангуляры 1-2), пилю пет проекты, мечтаю о 300к/с.
И тут мне друг предлагает пойти пхп кодером в одну вебстудию за 20к в месяц, плюс премии.
Стоит ли соглашаться? С пыхой я уже работал и вернуться в нее не составит особых проблем, но есть несколько камней.
1) Время, которого и так немного из-за универа и всякой хуйни типо лаб на жабе.
2) Пхп вряд ли мне в будущем поможет перекатиться на ангуляр господина 300к/с.
Или я не правильно рассуждаю и надо соглашаться на такую подработку?
>>874966>>874969
#253 #874966
>>874965
Допишу.
Официального опыта пока нет, но пилил пару приложений за которые все то стыдно фрилансом, как раз на пхп. А тут официальная вакансия и деньги все таки. Ну и опыт работы со всеми вытекающими.
>>874969
#254 #874969
>>874966
>>874965
Ну так как-то не очень корректно сравнивать. Всё-таки ты можешь быть как пыхарем, так и ангуларщиком в пределах одной вакансии. Одно другому не мешает, более того - дополняет.
Ты хочешь только фронтендщиком быть или фулстак-господином?
>>874974
#255 #874974
>>874969
Да, ты прав, что можно иметь в рукаве пхп/ангуляр стак и с ним тоже, наверняка, есть работа.
И многие мечтают даже о вакансии пхп кодера.
Но тогда времени не будет хватать для изучения жс, ангуляра и всего прочего.
А вообще в планах еще expressjs для общего развития посмотреть.
205 Кб, 1024x1024
#256 #875008
Допустим, я рисую в фотошопе круг разделённый на несколько сегментов (макаба лежит, так что ссылка на пикчу http://imgur.com/o6knD66 ). Мне надо сделать, чтобы при двойном клике на одном из сегментов на этом сегменте отобразилась новая картинка, а рядом с кругом появилась текстовая информация.

Не знаю, как нагуглить, с помощью чего и как это делается, неужели с джаваскриптом. Сам учил пхп и базы данных, только немного касался джаваскрипта.
#257 #875009
>>875008
Это достаточно сложная задача, чтоб запилить её вообще без знаний верстки и жс.
Самый простой путь для тебя это просто нарисовать два вида "лепестков", открытые и закрытые. И просто менять их жс'ом при клике
#258 #875023
Анончики, направьте, я туплю видимо. Есть группа картинок, 9 штук к примеру. У них есть превью. По клику показывается детальная, на fancybox. Хочу сделать чтобы детальная картинка грузилась после клика на превью, а не сразу, при этом оставить функционал fancybox, листать галерею и тп, как это реализовать? Если нажали листать, и следующая детальная еще не была загружена, надо ее грузить. Куда копать?
>>875043
#259 #875040
>>874955

>Ты не понимаешь базовых приципов построения приложения


Ок, есть толковая литература по архитектуре mean приложений с примерами?
>>875042
#260 #875042
>>875040
Дело же не в mean. У тебя нет представления о работе интернета и общения клиента с сервером. Почитай про http, сессии и авторизацию. Mean это стек, он за такое пояснять не будет, он представляет собой просто шаблон из инструментов для построения клиент-серверного приложения
#261 #875043
>>875023
Разве fancybox не берет это на себя? Там же вроде указываешь атрибут, а скрипт подгружает по требованию
>>875055
#262 #875055
>>875043
Че то я затупил пиздец, у фансибокса же просто пишется ссылку на картинку, а он ее не грузит заранее, а именно после клика. Чет я прогнал пиздец.
#263 #875102
>>875009

>Самый простой путь


Спасибо, а какие пути ещё есть? Хочу проверить/понять все.
#264 #875110
>>875009
хз как но верстать это будет
#265 #875113
>>875008
на сss можно сделать все без жс и баз данных
>>875114
#266 #875114
>>875113
как ты без js двойной клик сделаешь?
затаргетить то можно в принципе, а двойной как?
>>875263
#267 #875136
>>875009
Внимание, вопрос. Как сделать так, чтобы на клик реагировала только часть картинки без альфа канала >>875008? Каждый сегмент же это прямоугольная картинка, но по факту мне нужно реагировать только на его "треугольную" часть.
>>875188
#268 #875188
>>875136
Слушай, может попробуешь всё это отрисовать через svg или canvas, и тогда легче будет выловить нужную область?
>>875201
#269 #875201
>>875188
Я нашёл уже, как это делается.
>>875211>>875213
#270 #875209
>>874790

>крупной московской компании


>checkingNum



Что-то у них как-то печально с английским у девов для большой московской компании.
#271 #875211
>>875201
О боже, надеюсь не через map?
>>875281
#272 #875213
>>875201
делись
>>875281
195 Кб, 1262x962
#273 #875243
кажется я где-то обосрался
>>875245
21 Кб, 721x177
#274 #875245
>>875243
вот хтмл участок
>>875251
#275 #875251
>>875245
У body нет ничго что называлось бы main1. Возможно вы имели в виду:

>; main1.appendChild(div)

>>875255
12 Кб, 405x54
#276 #875255
>>875251
щас вроде исправил теперь пишет мол appendChild это не функция
>>875258
156 Кб, 1096x554
#277 #875258
>>875255
вообще вот мои 3 файлика
>>875262
#278 #875260
Народ,поясните плз
повёлся на nmp. Сделал проэкт на реакте через это заклинание
npm install -g create-react-app
create-react-app hello-world
cd hello-world
npm start
иии собно хуле,миллиард папок, еще срань какаято,хуй пойми где что и зачем
поясните плз или дайте ссылку на гайдик какой-то ибо нихуя не нагуглил
>>875266
#279 #875262
>>875258
пиздец блять все разобрался
оказывается когда берёшь элемент getElementsByName
то их там типо дохуя
а когда просто id берешь то он там типо один и всё норм
>>875276
#280 #875263
>>875114
https://css-tricks.com/examples/CSSDoubleClick/
На вскидку вот, глянь примеры.
#281 #875266
>>875260
Тебе туда вообще смотреть не нужно. Просто пили свое приложение
33 Кб, 322x450
#282 #875276
>>875262

>оказывается

#283 #875281
>>875211
>>875213
Через канвас, рисуется пикча одной функцией drawImage, а из канваса уже получаешь альфа канал. На stackoverflow нашёл решение.
#284 #875324
>>874790
А на листике надо было решить? или на компьютере с дебагером?)
#285 #875344
Аноны, почему не получается в монгузе сделать картинку по умолчанию? Например:
const mySchema = Schema{
image: {type: String, default: 'http://url.jpg' }
}
Не работает то есть в html'е стоит <img src=""> , зато если вручную вбить то все ок. И это не только с картинкой, вообще по дефолту ничего не ставится. В чем загвоздка?
>>875632>>875634
#286 #875370
>>874596
сегодняшняя версия es6 дрочильни
http://pastebin.com/ThNcMa3K
на этот раз с монго
завтра порефакторю,после завтра вторую часть запилю
#287 #875372
Нихуя не понимаю как работает ивент луп. Вот есть рекурсивный процесс ноды, и дальше чо он делает? Запускаются асинхронные процессы, КАК они в очередь event queue то добавляются? Что такое thread pool? Все объясняют хуй знает что и каждый по разному. Не могу воспринимать это как черный ящик
>>875385
#288 #875373
>>875370
Хороший код! Анон, подскажи что почитать, чтобы так писать, как ты.
>>875374
#289 #875374
>>875373
спасибо. чес гря не знаю, что посоветовать. я мало читал, что конкретно не помню и не дочитал ни одной книжки до конца. из good parts может половину осилил.
алсо, хочешь верь,а хочешь нет, но я писал все в жопу укуренный, а сегодня еще и подвыпивший.
поэтому завтра рефакторинг!
#290 #875382
>>875370
во первых use strict нахуй не сдался там.
на template literals ты явно хуй положил?
замени underscore на lodash, и если уж используешь только _.filter, то можно импортнуть только его from 'lodash.filter'
а вообще молодец, я нихуя не умею :(
>>875386
#291 #875384
>>875370

> версия es6


> делает тысячу функций с ебанутыми названиями

>>875386
#293 #875386
>>875384
а как надо?

>>875382
еще и find юзаю не только фильтер
что такое template literals?
>>875387>>875392
#294 #875387
>>875386

>что такое template literals?


погуглил. вопросов снят.
#295 #875392
>>875393
#296 #875393
>>875392
а ну классы и все такое смотри через пару дней
>>875398
#297 #875398
>>875393
Залей на гитхаб это всё
>>875468
#298 #875399
Доброй ночи двачеры олдфаги программисты хакеры и просто красавчики.

Хочу вам рассказать о моей истории, она печальна и от итога хочется только плакать. Её можно пропустить, самое интересное про джаву в конце.

Я 5 лет отучился на юриста в гавноиституте, на 5ом курсе типа стажером в 2011 работал за 10тыщ р. Получив диплом я просто не знал что делать и пошел в армию. Там было по началу не очень, но потом норм. Вышел и пошел работать монтажником в Билайн, туда позвали друзья. Потом все крымнаш и Билайн сразу подразвалился, после чего я лишился работы. Решил пойти по специальности и начать с низов. Устроился в суд. Проработав почти 2 года предложили стать помощником судьи, но я не решился и свалил. Сейчас работаю за 30 тыщ (скоро будет 35) и мне это немного не нравится. Я считаю себя не плохим специалистом, что доказывает мою профессиональность на нынешнем месте, где начальник, который выступает экспертом на телевидении, дает мне вести дела своей жены и тёщи. Ну потолок в этой фирме 45-50. При этом мешать с говном будут. Юриспруденция это вилы пацаны. Серьезно, гнилая система. Что суды, что юристы - паразиты системы. Нет правды в ней. Нет силы.

А теперь о джаве. Я смотрел вакансии разных специалистов и программисты не плохо получают. Решил начать изучать. Полез на двач, наткнулся на эту тему, месяца два назад. Но долго я тут не тусил и пошел на ютуб. Там попытался пройти 2 видеокурса, но у меня не получилось даже настроить джаву, что бы проходить уроки. Уже как две недели копаюсь и пытаюсь создать свой сайт для старта бизнеса. В итоге дошел до уроков html5. Залез на сайт с работой и опять там нужна джава, в вакансиях html.

Вопросы. Реально мне в 28 лет, переучиться на программиста? Можно тут найти наставника, который за скромную 1000р будет мне говорить что изучить и отвечать на вопросы? Вёрстка сайтов самое простое?
>>875401>>875411
#299 #875401
>>875399

>2k16


>Путать Джаву и Джаваскрипт.


Классика.
Первое что ты должен был усвоить - это то, что это разные языки. Вроде уже не школьник, человек с образованием. Видимо, тебе трудно будет. Можешь, конечно, попробовать, если есть желание, время и упорство, но не факт, что у тебя что-то получится.
#300 #875404
Джейсаны, я как-то задавал этот вопрос, и мне на него ответили, но все же я задам его снова, немного подробнее изложив суть.

Насколько плохо оставлять ассерты в продакшн коде?
Смысл в том, что ассерты у меня используются в цепочке верификации введенных данных (например, до передачи их функциям по работе с БД). Сама цепочка заключена в конструкцию try/catch с последующей обработкой эксепшонов, т.е. стектрейс у меня не вываливается в stdout, а месседж из эксепшона возвращается клиенту с описанием ошибки.
Достоинством такого подхода я вижу превосходную читаемость, отсутствие внешних зависимостей и конструкций вида if-else-then/switch.

В прошлый раз анон сказал, что в продакшне нужно отдельные хендлеры вешать для верификации данных и обработки ошибок. Но чем такой вариант не подходит для использования в продакшне?
>>875851
#301 #875411
>>875399
Если ты не тролль, то учти что время указанное в оп посте при таких дебильных вопросах да еще и в 28 лет можешь смело умножать на три. Итого к 30 может быть ты и станешь джуном. Хуйня полная. Советую тебе лучше гастером в европу валить, может и осядешь там где нибудь.
#302 #875426
анон, смотри, есть такая проблема: есть айфрейм с тонной своего js среди которого инициализация яндекс счётчика которому передаются document и window, НО при инициализации в айфрейме document и window берутся от страницы куда встраивается айфрейм, вместо объектов этого айфрейма. Как можно получить изнутри айфрейма эти объекты, не слишком вылазя за его пределы?
#303 #875428
>>875008
Придумай что-то по проще, зачем страдать хуетой.

Открою секрет, пользователей тошнит от сложного, пусть даже "красивого" дезайна. Чем проще и понятнее интерфейс, тем меньше тошноты испытывает юзер.

Просто нужно понимать, ты делаешь сайт для детей или взрослых людей. Если детей, то анимации и свистоперделки оправданы, а если для взрослой аудитории, то это дерьмо будет только вызывать раздражение.

К тому же учти, что есть большой класс пользователей, у которых по дефолту js отключен и у тебя сайт не будет у них работать. Всегда нужно дублировать функционал и тестировать работу сайта без js и с ним.
#304 #875429
>>875428

> есть большой класс пользователей, у которых по дефолту js отключен


Пользователя ie6 что-ли?
#305 #875439
>>875428

>Всегда нужно


Не всегда, только если сайт информационный и не подразумевает сложных взаимодействий.
#306 #875441
>>875428

>есть большой класс пользователей, у которых по дефолту js отключен


Таких даже не 5% (95% людей — быдло, ко-ко-ко), а каких-то 0.5%. Максимум. Надо быть поехавшим, чтобы по дефолту отключать js в браузере.
#307 #875467
>>875428

>Всегда нужно дублировать функционал и тестировать работу сайта без js и с ним.


как там в 2005?
#308 #875468
>>875398
ололо диванон! могу дать телегу
>>875470
sage #309 #875470
>>875468

>ололо диванон!


Диванон в тематике. Да кому ты нахуй сдался, мань?
>>875480
26 Кб, 604x349
#310 #875480
>>875470

>Да кому ты нахуй сдался


зачем же ты меня так приложил
59 Кб, 765x356
#311 #875514
Блять читаю вашего Кантора и до прототипного ооп было все стирильно и логично, но тут не могу уловить цепочку. Может кто на пальцах объяснить. Или тут тупо надо запомнить?
#312 #875517
>>875514
По второй половине, той, что снизу, ты неправ, Федя. У инстанса (rabbit) свойство "eats" не меняется после изменения оного у родителя.

А вообще, неплохо тебе почитать вдогонку про ключевое слово new в JS.
>>875519>>875522
#313 #875518
>>875514
Объекты копируется по ссылке.
В первом случае ты перезаписал ссылку в одном месте, но ссылка в __proto__ объекта осталось.

А во втором случае ты делал операции по ссылке.
>>875520>>875522
#314 #875519
>>875517
Блядь, проебался, беру свои слова взад.
Изменял свойство как:
Rabbit.prototype = {eats: false}
>>875520
#315 #875520
>>875519
Но рекомендую всё же прочитать что такое операции по ссылке и копирование по ссылке.
>>875518
>>875524
#316 #875522
>>875517
>>875518
Ага, спасибо. Почитаю, просто немного запутано получилось.
Получается, что объект жив пока на него есть ссылка. Т.е фактически роли не играет кто его создал, важно чтоб на него кто-то ссылался. И если даже родитель, изменит свое свойство, то сам объект жив в другой ссылке. Ну а изменения этого объекта, это изменение, т.е работа с самим объектом? Правильно понимаю?
>>875526
#317 #875523
>>875514
Что там сложного то? Прототипы это та же самая ооп параша, только без ебалы вроде private, protected, virtual, sealed и прочего.
#318 #875524
>>875520
Я не из тех анонов, что пидорят JS за его архитектуру, и понятно, что вышеприведенный пример - одно из свойств языка, но, блядь, у этой хуйни есть полезный/жизненный use case?
Разве инстансу не должно быть поебать на родительский объект, как бы последнего не содомизировали? Разве инстанс при new не должен создавать изолированную копию всех свойств?
#319 #875525
>>875524
Должен. JS говно, смирись.
#320 #875526
>>875522

>Правильно понимаю?



Почти, но не совсем. Никакого такого родителя так-то нету по факту.
Это нужно понимать по-другому ИМХО:
prototype = это свойство функции в котором лежит объект и при создании объекта с ключевым словом new в его (новосозданого объекта) уже не скрытое свойство __proto__ попадёт ссылка на объект которые лежит в prototype. А правила для работы с объектами везде одинаковые, всё остальное верно
>>875529>>875532
#321 #875527
>>875524

>Разве инстансу не должно быть поебать на родительский объект, как бы последнего не содомизировали? Разве инстанс при new не должен создавать изолированную копию всех свойств?



Нет.
>>875529
#322 #875529
>>875526
>>875527

Не инстанцировался, но отлинковался.
#323 #875530
>>875524
В скриптоте вообще строго не должно быть по факту все ООП поеботы. Вот этот весь синтаксический сахар ввиде индусского ооп в ES6/TypeScript сделать во-первых:
1. Для того чтобы индуссам было понятно.
2. Огромные проекты требует тупого и примитивного ООП которые должно быть вшито в язык. Чтобы обезьяны могли поддерживать.

А так нахуй не надо.
>>875531>>875533
#324 #875531
>>875530
всей ООП, сделано
#325 #875532
>>875526
Все всосал. Спасибо за помощь. Бля как-то ООП в функциональном стиле проще, что ли. Ну я уже привык, каждая тема это вызов для человека который никогда программированием не занимался.
>>875535
#326 #875533
>>875530
Вот в CL отличная идея ООП, но clos веб обезьяны не осилят.
#327 #875535
>>875532
Если тебе нужно понять попсовое (Джава, крестовое) ООП, то JS в этом тебе не поможет, это так, на всякий случай.
>>875538
#328 #875538
>>875535
Я понимаю, что ты знаешь что-то очень важное, но мне бы пока к этой хуйне привыкнуть)
#329 #875539
Считаю, что вся сложность у вкатывальщиков с понимание прототипного ооп без полного клонирования прототипа, в изначальной перегруженности языка (которая к слову продолжается и по сей день). Оператор new лишний, ровно как и введный сахар для классов.

Все, что нужно в языке это объекты (которые в суть хэш-таблицы). По литералу {} должен был создаваться нулевой объект с прототипом null.
Прототип должен бы был устанавливаться установкой все того же __proto__, который был неперечисляемым по умолчанию, а еще лучше чтобы это был символ (жаль что символы ввели так поздно, на них вообще стоило бы изначально повесить всю метаинформацию, которая сейчас устанавливается через отдельные методы).
Ну и функции, которые объекты первого порядка.

Ибо как сложность, как я вижу уже много лет, у всех этих неосоиляторов, помимо привычек, на первых парах осложняется еще и скрытой магией, с динамическим созданием объекта и линковкой с prototype хранящимся в конструкторе).

Много лишнего. Еще больше лишнего продолжают тазщить и теперь, по инерции.
#330 #875540
>>875539
Почему при использовании Object.freeze() свойство через prototype остается доступным для изменения?
>>875542>>875543
#331 #875541
>>875539
Да ладно, прям сложности. У поца появился вопрос, пацанре с двача всегда помогут. Поц сказал, что всосал с проглотом. Проблемы нет, все норм, пусть расширяет сознание.
#332 #875542
>>875540
Очевидно потому, что ты ничего не понимаешь в объектной системе языка и плохо читаешь маны?

Объект, к которму ты применяеш фриз и объект хранящийся в prototype это два разных объекта, и дескрипторы у них разные, и один вообще может быть просто объектом, а другой быть callable, например. И еще много чего может. Хочешь заморозить всю цепочку - так морозь всю цепочку.

>Почему я ударил в морду Пете, а у Васи и Коли не появился синяк?

>>875546
#333 #875543
>>875540
Применительно все к этому же примеру:

function Rabbit() {}

Rabbit.prototype = {eats: true};

var rabbit = new Rabbit();

//Въебем фриз на родительскую функцию и на инстанс, шоб наверняка
Object.freeze(Rabbit);
Object.freeze(rabbit);

Rabbit.prototype.eats = 1;

//и на выходе поимеем измененное свойство
console.dir(rabbit.eats);
>>875546>>875547
#334 #875545
>>875539

>Еще больше лишнего продолжают тазщить и теперь, по инерции.


Преувеличиваешь.
Если вкатывальщик с this и прототипном ООП разберётся, то всё остальное хуйня в принципе.
Язык минималистичный даже с новыми фичами. Один из немногих очень минималистичных попсовых языков, за что я его собственно и люблю. Просто некоторые костыли так часто писались что его пришлось добавить в стандартную либу (А вообще даже либой назвать её тяжело).
А вообще несмотря на все его недостатки. Я уже за год работы с браузером 2Д графикой использую чистый JS безовсякого говна типа жиквери используется лишь йоба либы для серьёзной математики типа phaser.

На JS я могу выразить то что думаю достаточно быстро, на Java у меня такого не было.
>>875549
#335 #875546
>>875542
>>875543

А, все, понял, на MDN разжевано же:

Note that values that are objects can still be modified, unless they are also frozen.

Прошу прощения за глупый вопрос.
#336 #875547
>>875543

>Object.freeze(Rabbit);


Тут ты заморозил конструктор, а не родительский объект.
>>875548
#337 #875548
>>875547
Все понял, нужно было делать так:
Object.freeze(Rabbit.prototype);
#338 #875549
>>875545
В том то и дело, что без new и class{} его минималистичность только выиграла бы.
Прототипы и конструкторы и this никуда бы не делось. Но не было бы этого разъебенства, когда объект можно запилисть через Object.create а потом приминить к нему функцию, выполянющюю роль констркутора. Или создать class{} но внезапно чтобы запилить свойства, ане методы в прототип нужно возвращаться все к тому же class.prototype

Или пилить функции конструкторы со свойством хранящим ссылку на прототип.

Много вариантов это всегда плохо.
В том, что описал я есть все. Из него можно было бы слепить повер все это, под задачу проекта. А когда это конструкции языка, будут вечные холивары - о том, как правильнее.
>>875551
#339 #875551
>>875549
Ну может быть, но меня доставляет с помощью делать некоторые фичи, тот же односвязный список:

var numbers = new Cons(1, new Cons(2, new Cons(3, new Cons(4, new Cons(5, null)))));
>>875552>>875557
#340 #875552
>>875551
*С помощью new, блять, вынужден писать быстро на ходу.
#341 #875557
>>875551
Сделал бы лучше
cons(1, cons(2, cons(3, cons(4, cons(5, null)))))
Или ещё лучше
Cons.fromArray([1, 2, 3, 4, 5])
Которые внутри делают всё те же new Cons.
Удобнее же, читабельнее.
#342 #875632
>>875344
бампс
#343 #875634
>>875344
По кочану.
>>875640
#344 #875640
>>875634
Охуенный ответ, а теперь пиздуй собирать портфель. Завтра к 8 утра в школу вставать.
>>875641>>875650
#345 #875641
>>875640
Не проецируй, мань.
#346 #875650
>>875640
Нашёл бля чё спросить сука. Ты ещё попроси перечислить системные методы vue.js или ещо какую хуйню
>>875658
#347 #875658
>>875650
ну саре, надеялся, что тут не только вкатывающиеся аноны
28 Кб, 750x525
#348 #875669
>>875385
Спасибо анончик!
:3
#349 #875715
чуваки интересна вообще кому движуха с es6 дрочильней?
а то мне кажется я хуетой занимаюсь выкладывая сорсы сюда и это никому не надо
сегодня ниче не рефакторил. подрубил вк апи и теперь бугуртарий ретранслирует бугурты и бэ в вк сообщество. ток у них ограничение окаывается на 50 постов в сутки
>>875767>>875782
0 Кб, 512x512
#350 #875767
>>875715
Анон, как ты запускаешь свою программу чтобы она непрерывно транслировала?
>>875770
#351 #875770
>>875767
npm run app
>>875771
0 Кб, 512x512
#352 #875771
>>875770
Спасибо!
>>875780
52 Кб, 500x375
#353 #875780
#354 #875782
>>875715
Все давно на async-await перешли, нахуй ты ебёшь эти корутины на генераторах из 2015?
>>875790>>875965
#355 #875784
Подкиньте алгоритм:
Полное описание задачи
Клиент делает GET запрос с параметром Query: ?fullname в виде Имя Отчество Фамилия (или Имя Фамилия или Фамилия), ваша задача сделать вывести инициалы в таком виде: Фамилия И. О. ( или Фамилия И.).
Результат нужно вывести в виде строки, при неверных входных данных нужно вывести слово Invalid fullname.
>>875788
#356 #875788
>>875784
1) Разбиваешь запрос на массив. Первый элемент - имя, второй фамилия.
Если через тире значит третий тоже фамилия.
2) Выводишь как тебе нужно.
>>875791
#357 #875790
>>875782
хз насколько ты следишь за историей моих постов, но я челик который год долбил дурь и играл в дотан, не писав и строчки кода. тут вышел из анабиоза узнал, что в жс завезли каких-то фич. ну и написал этот бугуртарий чтобы часть из них заценить. разумеется все эти дни я продолжал адски угорать, например, и поверхностно осилил только немного текстов про генераторы. вон даже темплейт литералс для меня стали сюрпризом.
поясняй почему async-await сосут у ко и генераторов.
>>875792
#358 #875791
>>875788
быстрофикс
Если 3 элимента в массиве - выводишь фамилию, потом первые буквы
Если 2 элемента выводишь фамилию и первую букву имени
Если цифры или символы то выводишь ошибку (это проверяется регуляркой)
#359 #875792
>>875790
ой лел. наоборот
почему типа генераторы и ко сосут у асинкавайт
#360 #875836
JS господа, будьте добры, подкиньте сайтецов со статьями о js и релейтед областях, которые вы читаете, на русском или английском языках
>>875840
#362 #875851
>>875404
Разве ассерты и try/catch не синхронные?
>>875853
#363 #875853
>>875851
Ну, да, так этап верификации у меня - это звено в цепочке промисов. Предрекаю лучи поноса в свой адрес, но я использовал ассерты для формальной проверки введенных данных в формах на входе изоморфно, лол, на клиенте тоже были ассерты через Chai, пиздец, да? и проверки целостности результатов выборки из БД на выходе (это потому, что у меня in-memory store с персистентностью, поэтому не факт, что БД не развалилась к хуям.
#364 #875854
>>873514
>>872357
Бамп вопросу же.
>>875857
#366 #875861
>>875857
Благодарю. Пошёл пробовать.
#367 #875882
Привет, подскажите, можно ли указывать свойство объекта в качестве ключа?

Вот так:

Hamburger.allowedSizes = {
Hamburger.SIZE_SMALL: 123
}
>>875893>>875914
#368 #875893
>>875882
Hamburger.allowedSizes = {
Hamburger.SIZE_SMALL: 123
}
Hamburger.allowedSizes.Hamburger.SIZE_SMALL // 123

Hamburger.allowedSizes = {
SIZE_SMALL: 123
}
Hamburger.allowedSizes.SIZE_SMALL // 123
#369 #875894
>>875893

> Hamburger.allowedSizes = {


> Hamburger.SIZE_SMALL: 123


> }


> Hamburger.allowedSizes['Hamburger.SIZE_SMALL'] // 123



fastfix
>>875912
#370 #875912
>>875893
>>875894

спасибо
#371 #875914
>>875893
>>875882

Ты издеваешься, да?

Hamburger.allowedToppings = {
Hamburger.TOPPING_MAYO: 123
};

SyntaxError: Unexpected token .

http://ideone.com/qpKFUB
>>876040
#372 #875965
>>875782
чувак ну ты будешь пояснять ?
>>875982
36 Кб, 693x384
#373 #875982
>>875965
Да то же самое только чуточку лучше, потому что вместо yield более осмысленное для асинхронщины await, и не надо вызывать co или там Promise.coroutine, а просто ключевое слово async вместо этого.
>>875990>>876060
#374 #875990
>>875982
да я как раз заканчивал читать https://www.sitepoint.com/simplifying-asynchronous-coding-es7-async-functions/
ну ничего перепишу благо у меня там 200 строк с копейками,а узнать что такое генераторы все равно было полезно.спасибо за наводку бро
#375 #876040
>>875914
Точка часть синтаксиса, такие ключи нужно оборачивать в кавычки
#376 #876047
Поясните: есть ли перспективы у ЧИСТОГО фронтендера, без нод, пхп и прочей хуйни?
Или в 2016 всем нужны фуллстаки?
>>876052
#377 #876052
>>876047
последние полтора года работал исключительно как жс кодер с ангуларом. и так все жсеры в фирме. отдельно было подразделение верстал со своим тимлидом и т.д. очень удобно. сидишь и делаешь задачи вместо еботни с версткой(будь она проклята). вообще не верстаю уже много лет занимаясь исключительно жсом и счатслив охуенно по этому поводу. не представляю сколько всего нужно сейчас знать верстальщику учитывая все эти пре-процессоры, хтмл5, мобильные клиенты и т.п. должно быть сегодня времена когда проблемы были уровня сделать костыль для старых ослов, вспоминаются олдфагами верстки как неплохие.
>>876072
#378 #876060
>>875982
На твоем пике фрагмент кода тестирования?
Смотрю, используется фантом прямо из ноды, создается страница и инжектятся каштмоные скрипты.
>>876131
#379 #876072
>>876052
Верстка то не пугает. Просто я бэкэндщик, но у меня в душе немного засел мамкин ололо-дезигнер. Сейчас пробую мобайл, но там ПОВОРОТ ЭКРАНА БАТАРЕЯ КОСТЫЛЬ ЧЕРЕЗ КОСТЫЛЬ АПИ. Вот и есть мысли перекатиться в чистый фронт, без серверки. Ток вакансий по такому мало даже в моем дс-2
>>876074
#380 #876074
>>876072
Почему так распространено мнение, что верстала = дизайнер? Дизайнер это дизайнер, он в фотошопе сидит, а не в редакторе
>>876080>>876090
#381 #876080
>>876074
Рашкореалии же, "Рога и копыта" часто ищут себе дизайнера и версталу в одном лице.
>>876083
#382 #876083
>>876080
Ну в копыторогах тебе и не дадут дизайнить, ты там будешь рисовать фантазии пропитого деда, играть со шрифтами и делать #ffffff чуть белее
#383 #876090
>>876074
Понимаешь, дело в том, что мы тут в восточной Европе - ебаные дикари, которые всегда отстают от западных тенденций на три-четыре года. А сегодня (2016 год) если ты веб (web) дизайнер, который не может в вёрстку и хорошее понимание аксессабилити - ты хуй в говне никому не нужный. Да ив фотошопе никто сайты не делает уже лет десять наверное, такие дела.
#384 #876131
>>876060
Не, это я пишу себе тул для мультипостинга на бордах.
>>876134>>876139
#385 #876134
>>876131
Хендлер завраплен в Guard() с использованием этого пакета?
https://www.npmjs.com/package/guard-promise
>>876138>>876235
#386 #876138
>>876134
А, нет, скорее всего что-то свое?
#387 #876139
>>876131

>тул для мультипостинга на бордах


это как? что он будет делать?
алсо, ты борщеед?
>>876235
#388 #876141
Топ 5 фронтенд-фреймворков по сложности?
>>876148
164 Кб, 1854x712
#389 #876146
аноны, юзал кто-нибудь такую йобу?
как узнать, на чем это все писалось?
#390 #876148
>>876141
ext
angular/ember/react
backbone
>>876151
#391 #876151
>>876148
почему бэкбон сложный?
>>876152
#392 #876152
>>876151
он в самом низу. самый простой.
ниже только Jquery но какой же это фреймворк
>>876153
#393 #876153
>>876152
реакт так-то тоже не фреймворк, а либа
>>876155
#394 #876155
>>876153
ext->angular->backbone
sage #395 #876158
Аноны, нужна помощь. Плагин в опере стал сам по себе какого-то хера отключаться, примерно каждый час берёт и сам отключается, нашёл его файлы. Можно ли как-то это убрать? Ладно пусть он сам по себе отключаться будет, но не каждый час, а примерно 15-18 часов. Сам вопрос, какая конкретна строка может за это отвечать?
>>876169
#396 #876169
>>876158
проверь строки 18 и 36.
>>876183
sage #397 #876183
>>876169
К сожалению разработчик пидорасина самый настоящий. Он не просто код обновил, он его в одну строку написал. Так что хреново получается. Что в блокноте, что в Notepad++ он выдает его одной блять массивной строкой.
>>876187
#398 #876187
>>876183
да, злостный пидор. ну раз одна строка, значит проверь 321 символ и 453. я думаю надо их поменять местами и все заработает.
>>876223
sage #399 #876223
>>876187
Натыкаюсь на d=Array(16) в коде, что в первом, что во втором.
>>876234
#400 #876234
>>876223
странно. а пробовал перезагрузить компьютер?
>>876257
#401 #876235
>>876134
const guard = require('async-middleware').wrap;
>>876139
Это просто для удобства. Я пишу сообщение и жму отправить, потом ввожу капчу сразу с десятка борд/тредов и оно отправляется сразу во все.
Мне это нужно для популяризации незаслуженно обделённого вниманием сётакона с тентаклями в бордосфере.

> ты борщеед?


Да, бросил последнюю работу 2 года назад. Обратно кодить за деньги пока не особо тянет. Думаю пойти баристой или закладочником, лол.
>>876237
#402 #876237
>>876235
тебе лет 20 чтоли?
>>876239
#403 #876239
>>876237
Больше, но меньше 30.
#404 #876240
Можно сделать так, чтобы Mocha проверяла JS для браузера прямо на сервере?
#405 #876257
>>876234

>пробовал перезагрузить компьютер?


Не смешная шутка. Вообще фишка с выключением по времени и в одну строку код написать, это пришло после обновления плагина. Автор просит якобы теперь заплатить за фулл версию.
>>876260
#406 #876260
>>876257
ну так заплати, пидораха жадная
>>876269
#407 #876264
РУбрика - ньюфажный вопрос. Почему у меня в хроме не получается заставить скрипт выполняться после загрузки hml? Пробовал все как тут http://front-end.su/2016/02/12/load-events/, не работает даже джиквери. Зато все норм в фаерфоксе, даже в древнем IE. ЧЯДНТ?
>>876276>>876604
#408 #876269
>>876260
Да нихуяси заплати, 500 рублей за ссаный чекер постов.
>>876270
#409 #876270
>>876269
жадная нищая пидораха
>>876289
#410 #876276
>>876264
Показал бы кусок HTML где у тебя скрипты подключаются что-ли
>>876280
#411 #876280
>>876276
http://ideone.com/sEtpWq
В скрипте просто
window.onLoad = function(){
alert('a');
}
Работает во всех браузерах, кроме хрома. Т.е. в хроме алерт всплывает до загрузки самой странички.
>>876309
#412 #876289
>>876270
Дохуя богатый и скорее всего по совметительству, пасскодоблядь.
>>876302
#413 #876302
>>876289
че это за чекер то сказал бы хоть блять
как ты хочешь чтобы тебе помогали если ты даже название плагина не сказал даун
#414 #876309
>>876280
Хз, я сам ньюфаг.
Может страница загружается быстрее чем ты думаешь?
>>876317
sage Хэлловорлдщик #415 #876316
Ну и говно же этот вас js, коллбэки сраные, синтаксис, ебучая архитектура неполноценная, просто бесит это говно.
>>876320
#416 #876317
>>876309
Нет же, лол. Пока алерт не клацнешь вообще ничего не загружается.
>>876325>>876337
#417 #876320
>>876316
неоислятор кек
>>876323
sage Хэлловорлдщик #418 #876323
>>876320
Мамаша твоя не осилила тебя уму-разуму научить, быдло ебаное
Джаваскрипт твой это ебаный рак индустрии, надеюсь все кто на нем пишут попадут в ад
#419 #876324
>>876323
нихуясе ты умный
#420 #876325
>>876317
Так надо. Загрузку скриптов в конец файла засунь же.
>>876326
#421 #876326
>>876325
Опа, с чего так надо?
>>876334
31 Кб, 272x300
#422 #876332
>>876323
Твоя боль лишь радует нас.
#423 #876334
>>876326
Потому что onload это подгрузка данных и только. Мб алерт в хроме до рендера, собственно, содержимого, в остальных оно отрисовывается, хотя и там и там формально все загружено. Различия в реализации, хуе-мое. DOMContentLoaded попробуй, плюс еще в жиквери есть тоже функция своя для отслеживания полной загрузки и отрисовки.
>>876337
#424 #876337
>>876317
У меня в Chromium 54 всё загружается до запуска скрипта судя по тому что работает вот это:
window.onload = function(){
document.getElementById('changable').textContent = "Nah, fuck this shit";
alert('a');
}
Может просто рендериться не успевает, но документ к моменту запуска уже загружен и DOM дерево готово, раз его можно дёргать.
HTML такой же, только у тега p стоит id="changable"

>>876334
Что-то такое я предполагал
#425 #876343
>>876323
Нихуя себе школие у тебя бомбануло. А ну брысь в раби, питухон, жаба, похапэ тред, откуда тебя там выблядовало.
#426 #876474
Как захостить статику с express? Почему это не работает?

server.js...
app.use('/static', express.static(__dirname + '/static/'));

dist/
--server.js
--static/
----client.js
>>876485
#427 #876485
>>876474

> Почему это не работает?


Потому что:
app.use(express.static(__dirname + '/static/'));
Так сложно заглянуть в доку? Она же, блять, на русском даже
http://expressjs.com/ru/starter/static-files.html
>>876486
#428 #876486
>>876485
Ты кароч неправ. Думаешь я не читал это? Я уже все пути перепробовал. Там какая то хрень с упаковкой вебпаком экспресса, как сервер паковать? Хотя бы минифицировать.
>>876487
#429 #876487
>>876486

> Там какая то хрень с упаковкой вебпаком экспресса, как сервер паковать? Хотя бы минифицировать.


З А Ч Е М ?
>>876494
#430 #876494
>>876487
Я видел как в некоторых boilerplates пакуют сервер. Лучше один файл на прод выкладывать чем кучу.
>>876495
#431 #876495
>>876494

>Лучше один файл на прод выкладывать чем кучу.


Монопенисуально.
>>876496
127 Кб, 512x382
#432 #876496
#433 #876499
>>871862 (OP)
парни есть альтернативы на русском у кантора?
Ничего не могу с собой поделать трудно читать его
>>876508
#434 #876508
>>876499
Русскоязычная версия MDN.
>>876509
#435 #876509
>>876508
там на русском только
Первые шаги в JavaScript
дальше на ангельском
>>876531
#436 #876531
>>876509

В шапке книги посмотри, там вроде есть на русском
#437 #876540
Анон с харкача написал на ноде движки для блога и борды слоупок.джипег и выложил на гитхаб:
https://github.com/Vladimir37/diege_blog
https://github.com/Vladimir37/Hanako

Вопрос - с точки зрения повышения скиллов, по данным сорцам можно учиться / вдохновляться / заимствовать в своих разработках?
Просто хочу понять, насколько качественен код того анона. Наверняка же его поделия обсуждались, и не раз, но я проебал их мимо своих глаз.
То есть интересует своего рода кодревью в двух словах, буквально.
#438 #876545
>>876540
Поглядел сейчас. Блог - пиздец говнокод, борда вроде по-лучше, но все равно говно.

синьер-помидор
>>876571>>876617
#439 #876571
>>876545
примеры говнокода из борды?
#440 #876579
>>876540

> по данным сорцам можно учиться / вдохновляться / заимствовать в своих разработках?


Нет, на node.js максимум только деньги можно пилить, не больше. Люди, пишушие на этом говне для себя - дауны ебаные, которые на Аде никогда мк не программировали.

> Установите MySQL и выполните следующие команды для создания двух необходимых таблиц


С блога который раз проигрываю.
>>876593
#441 #876593
>>876579

>Люди, пишушие на этом говне для себя - дауны ебаные.


Я АСУшник, пишу на JS "джаст фо фан".
Использовал ноду в различных приложениях, в т.ч. для вызова WinAPI через FFI, для опроса различных девайсов по COM-порту, для работы по USB (запись/чтение в девайс). Сейчас небольшое приложение на ноде накатал для контроля технологических параметров для одного испытательного стенда гидравлического оборудования.
Во всех случаях на JS кодинг доставлял удовольствие.

Бесспорно, все вышеперечисленное можно было сделать и на других языках, и, возможно, результирующие программы были бы на них лучше по каким-то критериям, но ведь тред посвящен JS. Посему, отзываться от людах, пишущих на JS, как о "даунах ебаных" здесь, по меньшей мере, неуместно. Меньше хейта, мэн.
#442 #876603
ЖС ебаный пиздец же, как на нем вообще можно для фана писать? Динамикопараша с кучей костылей, уродливый ооп, нечитаемый синтаксис, уебищные либы.
Хотя для говноедов-байтослесарей-асушников может быть все не так и плохо, им и говно конфеткой кажется
>>876605>>876621
#443 #876604
Разобрался с хромопроблемами >>876264
Короче такая байда только если использовать алерт. Если без него - все работает как надо. Странно это все.
>>876613
#444 #876605
>>876603
Поддвачну. Самому приходится писать в том числе на ЖС. Неприятные ощущения не пропадают.
#445 #876613
>>876604
alert и promt останавливают выполнение js
#446 #876617
>>876540
>>876545
Вот у автора в коде борды встречается такая строчка ( https://github.com/Vladimir37/Hanako/blob/master/app/app.js#L17 ):

setInterval(unban, 86400000);

очевидно, что в раз в сутки в функции проверяются баны, и если срок их действия вышел, посетитель разбанивается.

Есть ли смысл в таких действиях (циклическая перепроверка бана), если при попытке запостить в тред, в коде того же движка перепроверяется наличие бана ( https://github.com/Vladimir37/Hanako/blob/master/app/assist/post_processing.js#L56 )?
29 Кб, 935x290
#447 #876621
>>876603
Жс-мирок - это элитные экстремальные технологии для бывших лиспохаскеров.
Я пишу на ноде, потому что ненавижу программировать что-либо, кроме reaktor, и потому хочу закончить как можно быстрее.
#448 #876625
>>876621
Это божественно. Только let'ы немного смазывают общую картину.
Это тот самый мультипостер для борд?
Есть шанс того, что ты выложишь код на жидхуб?
>>876645
#449 #876634
>>876621

> технологии для бывших лиспохаскеров


Не оправдывай своё говнокодерство мифическим элитным мирком, которого нет, тем более бывших лисперов не бывает. Перекатываются, а уж тем более на такую говнину, лишь те, кто не осилил работать свой головой на себя либо у них выбора не осталось.
>>876643>>876645
#450 #876637
>>876621
Алзо пиздец у меня от этого говнокода в глазах закололо.
Отсутствие комментариев через полгода превращают js и php говнину в неподдерживаемый кал.
Даже в исходниках openssl на чистом С разобраться проще без комментариев, имея багаж знаний в математике, чем во внутренностях очередного говнофреймворка.
Отсуствие типизации или хотя бы выведения типов заставляет держать в голове кучу лишнего говна. Есть jsdoc, но он не всегда хорош.
#451 #876643
>>876634
Удваиваю, уважаю лисп, но блюю от жса.
Часто слышу, что "жс-это современный лисп и т.д.", но это нихуя не так. Такое могут сказать только люди, которые на Лиспе не писали ну или просто дауны. И если уж на то пошло, ЖС имеет отношение к Лиспу такое же, как любой другой динамический язык.
#452 #876645
>>876625

> Только let'ы немного смазывают общую картину.


В смысле, что лучше было сonst? Я использую const только для глобальных связываний, а внутри функций лень думать о (им)мутабельности параменных.
Моё мнение - что компилятор сам прекрасно вычисляет что меняется а что нет при приведении кода к SSA, а ради читабельности внутри функций оно не настолько критично.

> ты выложишь код на жидхуб?


Да, вброшу куда-нибудь сюда ссылку.
>>876634
Я так тоже говорил 10 лет назад, когда программирование для меня было развлечением, а не инструментом.
Просто я тогда не знал настоящих развлечений, не было полноценных источников кайфа, не с чем было сравнить.
>>876649>>876657
#453 #876649
>>876645

> не было полноценных источников кайфа


Так ты героинщик? Так бы и писал сразу, а то я все на вы и на вы.

> Я так тоже говорил 10 лет назад, когда программирование для меня было развлечением


Если я в 37 лет начну относиться к этому хоть как-нибудь серьёзно, лучше пойду из окна выброшусь.
>>876699
#454 #876657
>>876645
Используй eslint, он подскажет тебе когда юзать const, а когда let
>>877083
#455 #876659

>Я так тоже говорил 10 лет назад, когда программирование для меня было развлечением, а не инструментом.


Где-то я это уже слышал. В Го-треде любят повторять эту фразу, когда оправдываются.
#456 #876660
не могу понять почему какие-то чуваки приходят в жс тред и говорят что жс говно, а чуваки сидящее тут начинают оправдываться
это какое-то соревнование в тупизне?
>>876681
64 Кб, 512x382
#457 #876673
>>876621

> Промисы, стрелочные функции


> Колбеки

>>876709
#458 #876680
Пытаюсь я сделать изоморфное приложение на основе https://github.com/coodoo/react-redux-isomorphic-example — но не могу понять, что делать с роутингом.
Серверный метод match реакт-роутера возвращает какую-то хуйню, из которой можно вытащить список компонентов для рендеринга, но выходит как-то черезжопно. Как бы мне изящно определить, какие данные я должен засунуть в store? Не проверять же компоненты через instanceof.
>>876703
#459 #876681
>>876660
+1
Хуетая какая-то странная.
Вообще не понимаю.
#460 #876694
Задачка: в своём проекте хочу сделать страницу для описания каждого аэропорта в мире. Но делать это вручную чота зашквар. Появилась идея - сверстать шаблон для таких страниц и заполнять его по ajax. Например, у меня есть ссылка <a href="/airport-template/" data-airport="sheremetyevo">Шереметьево</a>. При нажатии на эту ссылку js-скрипт будет брать данные из атрибута data-airport и отправлять их на страницу шаблона, заполнять эту страницу в соответствии с нужным аэропортом и сразу перенаправлять пользователя на эту страницу. Это будет работать и можно ли
это организовать в принципе?
>>876706>>877030
#461 #876699
>>876649
Если в 37 лет ты все еще будешь программить на дядю, то да, выброситься в окно для тебя лучший вариант
#462 #876703
>>876680
Не ответят тебе нихуя. Выше я спрашивал про упаковку сервера, меня проигнорили. На каком то этапе тред перестает отвечать.
70 Кб, 1024x335
#463 #876706
>>876694

> Делать приложения без фреймворков в 2к16

>>876713
#464 #876709
>>876673
а ведь ехидный колобок прав
#465 #876713
>>876706
Во-первых, у меня не особо много времени, чтобы разбираться во фреймворках. Во-вторых, не берусь за фреймворки без фундаментального понимания JS. Я один разработчик в большом проекте, и PHP и JS - я заебусь один со всем этим разбираться.
>>876775
#466 #876716
Можно ли js использовать для 3д-моделирования-симулирования? WebGL там и всё такое. Или нет?
26 Кб, 521x519
#467 #876720
#468 #876721
>>876716
Очевидный Qt очевиден. Там возможны вставки и на JS.
#469 #876726
>>876716
Unity3d + скрипты на их внутреннем диалекте жс.
#470 #876736
Хей, котаны. А вы сплитите свои редьюсеры атомарно в круд приложениях? Например у меня есть коллекция Users и к этой коллекции четыре круд акшена. Общий паттерн структуры у меня обычно Feature First, поэтому у меня есть фолдер Users > List | New | Edit. И внутри каждого сабфолдера свои контейнеры, компоненты, ассесты, стили и вся хурма. Раньше я обычно и каждому сабфолдеру давал свой redux фолдер, где хранил всю редакс инфраструктуру. А сейчас вот пишу приложение и делаю общий redux в руте фичур фолдера и там складирую все константы, акшены и один редьюсер, который хостит все круд операции. Брат пока жив. А как вы обычно строите структуру?
>>876738>>876761
#471 #876738
>>876736
ачто такое редьюсер? и фолдер?
#472 #876761
>>876736
я спличу по типам файлов
сорт оф
-actions
-api
-reducers
-components
-etc
>>877000
#473 #876775
>>876713

> Во-первых, у меня не особо много времени, чтобы разбираться во фреймворках.


Через год

> Я один разработчик в двух больших проектах, бля нахуя я это написал, блядь это ж давно реализовали. Опа, какой мудак это писал. Сука ну за що

>>876849
#474 #876849
>>876775
Лучше бы вместо того, чтобы умничать, подсказал мне решение моей задачи.
>>877153
#475 #876880
>>876716
Очевидный ThreeJS очевиден.
1077 Кб, 960x540
#476 #876918
Есть файлы
1.html
1.js
2.html
2.js
Допустим на первой странице я что-то делал и хочу скопировать инфу (например значение переменной А) на вторую странице и работать с этой инфой во втором js файле. Я знаю что так можно сделать если использовать один (общий) js файл. А если их два?
>>876935
#477 #876934
На мочан, я погляжу, добавили какие-то стикеры. Что это я понятия не имею, но говорят лютейший зашквар.
Короче говоря: Как проще всего скрыть пост со словом "стикер" с помощью JS-юзерскрипта? Куклу не люблю.
>>877032
#478 #876935
>>876918
Kuukez.
#479 #877000
>>876761
Я так тоже когда-то пытался строить, но если проект большой, то это адский пиздец просто.
#480 #877030
>>876694
Если тебе нужна индексация поисковиков, то это делается на стороне сервера, а не клиента. На стороне клиента это делается примерно так, как ты описал, да
#481 #877032
>>877035
#482 #877035
>>877032
Я хочу скрывать посты с этой дрянью, а не сами стикеры. Находить такие посты можно по слову "стикер", содержащемся в них.
>>877038
0 Кб, 512x512
#483 #877036
Помогите плиз со сборкой bundle server.js with webpack
в архиве - минимальная конфигурация и описание проблемы в problem_description.txt

http://rgho.st/6BMwtTPy8
>>877037>>877039
#484 #877037
>>877036
в прошлой сборке не работала одна команда в описании, паерезалил http://rgho.st/7MqynRllz
>>877039
#485 #877038
>>877035
2ch.hk##:xpath(//*[text()[contains(., 'стикер')]])
>>877326
#486 #877039
>>877037
>>877036
Какую цель ты преследуешь в сборке сервера вебпаком?
>>877041
#487 #877040

>>779556


сорри, я даун, третий перезалив (не работал тест)

http://rgho.st/8QN2Kj7rK
#488 #877041
>>877039
минификация, использование в будущих проектах с многочисленным роутингом/restful api
>>877042
#489 #877042
>>877041
Ты знаешь для чего нужна минификация?

> использование в будущих проектах с многочисленным роутингом/restful api


А причем тут сборка? Как она способствует этому?
>>877044
#490 #877044
>>877042
кто то же делает это. почему ты считаешь что упаковка не имеет место быть

http://jlongster.com/Backend-Apps-with-Webpack--Part-I
>>877045
#491 #877045
>>877044

> почему ты считаешь что упаковка не имеет место быть


Потому что я не вижу для этого ни одной причины. Мне кажется, что сборкой бэкенда в один минифицированный файл будет заниматься только тот, кто вообще не понимает что такое сборка и для чего она нужна
>>877047
0 Кб, 512x512
#492 #877047
>>877045
А я не вижу ни одной причины чтобы не собирать сервер. если ты не хочешь мне помочь то зачем пишешь?
>>877048
#493 #877048
>>877047
Я просто решил намекнуть тебе, что ты занимаешься полнейшей хуйней и лучше бы тебе сконцентрироваться на самом приложении и его работе, а не несколько дней носиться с минификацией бэкенда. Ну тебе, наверное, виднее
>>877049
#494 #877049
>>877048
может ты и прав..
#495 #877080
Как тестировать сервис, который создаёт события периодически? Вплоть до раза в год? Желательно код самого сервиса не не менять, только тесты.
>>877090
#496 #877083
>>876657
Прикручивать линты, смотреть на их подкрашивания, постоянно переключаться между разными вариантами (let и const), писать на два символа больше - это всё слишком большой напряг для такой лютой хуйни. Ящитаю, необъяснимое желание для локальных переменных нахуярить const всегда когда возможно - это признак аутизма.
>>877092
#497 #877090
>>877080
Спуфить необходимые для этого события триггеры, очевидно же. Если речь о времени, то:
https://github.com/vesln/timekeeper
#498 #877092
>>877083
Есть один чувак прошаренный. Короче он говорит, что просто коммьюнити больное, поэтому и лепят везде тройное равно, пишут const и т.д. Ну и еще он говорил, что чем ближе люди к tc39 - тем чаще в их коде let.
>>877126
#499 #877126
>>877092

>лепят везде тройное равно



Если бы двойное равно не работало через жопу, не лепили бы. Ты только посмотри на эту хуйню http://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison и, заодно, посмотри во что раскрывается ToNumber и ToPrimitive. Не удивительно, что большая часть js-программистов не хочет держать в голове все эти охуительные правила и каждый раз вычислять в голове безопасно ли в данном случае использовать ==, а просто используют === всегда.
>>877134>>877142
#500 #877134
>>877126
Джейчую этого. AirBnb, например, тоже рикамендуют использовать тройное равно.
https://github.com/airbnb/javascript#comparison-operators--equality
>>877138
#501 #877138
>>877134
Аирбнбешный еслинт конфиг - ебаная анальная секта.
>>877140
#502 #877140
>>877138
Они недостаточно ортодоксальны для секты, тащемта, они допускают использование летов (при этом рекомендуют отказаться от var'ов вовсе).
Я категорически с этим не согласен - нужны только консты, при этом без фанатизма - мутабельности объектов и массивов вполне достаточно, чтобы писать без код без мозгоебли и при необходимости обновлять рефы.
Но это, конечно, вкусовщина.
>>877146
#503 #877142
>>877126
Да мне похер кто и почему сколько равно лепит - я передал слова чувака, а не пришел тут холивары разводить у вас и без этого тред в последнее время скатился в какую-то жопу.
>>877143
#504 #877143
>>877142

>Есть один чувак прошаренный


>я передал слова чувака


Но кто этот чувак? не гомофоб ли это Резиг часом?
>>877150
#505 #877146
>>877140

>они допускают использование летов


>%variable_name% is never reassigned. Use 'const' instead. (prefer-const)


И это не предупреждение, а полноценная ошибка. Но я так-то свой конфиг экстенджу от бнбшного и уже привык. Минимальные поправки я конечно сделал, как-то: "no-nested-ternary": 0, "no-plusplus": 0 (вообще дичь), "arrow-parens": 0 и другие мелочи.
>>877152
#506 #877150
>>877143
Не, эт снг-шный задрот, недавно не ебаном был с подачей мол он объяснять не умеет, куда ему курсы вести да на конфах выступать
>>877177
#507 #877152
>>877146

>"no-plusplus": 0 (вообще дичь)


Меня здесь пидорили как-то за участок кода с такими вот унарными операциями. Подозреваю, что дело в читаемости. Сдается мне, охуевшие от многочасовой рутинной работы глаза легче найдут код вида
varName = varName + 1;
нежели varName ++;
#508 #877153
>>876849
react, можно разобраться за два-три вечера, если есть опыт.
#509 #877155
>>877152

> пидорили как-то за участок кода с такими вот унарными операциями


Больше борщехлебов слушай.
>>877174
#510 #877174
>>877152
Беда с ними в том, что результат зависит от порядка (префикс\постфикс) и может привести к путанице. А выигрыша они никакого не дают, кроме краткости. Но на набор\чтение пары лишних слов ты потратишь меньше времени, чем на обмозговывание того, что там возвращается, а что в скоупе останется. Следовательно, к хуям плюсплюсы.

>>877155
Лучше слушать выебшиков с их уникальным бескомпромиссным видением прекрасного.
Нахуя тебе пару лишних клавиш нажимать, не для того тебя мамочка растила.
#511 #877177
>>877150
Честно, я не люблю судить о людях по их внешнему виду, но этого горбатого дрища слушать не хочется. И выступает он, если судить по тому видео, что было в посте, хуево.

>>877152
Проблема возникает не когда у varName++ на отдельной строке, а когда начинают писать конструкция вида varName1 = fn(varName1, varName2++).
>>877225
#512 #877225
>>877177

>а когда начинают писать конструкция вида varName1 = fn(varName1, varName2++).


это уже не люди это звери нахуй
#513 #877247
Недавно читать начал тредики по js и все понять не могу - кто такие борщееды?
>>877271
#514 #877271
>>877247
Это те, кто лифтят монадические кластеры метапарадигм в анафорических лямбдах. И кушают мамкин борщ, конечно же.
87 Кб, 1217x567
#515 #877326
>>877038
Не работает.
#517 #880539
>>873564
Ты блять мразь ёбаная и сын собачий, этот ёбаный кусок говна не делает вообще блять ничего.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 7 декабря 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски