Этого треда уже нет.
Это копия, сохраненная 23 декабря 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
37 Кб, 1052x1052
JavaScript #70 #884383 В конец треда | Веб
Ссылка на прошлый тред: >>877341 (OP)

Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.

Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md

Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md

Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md

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

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

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
#2 #884390
Сап, аномач. Вопрос к анонам, которые работают с ангуляром. Как там логин/регистрацию/доамшняя/404 правильно сделать? Есть ли какие-нибудь super simple example авторизации для ui-router? А то пиздец какой-то. Что ни найду - на 150+ строк в каждом файле с методами и контроллерами - один охуительней другого.
Хочу на что-то очень простое посмотреть, а потом зарисовать схемку, чтобы окончательно разобраться уже - что куда и откуда идёт.
#3 #884399
Скриптач, вот такой пет проект для портфолио сделал, норм?
http://anoblog.herokuapp.com/
#4 #884400
>>884399
Нет. Я бы тебя зассал, чмошник. Пришёл бы ко мне на собес - а я бы зассал.
>>884404
#5 #884403
>>884399
А теперь, собственно, открываю ссылку.
Прикольно, кстати. Норм. Можно ещё версию в материал-дизайне сделать
#6 #884404
>>884400

>материал-дизайне


Это как?
>>884407
#7 #884407
>>884404

>материал-дизайне


Загуглил, слишкам сложна, я же не дизайнер
>>884408
#8 #884408
>>884407
Да лол, какой сложно. В бутстрап тоже не можешь? А там та же херь. Гугли ангуляр материал. Дописал md-input и радуйся
#9 #884409
>>884399
ты чо, охуел?

>Пожалуйста, ввойдите в свой профиль


>Пожалуйста, ввиедите пароль

>>884410
#10 #884410
>>884409
Ну пожалуйста
>>884411
#11 #884411
>>884410
Ладно, Арсен, только русский подучи
>>884413
#12 #884413
>>884411
Из - за гринтекста не видел опечатки, лол
Спасибо
#13 #884416
>>884399

Как попап на логине сделал? Хочу такой же сделать, пока не получается.
>>884418
#14 #884418
>>884416

>Как


Что именно тебе не понятно?
>>884424
#15 #884420
Как правильно в nodejs сделать туеву хучу insert-ов или update-ов в postgresql базу асинхронно? Дохуя - то есть база на несколько ГБ и ее нужно заполнить или обновить всю.
Если делать через pg-promise - можно сделать, допустим, 10 одновременных запросов по 10к строк за раз (типа пул). Когда один из запросов завершится, посылать следующие 10к строк. Это хорощая идея?
#16 #884424
>>884418

Ну ты его делал типа кликаешь на "войти" и вызывается компонент с формой? А что бы была анимация все это оборачивал в транзишионгруп или не так?
Видел, там есть готовый пакет реакт-попап, но хочется вручную сделать.
>>884425
#17 #884425
>>884424
onClick => changeState({showLoginForm: true})

> оборачивал в транзишионгруп


Да
>>884428
#18 #884428
>>884425

О, спасибо.
#19 #884430
>>884399
а ничего, что файлик js весит ~3мб?
>>884432
#20 #884432
>>884430
Там кроме реакта ничего большого, вроде, нет.
При этом бандл еще и минимизированный
>>890726
#21 #884438
Как быстро можно выучить реакт, если знаю js и другие языки, но фронтом мало занимался и делал все на чистом js + jquery?
Алсо, если фронт - это не основное мое занятие, достаточно знать реакт, или еще ангуляр желательно?
401 Кб, 596x658
#22 #884523
>>884399
Но подожди, у тебя же inline source map, они же больше самого бандла занимают, не делай так пожалуйста
>>884552
3 Кб, 213x34
#23 #884552
>>884523
Спасибо
#24 #884599
Аноны, есть ли шансы устроиться джуном со знаниями ванильного жс и jquery (html/css само собой)?
>>884608
#25 #884607
>>884399
Дизайн уж слишком простецкий и это портит первое впечатление. Норм для пустого портфолио, но в будущем заменить.
#26 #884608
>>884599
Нет. Я сейчас джуню - нужны реально хорошие знания 3х жс - 3, 5 и 6.
Также html, css и иметь представление о scss/less.
Ещё - знать сборку gulp или webpack.
Ещё - какие-то знания ангуляра/реакта. Чтобы быстро включиться в проект.
Гит, джира, всё такое - по-умолчанию.

Я с этими знаниями сейчас месяц на испытательном, обещают $100. Ещё через месяц - 200, потом 300, как окончательный вариант.
А потом уже - типа учиться и прокачиваться.
#27 #884609
>>884608
Ну и ООП забыл. Хотя бы фабрики и сервисы
#28 #884618
>>884390
Ты для обучения? Зареализуй тогда свой велосипед, как раз и разберешься. Авторизация - самый обычный http запрос.
Сделай там себе роут на страничку авторизации, контроллер с полями логин, пароль и функцией для логина с помошью $http. Куда уж проще?
>>884632>>884634
#29 #884632
>>884618
Честно? В том числе. Но больше - потушить свой пердак, т.к. это было моё тестовое задание, которое я провалил с успехом.
И это не совсем запрос. Я пытаюсь понять, как вот такое https://github.com/cornflourblue/angular-registration-login-example
Перевести сейчас на новомодный ES6 с этими вашими import и export default.

Нашёл, блин, самый простой пример. Херотень на 1к+ строк кода.
>>884735
#30 #884634
>>884618
Я мудак, анон. У него ж там ссылка на 2й ангуляр. Спасибо тебе.
С утра эту херь ковыряю, глаза в точку уже.
>>884658
#31 #884658
>>884634
Я нихуя не понял, но ладно. На том гитхабе вроде 1 ангуляр и вполне себе читабельный кстати. Если хочешь 1 ангуляр с чисто es6, то посмотри вот этот вот тутор:
https://github.com/angular/material-start/tree/es6-tutorial
заодно material design обмажешься.
Не знаю, я лично es6 плюшки использую, но сборку в одно единое приложение как-то всегда доверял gulp.
>>884661
#32 #884661
>>884658
Спасибо, анон. Посмотрю. По сборке - мне тоже галп больше нравится.
284 Кб, 650x581
#33 #884704
>>884608
От конкурентов избавляешься?
>>884706
#34 #884706
>>884704
Какие тут конкуренты. Думаю уже каким-нибудь пехотинцем пойти работать на судно.
Серьёзно, заебало. Нужно знание гильотины, 10 лет на плантации, из них - 5 на китайской.
Ну... можем вам еды предложить
>>884723
53 Кб, 300x274
#35 #884723
>>884706
Как же ты себя не ценишь, анон. Нельзя так.
>>884727
#36 #884727
>>884723
Жизнь заставит - и не на такое согласишься. В веб идут не от хорошей жизни, а чисто чтоб пожрать было что.
Алсо, в ебенях на 100 баксов можно даже жить. Хуево, но лучше так, чем никак.
#37 #884735
>>884632
Обмазывайся TypeScript. Когда-нибудь придётся перекатываться на ng2
https://github.com/Dimous/crt-ts-recoding/blob/master/module/controllers/IndexController.ts
>>884753>>886516
#38 #884753
>>884735
Если это ты делал crt.ru, то СЕОшники тебя наверное просто обожают.
>>884756
#39 #884756
>>884753
Нит. Там команда профессионалов. Меня не взяли.
>>884761
#40 #884761
>>884756
Ну значит ту команду профессионалов любят. Хотя... в будущем уже будет не актуально.
>>884765
#42 #884770
>>884765
То, что поисковики научились нормально работать с SPA - это по-моему относительно новая тенденция. Где-то проебал ссылку на новость.
Даже в статье по ссылке пишется, что бот читает страницу, но с траблами.
#43 #884829
>>884727

А от хорошей куда идут?
>>885035
#44 #884832
>>884727

Работать, вообще, идут не от хорошей жизни.
#45 #884833
>>884608

> 3х жс - 3, 5 и 6


Проиграл. Был один язык, а теперь 3?
>>885121
#46 #884843
>>884727

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


Кекнул
мимо-$2.5к-мидл
#47 #884906
Подскажите как мне сделать примерно следующий функционал, вот у меня сейчас вылезает модальник, в котором можно вбить сумму и нажать кнопочку, и тогда эта сумма полетит в указанный в action пхп скрипт.

Собственно что мне нужно: нужно что бы помимо поля был еще селект с 3 опциями, и если выбрана первая, то появляется еще 1 обязательное поле.
Если выбрана другая опция, то например 2 дополнительных поля. И наконец если третья опция, то под ней появляется скажем 5 дополнительных обязательны полей.

Далее при нажатии кнопки мне нужно склеить всё что там вбито в дополнительные поля в осмысленную красивую строчку и послать вместе с суммой на обработку скрипту.

Есть идеи с чего начать? Собственно меня мучает только js-вопрос, о том как всё это сделать, отправка на скрипт и обработка потом на сервере - это для меня легко.
>>884910
#48 #884910
>>884906
Забыл уточнить, что в action в итоге должно полететь 2 значения - изначальная сумма, и отдельно склеенная из дополнительных полей строчка, под двумя разными именами соответственно.

Заранее спасибо.
#49 #884963
>>884608
толсто
>>885017>>885324
#50 #885017
>>884963
Для выпускника универа для какой-нибудь мухосранской конторы - вполне реальные требования и зп. Другое дело, что не требуется все знать на уровне мидла. Да и вообще - там учить-то нечего.
#51 #885031
Как сделать что бы инпут был рекваеред, только если он видимый?
А когда стоит display:none то похуй было на него вообще?
115 Кб, 1134x757
#52 #885035
>>884829
В гей шлюхи.
#53 #885059
Всем привет! Начинаю пилить новый проект и хотелось бы попробовать Angular, что мне стоит почитать, чтобы понять сам концепт и философию этого фреймворка?
>>885091
#55 #885096
>>885091
Неплохо. Нет такого по реакту?
>>885100
#56 #885098
>>885091
Разве есть смысл сейчас учить первый angular? Второй же перспективней.
>>885326
#57 #885100
>>885096
Реакт же прост как палка, зачем по нему гайды?
>>885114
#58 #885114
>>885100
ReactNative интересен, ищу гайды, в свете вопроса описанного тут
https://2ch.hk/pr/res/884999.html (М)
Статьи на хабре в основном говорят что такие инструменты годны только для создания прототипа, и все равно что-то серьезное придется писать на native.
>>885183
#59 #885121
>>884833
Был ES3. Затем ES5. Потом ES6. А сейчас можно писать и на babel-preset-nigga-what-you-doing-stage-0-ES7.
Изредка бывает полезно знать различия между редакциями.
#60 #885180
>>885091
Спасибо большое! Есть ли смысл изучать Angular 1 или лучше сразу начать со 2ой версии?
>>885182
#61 #885182
>>885180
Если нет вакансии для первого, на которой уже завтра можешь работать, лучше начать со второго
#62 #885183
>>885114
А что там гайды, учишь рекат, идешь на
https://facebook.github.io/react-native/, изучаешь туториал, все, можешь пилить приложухи на реакт-нейтив.
На js.coach можешь искать компоненты под RN, добрые люди уже запилили довольно много всякого.
>>885221
#63 #885221
>>885183

>js.coach


прочитал js.cocach

Скажи, на сколько реакт нейтив в плане кроссплатформенности отличается от кордовы.
Я так понимаю что "Learn once, write anywhere" и "Write once, run anywhere" в корне разные вещи. Можно запилить один и тот же код на реакте под андроид и айос с небольшими переделками, или же это будут две разных обертки?
>>885463
#64 #885322
Ачобусы, есть проблема.
Есть 2 файла: app.js и pass.js. Так вот, из второго я беру переменную, он выглядит примерно так:
const PASS = 'some data here';
export {PASS};
Импортирую я ее в app.js
import PASS from './components/pass';
дальше пытаюсь с ней что-то сделать, хотя бы вывести, но не выводится. Хотя если напрямую создать ее в app.js то все ок работает, но так нельзя. Где я ошибся, почему переменная не экспортируется нормально?
>>885334
#65 #885324
>>884963
Не толсто. Минск лол
#66 #885326
>>885098
Второй перспективнее, но продакшн на нём пилить бОльшая часть контор начнёт не скоро. Банально нет той кучи инструментов и модулей, которые есть для 1.
Вообще хз, в свете тенденции, что теперь новую версию чуть не каждый год хотят релизить, думаю на реакт перекатываться.
Как-то не фанат я каждый год учить новый синтаксис и концепцию.
>>885328
#67 #885328
>>885326

> Как-то не фанат я каждый год учить новый синтаксис и концепцию.


Откуда вы лезете? Почему вы маняфантазируете вместо того, чтобы прочитать про переход ангулара на семвер?
#68 #885333
Есть идеи у кого по >>884390 ?
#69 #885334
>>885322
export default pass
>>885338
#70 #885338
>>885334
Спасибо за ответ!
#71 #885340
Как такое http://plnkr.co/edit/UkHDqFD8P7tTEqSaCOcc?p=preview на ES2015 переписать? С этими module и component
>>885349
#72 #885349
>>885340
В смысле как? Читаешь спеки, смотришь что чем можно заменить и заменяешь. Или пишешь с нуля, подсматривая в архитектуру этого приложения, что значительно проще
Алсо, это первый ангулар. Я б его сейчас уже не трогал.
>>885375
#73 #885375
>>885349
В смысле за сколько я это смог бы переписать, если вообще ничего не знаю про новую модель, а делал раньше на контроллёрах и фабриках? Думаю вечерком завтра заняться. Прикидываю, что занятие на пару часов, я прав?
#74 #885463
>>885221
Можно, в текущем проекте, в котором около 7 экранов, у меня всего один компонент написан отдельно на ведро и ыфон, все остальные общие.
С кордовой не работал, но типы говорили что RN после кородовы, как манна небесная
#75 #885476
Що нужно знать js нубу, чтобы претендовать на работу ирл?
>>885515
#76 #885489
Гайз, есть смысл учить первый ангуляр? Или копать сразу второй? Слышал что у первого ангуляра проблем вагон, а во втором все исправили
#77 #885515
>>885476
ООП, ДОМ, замыкание, кроссбраузерность, ajax
jquery/фреймворк из требований вакансии
шаблонизатор
реакт / ангуляр
писать в каком-нибудь AirBnB, например
>>885516>>885517
#78 #885516
>>885515
Звучит сложно.
#79 #885517
>>885515

>2к16


>кроссбраузерность

>>885519
#80 #885519
>>885517
ну удачи
до этого доёбываются и не слабо, на собеседовании ты не скажешь "какая ещё кроссбраузерность в 2К16?"
>>885529
Аноним #81 #885528
Вопрос по Npm (или nmp?). Скажем поставил я его user/sosaka. Затем накатил фреймворк и перешёл в c/sin/sobaki. Теперь снова накатил фреймворк, (через тот же nmp - g huyeviiframe, пусть второй зависит от первого). Они установится в разные папки? (один в юзер, другой в собаку?) Они будут друг друга видеть?
>>885530
#82 #885529
>>885519
Лол, меня не доебывали про кроссбраузерность.
Зато спрашивали про недостатки сокетов, преимущества NoSQL и продвинутое использование гита. На фронт энд собеседовании. У меня конечно был специфический случай, но все же иметь какое-то представление о серверной части - большой плюс.
>>885626
#83 #885530
>>885528
Не понял, ты в сын собаки поставил с -g ?
>>885531
Аноним #84 #885531
>>885530
Да. А как надо? Хотелось бы что бы все было в одном месте, а то по невнимательности наплодил папок, и теперь все через жопу работает
>>885533
#85 #885533
>>885531
Ключ -g - ставит пакет глобально. Он будет поставлен в общую папку, которую вроде как должно быть видно из любой другой папки.
Ставя без -g - пакет будет поставлен в текущей папке в node_modules.
При require подключении пакет ищется в текущей папке, если его нет, папкой выше, если нет, папкой выше... и так, пока не дойдет до глобального node_modules.
Если поставил пакеты в папки сын собаки и юзер сосака без -g и папки не находятся в отношении родитель-потомок, пакет найден не будет. Но ты можешь вручную укзать откуда дергать пакет (с помощью относительного адреса).
Например, папки сын собаки и сосака находятся в одной родительской папке. Тогда ты из папки юзер/сосака обратиться к модую в сын собаки примерно так (точно как писать не помню):
package = require('.../syn/sobaki')

Вроде как-то так
>>885548
Аноним #86 #885548
>>885533
Спасибо анон
#87 #885600
Нубский вопрос по js-модулям.

Дано: есть бандл, собранный вебпаком (да хоть RequireJs.. неважно). Есть движок (Laravel, Yii etc). В бандле есть модуль, которому для работы нужны какие-то пользовательские данные из БД.

В шаблоне написано что-то вроде
<script src="i-am-idiot.js"></script>
<script>
var user = <?php echo $user; ?> (просто пример, забей на синтаксис и ошибки).
var idiot = new Idiot(user);
</script>

При олдскульном подходе всё работает. Но после упаковки модуля "i-am-idiot.js" с другими модулями и библиотеками, браузер говорит "Idiot is not defined". Само собой, как бы. Я понимаю, почему это происходит. Но я не понимаю, что делать?

Вариант перенести запрос данных аяксом внутрь "i-am-idiot.js" - не вариант.
>>885607
#88 #885607
>>885600
Зделой отдельный тег script с типом "application/json" и пиши в него данные для инициализации своего скрипта. Или я не совсем уловил суть твоей проблемы?
>>885611>>885613
#89 #885611
>>885607
Не совсем. Для каждого юзера данные разные конечно. Для разных экземпляров чего-либо тоже. Например, страницы /user/123 и /user/456

На первой надо юзать данные о юзере 123, на второй соответственно о юзере 456.
>>885617
#90 #885613
>>885607
Ну и сопутствующая проблема. На сайте 100500 страниц. При олдскульном подходе я просто на каждой странице делаю initSomething(options). или initSomething(), когда опций нет.

Если не делать этот вызов со страницы, а запихнуть в бандл, то он будет вызываться на каждой странице, потому что бандл включён в каждую страницу. Но это не то, чего хочется.
>>885617
#91 #885617
>>885611
>>885613
Так я не понял, чем не подходит тебе озвученный вариант?
Из своего пхп скрипта пишешь в страницу тег script с данными для инициализации, хоть для каждой отдельной страницы:

<script id="init" type="application/json"><?php echo "{'user': $user}"; ?></script>

Потом в своем бандле, как ты его называешь, подтягиваешь эти данные со страницы:

var user = JSON.parse(document.getElementById('init').innerHTML);
var idiot = new Idiot(user);
>>885618
#92 #885618
>>885617
Я неправильно тебя понял изначально. Я думал, ты предлагаешь на серваке создавать json-файлы. Так то конечно можно хоть в data-атрибуты инфу запихнуть. Но твой способ лучше, спасибо, возьму на заметку.

Но один минус есть. initIdiot будет вызвана на каждой странице, куда подключён бандл. А нужно, чтоб вызывалась только на конкретной странице.

Буквально минуту назад осенило. Может неидеальный способ, но тем не менее проблему решает. Надо просто в "i-am-idiot.js" дописать "window.Idiot = Idiot". Тогда можно спокойно юзать этот модуль только там, где мне нужно.
#93 #885626
>>885529
у меня был хуже случай, даже не заставляй вспоминать
#94 #885891
>>884383 (OP)
Что лучше учить angular или react? За каким фреймворком будущее?
#95 #885892
>>885891
Охуеть, как ты вовремя. Зашел за тем же вопросом.
>>885895
#96 #885895
>>885891
>>885892
Очень странный вопрос. На уровне Java или Javascript
>>885897>>885898
#97 #885897
>>885895
Но выбор-то все равно нужно сделать. Это нормальный вопрос.
>>885907
#98 #885898
>>885895
C чего бы? Тут сравниваются абсолютно эквивалентные вещи.
>>885907>>885922
#99 #885907
>>885897
По каким критериям ты хочешь сделать выбор? За обоими фреймворками стоят крупные корпорации, в ближайшие несколько лет с ними точно ничего не случится, они будут развиваться и обростать коммьюнити. Можешь тупо выбирать то, что больше нравится

>>885898
Абсолютно для разных потребностей и разных проектов, как мне кажется. Реакт больше для хуяк-хуяк и маленьких проектов, ангулар же с его развитым DI, в сравнении с реактом, больше для энтерпрайза
>>885922
#100 #885922
>>885907
Собственно вот такого ответа я и ожидал, начну вкатываться в ангуляр.
>>885898 анон
#101 #885947
>>885891
vue.js
#102 #885992
>>885891
Таки реакт - не фреймворк, а библиотека. Так что ключевая разница в том, нужна ли тебе структура приложения, предлагаемая ангуляром, или ты спроектируешь сам. В остальном дело вкуса. Что бы ни говорили, нормально клепать можно и с тем, и с другим.
>>886015
#103 #886015
>>885992
Какую структуру приложения предлагает ангуляр?
>>886019
59 Кб, 221x326
#105 #886026
Хочу стать гуру жса. Посоветуйте литературы. В программировании не новичек, могу в инглиш.
>>886027
#106 #886027
>>886026
А в шапку можешь?
>>886036
#107 #886036
>>886027
Шапку уже читал, и книжек примерно на гигабайт собрал. Поэтому и спросил с чего лучше начинать.
>>886067
#108 #886047
Все, я сам разобрался. Надо выбирать React:

>React JavaScript центричен



>Вот оно. В этом заключается ключевое различие React и Angular. К сожалению, Angular остается HTML ориентированным. Angular 2 не удалось решить наиболее принципиальную проблему архитектуры:



>Angular 2 продолжает помещать JS в HTML. React же помещает HTML в JS



>Я не достаточно выделил этот раскол. Это принципиально влияет на опыт разработки. В Angular HTML ориентированный дизайн остается его слабым местом. Как я и подчеркнул в JSX: The Other Side of the Coin, JavaScript более мощный чем HTML. Гораздо логичнее усиливать возможности JavaScript для поддержки разметки, чем HTML расширять логикой. HTML и JavaScript все равно должны быть как-то склеены и JavaScript ориентированный подход React является несомненным превосходством над Angular, Ember и Knockout c их HTML ориентированным подходом.



>Когда вы учите Angular, вы инвестируете своё время в приобретение знания о внутреннем языке (DSL) Angular. Полученное вам пригодится дальше, если вы будете использовать Angular. Если нет (вспоминаем, как закончилось время первого ангуляра ) — большая часть времени окажется потраченным впустую.



>Когда вы учите React, вы инвестируете свое время в приобретение знания о Javascript — DSL в React практически нет. Полученное знание 100% пригодится вам на дальнейшем пути, даже если React вы использовать не будете.



https://habrahabr.ru/post/274523/

Ну и напоследок:

>Едва выпустив Angular 2, Google анонсировала скорый релиз Angular 3



https://tproger.ru/news/angular-3-is-around-the-corner/

Ебал в рот такие расклады.
>>886066>>886076
#109 #886066
>>886047

>Ебал в рот такие расклады.


Они просто сменили версионирование. Как огнелис.
#110 #886067
>>886036
Один хуй после половины первой книги забьешь
118 Кб, 829x1009
#111 #886076
>>886047

> Angular 2 продолжает помещать JS в HTML


Не JS в HTML, хотя его, конечно, можно туда помещать, а синтаксические конструкции, которые что-то делают. И это не путает тебя, если ты всё делаешь правильно.
Более явно преимущества такого подхода видно в vuejs. Реакт, в сравнении с ним, во всех смыслах сосёт. Но ебучий маркетинг заставляет людей жрать componentWillReceiveProps
>>886089>>886161
#112 #886089
>>886076

> когда вы изучаете реакт, вы инвестируете свое время в js


А что по этому пункту скажешь?
>>886090>>886954
#113 #886090
>>886089
Этого я даже не понял. В других фреймворках не на жс пишешь, что ли?
127 Кб, 745x993
#114 #886129
Нужно сделать небольшое приложение, которое парсит содержимое некой страницы в интернете и предоставляет REST-интерфейс, который возвращает это спарсенные данные (в виде JSON).

Вопрос: как реализовать кэширование / сохранение данных, чтобы при каждом запросе к приложению, оно не ходило заново в сеть, не парсило данные, а возвращало имееющиеся? Но, скажем, раз в час оно обновляло данные. Как это проще всего сделать?
#115 #886138
>>886129
Листал нулевую, увидел даунский запрос, потом увидел, что это JS-тред, и всё понял.

Как реализовать кэширование? Как обычно его реализовывают. Можешь взять реляционную СУБД и складывать данные в неё. Делаешь колонку с таймшпампом последнего обновления страницы, а каждый раз при запросе проверяешь, как давно твои данные обновлялись, ну а там дальше либо просто отдаешь данные, либо обновляешь и отдаешь.

Также можешь взять Redis. В твоём случае этот вариант, скорее всего, более предпочтителен, потому что ты наверняка полный кретин, а значит, получив в руки реляционную вундервафлю, сделаешь всё через жопу, но если тебе вдруг очень большой объем данных в свой кэш складывать надо и в оперативку это не влезет, то лучше не надо.

И это не говоря уже о том, что можно кэш просто в переменной держать.

мимо-парсер-интернетов
>>886142>>886320
213 Кб, 814x894
#116 #886142
>>886138
Там довольно сложная структура данных, поэтому варианта с бд хотелось бы избежать, чтобы не городить кучу таблиц и связей для относительно небольшого приложения.

Поэтому и спросил про кэширование на уровне запроса. Типа, если я запросил данные с param1=aaa, param2=bbb, param3=ccc однажды, то при следующем таком вопросе не было нужды парсить страницу заново (некоторое время). Вот и думаю, как это кэшировать в памяти.
#117 #886147
>>886129
object.json.cash
1372 Кб, 1053x1000
#118 #886154
>>886129
>>886142
Возникла такая идея: сохранять всё в файлы .json.
Для запроса с param1=aaa, param2=bbb, param3=ccc создавать файл aaa_bbb_ccc.json и сохранять туда ответ. Работать это будет явно быстрее, чем каждый раз ходить в сеть. Однако наплодит куча файлов... И нужно будет еще придумать, где хранить timestamp. В памяти сделать что-то типа HashMap<String, TIme>?

Как вам вообще идея с файлами? Имеет право на жизнь или хуйня лютая?
>>886157>>886315
#119 #886156
>>886142
Я потому и упомянул Redis. Сериализуешь всё и пихаешь в key-value хранилище с таймаутом.
#120 #886157
>>886154

> хуйня лютая

#121 #886161
>>886076
А как насчет такой хуйни?

>ngIf and ngFor

>>886957
#122 #886170
>>884383 (OP)
сап, где можно бесплатно скачать курс Кантора по node за 2016 или хотя бы за 2015 год? Куча раздач 2013 года, но там скринкаст у него просто на ютубе лежит...
#123 #886172
>>886142
кури nginx что ли
#124 #886210
>>886142

>Там довольно сложная структура данных, поэтому варианта с бд хотелось бы избежать


kek
25 Кб, 1247x820
#125 #886262
Не знаю, куда еще обратиться. Сомневаюсь, что тут есть знающие аноны, но всё же буду благодарен, если кто поможет. Начал настраивать API карту для одной штуки и столкнулся вот с такой хренью.
То есть вроде она работает, но этот серый фон не могу понять, какого хуя он появился. Сам апи беру отсюда:
http://leafletjs.com/
То есть всё прописал везде, а серый фон не исчезает. Вот кароче.
>>886328
#126 #886313
>>886142

> сложная структура данных, поэтому варианта с бд хотелось бы избежать


Лол, может тебе про nosql рассказать?
#127 #886315
>>886154

> И нужно будет еще придумать, где хранить timestamp.


За щекой
#128 #886320
>>886138
попробуй релейт https://github.com/felixge/node-dirty

как вариант, из запроса делай хеш, и юзай его как ключ

если вообще лень что то делать и пофиг на сохранность данных, складывай всё в объект типа map

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

примерное решение:

var cache = new Map();

app.get('*', (req, res, next) => {

var hash = md5(req.baseUrl)

if (!cache[hash]) {
cache[hash] = {wathever}
}

res.send('ok');

})
>>886326
#129 #886326
>>886320

>как вариант, из запроса делай хеш, и юзай его как ключ


Вот нахуя? Чем урл не подходит в роли ключа?
Или у него что, тот самый случай, типа приватности ради нельзя хранить исходные урлы?
>>886332
#130 #886328
>>886262
Это же фон самой карты, нет?
>>886371
#131 #886332
>>886326

мд5 хеш 32х значный, урл может быть макс 2000 значная и я хз, что там с разными утф8 знаками будет еще, нахуй твои экперементы.
>>886339
#132 #886339
>>886332

>урл может быть макс 2000 значная и я хз, что там с разными утф8 знаками будет еще


Дабы не смущать нубов, которые примут твои слова за языковые ограничения:

>урл может быть макс 2000 значная


Q: Is there a limit on length of the key (string) in JS object?
A: No, there is no limit for the string length (as long as it fits into memory)
http://stackoverflow.com/questions/13367391/is-there-a-limit-on-length-of-the-key-string-in-js-object

>я хз, что там с разными утф8 знаками будет


Q: Are there any forbidden characters in key names, for JavaScript objects or JSON strings? Or characters that need to be escaped?
A: No. Any valid string is a valid key. It can even have " as long as you escape it
http://stackoverflow.com/questions/8676011/illegal-characters-in-object-or-json-key

А так похуй, конечно, пусть хоть в Вирпул хеширует урлы.
>>886639
#133 #886354
Опять нашествие даунов в жс треде. Ничего тут не меняется.
>>886355>>886363
0 Кб, 512x512
#134 #886355
>>886354
стикер отклеился
>>886367
#135 #886363
>>886354
Это ты так представился? А почему во множественном числе?
>>886550
57 Кб, 625x344
#136 #886367
>>886550
#137 #886371
>>886328
Там по гайду должна быть полная карта загрузится. бы дальше настраивать стал, но у меня почему-то серый фон. Хотя, может, я тупой такой.
>>886378
#139 #886516
>>884735
Вот кстати тайпскрипт и нг2 всем хороши, кроме того, что минимизированные сорцы ангуляра2 весят ~3 мб.
пиздец блять.
А вот в плане концепции ng2+typecript - заебись. Не уверен, что ангуляр2 приживется в вебе. Кстати сайт с доками по ангуляру2 сделан на ангуляр1, то есть даже разрабы ссут использовать своё творение.
>>886532
#140 #886532
>>886516

> Кстати сайт с доками по ангуляру2 сделан на ангуляр1, то есть даже разрабы ссут использовать своё творение.


Очень странный вывод, учитывая, что сайт появился одновременно с началом разработки ангулара2
>>886542
#141 #886542
>>886532
Окей, этого я не знал. Однако учитывая сколько ангуляр2 уже пилится, можно было бы и перенести на новую версию.
0 Кб, 512x512
#142 #886550
>>886363
>>886367
что еще спезданешь?
#143 #886595
Не могу понять главную идею js, изучаю ноду около недели.

Есть Express. Есть таблица в Постгрес. Хочу написать отдельный модуль для общения с таблицей. Получилась следующая заготовка https://ideone.com/nTErcl , она же на пикче.

Как в данном случае совладать с асинхронностью: дождаться события end и вернуть из функции таблицу?
>>886597>>886635
14 Кб, 579x393
#144 #886597
>>886595
пик отвалился
>>886629>>886636
#145 #886628
Посоветуйте фреймворк для работы с cookie. Хочу, чтобы система запоминала данные, которые пользователь вводил в инпут несколько дней назад и когда он вновь зайдет на страницу, чтобы введённые им данные уже были введены в инпут.
#146 #886629
>>886597
Promises, motherfucker, do you know it??
>>886644
#147 #886635
>>886595

тебе нужно:

1 в контексте рутера, вызвать метод из модели
2 и в его контексте (через колбэк) рендерить твои хтмл-шаблоны

думай "контекстами"
>>886636>>886644
#148 #886636
>>886635
>>886597

добавь lib.all(options, cb);

*

var model = require('model');

app.get('/', (req, res, next) => {

model.all(null, (err, result) => {

if (err) throw (err);

res.send(result.whatever);

});

});
>>886644
#149 #886639
>>886339

я тащемто думал про это:

>Microsoft Internet Explorer: Начиная с четвертой версии браузера, максимальная длина воспринимаемого URL составляет 2,083 символов. При этом длина GET-запроса лимитирована 2,048 символа. На POST никаких ограничений, понятное дело, не накладывается.

#150 #886643
Всем доброго времени суток! Недавно начал изучать ангуляр, и сегодня столкнулся с проблемой: не могу обновить $scope:

http://pastebin.com/1pA0Ma28

UserSessionService.SaveData это $http
>>886655
#151 #886644
>>886636
>>886635
Понял в каком направлении двигаться. Тоже думал о подобном решении, но структура показалась слишком непривычной, противоестественной. Вас тут есть за что уважать. Для js после остальных языков нужно все мышление перевернуть. Спасибо!

>>886629
До ES6 пока не добрался. Это действительно способ, которым принято пользоваться в js? Пока не разобрался, но решение должно получиться вполне рабочим. В чем тогда разница между этим вариантом и вариантом описанным выше? кроме ES6 Буду признателен за любые рекомендации.
>>886785
#152 #886655
>>886643
Попробуй добавить $scope.$apply();
после $scope.user.userfio = "Trololo";
#153 #886656
>>886655
А еще лучше кинь побольше кода.
>>886674
#154 #886665
>>886655
чо эта блять за доллары?) ангуляр это похапе внутри джеес?
>>886671>>886693
#155 #886666
>>886655
В общем, практика показала, что проблема в том, что обновляется только $scope в пределах ng-view, как можно обновить переменную вне ng-view?
#156 #886671
>>886665
jQuery тоже "похапе внутри JS"? Perl - похапе внутри чего?
#157 #886674
>>886656
Прикрутил Scope напрямую к сервису с данными пользователя. Первый день изучаю ангуляр, и если честно, полный восторг!
>>886677
#158 #886677
>>886674
Круто, но в будущем не забудь открутить, когда освоишься. Скопе в сервисе - не очень хорошая практика.
>>886681>>886682
#159 #886681
>>886677
не скоп в сервисе, а сервис в скопе, неправильно сформулировал:

http://pastebin.com/H1pPMwYK
#160 #886682
>>886677
Или так тоже фигово делать?
>>886685
#161 #886685
>>886682
Да, фигово. Пока не заморачивайся, но в будущем надо будет.
Рекомендую пройти
https://www.codeschool.com/courses/shaping-up-with-angular-js

Что у тебя промисы в сервисе возвращает? $http, $q, Promise, что-то еще?
>>886687
#162 #886687
>>886690
#163 #886690
>>886687
Со scope apply я обосрался.
В твоем случае наверное сейчас самым простым и не ломающим мозг вариантом будет почитать про $rootScope.

Я лично с таким не сталкивался, так как подозреваю ты не совсем красиво пока решаешь свои задачи, но если бы пришлось разбираться, то я бы загуглил
scope outside ng view
>>886702
#164 #886693
>>886665
Внутриангулярные хуитки )))))xDxD
#165 #886702
>>886690
да, я сразу попытался $scope.$apply, но он падает с ошибкой, и stackoverflow толсто намекает, что $scope.$apply нужен в том случае, если переменные меняются вне angular, например в jQuery.post. У меня рвет шаблон то, что весь шаблон рендерится со $scope'ом от текущего контроллера, но вот поменять его, ска, можно только в ng-view. А, например, в ng-include уже ни-ни.
>>886703
#166 #886703
>>886702
Скопы могут быть вложенными. А еще можно из скопа ребенка обращаться к скопу родителя (не всегда), по-моему это $scope.$parent.
Пройди какой-нибудь пошаговый туториал и читай доку какую тебе удобно. Не будешь наступать на все возможные грабли.
134 Кб, 1280x803
#167 #886750
>>884383 (OP)
Утречка, форумчане. Собираюсь делать первый свой серьёзный проект на Node.js. Твёрдо настроен сделать не халтурное говно (как обычно), а конфетку, которую я буду использовать в будущем. Но проблема заключается в том, что я не знаю, как правильно начать, как заложить хороший фундамент ? Наслышан о готовых решениях, сборщиках проектов, паттернах проектирования и тд, но не могу понять, что мне действительно нужно и нужно ли вообще ? Что посоветуешь мне ты, анон ?
Проэкт - веб-приложуха на веб-сокетах.
>>886751
#168 #886751
>>886750
Гугли pandas
>>886754
#169 #886754
>>886751
Загуглил. Это скорее относится именно к разработке самой приложухи. А мне же ещё систему авторизации, базу данных и много всего нужно прикрутить. Нужно что-то, что поможет создать нужные файлы, облегчит рутину ...
>>886757>>886779
#170 #886757
>>886754
Рутина?
Ну тебе наверное это:
https://www.npmjs.com/package/generator-socketio

С термином скаффолдинг вообще знаком?
#171 #886779
>>886754
поищи инфу по разработке энетерпрайз приложения
#172 #886785
>>886644

> Для js после остальных языков нужно все мышление перевернуть.


Это раньше так было, сейчас, с приходом async/await, всё очень просто стало
sage #173 #886789
Есть ли какая нибудь очень лёгкая в настройке и работе база данных?
Есть не более 500 маленьких джейсонин, с которыми идёт работа и которые надо сохранять (иначе хватило бы и массива).
>>886806
#174 #886806
>>886789
sqlite
>>886809
#175 #886809
>>886806
Только если хочешь работать с sql,
поищи для себя что-то вроде https://www.npmjs.com/package/node-dbi
.
Вообще любая распространенная бд ставится без проблем по гуглу.
Еще если у тебя готовые json файлики, ты можешь читать (и перезаписывать) напрямую их.

Mongodb будет очень дружественна к твоим json. Можешь вообще их сохранять полностью как таблицы, только в документоориентированных бд это называется другими терминами.
#176 #886817
Изучаю JS, прошёл по learnjs до событий. Сейчас наткнулся на хабре на данный пост habrahabr.ru/post/312022/, и как-то приуныл. Действительно ли все это нужно изучать, и это везде требуется? Сложно ли это изучить? А то я и так JS уже месяца 3 учу, а если ещё все эти технологии так же объемны, то я до конца жизни всем этим не овладею, учитывая что они появляются постоянно.
>>886825>>886858
#177 #886825
>>886817
Забей, не все так страшно. Всё выучится со временем.
А вообще, в кодинге пиздец везде, в любом языке, любом направлении.
Будешь разгребать моря говна, разбираться почему не работает то что должно и т.д...
Добро пожаловать в реальный мир, сынок.
>>886958
#178 #886858
>>886817
ты 3 месяца над learnjs сидишь? Если да - рекомендую поплотнее заняться. Там все прорешивается вдоль и поперек за 2 спокойно. (но если опыта совсем не было с другими языками, тогда может и норм побольше потратить) После него еще надо будет всякие нюансики почитать и приступать к сборщикам, фреймворкам, библиотекам, ноде и т.д.

По-поводу статьи. А че в ней не так? Ну может утрировано только слегка.
Надо чтобы тебе было по-приколу постоянно изучать что-то, тогда и проблем не будет. Как только более-менее освоишься много времени дальше занимать не будет. Вышла новая штука - покрутил ее, почитал статейки от умных людей (если таковые на момент выхода имеются), понял для чего зачем, какие проблеммы призвана решать. Потом, если начнется массовое использование вспомнишь что уже в ней копался и шишки набил. Ну как-то так.

По-воду везде ли требуется все ли изучать.
Ну я надеюсь, ты ведь хочешь быть хорошим специалистом? А хороший спец любит свою работу. Порой можно сказать, что это второе хобби. На работе одно крутишь - дома пришел - другие штуки пробуешь, поэтому так или иначе будешь вкурсе.
Ты конечно можешь найти какую-нибудь непонятную контору, где вообще ни о чем не слышали и пилят свои поделия абы как. Но тебе разве не будет там грустно работать? Как еще одна проблемма: при смене работы придется искать такую же убогую...

Решать конечно тебе, так что хорошо подумай.
Если решился - значит делай, превозмагай если потребуется.
Если нет - значит лучше найди чем другим заняться, может в тебе талантливый музыкант спит или врач или сантехник или владелец уютного кафетерия с вкусными булочками.
>>886882>>886958
0 Кб, 512x512
#179 #886881
>>884383 (OP)
Допишите в ОП посте, что всем кто боится новых версий ангуляра, огромного количества технологий - лучше выбрать другой язык и другую отрасль информатики. Есть питон, java, haskell - там все гораздо проще и нет частых обновлений.
хотя эти дауны все равно шапку не читают, таких просто игнорировать
#180 #886882
Или как советуют анон выше>>886858 заняться чем-то другим.
0 Кб, 512x512
#181 #886907
Как использовать PassportJS БЕЗ форм? Надо просто передать туда данные как аргументы.

logIn(data) {
let username = data.username, password = data.password;

passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' })

passport.authenticate(// ???)

},
>>886942
#182 #886942
>>886907
Читай доки, педор
http://passportjs.org/docs#log-in
>>886960
#183 #886954
>>886089
typescript - это зык-надстройка Javascript. Как следствие, он [bold]КОМПИЛИРУЕТСЯ[/bold] в javascript. Изучая angular, соответственно, ты изучаешь тотже жс, только с измененным синтаксисом. Это как CoffeeScript , если ты знаком с этим
#184 #886957
>>886161

> синтаксические конструкции


Это ведь они и есть
#185 #886958
>>886825
>>886858
Спасибо аноны. Работаю просто сейчас по 5 дней, после работы остается по 2-3 часа. Да и прям плотно трачу эти часы на программирование только в последний месяц. Планирую в будущем, когда появится возможность, перейти на незапарную работу дня по 3 в неделю и целиком окунуться в программирование.

Алсо, читаю параллельно SICP, с виду язык scheme кажется более красивым и "стройным". Но, не уверен в актуальности лиспа, да и предвижу, что это красота есть только в учебных задачах, а в реальности куча подводных камней. Поэтому продолжаю изучать JS из-за популярности и больших возможностей этого языка.
#186 #886960
>>886942
и что с этим говном делать? как туда передать логин и паруль?
>>886961
#187 #886961
>>886960
let user = { username: data.username, password: data.password }
>>886981
#188 #886981
>>886961
А как получить обратно из БД юзер-дата? Там помимо юзера ещё данные которые нушны.

app.post('/login', (req, res) => {
const { user } = req.body;

req.login(user, err => {
if (err) { return err; }

db.logIn().then(() => {
res.redirect('/loginsucsess')
});
});
});

logIn() {
passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' })
},
>>886983>>886985
#189 #886983
>>886981
там в слове success ошибка, не пинайте
>>886985
#190 #886985
>>886981
>>886983
Ты вообще понимаешь зачем ты пасспорт юзнаешь? Он сам эти данные достаёт при каждом запросе и кладет их в req.user
>>886987
#191 #886987
>>886985
Юзаю passport чтобы сохранить сессию и соответственно постить контент от лица юзера. Зачем же его ещё юзать?
>>886990
#192 #886990
>>886987
За сессию отвечает express-session, а passport нужен для аутентификации
>>886991
#193 #886991
>>886990
Зачем express-session если можно сделать app.use(passport.session());
>>886995
#194 #886995
>>886991

> если можно сделать app.use(passport.session());


Который использует express-session, да. И служит для аутентификации, а не для сессий.
>>887004
#195 #887004
>>886995
Passport exposes a login() function on req (also aliased as logIn()) that can be used to establish a login session.

А это что? Написано же - сессия.
>>887006
#196 #887006
>>887004
И что же происходит при этом establish, не расскажешь?
>>887011
#197 #887011
>>887006
Понятия не имею. Если копаться в каждом из 40 модулей, можно и ёбнуться. Но думаю что судя по описанию, устанавливается сессия.
>>887013
#198 #887013
>>887011

> Если копаться в каждом из 40 модулей, можно и ёбнуться


А если не копаться, то можно использовать какой-то модуль, потому что все его использовать и не знать вообще зачем он тебе нужен, и нужен ли вообще. Как это делаешь ты
>>887032
#199 #887032
>>887013
Я просто хотел получить данные юзера.
#200 #887138
>>884383 (OP)
Анон, а как именно ты используешь Ангуляр ?
А то я вот почитал описание в интернете и так и не понял, нахуя он вообще нужен ?
>>887145>>887146
#202 #887146
>>887138
Задай себе этот вопрос, когда будешь прикручивать на свой сайтик поверх jquery шаблонизатор, чтобы облегчить биндинг данных и вообще работу с html. А еще когда ты возьмешься пилить сайтик с достаточно сложной логикой и будешь охуевать от той лапши, которую ты напилил и которую надо поддерживать. Это в принципе не конкретно об ангуляре, а в целом о фреймворках.

Для простых веб задач ангуляр не нужен. Для сложных - может помочь упростить разработку сейчас, и поддержку в будущем.
>>887176
#203 #887152
Привет, анон.
Расскажи, в чём отличие по работе front-end у джуна и мида?
Вот приходит джун и приходит мид на работу - какие задачи они будут делать? Что - привелегия джуна, а что - для джуна уже перебор?

Ваять роуты на ангуляре с таблицами по ui-grids и стилизовывать это всё sass'ом - это кто?
>>887262>>888001
4734 Кб, 3264x1840
#204 #887176
>>887146
А как именно ? Что вообще он делает, если вкратце ?
Вот например JQuery:
- Подключаешь через ссылку прямо в документе.
- Помогает удобно искать и изменять элементы на странице
- Удобно работает с событиями
- Можно днлать анимации
А вот можно ли в подобном роде датя описание Ангуляру ?
А то опять таки, на Википедии тоже написано что облегчает разработку одностраничных веб-приложений, но не совсем понятно каким образом ...
>>887204>>887321
#205 #887204
>>887176
Если в кратце, всякую работу с dom может и ангуляр. Про дата биндинг тебе антоша сверху кинул ссылку. Ты не будешь по селектору искать элемент, брать его значения, вешать обработчики для событий, чтобы менять элемент - в ангуляре это делается значительно проще.
В ангуляре события есть, но они немного другие.
По-хорошему ангуляр приложения нужно писать, придерживаясь определенных правил, тогда у тебя код будет аккуратно структурирован и с ним удобно будет работать - то есть работа с бизнес-логикой в одном месте, работа с DOM - в другом месте и т.д.. Если будешь писать приложуху на jQuery, то возможно ты тоже захочешь структурировать свой код и в итоге все равно напишешь свое подобие ангуляра, но только скорее всего не без боли.
Вот я тебе маленькую простыню текста написал, но смотри:
если ты предложишь писать сложное веб приложение на jQuery, то на тебя посмотрят как на поехавшего. Даже если ты не хочешь, какой-то из фреймворков тебе все равно придется изучить, чтобы расти как веб деву.
Кстати на некоторых проектах Angular и jQuery используются вместе.
>>887210
107 Кб, 750x1000
#206 #887210
>>887204
О. от это отличньо рассписано. Спасибо Антош. теперь я окончательно сё понял.
>>887216
sage #207 #887216
>>887210
Пожалуйста. скажи имя няши с первого пика.
#208 #887262
>>887152
Но ведь обилием "кульных терминов роуты юи юи)))" не заполнишь пустоту в голове.
Когда ты будешь миддлом, тебе сами предложат эту позицию.
163 Кб, 462x451
#209 #887321
>>887176
>>884383 (OP)

тоже хочу обновить свой технолоджи стек, сейчас смотрю релейт

1. Bootstrap components written in pure AngularJS https://angular-ui.github.io/bootstrap/

1.1. Bootstrap 4 components, powered by Angular 2 https://ng-bootstrap.github.io/#/home

2. The most popular front-end framework, rebuilt for React http://react-bootstrap.github.io/

пока не могу сделать выбор

в идеале хотелось бы рендерить DOM бутстрапа на node.js и на клиентах

может кто знает такие проекты, поделитесь с Анонам
>>887494
#210 #887403
Помоги разобраться, Анон. Я знаю для тебя это не составит труда. Код должен выводит натуральные числа, но при таком варианте работает не корректно http://plnkr.co/edit/YE2bsBCTGtdTHaOkHkpe?p=info, а вот при таком все норм http://plnkr.co/edit/jolZ2RF7nbe7TTa4OGNe?p=catalogue . Мне кажется что и первый вариант должен адекватно работать, но почему это не так не могу разобраться?
>>887420>>887435
#211 #887420
>>887403
у тебя у первой проверке цикла 2<2
#212 #887435
>>887403
У тебя вывод числа в консоль для каждого i происходит по несколько раз. Например при i = 5 выводится в консоль при j = 2, j = 3, j = 4.
#213 #887494
>>887321
Что ты подразумеваешь под " рендерить DOM бутстрапа на node.js"
Впервые с такой формулировкой сталкиваюсь.
#214 #887502
>>887494

что бы на сервере HTML (например бутсрап) имел свой виртуальный DOM

типо:

var bsWgts = require('bootstrap-templates');

app.get('/', () => {

res.send(bsWgts.panel({

title : 'Demo',
body : 'Ахуенный текст '
}));

});
>>887518>>887531
#215 #887512
>>887494

в ЖС есть по умолчанию релейт http://www.w3schools.com/js/js_htmldom_nodes.asp

было бы архи норм, найти HTML бутстрапа написанный в таком формате
>>887531>>887548
#216 #887518
>>887502
Но ведь... Шаблонизаторы, контекст...
>>887543
#218 #887543
>>887518

да, но тебе нужно писать шаблоны на HTML самому, имхо это лишнее
>>887550
#219 #887548
#220 #887550
>>887543
Ну допустим. А если тебе надо кастомизировавать бутстрпавый аккордеон? Все равно же в итоге перепишешь на рендеринг шаблона.

Подскажи мне use case, когда можно использовать рендеринг html непосредственно в скрипте. Может быть тоже буду использовать.
>>887587
37 Кб, 727x536
#221 #887587
>>887550

у меня сейчас такая структура

и я понял, что там templates лишнее звено, так как в pages/my-pages есть videochat.page.view.js

в котором из шаблонов собирается страница

шаблоны туда поставляются в виде объектов из views/templates/templates.api.js
#222 #887590
>>887587

*ветка /page старая, она не используется и будет удалена. вместо неё будут /pages
#223 #887607
>>887587

>templates лишнее звено



лишнее в плане, что мне нужно будет там делать шаблоны для компонентов бутсрапа. так то полюбому эта ветка нужна, так как в ней будут шаблоны того же <html> документа и другие стандартные вещи. проблема в бутстрапе, не охота велосипедить для него АПИ
35 Кб, 800x350
#224 #887641
>>884383 (OP)
Перестал работать автокомплит в js, да и вообще. Куда копать? Переустанавливать пробовал, пересобирать пробовал, без толку. Сижу на archlinux, если что.
>>887667>>887700
#225 #887642
>>887587
У тебя во вьюхах и бизнес-логика, и логика рендеринга?
>>887646
#226 #887646
>>887642

>логика рендеринга



only this.

в них только "оборачиваются" данные с /model

логика представлена в модели. и частично в рутере
>>887677
#227 #887652
ахуеть, правильно ли я понимаю, что гит не пушит пустые папки? Какие у него еще подводные камни?
#228 #887658
>>887652
Правильно
#229 #887661
>>887652
Делай пустой файл в папке.
обычно делают .gitkeep
#230 #887664
>>887652

да, делай в такой папке файл .gitkeep
#231 #887667
>>887641

> Куда копать



stackoverflow?
>>887670
#232 #887670
>>887667
Я хуйло и не умею в инглиш((
>>887680
#233 #887677
>>887646
>>887587

>pages/my-pages есть videochat.page.view.js


>в котором из шаблонов собирается страница



Обычно такое переносят в шаблонизатор.

Мне твоя архитектура не внушает доверия. Не выглядит такой, чтобы легко было работать.

Это коммерческий проект или твой учебный? Кто-то код смотрел, что говорили?
>>887695
#234 #887680
>>887670

пипец проблема https://translate.google.de/
#235 #887695
>>887677

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

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

>Обычно такое переносят в шаблонизатор.



"шаблонизатор" как раз и представлен модулем /templates, не?

есть еще такой момент, приложение работает на sockets, тут я пока тру не решил куда поместить их логику, думаю в /router
59 Кб, 2560x1440
#236 #887700
>>887641
Проиграл. Вангую, что автокомплит пропал после очередного "пакман суй".
#237 #887701
>>887695

>модулем /views/templates


>fix

#238 #887715
>>887695
Я имел в виду, что сборка шаблона из партиалов, наследование шаблонов пишется непосредственно в шаблонах.
>>887716>>887741
#239 #887716
>>887715
*И разруливается шаблонизатором
>>887741
76 Кб, 202x102
#240 #887725
лол, вся суть ЖС одним логотипом
#241 #887739
>>887695
На серверном js вроде же работает правило one feature - one file ?
В роутах у тебя для сокетов событие и хендлер, но сама реализация хендлера лежит отдельно. Ну да, наверное я бы и сам так делал, если бы кодил под ноду, только еще бы в имени файла обязательно обозначил, что это роуты под сокеты.
>>887760
79 Кб, 1076x653
#242 #887741
>>887715
>>887716

ок, в моём паттерне шаблонизатор представленный модулем /views/templates/templates.api.js предоставляет шаблоны партиалов в виде объектов (например каркас ХТМЛ дока и прочие элементы) из которых в модуле /pages/my-pages/<whatever>/<whatever>.page.view.js собирается всё что угодно и как угодно.

сборка страниц происходит как на пике.

инб4: это одно из 100 возможных решений, я не на что не претендую.
>>887747
#243 #887747
>>887741
Я понял тебя. Я бы конечно так не делал, так как попахивает велосепидизмом с легкой формой мазохизма, но если работает и устраивает как заказчика, так и программиста лол, то почему бы и нет. Если вдруг надо будет, перепишешь.
>>887750>>887772
#244 #887750
>>887747
* актуально для сложных вьюх.
для простых, вроде пика скрин выглядит цивильно
#245 #887754
>>885891
angular 2
#246 #887760
>>887739

ок, получилась такая структура

/router/router.http.js

/router/router.sockets.js

>реализация хендлера



я думаю в router.sockets.js поместить события и в них же логику, типо:

whatever.events.on('event one', (socket) => {
socket.emit('test1', { hello: '1' });
});

whatever.events.on('event two', (socket) => {
socket.emit('test2', { hello: '2' });
});

анонимные функции в примере, это же вроде и есть хендлеры?

>one feature - one file



хм, я думаю в отдельные файлы пилить логику для router.http или router.sockets, вроде и так уже норм разделение?
#246 #887760
>>887739

ок, получилась такая структура

/router/router.http.js

/router/router.sockets.js

>реализация хендлера



я думаю в router.sockets.js поместить события и в них же логику, типо:

whatever.events.on('event one', (socket) => {
socket.emit('test1', { hello: '1' });
});

whatever.events.on('event two', (socket) => {
socket.emit('test2', { hello: '2' });
});

анонимные функции в примере, это же вроде и есть хендлеры?

>one feature - one file



хм, я думаю в отдельные файлы пилить логику для router.http или router.sockets, вроде и так уже норм разделение?
>>887770
#247 #887770
>>887760
Да, верно. Анонимные функции - хендлеры.

Когда-нибудь твой router.sockets может стать 2к+ строчек кода. Если вдруг ты наймешь фрилансера помогать тебе писать проект, он будет тебя материть, уверен.

Вообще, почему ты не захотел следовать MVC? Есть даже уже готовые структуры node express проектов - пользуйся не хочу.
>>887774>>887784
#248 #887772
>>887747

>велосепидизм



да тут сложно, меня этот паттерн устраивает 10/10.

меня смущает всего один момент, что для бутсрапа нет готового абстрактного класса, и мне его придётся возможно велосипедить.

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

предложи другой вариант для клиентского UI уровня бутсрапа, как насчет ангуляра и реакта, у них есть готовые компоненты и сетка, которая еще и мобайл фирст?
>>887785
#249 #887774
>>887770

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



готов поспорить с тобой тут. если использовать инструмент IDE с инструментом outline, то весь код у тебя как на ладони, будь он хоть 100к строчек
>>887776
#250 #887776
>>887774

>использовать IDE с инструментом outline


>fix

#251 #887784
>>887770

>Вообще, почему ты не захотел следовать MVC



лол так это MVC же и есть, просто дополненный, типо MVC-Х
>>887785
#252 #887785
>>887772

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



Вот и говорю - мазохизм и велосипеды. Усложняешь вещи, которые можно было бы делать проще.

IDE - шка может начать страдать от слишком больших файлов, но больше - программист. Даже с outline. Еще на репозитории в онлайн режиме сложнее будет с такими сорцами взаимодействовать.

>>887784
Зачем тогда роуты контроллерами сделал?
>>887797
#253 #887788
Сеточка - ну... skeleton, foundation,
sass+susy...

На ангуляр уже куча всякого дерьма накопилась на любой вкус, про реакт не знаю.
114 Кб, 876x883
#254 #887797
>>887785

>Усложняешь вещи, которые можно было бы делать проще



ок, я заинтригован, решение в студию

>IDE - шка может начать страдать от слишком больших файлов, но больше - программист



хм х/з что там у тебя за IDE такая в 2016, я пишу в eclipse neon с этим плагином https://marketplace.eclipse.org/content/tern-eclipse-ide

всё летает.

насчет страданий программиста х/з, возможно дерево файлов с четкими именами наглядней. ок возможно ты тут прав, я подумаю над этим

>Зачем тогда роуты контроллерами сделал?



всё немного иначе чем ты думаешь

в app.js всего 2ве строки

// Other routes

const $router = require('./router/router.http')

httpApp.all('*', $router.api)

в рутере происходит что на пике

как таковой контроллер находится в /views/views.controller.js

он как раз на основе path выбирает какую подгрузить страницу из /views/pages/
114 Кб, 876x883
#254 #887797
>>887785

>Усложняешь вещи, которые можно было бы делать проще



ок, я заинтригован, решение в студию

>IDE - шка может начать страдать от слишком больших файлов, но больше - программист



хм х/з что там у тебя за IDE такая в 2016, я пишу в eclipse neon с этим плагином https://marketplace.eclipse.org/content/tern-eclipse-ide

всё летает.

насчет страданий программиста х/з, возможно дерево файлов с четкими именами наглядней. ок возможно ты тут прав, я подумаю над этим

>Зачем тогда роуты контроллерами сделал?



всё немного иначе чем ты думаешь

в app.js всего 2ве строки

// Other routes

const $router = require('./router/router.http')

httpApp.all('*', $router.api)

в рутере происходит что на пике

как таковой контроллер находится в /views/views.controller.js

он как раз на основе path выбирает какую подгрузить страницу из /views/pages/
>>887819
#255 #887802
Почему запрос ничего не шлёт обратно? res.send не работает, на клиенте пусто. Ошибки не выскакивают.

app.post('/login', (req, res, next) => {

console.log(JSON.stringify(data)) // Обьект с данными
db.logIn(req, res, next).then(data => res.send(JSON.stringify(data)) );

});

logIn(req, res, next) {

return User
.findOne({ username: req.body.username })
.then((user) => {
if (user.password == req.body.password) {
console.log('Password is OK');
req.session.user = {
id: user._id,
username: user.username,
color: user.color
}
return Promise.resolve(req.session.user)
} else {
return Promise.reject('Password is wrong')
}
})
.catch((err) => {
return next(err)
})

},
#255 #887802
Почему запрос ничего не шлёт обратно? res.send не работает, на клиенте пусто. Ошибки не выскакивают.

app.post('/login', (req, res, next) => {

console.log(JSON.stringify(data)) // Обьект с данными
db.logIn(req, res, next).then(data => res.send(JSON.stringify(data)) );

});

logIn(req, res, next) {

return User
.findOne({ username: req.body.username })
.then((user) => {
if (user.password == req.body.password) {
console.log('Password is OK');
req.session.user = {
id: user._id,
username: user.username,
color: user.color
}
return Promise.resolve(req.session.user)
} else {
return Promise.reject('Password is wrong')
}
})
.catch((err) => {
return next(err)
})

},
>>887807>>887812
#256 #887807
>>887802
p.s. console.log(JSON.stringify(data)) на самом деле внутри .then перед res.send
#258 #887819
>>887797
Честно, не знаю зачем тебе нужен абстрактный бутстрап класс, но сам факт того, что тебе понадобился подобный класс уже вызывает вопросы.

Я предлагаю не рулить бутстрапом нигде, кроме непосредственно шаблона. В контексте твоего сервера, если я правильно его понимаю, ты не используешь объекты на базе твоего абстрактного бутстрап класса, но можешь подключать бутстрап партиал компоненты вида acordeon.partial.htm там где нужно.

А вообще самое заебись, если твоему абстрактному верстальщику вообще не придется лезть в код, чтобы изменить где и как элементы шаблона подключаются.

Еще те же самые бутстрап компоненты требуют не только хтмл, но и скрипты. Компоненты может потребоваться конфигурировать на клиентских скриптах. Как ты будешь это разруливать?

Для использования ангуляров, реактов и прочего тебе нужно будет пересмотреть свою архитектуру в пользу переделки сервера в апишку.
>>887857
0 Кб, 512x512
#259 #887833
>>887812
Пиздец, я ебал мозги этим три дня, и в итоге оказалось что промис выбрасывает данные только в переменную с тем же именем что и входная. Поистине надо обладать баттхертоустойчивым пердаком чтобы с этим совладать.
#260 #887857
>>887819

>зачем тебе нужен абстрактный бутстрап класс



всё просто

1. на строне сервера для доставки определенных шаблонов в /views/pages/
2. для доставки всех элементов бутстрапа на сторону клиента в скрытый элемент на странице <div class="hide js-bs-templates"></div>

2й пунк, для того, что бы я потом селектором jquery мог брать оттуда готовые, отрендеренные клиентом виджеты, и вставлять их в рандомные места странницы

например:

var _bs = $('div.js-html-templates');

var button = _bs.find('div.button').clone();

$('body').append(button.html('Кнопка #1'));

$('body').append(button.html('Кнопка #2'));

таки это всё работает без всяких реактов и ангуляров. клиент рендерит тебе готовые виджеты с CSS и прочими фичами, ты их лишь клонируешь и меняешь их html
>>887876>>887887
62 Кб, 450x638
#261 #887876
>>887857

*и внезапно, мы опять же приходим в итоге к MVC паттерну, но уже на строне клиента

<div class="hide js-bs-templates"></div> - представляет Views

var _bs = $('div.js-html-templates'); представляет Controller

моделью в этом концепте будут либо данные с сервера, либо твои данные, которые ты обернёшь в туже кнопку например в виде её innerHTML.
>>887882
#262 #887882
>>887876

>var _bs = $('div.js-bs-templates')


>fix

#263 #887887
>>887857
Зачем доставлять на сторону клиента все элементы бутстрапа, даже не нужные на текущей странице? Каких целей ты хочешь этим добиться?
>>887896>>887909
#264 #887896
>>887887

ООП же
>>887899>>887909
#265 #887899
>>887896
Ладно, чувак. Удачи тебе с проектом, желаю чтоб выстрелил. Подумаю над твоей реализацией всего, может что-то для себя найду полезное.
>>887909
#266 #887909
>>887887
>>887896

You wanted a banana but you got a gorilla holding the banana

>>887899

пасибо Анон, добра тебе

если интересно/нужно, технология проекта https://en.wikipedia.org/wiki/WebRTC

фреймворк с кучей примеров и ахуенной документацией https://github.com/priologic/easyrtc
>>887916
#267 #887916
>>887909

>WebRTC



да, кста, учите новый термин Антохи: "servent" https://en.wiktionary.org/wiki/servent

ну и на засыпку, подумайте на досуге, как эта технология через пару лет изменит Мир
>>887924>>887929
#268 #887924
>>887916

> пару лет


Ты как будто первый день родился.
Через пару лет уже этот новый, модный, молодежный термин устареет пару раз, будут совершенно новые концепции (которые, разумеется, потребуют все переписать с нуля).
>>887950
#269 #887929
>>887916
Скорее всего понятие "браузер" довольно узко отражает всё что можно делать с помощью такого клиента. Может быть будет какой то универсальный "клиент" - все ММО игры будут работать через него, вся информация будет течь peer-to-peer как электрические импульсы между нейронами. Только здесь встаёт вопрос о том что такое говноподелие как JS в нынешнем виде при этом использовать просто идиотская идея. Нужен WebAssembly в который будет копилироваться какой то новый JS2.0 возможно с похожим синтаксисом но без всех этих багов вроде typeof null и без пяти вариантов "как сделать одно и тоже действие". Но одно можно сказать почти с уверенностью - если и будут разрабатываться интерфейсы для дополненной реальности, скорее всего они будут на языке который будет иметь похожий синтаксис и логику.
#270 #887930
Почему в тестах querySelector и querySelectorAll работают значительно медленнее, чем getElementsByTagName, getElementById и getElementsByClassName?
https://jsperf.com/element-id
https://jsperf.com/taganame
https://jsperf.com/classnamespeed-test
https://jsperf.com/idtagname-speed
https://jsperf.com/queryselectorall-radio-checkbox-test
>>888613
#271 #887950
>>887924

имхо ВР на подходе, технология webRtc норм подходит для неё. думаю что всё будет штабильно

>>887929

>Только здесь встаёт вопрос о том что такое говноподелие как JS в нынешнем виде при этом использовать просто идиотская идея



х/з, после пыха конечно первое время было непривычно работать с ЖС, но теперь у меня нооборот чувство, что ЖС как раз работает так и нужно тру языку.

>без пяти вариантов "как сделать одно и тоже действие"



имхо в целом если ты можешь различать {} и [] тебе должно быть похуй на синтакс и язык как таковой.

кста значек для срелочных функций тоже имхо в ЖС удачно выбрали: () => {} красота имхо 10/10 просто

>WebAssembly



вроде ключевые модули ноды написанны на си. имхо даже если внедрят этот твой WebAssembly, ты всёравно будешь работать сним в лексической среде через обёртку языка ЖС

>typeof null



старо как мир, вроде это не критично

>If null is a primitive, why does typeof(null) return "object"?


>Because the spec says so.


>http://stackoverflow.com/a/18808252

#271 #887950
>>887924

имхо ВР на подходе, технология webRtc норм подходит для неё. думаю что всё будет штабильно

>>887929

>Только здесь встаёт вопрос о том что такое говноподелие как JS в нынешнем виде при этом использовать просто идиотская идея



х/з, после пыха конечно первое время было непривычно работать с ЖС, но теперь у меня нооборот чувство, что ЖС как раз работает так и нужно тру языку.

>без пяти вариантов "как сделать одно и тоже действие"



имхо в целом если ты можешь различать {} и [] тебе должно быть похуй на синтакс и язык как таковой.

кста значек для срелочных функций тоже имхо в ЖС удачно выбрали: () => {} красота имхо 10/10 просто

>WebAssembly



вроде ключевые модули ноды написанны на си. имхо даже если внедрят этот твой WebAssembly, ты всёравно будешь работать сним в лексической среде через обёртку языка ЖС

>typeof null



старо как мир, вроде это не критично

>If null is a primitive, why does typeof(null) return "object"?


>Because the spec says so.


>http://stackoverflow.com/a/18808252

#272 #887952
>>887950

>наоборот


>fix

#273 #887960
>>887929

>синтакс жс хрень



меня другое кста смущает в ЖС, конкретно в ноде.

я вчера читал, что в облаке, один процесс ноды не может обратится за раз больше чем к 1,5 гигабайтам оперативной памяти и больше чем к одному ядру процессора.

и что тогда получается, если моё приложение юзает вебсокеты, то как я скалирую его в облаке, на скажем 12 ядер и 24 гб памяти?

кластер создать как я понял не проблема, проблема, что у каждого процесса ноды будет своё пространство имён, и в каждом таком пространстве будет свой объект с активными сокетами, если это так, как тогда сможет рандомный зокет из процесса #1 связаться с рандомным зокетом, к примеру из процесса #8 или #10? втф.
>>887972
#274 #887971
>>887950

> Вроде ключевые модули ноды написанны на си


Перепишут хули. А инвесторы найдутся если это дело под дополненную реальность перепрофилировывать. Ещё Головайчук как то ныл в одном посте мол нода defected by design. К тому же три модульных системы это не найс.
>>887986
#275 #887972
>>887960

ок, загуглил, как я и думал, нужна будет in memory DB, которая будет типо мостом между нодами http://socket.io/docs/using-multiple-nodes/#passing-events-between-nodes

всё просто вроде
#276 #887986
>>887971

>три модульных системы



что за системы?
#277 #888001
Бамп вопросу >>887152
>>888006
#278 #888003
switch в get-роутах не слишком bad practice?
#279 #888006
>>888001
Взять роуты, положить роуты, это всё любой должен уметь. Характеристика довольно размытая, думаю миддл - это способность сделать сложный проект одному, а сеньор уже может комбинировать языки, писать какой нибудь бэкенд на питоне.
#280 #888037
>>888006

> комбинировать языки, писать какой нибудь бэкенд


То есть я, ныне мид-фрондендер, пришедший из JavaEE-бэкэнда (и пилил раньше фуллстек на дофига килострок в одиночку) - по твоему, синьор-помидор?
#281 #888043
>>888037
я мимокрокодил, если что
#282 #888045
>>888037
Лол, так я не один такой бекендер-перекатывальщик?
Тебе не говорили что-то вроде переходить на фронт - плохая идея, 90% процентов работы - пофиксить кнопочку и т.д. ?
Как вообще, о решении не жалеешь?
>>888050
#283 #888048
>>888006
Одному? Ничего не путаешь?
Сейчас, например, вдвоём с сеньором пилю проект: срок 25 дней (5 общались с заказчиком, делали акки у них в системе, определялись с технологиями, поднимали вебпак и т.п.), на фронте angular, sass, bootstrap.
Система управления хостингом с админкой и отображением статуса серверов. Это рили работа на двоих на 20 дней?
При том, что меня вообще pre-джуном взяли на $100 на этот месяц без какого-то оформления - тип стажировка, ещё и свой ноут взять пришлось, т.к. у них компа для меня не было. При этом компания нормальная, реально много филиалов в разных городах и странах, на кидалово не тянет. Странно.
>>888062>>888066
#284 #888050
>>888045
Ну, как сказать, фронтенд более "интерактивный" что ли. Поэтому меня он больше цеплял, когда я фуллстеком занимался. Джава-тырпрайз наскучил, захотелось перемен, тем более зарплату больше предложили. Пока не жалею. Сейчас на фронтенде бурный рост (новые плюхи как грибы появляются), не заскучаешь.
#285 #888062
>>888048
Нет, не путаю. Речь идёт о том что миддл может гипотетически сделать проект, не бегая каждый день и не спрашивая советы у сеньора-помидора.
#286 #888066
>>888048
100$ за месяц? Совсем долбоёб? Помоему тебя просто наебали как лоха. Я бы даже интернет магазин не стал делать дешевле чем за 500$. Ну а то что ты описал, наверное, вполне можно поднять иза 20 дней, за соответствующую объёму работы сумму.
>>888077
#287 #888069
>>888006
Ты так говоришь, будто я сеньор, ведь я все это умею. Но только хуй, я не сеньор.
>>888072
#288 #888070
>>888037
Если ты будешь использовать этот стек в работе, то тебя можно назвать синьором. Но основным критерием всё же остаётся уровень зарплаты, как минимум она должна быть у тебя не меньше 3000$.
>>888080>>888088
#289 #888072
>>888069
Опиши свои навыки.
#290 #888077
>>888066
Я хер знает, до этого в одной компашке работал, там $350 платили, но не сработался со старшим, который хер клал на линты, стиль кода и мозг трахал, что я пишу не как он (при том, что там eslint весь красный был).
Так в том и дело, что я из-за отсутствия особого опыта пока не понимаю, что происходит. Меня предупредили, что я для заказчика - мид, а напарник - сеньор (я так понял, его с мида "подняли"). Не особо понял смысла этой махинации, правда, если меня берут типо на джуна-если-хорошо-себя-покажешь и вообще я в любой момент могу тупо не прийти на работу, меня ж ничего не связывает.
Алсо ещё тестировщица нас подбодрить решила - типо проект хорошие инвестиции собрал. Поправьте, но мне не похер? Я же доли в нём не получу, а какая мне разница, что я пилю, если мой результат - 100 баксов в карман?
#291 #888080
>>888070
Толсто. Работаю за $1200
>>888085
#292 #888085
>>888080
Что толстого то? Поэтому то ты и не синьор.
#293 #888088
>>888070
Сэр, у вас жир потек.
ЗП никак не критерий "синьерности", а одно из следствий. Не знаю, как в других, но в моей галере одним из важнейших критериев для вердикта о результате ассесмента на сеньора - навыки общения, умение вести команду, принимать решения и т.п.
#294 #888092
>>887950

> ключевые модули ноды написанны на си


++
>>888121
51 Кб, 266x200
#295 #888121
>>888092
>>887929

сейчас гуглил за WebAssembly

вроде как скоро нода будет работать в этой среде по умолчанию https://github.com/nodejs/node/issues/7925

пик рандом
67 Кб, 645x603
#296 #888213
Подскажите пожалуйста, что я делаю не так?
http://pastebin.com/Ky9AG4D2

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

Я всегда получаю пустой массив, но в консоли элементы логгируются нормально.
Подозреваю, что что-то не так с точки зрения асинхронного кода. Как исправить?
>>888229
#297 #888229
>>888213

>Подозреваю, что что-то не так с точки зрения асинхронного кода.


Все правильно подозреваешь.

>Как исправить?


Использовать коллбеки (плохо) или резовлить промисы (лучше).
14 Кб, 990x170
#298 #888292
Очень говнокод или норм?
>>888316>>888497
#299 #888316
>>888404
#300 #888404
>>888316
Что значит твоё "Да"? Что говнокод это норма?
#301 #888412
Кто-нибудь пробовал к Backbone реакт прикручивать? Какие успехи, результат того стоит?
>>888464>>888499
#302 #888464
>>888412
Троллейбус_из_хлеба.жпг
#303 #888482
У меня такой вопрос, анонасы.
Функция всегда должна что-то возвращать? Кажется я прихожу к тому, что это является best practice и т.п. Ведь, если я напишу что-то такое

let a = 5;
const aba = () => {
a = 5+5;
}

то , если с переменной а ЧТО_ТО случится!!! - функция сделает бяку. А если бы она что-то возвращала, то сразу бы ошибку вышибла
>>888489
#304 #888489
>>888482

>Функция всегда должна что-то возвращать?


Любая функция в JS что-то, да возвращает.
Неявно это undefined.

>Кажется я прихожу к тому, что это является best practice


В первую очередь такие функции удобно тестировать.
>>888494
#305 #888494
>>888489
В смысле, очевидное применение для новичка в программировании - это использовать функции как скобки, разрезая длинный кусок кода на маленькие и короткие.
Но если не думать при этом об архитектуре и взаимодействии ф-й между собой, то это то же нагромождение, только упиханное в функции. А поменяешь порядок - поставишь одну над другой - и всё сломается.
#306 #888497
>>888292

для удобства чтения начинай первую строкус с "" +

var a = '' +
'строка 1' +
'строка 2' +
'строка 3';
>>888500
#307 #888499
>>888412
Какая у этого цель? Потешить твой синдром утёнка?
>>888502
#308 #888500
>>888497
Ну а может лучше Настя использовать шаблонные строки из ES6 вместо конкатенации строк?
>>888512>>888516
#309 #888502
>>888499

>Какая у этого цель?


Облагородить реакт моделью, очевидно же.
#310 #888512
>>888500

норм технология, но зачем они в конкретном случае с моим примером и в примере того анона, которому я ответил?
>>888516
#311 #888516
>>888500
>>888512

почитал манул, ок каюсь https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/template_strings

там кста пометка "экспериментальная технология"
499 Кб, 360x246
#312 #888551
блээээт а почему в for лупе нет разницы между ++i и i++?
>>888557>>888565
#313 #888557
>>888551
Хотел ответить "съеби в js-тред с такими глупыми вопросами", но мы уже здесь
>>888558
#314 #888558
>>888557
ну так тогда отвечай, свинья ебаная
>>888561
#315 #888561
>>888558

> почему в for лупе...


потому что мать твоя - шлюха сравнение и инкремент происходят в отдельных стейтментах
>>888564>>888565
#316 #888564
>>888561
при чем тут сравнение, свинья?
>>888565>>888568
#317 #888565
>>888564
>>888561
>>888551

>++i means i+=1; return i


>i++ means oldI=i; i+=1; return oldI

>>888571
#318 #888568
>>888564
При том, что от сравнения индекса с длиной обычно зависит количество итераций, тупой ты пхп-шника сын.
>>888571
483 Кб, Webm
#319 #888571
>>888565
>>888568

>эти свиньи

>>888574
#320 #888574
>>888571

var i=0;
var r = [i++, i, ++i, i, i--, i, --i, i];
alert(r);
>>888575
648 Кб, Webm
#321 #888575
>>888574

>alert(r);

>>888577
#323 #888580
ну вы и свиньи конеш... даже я уже понял
#324 #888613
#325 #888653
Когда в JS появится некоторая понятность и упорядоченность из коробочки? Чтобы оно все само соединялось и оптимизировалось, а ты лишь писал код?
#326 #888663
>>888653
Никогда
>>888679
#328 #888679
>>888663
Тогда по другому вопрос. Чего в принципе необходимо и достаточно для покрытия 80% задач? Эдакий принцип Паррето применительно к JS? Стабильность-простота-минимум
>>888689
#329 #888680
Ребятки, уже отписывал в фронтенд треде, спрошу и тут. Я запилил простой калькулятор и игру(найди пару) на js. В планах был засраный туду лист на jquery (типа чтоб показать, что знаю jq) и какое-то простенькое SPA на Ангуляре. Выходит, что это все нахуй не надо и не интересно работодателю? Тогда подскажите, что должно лежать на гитхабе такого, какой проект, чтоб меня хотя бы пригласили на собеседование front/js junior?
>>888687
#330 #888687
>>888680
Ну епты на джуна это говно и пили.. это для миддла тебе нужны средние - крупные готовые проекты по конкретной технологии.
#331 #888689
>>888679
Ты про фреймворки сейчас?
>>888717
#332 #888698
>>888653

>Когда в JS появится некоторая понятность и упорядоченность из коробочки?



как только ты откроешь для себя, как console.log() смотреть что в объектах
>>888703>>888714
#333 #888703
>>888698

>что лежит в объектах


>fix

#334 #888706
Итак, вопрос века, browserify или webpack?
#335 #888714
>>888698

> как только ты откроешь для себя, как console.log() смотреть что в объектах


Но ведь для объектов лучше подойдет console.dir()
#336 #888717
>>888689
Да. Ну то есть я учу Яву. Стало интересно поковыряться что из себя представляет js а там какие то ебеня из кучи слов. Когда весь мир движется в сторону "make it easy!®". Js сообщество движется в сторону феодальной раздробленности.
>>888726>>888728
#337 #888726
>>888717

эти "кучи слов" АПИ языка, просто не лезь в дебри сразу, юзай минимум. всё придёт само.
>>888727>>888728
#338 #888727
>>888726

>всё придёт само



ЛЕТ ЧЕРЕЗ 7-8
#339 #888728
>>888726
>>888717
А если придет, то ты либо отрастишь бороду и будешь попивать смузи, заедая панкейками, либо убежишь из этого ада для инженеров куда-нибудь в IBM/Апач/Оракл/етц хайлоад/лоу левел связанные технологии.
>>888793
#340 #888793
>>888728
Врядли в 2024 ты будешь задаваться этим вопросом. Скорее будешь сидеть в какой нибудь московской республике и думать где бы поймать прохожего на ужин.
#341 #888801
Скриптаны, нужно в строке заменить множественные пробелы не заключенные в одинарные или двойные кавычки на одинарные пробелы. Помогите регулярку для replace запилить.
>>888857
#342 #888857
>>888801

google -> build regex online
4 Кб, 220x220
37 Кб, 666x253
#343 #889020
Почему tmp = undefined ?
>>889027
5 Кб, 585x115
#344 #889027
Я в веб разработке не шарю совсем, помогите пожалуйста. Почему в гугле аппендчайлд работает, а на дваче - нет?

>>889020
Если tablerow1 не определен и tablerow1 не определен, то…
#345 #889030
>>889027

>div


Не исправил текст после попытки запихнуть див класс. Сейчас там img, и все равно не работает.
#346 #889031
>>889027

>Если tablerow1 не определен и tablerow1 не определен, то…


Но они определены. Первый равен 0, второй равен 5. Дебагер это показывает.
>>889036
#347 #889035
>>889027
Полагаю, может неработать из-за строки 2 или из-за строки 5.
>>889039
#348 #889036
>>889031

> if (row1 > row2)


Условие не выполняется, tmp определяется в блоке по условию, которое не выполняется. Поэтому tmp = undefined.
#349 #889037
С фленегана или кантора лучше начать?
14 Кб, 1095x430
#350 #889039
>>889035
Но ведь с главной страницей гугла этот скрипт работает. Может есть какие-то системы защиты? Их можно обойти?
91 Кб, 1357x661
#351 #889046
Элемент оказывается добавился, просто его не видно. Но почему?
>>889065
#352 #889065
>>889046
Разобрался. Спасибо.
7 Кб, 125x25
#353 #889100
Это норма?
#354 #889104
>>889100
хуйня
>>889115
#355 #889115
>>889100
Этот >>889104 имел ввиду, что это ещё хуйня, атм и веселее штуки есть.
#356 #889124
>>889100
Это еще ерунда:
constructor(){
this.Bar = this.Bar.bind(this);
this.Baz = this.Baz.bind(this);
...
this.Zaebalo = this.Zaebalo.bind(this);
}
#357 #889133
>>889100
Раньше - да. Сейчас частично стрелочными функциями эту хуйню решили.
#358 #889135
>>889027
Ты уверен, что getElemByClass работает как надо?
>>889136
#359 #889136
>>889135
а, надо сразу весь тред читать
90 Кб, 851x687
#360 #889151
решил писать всё в таком стиле, будут ли в конце проекта проблемы?
#361 #889171
>>889151

*case 'call-id-anchor' это в смысле якорь для того что бы позвонить юзеру с заданным айди, а не в смысле что я там дублирую название якоря приложение для коммуникации
#362 #889234
>>889151

var a = function(){ console.log('123') }();

в хроме это пашет, что с другими бровзерами?

по идее нужны еще одни скобки:

var a = (function(){ console.log('123') })();

почему нет ошибки?
>>889265
#363 #889259
Как это сократить?

.replace(/<[^>]+>/g,'').replace(/\[b\]/,'<b>').replace(/\[\/b\]/,'</b>').replace(/\[i\]/,'<i>').replace(/\[\/i\]/,'</i>').replace(/\[s\]/,'<s>').replace(/\[\/s\]/,'</s>')
>>889261
#364 #889261
>>889259
без первого replace
#365 #889265
>>889234
>>889151

>In contexts where an expression is expected, wrapping in parentheses is not necessary


>https://en.wikipedia.org/wiki/Immediately-invoked_function_expression



ок, хуя я мастер гугла.

короче этот код будет пахать везде. ок, я спокоен.

для тех кто не понял для чего это: я думаю в коде таким способом создавать "именованные замыкания", которые удобно читать и которые будут служить "пространством имён".
>>889372
sage #366 #889370
>>889151

> будут ли проблемы?


Определенно. Потому что тебе руки переломают за такое. Это нечитабельно.
Когда видишь var hui = function... сразу думаешь, что это просто объявление какого-нибудь коллбека. В крайнем случае можешь сделать
(function huitka() {
console.log("ряяя");
})();
если так хочешь "именованные неймспейсы". Но даже так это тупо. Лучше юзай ES6 модули, компиль бабелем и не страдай костылями.
>>889373>>889566
#367 #889372
>>889265

> именованные замыкания


Нахуя?
>>889566
sage #368 #889373
>>889370
фикс:
"именованные замыкания"
сажа случайно приклеилась
>>889376
#369 #889376
>>889373
да блеать, опять сажу забыл убрать
#370 #889386
Sup, /pr/, пришёл я в надежде получить советов мудров (и хуйцов не соснуть при этом).
Есть один хуй (я), желающий вкатиться в JS разработку за несколько месяцев и делать деньги на этом фриланся.
Сам JS уже практически изучен по Кантору + JS: The good parts, про DOM читал в DOM Enlightment, HTML/CSS знаю, но не особо.
Доп. условия:
1) Есть всякий разный опыт: написания приложений на C++ (вот-вот выложу прогу C++/Qt на 700+ строк на гитхаб), установки генту в нестандартной конфигурации (с написанием своих ебилдов) и прочего
2) Сложности с мотивацией. Сейчас я делаю её таблетками и активно задрачиваю JS по 2+ часа каждый день (время дано без учёта отдыха/проверки ВК/etc), но я могу это делать только несколько месяцев, дальше уже стоит получать хоть какую-то денежную отдачу чтобы был стимул работать.
3) Английский знаю недурно, спокойно могу читать какую-угодно документацию, возможно полезу на Upwork.
Вопрос: какие библиотеки/фреймоворки/API изучить за эти несколько месяцев?
#371 #889389
>>889386

> вкатиться в JS разработку за несколько месяцев


> фриланся


))
#372 #889392
>>889386

> 700+ строк


"Hello, world"?
#373 #889398
>>889386
Jquery, подтяни верстку (как бог знать не обязательно, но с гуглом должен поставленные задачи решать за адекватное время), бутстрап, какой-нибудь препроцессор, сасс, например.
и фреймворк для построения крупных приложух на клиенте на твое усмотрение. Вроде ничего не забыл.
По идее сможешь конкурировать с индусами или пойти в говнофирмочку. Как ни странно, можешь писать про опыт в плюсах, некоторые заказчики ценят, что перед ними не просто js макака-верстайло. Еще знание серверных языков котируется, но на мой взгляд фулл стек - это зло для старта.
#374 #889400
>>889398

> зло для старта


чому?
мимокрокодил
#375 #889401
>>888653
Ангуляр2/тайпскрипт. Через жопу, но что-то похожее.
АУ!! #376 #889430
Может кто-то по быстрому подсказать?

Есть див с id="hyi". Внутри него лежат разные элементы в том числе и UL. Как обратиться к этому юэлу?
>>889433
#377 #889433
>>889430
$("div#hui ul")
>>889444
#378 #889444
>>889433
без жквери надо. но я уже разобрался, спс
>>889455
#379 #889453
>>889386
Не лезь в это говно, серьёзно. Джунам только офис
>>889530
#380 #889455
>>889444

> без жквери надо


ты хуй
#381 #889468
Поясните за elm, годнота в целом?
А то я тут issues кофейни почитал, не в том направлении они что-то движутся, что очень печалит.
#382 #889519
>>889386
Что за таблетки? тоже так хочу.
>>889530
#383 #889530
>>889398
Благодарю.
Только вот стоит ли хоть как-то интересоваться NodeJS?
И вдогонку: стоит ли использовать Gulp и Babel в паре с NodeJS сервером, в собственных проектах?
Пусть не чтобы потом зарабатывать на том, что я умею с ними работать, а просто чтобы знать?
Примитивнейший NodeJS сервер у меня уже давно есть, с npm и прочим знаком, если что

>>889453
Заказчики неадекватны и конкуренция огромная?

>>889519
Эглонил, 200мг/день
>>889538
#384 #889533
>>889151
перешел на react, забыл такое как страшный сон.
мимо const кун () => {<tag/>}.
0 Кб, 480x512
#385 #889535
Высрал борду на реакте, чо дальше то делать?
>>889633>>889774
#386 #889538
>>889530
Там разобраться с тем галп и бабелом - на день работы.
Знать ноду лучше, чем не знать %%внезапно%. Пиздуй уже учить. Колеса в рот и с песней!
>>889398
Слишком большая для ньюфага зона ответственности. Проще было бы сосредоточиться на одной области и дрочить её, лучше фронт энд, так как в целом проще на мой взгляд и цена твоих косяков будет меньше для всех, включая тебя самого.
Вообще похуй, куда нравится, туда и надо идти. Если интересно, то что угодно осилишь.
189 Кб, 1600x900
#387 #889555
анон, помоги, я устал уже.
Есть пустая HTML страница. Есть файл с несколькими функциями. Как сделать, чтоб функция make работала?
Соль в том, что если document.write выполняется внутри загруженного скрипта, страница остается пустой. Если снаружи - конечно, все норм, но только тогда он не берет значение хэша arr[c], и тогда же нельзя вызвать функцию make().

tl:dr
как загрузить и вызвать рандную ФУНКЦИЮ из ДРУГОГО файла-скрипта?
>>889561
#388 #889561
>>889555
А ты уверен, что в arr[c] у тебя что-то есть?
Залей на https://jsfiddle.net/ свой код
>>889563
#389 #889563
>>889561
блин, я уже ноут вырубил.
там точно все есть. Через алерт() все работает отлично.
Суть скрипта в выводе рандомного слова из введенных, как можно догадаться. Алерт(арр[с]) работает. мейк() нет. Просто докврайт тоже нет.
>>889573
9 Кб, 447x130
#390 #889566
>>889372

думал сперва писать всё одной простынкой, но теперь понял, что сила в модулях

>>889370

да, спасибо, понял, простынки с замыканиями не ок, нужны модули. посмотрел бабиль и другие варианты, не обессудь, но я внезапно понял что это всё делается элементарно в jquery. там еть АПИ представленный свойством $.fn, туда можно экпортировать что угодно.

теперь у меня получилась структура как на пике, всё работает как нужно.

цифры нужны для группирования, типо 2 всегда = контроллер и тд.

в 0 самые глобальные переменные, типо: $.fn.route = window.location.href.split('//').slice(1).join().split('/');

в 1 вначале идёт $.fn.uiWgts = {}; потом $.fn.uiWgts.modalForLoginButton = function(options) { ... } и так далее. ХТМЛ для виджетов клонируется с готового DOM страницы.

вроде всё норм теперь. мне тру нравится
>>889677
#391 #889573
>>889563

>+c ; //сделать переменную числом


это так не работает, надо
c = +c
>>889685
#392 #889633
>>889535
Уебищное говнище поди какое-нить.
>>889681
#393 #889640
Ищу скрипт для сортировки по тексту блока. Например, есть код:

<a href="#">Анапа</a>
<a href="#">Астрахань</a>
<a href="#">Багдад</a>
<a href="#">Варшава</a>

Если выбрана буква А, то отображать только те ссылки, у которых первая буква А. Если выбрана буква Б, то отображать только те ссылки, у которых первая буква Б и так далее согласно алфавиту. Например, как здесь https://www.aviasales.ru/airports

Гуглопоиск выбиает хуеву кучу сортировщиков таблиц.
17 Кб, 720x140
Зачет Зачет #394 #889655
Помогите Антоны
>>889657
#395 #889657
>>889655

>зачёт


>чтение/запись файлов


>JS


Сделал мой день
>>889672
#396 #889672
>>889657
жи есть нодегс
#397 #889674
Аноны поясните за принцип работы сайтов типа YouTube to mp3 converter
Каким образом они из видео делают мп3 файл? По типу - "видео сначало заливается к ним на сервер, потом", пошагово.
>>890045
#398 #889677
>>889566

> сила в модулях


require.js
browserify
webpack
Не пиши велосипедов

Ладно бы ты писал шаблонизатор, не привязанный к конкретному фреймворку, с двухсторонним биндингом, циклами, скопами и прочим. Но тут уже сделали неплохие вещи, которыми можно пользоваться, несмотря на уродливость js.
>>889780
#399 #889681
>>889633
Нет, обычный красивый круд без ответов и картинок.
>>889791
#400 #889685
>>889573
работает, если не use strict
>>889866
0 Кб, 512x512
#401 #889727
Всем друзьям и не только, которые ищут работу или просто пинают хуи советую вкатываться во фронтенд и жс. Советую клитора и этот тред. Я все правильно делаю?
мимо Java-господин
>>889737
#402 #889737
>>889727
Хитро. Всё правильно, пусть плебеи кушают сладкий жс-хлеб.
>>889818
0 Кб, 512x512
#403 #889762
Зачем вообще нужна NodeJS? Это же один большой костыль. Люди берут асинхронный язык, и костылят на нём последовательное выполнение (синхронный код) с помощью всякого говна вроде колбеков, промисов. Существование этого уродца это какое то недоразумение. Почему бы не использовать парралелизм нормальных языков и добавить к нему асинхронность, и соответственно роутинг без перезагрузки на клиенте? Райан Дал создал чудовище.
>>889802
#404 #889774
>>889535
Теперь на vue
>>889866
#405 #889780
>>889677

окай Антон, почитал манулы к твоим костылям, идеи то ок, но профитов в них я не увидел.

<внезапно> есть более ультимативное и компромиссное решение. всё приложение для фронтэнда разбивать на модули, но в продакшине конкатить все файлы из каталога /static/js в один файл. на сторону клиента будет приходить один сжатый и кашированный файл например /static/js/app.js.

не забывай Антоха, чем больше в твоём приложении разных чужих велосипедов, тем сложнее тебе придётся в будущем. что например будет, если через 2 года забросят browserify, когда на его место придёт очередной хипсторский костыль, ты будешь опять переписывать всё с нуля, или будешь за спасибо фиксить баги в библиотеке browserify? в этом имхо и проблема. нативному ЖС и jquery такая судьба не грозит, тут я уверен на 146%

вроде я понял всё правильно, пруф ми вронг как гриццо
>>889796>>889813
#406 #889791
>>889681

> круд


> красивый


На 0 делишь
#407 #889796
>>889780
webpack как раз таки и используется для бандлинга - сборки кусков в цельный проект, минификации и т.п. Жопой ты мануалы читал что ли?
мимо
#408 #889802
>>889762
Меня, например, позабавило вот что: js - однопоточный, но для "имитации" многопоточности сделали событийную модель; потом делают async/await, который предназначен для линейного выполнения псевдоасинхронного кода, и все щас ссут кипятком с этого async/await. Вот это шин.
#409 #889813
>>889780

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


признайся, ты не писал ничего крупнее хелловорлда для собеседования?
#410 #889818
>>889737
Пусть плебеи вкатываются в хаскель, жс, фронтентд, пхп, но благословенную жаву оставят в покое.
#411 #889827
>>889802
Событийная модель - не имитация многопоточности, а другая модель конкуррентности. Нода написана на основе libuv, а модель эта существует уже много лет (select, epoll, kqueue).

Async/await, который надо сказать не только в ЖСе сейчас есть, сделан для того, чтобы писать асинхронный код без коллбэк-лапши.

Чтобы ты понимал, я не ЖС/Нода-фан, просто интересуюсь темой. И давай без хейта.
>>889843
0 Кб, 512x512
#412 #889830
>>889802
Вот тут интересно написано на эту тему: https://news.ycombinator.com/item?id=12338365

Даже Райан Дал ненавидит Node.js:
http://harmful.cat-v.org/software/node.js
#413 #889843
>>889827
Я в том смысле, что в js сделали "ненастоящую" асинхроннлсть, когда реально работает один поток, что вынуждает писать лапшу из коллбеков даже когда реальной необходимости в этом могло бы и не быть. А потом выкатывают асинх/авейт типа "смотрите какую мы вам крутую штуку принесли", хотя это по сути костыль, который покрывает их старый костыль с псевдоасинхронностью.
Никакого хейта, я сам из энтерпрайза в js перекатился.
>>889928
#414 #889866
>>889685
схуяли оно будет работать? при чем тут вообще юз стрикт?
>>889774
с этого начинать надо было
но уже мозги зашкварены реактом и нормальные фреймворки вряд ли их спасут
это как раньше были жквери программисты теперь есть реакт программисты, синоним говнокодера
>>889983>>890065
#415 #889928
>>889843

>Я в том смысле, что в js сделали "ненастоящую" асинхроннлсть, когда реально работает один поток


Блядь, тебя уже поправил анон выше, а ты снова путаешь понятия асинхронной модели и многопоточной.
Может быть, пора перестать думать жопой?

>Никакого хейта, я сам из энтерпрайза в js перекатился.


Право дело, из ынтырпрайза приходят исключительно лоботомированные личности.
#416 #889982
>>889802

> сделали событийную модель


> для "имитации" многопоточности


нет
#417 #889983
>>889866

> нормальные фреймворки


> vue, react


Сорта говна же. Нормальный фреймворк сейчас только Ember и angular2. Они юзают вообще какие-то слабосвязанные библиотеки.
>>889989
#418 #889989
>>889983
angular 2 возможно станет самым годным фреймворком, но пока он сырой
ember годнота, тут согласен
но почему ты считаешь vue говном?
этакий реакт из которого выкинули все говно и оставили хорошее
при том это сейчас самый быстрый фронтэнд фреймворк в мире для большинства кейсов
если учить первый фреймворк то vue оптимальный выбор, потом года через 3 опыта перейти на ember или angular 2
#419 #889993
>>889989
В vue что хорошо, что туда еще не успели набежать говнокодеры. И новичок изучая его будет делать это по хорошим мануалам с минимальным шансом наестся говна.
React сам по себе не плох, но даже сами авторы в ахуе от того, сколько говнокодеров набежало в жажде наживы и какой пиздец они вытворяют. При том эти люди еще и имеют наглость кого-то учить.
>>890274
#420 #889994
>>889989
реакт быстрый, пока ты своего гавна над ним не напихаешь, чтобы всетаки доделать приложение.
>>889995
#421 #889995
>>889994
самый быстрый vue, а не реакт
с этим даже разработчики реакта согласились, так как вместе писали бенчмарки
#422 #889997
ТАК ЧТО УЧИТЬ-ТО?? ЭМБЕР, РЕАКТ, АНГУЛАР ИЛИ БЕКБОН?
>>890049
#423 #890045
>>889674
ffmpeg
>>890397
#424 #890047
>>889989

> фреймворк


Это либа блядь потому что
>>890052
#425 #890049
>>889997
Лучше уж книжку по паттернам проектирования наверни, а понимание как все работает потом придет.
>>890061
38 Кб, 976x315
#426 #890052
>>890056
#427 #890056
>>890052
Охуеть, либу для рендеринга теперь фреймворком называют.
Хотя да, заглянул в репу, грустно стало пиздец от такой хуйни. JS проходит в сжатые сроки все то, что прошел php за 12 с хуем лет.
>>890062
#428 #890061
>>890049

Посоветуй какую?
#429 #890062
>>890056
Ну там есть официальные роутер и стейт менеджмент. Так же официальная интеграция с RxJS. Почему бы и не называть фреймворком, даже если эти вещи опциональны.
#430 #890063
Про JS чувак пишет:
http://keinkeinkein.livejournal.com/141332.html

Профессии "дальнобойщик" и "таксист" уйдут в прошлое. Данные люди будут уволены, а те из них, кто захочет переобучиться, сделают это. Они изучат дома что-нибудь наподобие Rust, C, Golang или C++, затем выучат в общих чертах какую-нибудь узкую предметную область и пойдут работать на какой-нибудь проект. Будут работать, как все. Software development и смежные области работы, кстати, вообще не требуют ни особой генетики, ни особой структуры мозга. Все смогут работать, абсолютно все.

Я думаю, что хотя бы язык Си и standard library может освоить каждый. Каждый гражданин России в возрасте от 15 до 50, не являющийся умственно отсталым, не состоящий на учете у психиатра. Не требуется там вообще (!) никакая особая структура мозга. Дальнобойщик сможет научиться использовать Vim и отладчик в том числе, если будет нормальное образование, если будут грамотно составленные курсы.

Ну и JavaScript тоже каждый может освоить. События, API браузера, DOM, замыкания, области видимости, контекст вызова, итераторы. Опять же, там вообще никакая особая генетически обусловленная структура мозга не требуется. Да все могут.
>>891167
#431 #890065
>>889866

но у меня же работает.
>>890073
#432 #890073
>>890065
если ты автор скрина то работает потому что оно уже и так число
эта строка ничего не делает и не изменяет
#433 #890089
Посоны, что лучше всего подходит для фронта простенького SPA-интернет магазина? Пилить буду один, чисто для себя.
>>890094>>890116
#434 #890094
>>890089
SPA же хуже гуглятся, не? Для интернет-магазина это неоч.
>>890113
#435 #890113
>>890094
нет, от того что приложение спа хуже оно гуглится не будет
#436 #890116
>>890089
Backbone + vue.js
>>890181
#437 #890181
>>890116
React или Vue.
7 Кб, 300x314
#438 #890234
Вечер в радость, чефир в сладость!
В общем есть пару вопросов за ваш этот js
Учусь в вузе на 3ьем курсе, курсач по web технологиям написать игру на js.
Есть ли варик слизать где-то готовую или годные туториалы?
просто времени в js разбираться нет, тк долги по другим предметам есть
сам имею небольшой опыт работы с c++, java, asm
>>890236
#439 #890236
>>890234
Хуясе.
>>890238
#440 #890238
>>890239
#441 #890239
>>890238
1. Ты охуел, чмо ленивое?
2. Что это за шарага такая?
>>890241
#442 #890241
>>890239
спбгэту
Я не ленивый, помимо этого дохуя дел
Это называется путь наименьшего сопротивления или расстановка приоритетов
>>890242
#443 #890242
>>890241
Какой же ты пидр, пошел отсюда нахуй в гугл.
>>890255
#444 #890250
стоит ли перекатываться с пхп на эту вашу ноду?
#445 #890255
>>890242
Какой же ты грубый
Остуди свой гнев, петух
99 Кб, 352x345
#446 #890258
>>890250

> с говна на мочу

#447 #890260
>>890250
Зачем? Laravel один из лучших бекенд фреймворков сейчас. Гораздо лучше нодовского express для львиной доли кейсов.
>>890276
24 Кб, 638x359
#448 #890262
>>890250

да. гугли за webassembly
#449 #890274
>>889993
знакомый хохол-обосранец, работавший всю жизнь барменом и жонглером учит сейчас реакту за деньги.
нет, это не троллинг и не реклама
#450 #890276
>>890260
Некорректное совершение. У ноды есть
https://adonisjs.com
>>890277
#451 #890277
>>890276

> совершение


Сравнение, офкос
#452 #890286
Сосоны, я вообще нихуя не программист на js, но у меня возникла задача поменять html страничку полностью как плагин для grease monkey. Есть ли какие-нибудь функции, типа перлового s/// чтобы быстро заменить строку, которую я нашел регэкспами на ту, что нужно мне.
>>890519
#453 #890288
У кого-то есть на примете скрипт для инфинити скролла с поддержкой grid-системы и без привязки к фреймворкам? С меня как всегда.
>>890294
4 Кб, 184x184
#454 #890294
>>890288
С меня тоже как всегда.
>>890301
#455 #890296
Задача: создать массив длинны N и заполнить каждый его элемент его же индексом, т.е. [0, 1, 2,...]
Решение: Array.apply(null, {length: N}).map(Number.call, Number)
А теперь задайте себе вопрос: додумался ли ты бы сам до такого красивого и компактного решения? Если нет, то даже не считай себя js-программистом. Ты обычная макака, которая без фрамеворка даже штаны себе не застегнет.
#456 #890298
>>890296
Прикольно, в 7.3 раз быстрее чем while > push.
Правда такой массив ограничен 500к элементов.
>>890300
#457 #890300
>>890298
Array(N).fill().map((e,i)=>i+1);
а это в 45 раз быстрей
>>890302
0 Кб, 320x320
#458 #890301
#459 #890302
>>890296
Спецолимпиада же в другом треде, не?

>>890300

>Array(N).fill().map((e,i)=>i+1);



Так тоже пойдет:
[...new Array(n)].map((val, idx) => idx);
#460 #890318
>>890296

> красивого и компактного


С такими красивыми и компактными решениями пусть нахуй идут, олимпиадники. Кому-то потом это говно еще поддерживать
>>890373
#461 #890373
>>890318
Что, после укладки шпал не остается времени на развитие?
>>890375>>890388
#462 #890375
>>890373
Поддерживаемость и читаемость кода стоят над его краткостью, красотой и выходной эффективностью.
Бузинес работает именно так, кид.
#463 #890388
>>890373
Уж сколько раз твердили миру, что явное лучше неявного. Я могу легко потратить минут 10 чтобы распарсить этот говнокод. Но раскидав такие кусочки говна по всему проекту, любителю-рубисту у нас, например, легко могут оставить без обеда за счет компании, так как за коммитами смотрит не один человек.
0 Кб, 512x512
#464 #890396
шкальники вкатывальщики выебываются, а вы ведетесь, лол
#465 #890397
>>890045
Спасибо
#466 #890417
Аноны поясните кто-нибудь (или дайте ссылку, буду благодарен) за более лоу лвл работу обычного нод http сервера? Имеется в виду не только "app.listen()" как в книгах о ноде, а именно как это вообще происходит обмен файлами? Всякие хендшейки там протоколы и тд.

Если сделать сервер на C например, это прояснится для меня или на С тоже все через библиотеки все делают?
>>890420>>890421
#467 #890420
>>890417
Ты как оказался в профессии, не умея в гугл?
#468 #890421
>>890417

> а именно как это вообще происходит обмен файлами? Всякие хендшейки там протоколы и тд.


Возьми да глянь исходники, хули там сложного?
#469 #890519
>>890286
.replace
44 Кб, 462x430
Обратиться аяксом и вызвать метод #470 #890544
Учу этот ваш JS, дошел до аякса - тут урок по RPC-XML запорот немного видос часто стоит на месте. Вообщем хуйово я его усвоил. Но лабу сделать хочу, подскажи анон, что имеется ввиду в этом пункте задания?

-Обратитесь к серверу XML-RPC lab-4-server.php и вызовите метод eshop.getDeliveryMethods (без параметров). Сервер вернет XML-RPC ответ.
-Создайте переменную dom и присвойте ей вернувшийся ответ.

Как обратиться и передать параметры я понял, но как обратиться и вызвать метод?
>>890621
#471 #890621
>>890544

> вызвать метод


Погугли что такое rpc и как делать post запросы с разными content-type
>>890642
#472 #890642
>>890621
это я уже вроде понял, но почемуто в консоли возвращается null.

Пишу так: https://jsfiddle.net/kbmnmchr/
Там пару библиотек самописных подключены, но не суть. Написано то все правильно? Я имею ввиду, если написано правильно, то проблема может быть в остальных файлах? Или это норма, что condole.log возвращает нулл? сука, как же мне больно
>>890650
#473 #890650
>>890642

> Написано то все правильно?


По части логики наверно да. Проблема либо на сервере либо в остальных либах.
>>890789
#474 #890726
>>884432

>хеллоу ворлд вкатыша


>3мб


>При этом бандл еще и минимизированный


Да ты охуел.
>>890729
#475 #890729
>>890726
У меня этот бандл всего 400кб весит.
#476 #890789
>>890650
а не имеется какого либо сжатого фака в виде документации по теме xml-rpc?
>>890812
#477 #890812
>>890789

> сжатого фака


Статья на вики.
>>890904
#478 #890840
>>884390

>на 150+ строк в каждом файле с методами и контроллерами - один охуительней другого.


Велькам ту аур ворлд, май диар френд.
А еще системы сборки, у которых зависимости и зависимости от зависимостей, и все это стоит на ките, который едет на одноколесном велосипеде и жонглирует YOBAми.
И все ради того, чтобы у тебя на страничке пиздато все отображалось.
#479 #890886
>>884390
пиши на jquery
#480 #890904
>>890812
Там нихуя нет. Но уже разобрался
>>890988
#481 #890972
Аноны, какие телодвижения надо осуществить, чтобы с состояния абсолютного незнания подняться до уровня "Javascript на уровне чтения кода", и сколько приблизительно времени это займёт? Да-да, всё индивидуально, я понимаю, но хоть приблизительно.
>>890988>>891153
#482 #890988
>>890904
Поздравляю, ты тупой. Там даже пример вызова блять есть.
Если нужно еще подробнее, то только спека.
>>890972

> с состояния абсолютного незнания подняться до уровня "Javascript на уровне чтения кода"


пара минут, достаточно лишь исходники открыть какие-нибудь.
>>891153
#483 #891153
>>890988
>>890972

чтение кода !== тупо чтение букв и слов, его нужно уметь выполнять в голове. на это в случае с ЖС уйдёт месяц-два минимум.

>телодвижения



разбирать рабочие примеры и курить гайды
#484 #891167
>>890063
Это галерный пропагандон. Не слушайте его.
#485 #891199
Изобрел для себя недавно принцип построения например какой-нибудь бизнес логики, модели да хоть целого приложения.Заметьте, что любой объект(product) можно расширить любым поведением(someone). Причем пристутствуют приватные объекты и открытый доступ к ним с помощью методов. Наверняка такое уже где-то есть. Как оно называется? Пример ниже

var someone = {
extend: function(extendable) {
var something = {};
extendable.changeSomething = function(data) {
something = data;
};
extendable.getSomething = function() {
return something;
};
}
};

var factory = {
set1: {},
set2: {},
set3: {},
produce: function() {
var produced = {
set1: {},
set2: {}
};
produced.set1 = this.set1;
produced.set2 = this.set2;
someone.extend(produced);
return produced;
}

};

factory.set1 = something1;
factory.set2 = something2;
var product = factory.produce();
product.changeSomething(something3);

и так далее.
#485 #891199
Изобрел для себя недавно принцип построения например какой-нибудь бизнес логики, модели да хоть целого приложения.Заметьте, что любой объект(product) можно расширить любым поведением(someone). Причем пристутствуют приватные объекты и открытый доступ к ним с помощью методов. Наверняка такое уже где-то есть. Как оно называется? Пример ниже

var someone = {
extend: function(extendable) {
var something = {};
extendable.changeSomething = function(data) {
something = data;
};
extendable.getSomething = function() {
return something;
};
}
};

var factory = {
set1: {},
set2: {},
set3: {},
produce: function() {
var produced = {
set1: {},
set2: {}
};
produced.set1 = this.set1;
produced.set2 = this.set2;
someone.extend(produced);
return produced;
}

};

factory.set1 = something1;
factory.set2 = something2;
var product = factory.produce();
product.changeSomething(something3);

и так далее.
>>891214
#486 #891214
>>891199
Ты сейчас backbone изобрел
#487 #891222
с чего начать изучать фреймверки, с backbone или angular
>>891228
#488 #891228
>>891222
С первого, оно простое очень и хорошо позволяет понять паттерны проектирования веб приложений не отвлекаясь на пока что ненужные сложности.
Можно с vue еще если не волнует что мало готовых компонентов. Под нее мануалы очень хорошие сейчас, позволяют новичку учиться делать правильно и сам этот фреймворк в отличии от всяких реактов не поощряет говнокод.
#489 #891232
Что можно почитать про функциональное программирование на js для тупого?
>>891235
#490 #891235
>>891232
http://reactivex.io/learnrx/ палю годноту
#491 #891237
>>891235
Только там надо самому делать интерактивные примеры, а не просто смотреть ответы. Иначе нихуя толку не будет.
#492 #891243
>>891235
Годно. Спасибо.
95 Кб, 1920x1080
#493 #891314
>>891235
Проиграл с этой годноты
>>891369
#494 #891369
>>891314

> Сломать себе браузер


> Проигрывать с этого

>>891462
#495 #891451
Подскажите что можно посмотреть/почитать по React па русске
#496 #891462
>>891369
Зачем ты его так приложил?
#497 #891470
в Node.js проблема с открытием видео вконтакте. Ссылки вида https://cs635500.vk.me/6/u225819608/videos/b179a92183.240.mp4?extra=9S....6x
В браузеер, питоне, curl'е — всё нормально, 200 OK, данные приходят. Если же, используя request, попробовать открыть это в ноде — 404.

Никак не пойму, в чём может быть проблема? Никакие куки или хедеры остальным не нужны. Нода 6.4.0, реквест 2.79.
>>891472
#498 #891472
>>891470
А впрочем, вопрос задал, как обычно, прямо перед тем, как наконец решить проблему. Если страницу с, собственно, сылкой на файл сначала скачать в ноде, то выдранная из той страницы ссылка (с другим ключом уже) нормально работает в ноде (и нигде больше). Видимо, та тройка шарит какой-то общий ресурс, который вконтакте считает за одно и то же, а нода — отдельная. Был бы рад объяснению происходящего.
>>891491>>891555
#499 #891491
>>891472
Может дело в юзерагенте? Браузер и пистон уж точно не могут быть связаны
>>891569
#500 #891555
>>891472

сравни хиддеры реквестов к тентаклю, что шлют те три клиента и нода
>>891569
#501 #891569
>>891555
>>891491
Хедеры я пытался разные вставлять, но курл лишь три использует и всё норм, в питоне вообще без хедеров отправлял и тоже ок, юзер-агента хоть asdf ставь.
Ссылку он не открывает точно так же, как если бы я её просто на другом компьютере пытался открыть (потому я её и обрезал, собственно, вам бесполезна была бы).
Можете попробовать вот отсюда https://vk.com/video-41485889_456239973 (не требует регистрации, а так любое можно) взять в коде страницы ссылку ( искать по"url240", "url360" и т.д.) и зареквестить её в ноде. Она даже в ругом браузере работает! Но не на другом компьютере (в чём угодно).
9389 Кб, Webm
#502 #891579
Как переписать это с колбэками?

axios.get(root + '/posts/1')
.then((responseOne) => {

axios.get(root + '/posts/2')
.then((responseTwo) => {

console.log(responseOne.data.id)
console.log(responseTwo.data.id)

})
})
>>891593>>891653
#503 #891593
>>891579
вместео get(a).then((){}) делать get(a, function(){})?
>>891608
#504 #891608
>>891593
И как туда response передавать? Как сам callback вызывать?
#505 #891641
Почему response в модуле request приходит в JSON формате а в модуле axios в JS формате? В axios встроенный парсер?
PEREKOT Anonimous #506 #891643
Perekot to >>891642 (OP)
#507 #891653
>>891579
нахера?
#508 #892322
>>884727
Дурак ты, из-за тебя и таких же как ты, демпингующих макак, скоро совсем джунам зп платить перестанут, а надо будет еще доплачивать первые пару лет за возмонжость поработать.
Подумайте тупо логически - в маке платят 25к, там уметь вообще нихуя не надо, картоху переворачиваешь весь день и все.
А чтобы актуальный стэк фронта изучить нормально надо 6-12 месяцев систематических занятий (если совсем с нуля).
Сам такой же, ксатти, пашу за 20к в большой международной компании уже пол года, еще на испытательной 2 месяца за 15к сидел.
Я считаю хороший джун в милионниках должен получать 30 со старта.
>>892383
#509 #892383
>>892322
Уметь не надо, зато какая это унизительная и тяжелая физически работа - переворачивать картоху целый день и кричать свободная касса.
А ведь от джуна толку мало, так как скорость его работы крайне низкая, он может не справится с задачей, допустит много багов.
Тред утонул или удален.
Это копия, сохраненная 23 декабря 2016 года.

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

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