В этом треде собираются величайшие умы человечества – мастера валидации форм и специалисты по JSON-технологиям. Этот тред посвящён главному языку будущего – JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач – от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Анончик, помоги тупому разобраться с Vue.js. вот такой пример: https://jsfiddle.net/t78g92g6/ в консоли сыпет Avoid mutating a prop directly... Я прописывал computed и в основном и в компоненте, нихрена не помогает, документация какая-то размытая.
1. data в компоненте должно быть функцией, иначе все компоненты будут одинаково себя вести. 2. привязывать надо data а не prop. 3. data можно инициализировать из prop
Т.е. props - это данные инициализации, read only. Всё мутабельное состояние хранится в data (это как state в React, только изменения отслеживаются автоматически - реактивность). Свойства в data должны быть определены заранее, если хочется, чтобы они были реактивными - из props или просто значения по-умолчанию. Если в надо менять data массив и т.п. - надо использовать Vue.set(...)
>>1187568 Оно и не должно само обновляться. Это же всё в компоненте происходит. Инкапсуляция называется. Надо или события постить из чайлда, или коллбек дёргать (передав его сначала как prop).
Тебе надо определиться, что ты хочешь получить. И нужно ли тебе вообще _реактивное_ состояние (two way binding) в самом этом компоненте.
Я сейчас попробовал сделать через коллбек - работает, но, с отставанием на 1 вводимый символ, почему-то. Надо почитать доки, потом ещё попробую, сейчас некогда.
Я сам сейчас как раз потихоньку ковыряю Vue. И мне оно что-то чем дальше, тем меньше нравится (в сравнении с React) - как-то ограниченно всё (хотя, там можно делать расширения, и там уже ограничений нет, я даже сделал одно, но это уже гораздо сложнее). С другой стороны - простые вещи делаются очень быстро и просто, и без доп. инструментов, редаксов-хуяксов и прочего. И оно (немножко) быстрее реакта.
>>1187436 >пилишь нативную апликуху, регистрируешь, коннектишься и взаимодействуешь с реальным миром
Но там есть ограничение: The maximum size of a single message from the native messaging host is 1 MB, mainly to protect Chrome from misbehaving native applications. The maximum size of the message sent to the native messaging host is 4 GB.
>>1187602 На английском - средний род, it. Так что, как говорить по русски - вопрос традиции. Наверное, считают, что так благозвучнее (нет тупого звука в конце).
Короче, разобрался. Отставало на один символ потому, что я привязывался к onKeyDown и брал value, которое ещё не изменено в момент события.
Если ты хочешь использовать внутреннее реактивное состояние компонента - используй watcher (почитай про это), и из него дёргай коллбек, переданный из app. Если внутреннее состояние тебе не нужно (именно для value) - дёргай коллбек, привязавшись по onKeyUp, или по onKeyDown, но через setTimeout(_коллбек_, 0), и дальше appText = evt.target.value;
>>1187626 watcher'ы и так стоят, проблема в предупреждении и еще в одной удивительной штуке: стоит инпут с датой в компоненте и watcher на эту переменную с jqurey.get на изменение. Так вот, когда ставишь брейпоинт на серверной стороне, начинают сыпаться xhr-запросы лавиной. Подозреваю, что в этом предупреждении проблема.
И ещё один момент. В Vue, как бы, два вида реактивной передачи данных. One way data flow через props - parent -> child. И реактивное связывание через v-model - в обе стороны, но только внутри компонента.
Т.е. ты можешь менять prop из parent, и child сразу изменится. Но, если что-то меняется в child, то наружу это можно передать либо через event (в Vue своя система событий) или через callback.
>>1187632 >проблема в предупреждении Так не мутируй prop изнутри, лол. Также, подозреваю, что у тебя зацикливается реактивность. Попробуй без неё - см пример >>1187626.
Ну и перечитай то, что я написал, и внимательно посмотри примеры.
>>1187635 >EventBus Это имеет смысл, только если у тебя несколько подписчиков на событие из компонента, на разных уровнях, а не только parent.
И, если это так, то тебе лучше сразу разобраться с Vuex. Он именно для этого, и это именно замена EventBus. Всё равно с ним придётся разбираться, если у тебя уже сразу пошли такие расклады.
>>1187432 (OP) Аноны помогите. Нихуя не понимаю в setTimeout. А именно как оно блять нахуй работает?
Короче, суть в том, что я решил сделать анимацию баннеров через JS. Есть две функции, в одной с помощью рекурсии setTimeout происходит смена баннера каждые 4.5 секунды, во второй функции происходит плавное понижение свойства opacity этого же баннера. Так вот, вторая функция прописывается в первой, чтоб как бы происходило плавное изменение. Вообщем, вот код:
function fadeOut(step) { var stopVal; if (step > 0) stopVal = 0.0; if (step < 0) stopVal = 1.0; var el = document.getElementById("change"); var currentOpacity = parseFloat(el.style.opacity); if (isNaN(currentOpacity)) currentOpacity = 1.0; currentOpacity -= step; el.style.opacity = currentOpacity; if (currentOpacity.toFixed(2) != stopVal) setTimeout(fadeOut, 5, step); } var timerId = setTimeout(nextBanner, 4500, 1); function nextBanner(i) { fadeOut(0.01); var elements = document.getElementById("change"); var currentBanner = elements.style.backgroundImage; var indx; var staticPath = "\"http://172.16.2.16/static/starter-theme/images/"; //confirm(elements.style.opacity); if (currentBanner == "url(" + staticPath + "1.jpeg\")" || currentBanner == "") indx = 0; if (currentBanner == "url(" + staticPath + "2.jpeg\")") indx = 1; if (currentBanner == "url(" + staticPath + "3.jpeg\")") indx = 2; if (currentBanner == "url(" + staticPath + "4.jpeg\")") indx = 3;
Так вот, дело в том, почему-то ну нихуя не работает. А симптоматика следующая: функция fadeOut не срабатывает сразу, она понижает сначала opacity до 0.99 с 1.00 и ВСЕ, хотя должна понижать до нуля. КАКОГО ХУЯ?
Я ПРОШУ ПРОЩЕНИЯ у сеньоров за мой говнокод. мне вообще похуй на яваскрипт, просто нужно сделать вот это и все. я вообще на питоне лабаю
>>1187776 Говно какое-то. Как же сложно переходить с байтоебства на жс. Нельзя вот так просто скачать что-нибудь и кликать на консоле jsjaff example.js, нет нужно вбивать в гугол how to run JAVASCRIPT ON LINUX и качать огромные папки like NODE.JS, который тебе нахуй 100 лет не уперся.
>>1187776 откуда скрин? А в чем проблема в браузере? Тот же jsfiddle из шапки, вполне удобен, или просто Developer Tools хрома А если тебе надо будет изучать архитектуру конкретного фреймворка, то тут вообще никуда не деться
>>1187790 >я привык в IDE форматировать код. Первое, что я попробовал, это brackets - быстрый, но хуевый. Я привык форматировать код очень часто, на автомате ctrl + alt + L. В brackets это выглядит очень хуево.
Атом вообще долго открывается. Но хуй с ним. Форматирует тоже хуево. Зато блять отступы, как на 2-ом пике он убирает, но верхние не УБИРАЕТ. Сука, как же смешно блять)
Саблимом пока не пользовался. Либо vim хуярить, чего очень не хочется, либо надеятся на этот саблим. Хз вообще.>>1187802 >Ставишь ноду один раз, а потом на изичах через любимый терминал пишешь: >node your_mom_is_beautiful.js Я же написал, мне впадлу node js пихать в свой кудахтер без надобности. Хотя наверное придется. Огорчение.
>>1187772 >>1187785 >>1187804 Читаю твои посты и содзается впечатление, что ты не байтоеб, а самый натуральный долбоеб. Ты походу даже не знаешь, что термин "байтоебство" означает. У тебя такие тупые вопросы, что ты походу вообще ни разу не программировал, и тем более не занимался байтоебством на низкоуровневых языках.
>>1187601 В чём проблема обменяться объёмными данными за несколько сообщений? Если твои данные превышают лимиты сообщений, то придумай и инкапсулируй в Native messaging protocol свой протокол обмена данными между расширением и нативным приложением, пакетами, где размер пакета + размер заголовка пакета укладывается в лимиты хромовских сообщений, а внутри расширения и приложения аккумулируй и сшивай пакеты.
>>1188075 Я не пробовал, но думаю что в браузере скорее всего стоит защита для такого случая. Если попытаешься разбить файл на чанки, и все их отослать в расширение и если слишком много 1мб чанков/сообщений за определеный промежуток времени отослешь, то, я думаю, браузер просто перестанет их принимать из-за подозрительной активности. Я вообще не тот анон, который изначально задавал вопрос, но стало интересно, надо будет попробовать зафигачить такое тестовое раширение, когда будет время.
Определяюсь с БД. Как ее лучше сделать? Цель: создание календарика с событиями. На фото то, что приходит в голову.
Откуда брать данные о количестве дней в месяце и как лучше синхронизировать порядок дней, ПН, ВТ..., и числа? Т.е. как на фронте мне узнать что в этом месяце, например, первый день - среда, чтобы построить таблицу месяца исходя из этого.
Урлы в массиве, он передаётся в функцию параметром, как и id элемента с интервалом, вместо урлов картинки в base64 в этом примере, статикПас добавишь сам если нужно. Но это тоже хуёвый код, без всяких проверок, допилишь короче.
>>1187757 >>1188175 Спасибо за помощь. Да, сам понимаю то, что код просто невероятно ебанутый. Но срочно нужен результат, Анчоусы, да я и не мастер яваскрипта.
>>1188082 Ты же уже всё разрешил манифестом и регистрацией в реестре своего приложения, поэтому на подозрительную активность ему кмк будет наплевать, он же не прослушивает какой-то эфир с кучей непонятно чего, а строго коннектится к тому , к чему прописано. Алсо не надо сразу всё посылать, там же есть колбеки, в которые вкладываешь ответы, можно положить ответ, что чанк получен, жду следующий, даже можно без колбеков реализовать - просто надо подсмотреть как там всякие tcp/ip реализованы и что-то сделать упрощенное: типа первое сообщение: запрос на передачу > ждёшь входящее сообщение с ответом что к приёму готов, посылаешь сгенерированный id для этого набора данных, номер чанка, размер чанка еще что-то и сам чанк, ждёшь пока придёт сообщение - чанк успешно получен, посылаешь следующий чанк с тем же id, опять ждёшь, последний помечаешь, что он последний, теперь реципиент может начать сшивать чанки с одинаковым id и обрабатывать, а может отложить это, принимаю следующий набор данных с другим id, и потом уже дождавшись определенного сообщения с командой оработки начать сшивать чанки с одинаковыми id. Это так примерно, там конечно много всяких подводных камней вскроется, но чисто теоретически не думаю, что там большие проблемы возникнут, я тоже с нативным клиентом не пилил, нет надобности. Хотел как-то побаловаться, чтобы в yotube-dl просто урл страницы с видео передавать, но потом забил - редко что-то качаю.
>>1187804 А для джавы тебе нужно пихать JVM. А для питухона тебе нужен питоновский интерпретатор. А для го тебе надо качать голанговский компилятор. А для шарпика тебе вообще нужна вижуал студия, которая тяжелее твоей бывшей. Чувак, это норма качать вспомогательное ПО для окружения, в котором ты собираешься работать. А если тебе уж совсем в падлу, то иди на хуй открывай любой браузер, открывай консоль разработчика и пиши что хочешь. Проблемы на ровном месте.
Давно не следил за вебом, есть ли уже такой фреймворк, чтобы: Сервер таки выдает хтмл, но только семантику - никаких вспомогательных/декоративных элементов, никаких классов/стилей, никаких кастомных атрибутов, максимум - айдишники на элементах лайаута. Все остальное делает клиент, используя при этом тот же роутинг, что и серверсайд.
>>1187432 (OP) Сделал регулярку PATTERN, она определяет, чередуются ли согласные и гласные буквы в слове, т.е. чтобы не было двух подряд идущих гласных или согласных, и в слове должно быть больше одного символа.
Вроде как PATTERN.test(word) должен возвращать true, когда word соответствует регулярке, а иначе false. Однако, он работает странно: для строчек, которые подходят под шаблон, он при первом вызове дает true, а при следующем вызове false, и дальше чередуется. То есть [PATTERN.test("pole"), PATTERN.test("pole"), PATTERN.test("pole"), PATTERN.test("pole")] вернет [true, false, true, false]
>>1188351 >>1188353 Моя регулярка работает как надо, вопрос был не об этом, а о том, почему метод test дает то тру то фолс, для строки которая под выражение подходит, а регулярка точно работает, если использовать не тест, а через саму строку вызывать match или search все работает как надо и при повторных вызовах тоже.
>>1188485 Константу нельзя только переприсвоить, все поля в ней спокойно меняются, втч перемотка серча. В твоем втором примере каждая хуйня в кавычках - это новый объект. Так что просто оберни свою регулярку в метод.
>>1188523 >Константу нельзя только переприсвоить, все поля в ней спокойно меняются, втч перемотка серча Ясно, спасибо. Я понял, я поставил флаг глобального поиска g, поэтому он между вызовами сохраняет индекс следующий за местом последнего совпадения и ищет начиная с него. Достаточно убрать флаг g, и все работает, как задумано, там на самом деле этот флаг и не нужен, там используются символы начала и конца строки, ^ и $, т.е. либо строка сразу вся попадает под шаблон, либо нет. >>1188513 >Я думаю, что такие вещи регулярками не делаются. Поэтому и не работает. Звучит, как будто интерпретатор на меня обиделся и нарочно не работает, так как я ожидаю, но это же не так. Меня конкретно в этом случае интересовала причина неожиданного для меня поведения. >Это задача именно для последовательного перебора. Ну а как по твоему реализуют регулярные выражения? Там же ведь строчка последовательно проверяется, регулярные выражения просто способ задать условия проверки, разве не так.
>>1188207 >поэтому на подозрительную активность ему кмк будет наплевать, он же не прослушивает какой-то эфир с кучей непонятно чего, а строго коннектится к тому , к чему прописано Ну это как бы да. Но тогда зачем они поставили это дебильное ограниение по 1 мб на сообщение, если всё равно похуй сколько ты их отошлешь? Наверно специально, чтобы мамкиным хакерам усложнить работу?
>>1188589 Чтобы долбоёбы не посылали 1ГБ/в секунду, подвешивая хром и отправляя ОС в глубокий своп, у хрома да и дургих браузеров многих таких фишечек направленных на оптимизацию производительности, энергопотребления и потребления памяти, он к примеру частоту таймеров понижает до 1000ms в неактивных вкладках. Есть два способа установки расширений - пользователем и административными политиками, если хакер сумел убедить пользователя что он не хакер или получил административные привилегии - дальше уже какие-либо защиты бессмысленны, все действия должны восприниматься как легитимные, хром лишь изредка предупреждает - что установленное в !режиме разработчика расширение что-то там изменило, отключить его? А так лимиты если и есть, то скорее всего несут цель не зафризить наш любимый суперотзывчивый гугелхром. Но это все теория - надо пробовать или читать хромиумные исходники.
>>1188591 Добавлю, что хакеру которому повезло установить малварное расширение тем или иным способом глупо будет спамить хромиум мусором, он лучше установит майнер, спиздит учётки, заинжектид какую нибудь рекламу, или шифранет файло натвным клиентом и потребует битки. Лимит сделн по какой-то другой причине.
Столкнулся со следующей проблемой при работе с Google visualization.
У меня есть 4 массива определенных чисел:
1 массив (X) чисел используется, чтобы отобразить координату по оси Х.
2 и 3 массивы (Y1 и Y2) - это координаты по оси Y, которые нужно представить в виде линий.
4 массив (Y3) тоже координаты по оси Y, который нужно представить в виде точек.
Я смог сделать линии для 2 и 3 массивов, но после многих дней поиска я так и не смог отобразить 4 массив в виде point chart. При работе с ComboChart также к успехам не смог прийти. Был бы очень признателен за помощь.
>>1187432 (OP) Тупой нуфаг вкатывается в тред с тупым вопрос, час сижу и не могу сообразить, где у меня косяк. Кароче, мне надо, чтоб выдавало подряд списком 100 результатов матчрандома, а у меня цикл тупо зависает и всё. Подскажите нуфагу, где у меня косяк, пиздец я устал и перегрелся уже.
>>1188739 Тогда ты не понимаешь, что вот здесь вычисляется. Ты получаешь рандомное число от 1 до 3, и проходишь по циклу соответсв. максимум 3 раза. Блять, это пиздец чувак. Нахуй еще жс с такими знаниями учить.
>>1188740 У него о рандомное число записывается в другую переменную, переменная i инициализируеься в условии цикла и ей присваивается значение 0. Ты чо пишешь то?
Условие у него не выполняется, потому что в правой части у инкремент неверный и условие i < random неправильное, потомоу что в рандоме должно быть целое, а не с плавающей точкой.
>>1187432 (OP) Заебало сидеть без работы. Посоветуйте минимальный набор технологий, чтобы устроиться на галеру в мухосрани. Изучаю HTML, JS, CSS, немного реакт. Стоит ли еще учить SASS, Underscore, Lodash?
Таки отважился на Реакт. И вот что не могу понять. Почему и в доках, и во всей макулатуре байндяд хендлеры. this.handleClickProviderFactory = this.handleClickProviderFactory.bind(this); Почему просто не писать хендлеры стрелочными функция в конструкторе? Вот сделал лягушатник, подводных камней не нашёл. Всё в Incr.js https://codesandbox.io/s/zpyk52vy4
>>1188926 функции биндят чтобы при каждом рендере не создавалась новая функция. Ты ее 1 раз создаешь и передаешь в компонент. Если ты будешь писать стрелочные или анонимные функции, то при каждом рендере будет создаваться новая функция
>>1188927 Ты повторяешь то, что написано в документации. Открой пожалуйста мой пример, открой консоль. Там везде отладочная печать. Стрелочная функция у меня создаётся только один раз в конструкторе. Дальше, даже в дочерние компоненты, передаётся только ссылка.
>>1188930 ну хз. Как по мне создавать функции в конструкторе это немного говнокод. Методы в классе создаются отдельно. Можешь писать так как ты пишешь, программирование штука гибкая, но так никто не пишет + наверняка ты наткнешься на какую-то поебень с замыканиями в будущем.
>>1188931 >говнокод Как по мне, так получается чище и структурированней. По докам ты создаешь метод на прототипе и байнд в конструкторе, это две функции вместо одной и тот же засранный конструктор. Никакой поебени я пока придумать не могу. Нужен случай, где это просто не будет работать. Тем более новый подход с публичными полями это по сути и есть то, что я предлагаю, только ясней, потому что синтаксис публичных полей бестолковый.
Единственная беда, которую могу придумать, это наследоваться от своих компонентов.
class Button extends Component { handleClick() {console.log(`hi`) } class WarnButton extends Button { handleClick() { super() // -> hi console.log(`warn`) } }
Вот такое нельзя будет сделать. Но многоуровневое наследование недолюбливают доки, я и Ден наше солнышко Абрамов. Так что я просто не могу понять, почему так никто не пишет.
Котаны, поясните вкатывальщику в реакт. В методе жизненного цикла компонента componentDidMount() можно получить к уже отрендеренному элементу в реальном dom. Как применить к этому компоненту нативные методы? Например через componentDidMount() я хочу к обьекту style получить доступ, или допустим к координатам и размерам отрендеренного элемента. Через this не работает чет.
Второй вопрос - опять же в componentDidMount() в корневом элементе я получаю JSON с помощью AJAX. Объект из JSON я записываю в state.arr корневого эл-та. Далее передаю этот state.arr массив пропсами в дочерний элемент. Он передается в дочерний элемент, и в дочернем я могу допустим в консол-лог вывести массив, но вот при попытке вывода this.props.arr - хуярит ошибку. Это именно с массивом который я по AJAX получил. Как так то?
>>1189266 >refs Да. Обычно в качестве ref используют callback. ref={(nodeRef) => this.nodeRef = nodeRef} Тут есть нюанс - в этом случае nodeRef может быть null при первом вызове. Нормально, если ты просто делаешь присваивание как выше - это похуй. А если сразу в колбеке начинаешь работать с nodeRef - - надо иметь это в виду.
Вообще, не стоит использовать стрелочные функции или bind(this) в render(). Могут быть лишние update. Надо понимать, что в этих случаях каждый раз создаётся новая функция.
Лучше определить колбек как стрелочную функцию в конструкторе: this.refCallback = (nref) => {...}; В этом случае она будет вызываться только когда нужно, и там не будет null. Или можно определить это как метод и сделать: this.methodName = this.methodName.bind(this); в конструкторе. А потом ref={this.methodName}
>>1189438 Тогда скажи мне пожалуйста еще одну вещь. В нативном dom я могу получить детей элемента, могу получить отдельный child - elem.children[0], например. Очень удобно для манипуляций. В react есть что то подобное? Или я все еще не вкурил его подход?!
Котаны, я тут маня-вкладку наговнокодил на react. И возник такой вопрос :
у меня есть дефолтное сосостояние стэйта. Событием я его меняю. Но console.log в обработчике не фиксирует что стэйт изменился. А вот console.log в render стэйт уже фиксирует изменения. Получается нужно на вкладку два раза нажимать что бы она открылась. Почему так?
>>1190310 А что ты хотел, эта же вебтехнологии, которые жрут больше чем надо. На нативном софте это бы летало в 60фпс на древнем компе. Лично у меня этот сайт плавно работает, но у меня и комп довольно мощный и актуальный.
Гандоны из РКН заблокировали подсети heroku, на котором хостится мой курсач на ноджсе. Куда еще можно легкий сервак быстро и бесплатно захостить? Чтобы без подводных камней с указанием карточки и проебом средств с нее.
>>1190404 Amazon разве что еще знаю, но пиздец у них там ФУНКЦИОНАЛА, там вообще без гайдов уровня "тыкни сюда, перейди сюда, нажми это" не разобраться. Гугли видео-гайды по хостингу ноды, какие-то за 2017-18 года, с ними быстрее поймешь.
И да, скорее всего, ты что-то делаешь не так. Например - ломишься в открытую дверь.
Зачем тебе манипулировать нативными элементами, если у тебя есть реакт, который сам ими манипулирует лучше тебя?
В React рекомендуют рассматривать как должен выглядеть твой компонент в каждый момент времени. Т.е. рендерить его по разному. А не думать о том, как бы подешевле изменить одно состояние на другое.
Дело в том, что весь рендеринг идёт в виртуальный dom, а реальный потом рендерится только в изменившихся местах.
Дай уже себе труд прочесть, хотя-бы, getting statrted на их сайте. Там в конце (Thinking in React) делается простое приложение.
Для пущей оптимизации можно оверрайдить метод shouldComponentUpdate() - можно убрать лишний рендеринг даже в виртуальный дом (актуально для больших списков со стейтами - выбор строк и т.п.).
Два момента: 1) В Реакт синтетические события, не нативные. Сделай console.log(e) и всё увидишь.
2) Чтобы компонент изменился - надо снаружи (из родителя) менять ему prop. На стейт никакой реакции нет (это же не Vue). Стейт - внутреннее дело компонента.
Господи какое же говно этот реакт, столько лишнего оверхеда с собой тащить, даже для какого-то мелкого сайта. Еще блять этот ебучий виртуальным ДОМ. Javascript и так в браузерах как сэндбокс работает, так нет, этим ебнутым хипстерам реакта еще больше абстракции надо, чтобы блять еще больше ресурсов жрало.
>>1190549 Ты определённо чего-то недопонял. DOM (реальный) - очень медленный. JavaScript (вообще, и вирт. DOM в частности) - довольно быстрый. Виртуальный DOM - для скорости, а не потому что "абстракции".
Реакт охуенен. Но, до понимания этого надо дозреть.
Алсо, если ты больше "верстальщик", а не программист - попробуй Vue, может быть лучше пойдёт. Там тот же вирт. дом, но есть two-way binding как в Angular. Есть свои события и т.п. Т.е. это больше фреймворк, чем библиотека. Т.е., если React - это только View (V), то Vue - это MVC (MVVC). При этом нет всей той ебанины, которая есть в ангуляре.
Вообще, если надо быстро вкатиться в современный фронтэнд на JS, то Vue - лучший выбор. Ничего лишнего не надо вообще, ни бабелей, ни ноды, ни редаксов-хуяксов, вообще нихуя. Просто браузер, Vue и ES5.
В какой фреймворк лучше начинающему веб-гугломисту вкатиться, если планирую осенью искать работу в ДС? 2 года назад трогал ангулар, тот, который 1-й, но он уже никому не нужен, верно? Учмить новый ангулар, или реакт?
>>1190501 >>У тебя там фигня какая-то. Я похоже залез позже и все сломал. >> На стейт никакой реакции нет (это же не Vue) Ахуительные истории. Впрочем ты сам себя поправил. То что меня волнует - это асинхронность setState -а. Там еще какая то магия для меня. Что бы сразу схватить изменения в state - нужно в setState отправлять коллбек.
>>1190629 Асинхронность там потому, что при этом запускается внутренняя механика реакта. Которая, помимо всего прочего, группирует внутренние события изменения, чтобы выполнить их пачкой. Потом обновляется вирт. dom, потом - реальный dom, а потом вызывается колбек, если он есть.
Т.е., после одного изменения стейта может последовать хуева туча других изменений. И, в итоге, ты получаешь уведомление, что всё отработало, и dom теперь новый.
>>1190856 > PrimeFaces Пиздец, я думал, готовые интрыпрайзные рюшечки в первой половине 2000х уже сдохли, вместе с Oracle Forms и прочей RAD-Wizard-based-хуетой.
>>1190869 PF - это ведущая реализация JSF. Ты, очевидно, об этом не знал. Как и о существовании JSF, собственно. Ну, и сколько стоит твоё мнение по этой теме?
Кто-нибудь под виндой ебался с установками пакетов, требующих node-gyp? Мне нужно поставить raw-socket, а эта хуйня вечно ругается на отсутствие node.h. Пистон 2.7 стоит, C++ хуйня стоит, все это определяется node-gyp'ом, но вот сука node.h он не видит.
Какое же кривое залупное дерьмо эта асинхронность в ноде, которую долбоебы суют куда попало. Если у меня есть низкоуровневый компонент с мамасинхронностью, то он тянет за собой вереницу коллбэков/async-await туда, где они нахуй не нужны. И в чем блять сакральный смысл делать ВСЕ функции монгол-дб асинхронными без синхронной версии? Эту хуйню даже инициализировать нельзя синхронно, хотя я не могу представить юзкейса, в котором мне нужно было бы !!асинхронно блять подключаться к БД!!. Да даже если бы был такой юзкейс, то я бы это сам сделал на верхнем уровне приложения абсолютно без проблем. Каждый раз, когда я пишу await, то чувствую, как будто измазался в говне.
Вот что это блять такое? Чтобы запуржить тестовую БД до и после теста, мне приходится писать АСИНХРОННУЮ ОБЕРТКУ, КОТОРАЯ АСИНХРОННО КОННЕКТИТСЯ К БД, ОБОРАЧИВАЕТ АСИНХРОННУЮ ФУНКЦИЮ И ПОТОМ АСИНХРОННО ЖДЕТ АСИНХРОННЫЙ ТЕСТ. Все это уместилось бы в одну элементарную легкочитаемую функцию, если бы дебильное жс-коммьюнити не дрочило на асинхронность при каждом чихе, а использовало ее там, где она действительно нужна.
>>1191349 После открытия [Head|Tail] и иммутабельности жаваскрипт каким-то образом пропадает из жизни? У меня не пропал. >>1191410 Понятно, что это костыль, призванный сгладить хуевость самой архитектуры языка, но блять, когда тебе приходится делать даже запуск ебучего сервера асинхронным из-за куска низкоуровневого кода для БД, который притянул асинхронность наверх, то осознаешь, насколько это пиздец.
>>1191438 Я имел в виду, что фп даёт понимание того, как сделать такое асинхронное программирование более удобным.
ФП - это не head|tail и иммутабельность, это value oriented, прежде всего. И конвейер. Вместо императивной дрисни из колбеков ты работаешь со значениями - future и т.п.
Монадообразные штуки всякие позволяют писать асинхронный код так, что он становится похож на синхронный. Просто вместо точек с запятыми у тебя монады.
А async/await - это для программистов на бейсике, которым вдруг стало надо писать асинхронный код.
Сап погромисты! Мне нужно накатать небольшую программу, используя Node.js Есть какие-нибудь проверенные места, куда можно обратиться, чтобы за адекватный донат сделали?
>>1191472 Определяющая черта ФП как парадигмы - это как раз иммутабельность и неизменяемый стейт, когда в любой момент выполнения программы можно гарантировать, что, f(x) == f(y), если x == y. Остальное тобой перечисленное - это элементы ФП, реализовать которые можно в любом языке. Некоторые из них полезны, некоторые нахуй не нужны и имееют смысл только в условиях работы с неизменяемым стейтом.
Между (А) и (В) нет вообще никакой разницы, кроме стилистической, тебе в любом случае придется писать принимающую функцию на верхнем уровне, которому нужны эти records. Только в первом случае это будет async/await функция, а во втором коллбэк в then.
>>1191581 Потому что мне физически больно, когда дизайн низкоуровневого компонента влияет на дизайн высокоуровневых. Если бы у этого монго драйвера были асинхронные версии методов, то я бы с таким же успехом воткнул этот костыль для неблокирующнго кода на верхнем уровне, где он реально нужен. Но из-за одной ебучей либы мне теперь нужно оборачиваться в монады или хуярить async/await на каждый чих.
Всем привет, вкатывальщик на связи. Друзья, аноны, анончики, помогите блять. Плачу кровавыми слезами не могу понять по навигации в дом, удаление/добавление элементов. апендчайлд, парендэлемент, дочерний/родительский. Читал кантора, смотрел ютубы и всё равно нихуя не понимаю. Как блять научиться достучать до любого элемента в форме? Добавлять элементы в нужные мне места? Пиздец блять, мб я где-то проебался на начальном этапе с хтмл и цсс и пропустил что-то? Где мне блять почитать про это подробно и разобраться с этим говном.
>>1191645 Но у меня нет проблем с пониманием самых азов. Если ты уж с этим не справляешься, то что будет дальше? Прототипирование, замыкания, деструктуризация, промисы, асинхронность, и куча других ништяков.
>>1191629 Задавай конкретные вопросы под конкретную задачу, в том числе и себе. Не хуйню вроде "я ничего не понимаю. объясните мне все", а "как найти первый элемент с классом .zalupa и вставить после него свежесозданный элемент с класс .hui".
>>1191649 если бы все всё понимали сразу, то для вката хватало бы месяца. Просто читаешь и без задней мысли делаешь тоже самое, что и в книгах. Через месяц джун, через 2 мидл, а через 3 сеньор
>>1191629 >мб я где-то проебался на начальном этапе с хтмл Да.
Вот этот чел прав >>1191649 Если ты уже на самых простых вещах тупишь, то дальше тебе пизда. Читай все заново. Если после второго раз так же ничего понимать не будешь, то значит программирование не твое у тебя просто не достаточно высокий IQ
>>1191664 А с чего ты взял, что программирование даётся каждому? Чтобы кодить, нужно иметь своеобразный склад ума. Почти все мои одногруппники после получения диплома программиста шли работать не по специальности, потому что сложнааа, ой всё...
>>1191671 потому что это обычный скил, который преобретается путем задроства и практики. Читай-тренируйся-читай-тренируйся. Через месяц-два-три-пять что-то начнет получаться. Да, возможно свою фреймворк ты не напишешь, но быть обычно макакой, формашлепом за 90к в месяц-под силу всем.
>>1191671 В этом виноват не склад ума, а российская система образования. В программировании нихуя сложного или уникального нет, просто это слишком молодая дисциплина с кучей объективно хуевых практик и убеждений, которые тем не менее педалируются их адептами как нечто хорошее. Отсюда и кучи макак, которые учатся по учебнику, в котором после объяснения базового синтаксиса им говорят "ну а теперь мы будем говнокодить свой сервер", а не прививают дисциплину разработки/тестирования.
ЖС в этом плане отличный пример, любой желающий его изучить сразу же наткнется на кучи говноучебников по фронтенду, где код предлагается запускать через браузер, где о тестировании ты услышишь краем уха и тут же забудешь, потому что в браузере гонять тесты слишком муторно и ни один учебник этим не занимается, максимум опишет в конце какую-нибудь BDD-мочу с кучей магически появляющихся global-методов, хуков, коллбэков и моков, вместо простого как палка TDD фреймворка с тремя assert'ами, которых хватает за глаза.
>>1191629 Чет ты перемандил. В DOM как раз все прозрачно кристально. Читай Кантора еще и раз, и крайне внимательно. У него зачастую для понимания важно прямо таки отдельное слово. Очень внимательно читай, и сразу тести все в песочнице.
>>1191671 А этого не слушай. Нет никакого "склада ума", есть желание, упорство и интерес. Человек с пика, Кнорозов Юрий Валентинович, разгадал шифро-письменность майя. Он как то сказал - не существует того, что могло быть создано одним человеком, и не понято другим. Вопрос только в задротстве.
>>1191535 >>1191571 >JavaScript Allonge >Глянул в эту книгу, там полно фоток кофе и кофеварок. Понятно на кого эта книга расчитана.
Что интересно, у меня первое впечатление было именно такое. Правда, в первую очередь, из-за того, что я не особо люблю кофе. Ну, и хипстотой отдаёт слегка.
Но, это обманчивое впечатление. На самом деле - это весьма годная книга.
Я её даже купил за деньги на leanpub (давно уже). Сейчас она есть в двух вариантах - оригинальная, и переписанная под ES6. Правда, продают отдельно, т.е. если есть первая, вторую всё-равно надо покупать за полную стоимость.
>>1191877 Хуйню написал, дициплину можно и нужно прививать с самого начала, так работает любое обучение любой серьезной профессии. Если васян приходит в программирование, считая, что это "творчество", а не инженерная профессия, то да, от насаждаемой дисциплины от выкатится, но этот васян не стал бы инженером или врачом, схуев ли он должен стать программистом? Дисциплина не может быть вредна, ее нельзя включить-выключить, либо ты пишешь код, следуя каким-то правилам, либо нет. Либо у тебя есть ответственность перед потребителем твоего кода, либо нет. Я считаю, что любому вкатывальщику после изучения базового синтаксиса нужно сразу же проводить введение в TDD и юнит-тест фреймворк в его языке. Это пиздец как ускоряет процесс изучения и позволяет сразу же писать поддерживаемый и полностью покрытый тестами код, который легко рефакторить в будущем.
>>1191945 Двачую, вкатился без знаний юнит-тестинга(нормальных знаний, а не как проверить на иммутабильность массив), теперь как-то тяжело. Стоило это все постепенно делать.
В том посте говорилось про конкретный фреймворк с конкретными проблемами, а не про BDD в целом. Хотя эти же самые проблемы возникают почти с любым BDD-фреймворком в любом языке, что заставляет задуматься. Но в целом да, я не вижу смысла в BDD, TDD всегда дает лучший результат в плане архитектуры кода и покрытия тестами.
Виновата в первую очередь россейская система воспитания предками. Когда предки,сами нахававшись в детстве совка с его принуждениями по поводу и без, холют и лелеют свое чадо, сдувают пылинки, а чадо в итоге вырастает ленивым ебланом, неспособным сосредоточиться на работе и которое как огня боится приложить ну хоть еще чутка усилий.
Система образования, на самом деле, подстраивается под них. Вот как пример - появились вузики с платными местами и расценками на любой вкус, куда сердобольные мамаши сдают своих ленивых толстожопиков, где тем прощают за деньги проебанные сессии и дают как и в школе досидеть до последнего курса и выпуститься с дипломом.
Фреймворк. Просто онли для UI. Вообще, забавно тренды складываются, на заре смузипараши версий 0.x.x, были наоборот фреймворки вроде эмбера, где "вот вам модель-контроллер, а с гуйней ебитесь как хотите", потом появились фреймворки "все-в-одном" вроде жиргулара, а вот теперь "вот вам онли для гуйни, а с остальным ебитесь сами"
>>1192044 Не. Ты просто наверняка не всё просмотрел там. Глянь-ка внизу, ниже числа - там словами это число представлено. Максимальное число - аж 10 millillion'ов. Кроткая шкала. Порядок N (10^N), плавно доходит от 0 - до 3003, с шагом 3. И ещё - любые разделители можно сунуть туда. Алсо, можно юзать этот скрипт с BigInteger'ом, если пхнуть его в строку как-то так: document.write(numberToEnglish(BIGINTEGER.toString()));
>>1192037 Пока еще жив. Суровый легаси бизнес на нем в основном. Суровый бизнес сегодняшнего дня в основном на реакт. Смузи хлебут вместе с Vue, в основном неосиляторы простоты реакта или ужаленные абстрактными фабриками ангуляра
>>1192273 Приведи пример непонятного. Я сейчас тоже читаю этот учебник, сегодня добрался до третьего раздела. Все понятно (кроме одной главы о побитовых операциях, которую я пропустил).
Из чего портфолио собирать, Аноны? Сначала вкатывался в верстку, там все понятно - верстай макеты и лей в гитхаб. Потом понял что непосредственно программирование для меня интереснее. Что можно сделать, чтобы показать свои навыки в js работодателю?
>>1192300 >верстай макеты и лей в гитхаб Зачем вёрстку пихать на гитхаб? Ты даун аутист? Ведь любой человек может открыть страницу в браузере и посмотреть разметку.
Это же не сконпелированные программы, код которых ты так просто не посмотришь, поэтому исходники и выкладывают на гитхаб. Ты, видимо, совсем не смыслишь ни в программировании ни в функциональности гитхаба.
>>1192323 Ты кокой-то агрессивный. Зачем мне отправлять через какой-нибудь ватсап архив с вёрсткой, если я могу её залить на удалённый репозиторий, да еще и тем самым показав, что умею пользоваться гитом? Как по твоему сайты верстаются, если над ними несколько людей работают? Лишают себя возможности пользоваться ветками, потому что ты запретил? Ну и мой последний аргумент - лью на гитхаб, потому что просто хочу, лол. Может я чувствую благоговейный трепет, когда мои пальцы набирают "git commit -m", а музыка из щелчков клавиатуры в этот момент для меня сравнима с красотой нетленок Жоки? Хули ты доебался-то, блять? Вопрос вообще не об этом был.
>>1192330 > я могу её залить на удалённый репозиторий, да еще и тем самым показав, что умею пользоваться гитом? >Может я чувствую благоговейный трепет, когда мои пальцы набирают "git commit -m" Этот дегенерат думает, что гит и гитхаб это одно и то же, лооооооооол.
>>1192334 А ты думаешь, что разбираешься лучше меня в программировании, хоть и делаешь ошибку в индуктивной логике, лол. Потому что по другому прийти к такому выводу ты не мог.
>>1192334 > что гит и гитхаб это одно и то же Я другой анон, и так не понял где он это написал. Или ты доебался потому что увидел что-то тебе знакомое? По делу ответить не смог, так решил еще и обдрыстаться тут на всю ветку? P.S. Больше картинок. Покажи эрудицию, плиз.
>>1192351 На английском вообще больше инфы. Раз примерно в 9000. И какой смысл читать этого вашего Кантора в корявом переводе с русского, лол?
У него вообще учебник так себе. Именно как учебник. Единственное достоинство - что на русском. И то, достоинство это для тех, кто не может в английский.
Вообще, я бы рекомендовал избегать учебников по программированию, написанных русскоязычными авторами. Есть и исключения, наверное, но я так сразу и не вспомню.
>>1187432 (OP) Аноны, не ссыте сильно если что совсем не так. Вообщем на window.onscroll = handler; он не вызывает функцию, а прописывает код. При добавлении скобочек вообще не работает. Как сделоть чтобы выводил картинки?
>>1192556 Господи, какая хуйня банальная. Нахуй мне это в какой-то ебучий тест-фреймворк обворачивать? Я блять что сам не могу свою функцию написать, которая это тестит и выводит все в консоль? Или если мне нужно что-то быстро проверить, то сразу в дебаггере запустить?
>>1192613 Банальная, потому что пример банальный. Но обычно хорошие тесты так и выглядят. Чем банальнее и проще юнит-тест, тем лучше. Что тебе дает тест и не дает проверка через консоль:
1) Тест можно прогнать в любой момент и за мнговение увидеть результат. 2) Тест - это документация, где с примерами и понятным языком показывается, как можно использовать опредленный кусок кода. 3) Тест может прогнать любой человек, не только ты. 4) Тест дает тебе уверенность. Например, если у тебя есть покрытая тестом функция с мешаниной из колбэков и говна, то ты спокойно можешь расхуячить эту функцию, зарефакторить как угодно, переписать, разбить на подфукции, и быть уверенным, что она все еще работает, как и должна, если тест проходит.
Я так понимаю, ты недавно начал, поверь мне, любой язык изучать гораздо удобнее и быстрее, если ты делаешь это через тестирование(нормальное, а не через консоль). Говнокод - это прежде всего код, который не покрыт тестами. Просто потому, что с таким кодом ты не можешь сделать ровным счетом нихуя, без боязни что-то сломать, и он так и останется говнокодом в большинстве случаев. См. пункт 4.
>>1192679 >Тест - это документация Для этого есть JSdoc комменты, которые любая IDE поддерживает. Фигачишь над функцией слеш-звездочка-звездочка-энтер и IDE тебе сразу выдает шаблон с параметрами функции. Там еще другие удобные теги есть, например @throws, @todo, @this, @deprecated
>>1192679 Отлично расписал. Теперь объясни, как убедидетль биг босса, что покрытие тестами на js, в результате которого время разработки увеличится в 2 раза, необходимо?
>>1192050 Так сыночка знакомых вылетает с шараги с 3его курса, т.к не может делать лабы по проганью. Когда они узнали, что я работаю кодером, они сначала попытались меня попросить ему преподавать (!!!) это притом, что я работаю, постоянно самообучаюсь и у меня нет времени. Потом на мой отказ попросили, чтобы я делал за него лабы а у меня даже тех вышки нет! Все понимаю, я тоеж учился на специальности, куда меня всунула мамка и в которой я не шарил шитье блеать, ну я покупал работы у одногрупников первый год, а потом благополучно вылетел и больше в эту профанацию под названием высшее образование в рашке не совался. но блять, как можно не мочь в лабы по кодингу в 2018 - у тебя есть гугл, есть куча туториалов и готовых решений на эти лабы. ну либо там совсем рокет сайнс типа ассемблера, микроконтроллеров и какого-нибудь машоба. но я что-то сомневаюсь. Скорей всего это очередной тупой толстожопик, у которого играют гормоны и которому в 20 лет хочется гулять, бухать и щупать девок, а родители его заставляют учить этот скучный кодинг, т.к. прослышали, что у кодеров большие зарплаты и вообще это дохуя мужская и уважаемая профессия, которую любой ероха осилит.
Есть тут знатоки three.js? Дан деревянный брусок сделаный в Блендере. Подгружаю mtl и obj файлы, текстуру дерева вебпаком бросаю куда надо. Результат - текстуры нет, деревянный брусок становится сладким хлебушком (хотя она загружается, в консоли всё пишется по этому поводу). Без jpg текстурки - просто чёрный брусок со световыми бликами при вращении. ЧЯДНТ?
>>1192723 Только вот никакой JSdoc автоматически не покажет все варианты вызова функции, все принимаемые параметры в объекте и т.д. Это в любом случае нужно писать руками, и переписывать, если API функции поменялось. Если же вместо комментариев ты хуяришь тесты, то они всегда будут служить на 100% актуальной документацией. >>1192747 Во-первых, программу пишешь ты, а не биг босс. И ты решаешь, сколько тебе понадобится на разработку определенного компонента.
Во-вторых, TDD не увеличивает время разработки в два раза, поскольку оно практически полностью избавляет тебя от нужды дебажить код, а в long-term ситуации хорошее тестовое покрытие наоборот ускоряет разработку в огромное число раз по сравнению с любым проектом без тестов.
В-третьих, как ты пишешь код, не тестируя его, хотя бы даже вручную? Ты отправляешь код в продакшен, не зная, работает он или нет? А если тестируешь, то как и почему не автоматическими тестами?
>>1192723 Еще по поводу этого, в эликсировском эксюните есть охуенная фича, когда простые тесты можно писать прямо в комментах и потом гонять их в обычном файле с тестами через doctest. Но даже в этом случае подобные комменты мне кажутся бесполезными, потому что они читаются хуже, чем нормальные юнит-тесты, и хуже, чем нормальные API доки для внешнего пользователя. Хороший код в большинстве случаев комментирует сам себя. >>1192833 В идеале ты пишешь и тестируешь на ноде, а потом перегоняешь проект через какой-нибудь browserify в свои жс-ассеты для браузера. Но это требует хорошей архитектуры в проекте, когда отрисовка формочек и фронтенд-фрейморки идут отдельно от тестируемой логики, многим фронтенд-девелоперам такое обычно не под силу, но попробовать всегда полезно.
В плохом варианте - почти любой популярный тестовый фремворк работает и в браузере, но когда ты будешь писать эти тесты и гонять их в том же браузере, то появится неотвратимый привкус говна во рту и желание дропнуть это занятие навсегда, потому что браузерная среда не приспособлена для нормального тестирования
>>1192556 А почему именно tape? Часто вижу в вакансиях jest/mocha chai. Сейчас мельком почитал, пишут, что tape проще, не нужно кучу вспомогательного говна устанавливать и настраивать. Только по запросу "tape" на HH, только 15 вакансий, а по другим от 100.
>>1192910 Тестовый фреймворк выбирай сам, какой понравится. Jest с мочей вроде как самые популярные сейчас. Про Jest ничего не скажу, но моча - стандартный BDD фреймворк, с которыми я год-другой работал в другом языке, после чего стараюсь больше не трогать. Они тянут за собой слишком много глобальной магии и ненужных фич, вроде готовых моков и навороченного DSL. Tape я выбрал потому что это первый юнит-тест фреймворк, на который я наткнулся, когда начал писать на ноде. Он вполне стандартный, загружает файлы, региструет тесты и прогоняет ограниченный набор assert'ов, ничего лишнего.
Поясните за immutable.js, вот в каких ситуациях стоит использовать, если я и так пользуюсь всякими native фичами в js типа .concat, .map, {...objectName, } и тд, которые предотвращают мутацию? Или я что-то не так понимаю?
Хочу запилить онлайн 2D-игру в html5 canvas+javascript? Эдакий PvP-платформер, 2 игрока бегают друг за другом и пиздят друг друга. Это реально, чтобы javascript нормально отображал у обоих клиентов актуальную ситуацию на канвасе, или это говно без асинхронности, которой в жс нету, обречено? Если шанс есть, поясните куда копать (фреймворки, движки, на чем пилить сервер и т.п.).
>>1193017 > > >>1193005 > >без асинхронности, которой в жс нету > WebRTC для чего запилили, довен? И как webRTC поможем ему в реализации его говноигры?
>>1192938 В чем проблема, идешь на любой англояз.сайт по теме и листаешь туториалы, на гите смотришь популярные проекты по языку, изучаешь в том числе и архитектуру построения кода.
>>1193066 интерактив стоит. Если ты про их интенсив, то нет, он ты и после кантора охуеешь от него, а без кантора, как они его преподносят, для тех кто знает только хтмл и цсс, то это лютейший пиздец. Скачай и посмотри 1-2 урока и сам всё пойемшь
Господа, вечер в хату. Я тут вкатываюсь неспеша и всё такое, но вообще моя цель, как можно быстрее найти позицию джуна и ирл начать хавать экспириенс ложками. У меня есть товарищ, ментор, который даёт мне какие-то задания и отвечает на вопрос по ним, но у него на меня такие глобальные планы. Тип спешить некуда, сейчас я тебя хорошенько заебу нативным джс, без фреймворков, чтоб мог на нём писать, а потом будем фреймворки смотреть, тип подготовлю тебя со старта на зп в 40-50тыс. Но если честно, то я бы с радостью пошел и за 15, но как можно быстрее. Так собственно вопрос в ирл реалиях нативный джаваскрипт надо кому? На нём пишут что-то? Или если цель как можно быстрее влезть куда-нибудь джуном, то лучше почти сразу начинать дрочить джеквери какой? Я читал, что в теории джеквери можно учить воообще без знаний нативного джса
>>1193117 мне их интерактивы именно понравились, подписка вроде 300 рублей стоит на месяц, за эти деньги на моё имхо это дико заебись. Но вангую, что даже в этом треде меня обоссут и закидают ссаными тряпками и скажут, что только бесплатные книги, только гитхаб, только хардкор.
>>1192840 вот блин, чем дольше работаю во фронте, тем больше понимаю, что для моей комфортной работы и развития как спеца бэк должен быть на ноде, а не на пхп, сишарпе, питоне и тп, как сейчас. пичалька.
>>1193118 >нативный джаваскрипт надо кому? Реакт - это, по сути, и есть нативный джаваскрипт. Веб-компоненты будущие - тоже.
jQuery - это, скорее, DSL на базе JS. Но, если ты не знаешь JS и не знаешь браузер - события, DOM, etc - ты соснёшь и с jQuery. Или будешь просто тупой обезьяной.
>>1193118 Дрочи JS. Пиши чем больше - тем лучше. Чем жирнее будет твое понимание основ, чем больше опыта практики - тем проще будет вкатиться в какой нибудь фреймворк. >>1193158 Этот анон прав. И react - это библиотека, которая проповедует определенный подход к построению вэб приложений. Она вся - нативнй JS. Ив ней нет встроенных конструкций. Хочешь какой нибудь хитрый элемент - придется писать самостоятельно - встроенных нет. В принципе можно после хорошо усвоенных основ JS вкатиться в react. После того как ты усвоишь его общую логику работы - то столкнешься по сути с теми же задачами что и в нативном JS. Просто в определенных рамках. Задрочил навык решая задачи ранее - отлично. Не задрочил - придется дрочить все равно.
>>1193125 Какая разница, на чем бэк? Это в любом случае две абсолютно самостоятельные части, которые взаимодействуют только через API. >>1193145 Гугли, но в основном, когда говорят "я практикую BDD", то это переводится как "я использую BDD-фреймворк, чтобы писать тесты".
>>1193029 >И как webRTC поможем ему в реализации его говноигры? Ещё один довен. WebRTC позволяет создавать каналы данных с минимальными задержками. Т. е. если, например, нужно отсылать 60 раз в секунду какие-то данные на сервер/пиру (например, координаты какого-нибудь спрайта, контролируемого пользователем, данные об event-ах и т. д.), то делать это лучше через WebRTC. Потом WebRTC позволяет установить канал данных непосредственно между пирами - пересылать данные между пирами без участия сервера.
Аноны, посоветуйте, плиз, книжку или можт статейки какие на английском/русском по структуре и безопасности современных клиент-серверных приложений. Мне именно про организацию приложения, там сессии, кеширование и т. п.. Хотелось бы, конечно, чтоб примеры кода для бекэнда были на ноде, но необязятельно. Главное чтоб книжка была толковая.
Разобрался. Если кому интересно, то проблему решил экспортом в .fbx с засовыванием привязанной текстуры прямо в файл (до этого экспортировал просто геометрию, текстура искалась по относительным путям). После этого всё стало отображаться нормально.
Вкатывалищик итт. Подскажите где про хуйню почитать и как её реализовать.Ну, или посните своими словами. Есть допустим объект var contact = { name: 'Ivan', surname: 'Ivanov', phone: 123123123 };
И есть обычная таблица уже сверстаная, как вы догадались с полями "имя" "фамилия" "телефон" Как сделать так, чтобы в таблице показывали данные из этого объект (массива?) ?
>>1193993 >17065 Это ваш идентификационный номер? Куда пожаловатсья можно?
Мне хочется надеяться, что >>1193964 спрашивал именно про автоматическое заполнение таблицы и синхронизацию. Ну, как в шарпах указываются DataSource для получения данных оттуда у всяких винформс списков/таблиц/гридов.
>>1193972 а как еще с такими тупорылыми животными разговаривать которые сюда пачками валят со своими однотипными убогими вопросами? по таким вопросам можно безошибочно детектировать ленивого уебка, которому должны все разжевать и в рот положить. очевидно что кодинг для таких людей занятие не подходящее еще один мимокрок
>>1194032 Театр одного семена? Не хочешь, не отвечай, пройди мимо, нахуй ты сам генеришуешь тонны ненужного пиздежа? Если всё же найдется анон, который захочет помочь, буду благодарен за подсказку и наглядный пример. https://plnkr.co/edit/vY9R39wjVh7spEiD8LYT?p=preview
>>1193231 >>1193170 Хули вы тут распизделись, то что нет в самом Реакте - еще не значит, что нет в сторонних наборах элементов, которые можно спокойно использовать в своем проекте.
>>1192989 Разница в алгоритмической сложности. Immutable.js list он же persistent vector, например, имеет "constant time" иммутабельные push, pop, shift, unshift, без полного копирования всей структуры данных. Это важно, если речь идет о десятках тысяч элементов. Если в массивах не тысячи элементов и не нужны соответствующие иммутабельные методы, то выигрыша особого не будет, используй нативный массив и его методы плюс если нужно lodash/ramda
>>1194142 Уже второй раз вижу ее МУЛЬТИКУЛЬТУРНОДЖЕНДЕРНЫЕ выступления, я конечно понимаю, что она объясняет это все жс-девелоперам, но блять, это же не детсад, чтобы разжевывать простейшую концепцию 15 минут и иллюстрировать это зверушками.
Пацаны пацаны, что можно ньюфагу запилить на реакте, чтобы столкнуться со всеми типовыми задачами и руку набить? Пока делал только генерируемую таблицу с сортировками/поиском/фильтрациями, да невнятные хелловорлды. Только не сильно сложное/крупное, а то я испугаюсь, охуею и заплачу.
анон, зайка, посоветуй, пожалуйста, какие-нибудь библиотеки (стандартные функции?) для асиметричного шифрования данных (rsa, если такие уж есть, то можно и gnupg хотя это я подохуел, ну и желательно, что бы во всех браузерах работало, включая айфоновскую сафарю.эдж за браузер можно не считать)
буду очень признателен читай:нихуя, но вообще-то правда буду рад, если поможешь
>>1194444 Нах тебе rsa, ГОСТа лучше хлебни - http://gostcrypto.com Алсо, webcrypto api должен быть доступен в сафарях, попробуй через него rsa дёрнуть, можно он стоковый есть.
>>1194445 >ГОСТа хлебни ебаться-всраться, оно сществует? мать твою, "каждый день -- новый фреймворк" теперь у меня ассоциируется с r34. как этот пиздец развидеть господи помоги
>>1194445 зайкасолнышко, спасибо большое, уже нагуглил, и уже пульнул шифрование в йоба-проадкшн, спасибо, правда! абу, какого хуя анону можно дарить только нихуя, я бы этому чуви подарил бы в благодарность чонить
>>1194502 Попробуй в html написать <button onclick="sendItemList(event)>...</button> И в JS: function sendItemList(event) { event.preventDefault(); ... }
>>1194509 Пасиб, я уже нашел походу корень, бутон был помещен в саму форму - и даже без всяких action="" и submit - эта мразь слала по дефолту при нажатии гет запрос на эту же страницу.
>>1194571 Со второго, у меня специалитет + ещё можно в магистратуру пойти, но эт пиздец. Я не знаю, кто учился мб поймёт меня, потому что я знаю людей которые и с 4 курса съябывают
>>1194622 >с динамической типизацией ниудобна TypeScript тоже не особо удобен, если это не чистый TS проект. Народ в последнее время Flow юзает всё активнее.
Сап, котаны. Короче, достался мне один легаси проект, в корне - app.js, queue-job-cleaner.js, routes.js, ни один из трех нода не запускает. Выдает вещи навроде: Module did not self-register, Cannot find module './undefined.js' или вообще ничего.
Как и где это все гуглить? Я нуб, посадили за проект, типа, сам сиди и разбирайся, спросить не у кого. Хелп!
>>1194716 >Народ в последнее время Flow юзает Я просто ахуеваю от инфантилизма JS-коммьюнити. Постоянно какая-то новая хуйня выходит. То что старше года, считается устарелым говном мамонта. И даже то что актуально, они не могут определиться на что-то одно, каждый блять хипстер-индивидуалист, который хочет быть не таким как все. Пиздец, когда этот хайп сдохнет?
>>1187432 (OP) Добрый день. Надежда на вас, аноны-прогеры. Сижу весь вечер и не могу понять (поняч), как сделать результат цикла моего условного дропа списком из нескольких результатов, а не из одного. Я вроде интуитивно понимаю, где косяк, но нихуя допереть сам не могу. Сам дроп работает идеально, но мне надо статистику посмотреть на большие количества. Блять, уже всё испробовал, все возможные варианты и в самом цикле, и в консоле лог и нихуя. Помогите плис. То есть чтоб списком выпадало за щеку в консоли, сколько раз чего выпало. Я просто заебался, блять, уже. Надежда на вас. Заранее спасибо, если кто поможет. Вверху скрина код, внизу уже со страницы из консоли результат. Либо может как-то через функцию это всё переделать, чтоле.
>>1194839 Возможно. Я просто про Flow не так давно узнал, и, возможно, несколько предвзято воспринимаю эту тему. Ну, и TS - годная вещь, конечно.
>>1194847 Ты, в данном случае, перепутал тёплое с мягким. Конкретно эта тема к хайпу не имеет отношения. А вот 100500 менеджеров пакетов и прочей хуеты с однотипным функционалом - это да.
>>1187432 (OP) Нужно написать диплом за ночь. Осилю ли? Буду юзать Vue+Vuex. Нужен какой-нибудь годный шаблочник, кто что посоветует? UI фреймворк наверное юзать не буду, т.к в нем тоже разбираться надо, да и я не собираюсь слишком сильно заморачиваться
>>1195058 Если кто не понял - пилю SPA. Тема - энциклопедия музыкальных жанров. Да-да, не удивляйтесь, чому тема такая идиотская, я в шараге учусь(вернее посещаю, шарага мне ничего не дала, совершенно) и тут не сильно важна тема диплома, главное, мол, показать, чому ты научился за эти 4 года. На фоне одногруппников мой диплом, который я хочу запилить за ночь - будет чем-то новым, никто там и не знает, что такое SPA и Vue какой-то, их потолок жиквери. Ну и да, я конечно долбаеб немножко, что отложил всё это на последний день - но в этом весь я.
>>1195029 Что значит "фанат тестов"? Тесты - это необходимость, ты обязан их писать, если считаешь себя программистом. Вопрос только в стиле и методике. Я фанат вполне конкретноого TDD.
>>1194979 >почему не надо ... прикручивать типы(!) к ебучему жаваскрипту(!).
Собственно, это я и имел в виду, когда говорил о том, что TS не очень удобен во многих случаях. JS - динамический язык по сути, и полная обязательная статическая типизация в нём быстро становится обременительной.
Поэтому мне и понравился Flow (хотя, я пока не пробовал его в деле). Т.е., должна быть возможность поставить тэги типов там, где они нужны, и не ставить там, где не надо. И типизация должна быть необязательной, просто декларируемой. Unobtrusive.
Алсо, типы - это не только чекинг при компиляции. Это ещё и подсказки IDE, и документация. И поиск usages. И рефакторинг. И эти вещи для меня важнее. Например, когда имеешь дело с суровыми энтерпрайзными DTO на 100 полей, это очень упрощает дело.
И, разумеется, никакие тесты ничего подобного дать не могут.
Сейчас я использую для указания типов комменты JSDoc, а для DTO и прочих прокси и т.п. - файлы описания интерфейсов на TS - всё это поддерживается в IDEA (или WebStorm). В итоге - есть подсказки и хинты в редакторе, есть поиск использования типов и полей и т.п.
На какой стадии программиста(преимущественно фронт) нужно научиться понимать и возможно писать свои алгоритмы? Под алгоритмами я понимаю не примитивный quick или bubble sort, а нормальные: графы, красно-черные деревья, etc. Постоянное чувство(скорее всего из-за максимализма) неполноценности из-за того, что я их не знаю, хотя по факту на практике они и не нужны на данный момент.
>>1195075 Попробуй OCaml\Reason. Тайп инференс окамла позволяет вообще не ставить типы, он сам догадывается какие нужны. Обвязки для внешнего жс пишутся легко.
>>1195082 Тогда за что фронту платят такие деньги? Он же по факту знает гораздо меньше, чем бэк. Тупо применяет уже полученный опыт на практике и... этого достаточно? А бэкам и алгоритмы и структуры данных и базы данных... в разы сложнее, имхо.
>>1195075 >документация Хорошо написанный тест = актуальная техническая документация этого компонента >usages То же самое >рефакторинг Каким образом ты собрался эффективно рефакторить без тестов и как в этом деле тебе помогут подсказки IDE? Первый шаг рефакторинга легаси кода - это в первую очередь покрытие его тестами, хоть какими-то, чтобы убедиться, что ты не сломал хотя бы часть ожидаемого функционала во время своего рефакторинга. Ну а рефакторить изначально покрытый тестами через TDD код - это вообще тривиальнейшая задача, которая не требует никаких усилий.
>>1195084 Знания алгоритмов и структур данных нужны разве что в крайне специфических ситуациях, ибо всё популярное уже давно реализовано и встроено в стандартную библиотеку, либо уже есть готовая реализация.
Читаю лернжабаскрипт. >нууу кароч константа это типа неизменяемая, ее можно изменить, но все договорились не делать так >ну кароч _ означает защищенное свойство, вроде и можно к нему обратиться, но приличный кодер не станет Это норма в вашем погроммировании?
>>1195176 Ленджабаскрипт местами очень уёбищен. Если где-то гребешь в статье, то лучше перелистывай на следующую, а ту гугли где-нибудь ещё, на stackoverflow например
суп програмач!! помоги плиз советом ньюфане!! вы же тут все добрые и отзывчивые вообщем суть такова - как мне данную строку "000" (три нуля) перевести в число 000 (три нуля) а потом прибавить к нему 1, что бы в результате получилось 001 parseFloat("000") естественно преобразует эту строку к 0, а других вариантов я чет и не вижу(( вообщем подскажите пжлст выход из ситуации
>>1195143 Тесты заменить нельзя ничем. Нет такой вещи, которая тебе бы давала такую же уверенность в коде как покрытие его тестами. Типы - это не тесты, это простейшие ограничения, которые ставит сам программист. Ни один тест не ставит своей целью "протестировать, что эта функция получает на вход только int", он тестирует логику работы этой функции, либо взаимодействие функции с другими частями приложения. Но при этом, косвенно, тест показывает и то, что функция вызывается только с правильными параметрами и что вызовы к этой возвращают нужный результат. >>1195176 Это норма в жаваскрипте. Константы в общем-то добавили, но приватных методов тут нет, либо реализовывать их надо через жопу, поэтому легче поставить подчеркивание. Просто прими как факт, что язык разрабатывался на коленке в качестве приблуды для веб-страничек, но внезапно он стал использоваться везде. Ты еще встретишь гораздо более ебнутые нелогичные вещи, с которыми нужно просто смириться. Кстати, это еще одна из причин, по которой тестирование жс-приложения особенно необходимо.
>>1195244 >он тестирует логику работы этой функции Именно. Вот только все равно нужно писать тесты для проверки как юнит ведет себя если он получает некорректные параметры. Строгая типизация избавляет от этого.
>>1195244 А вот тут ты не прав. Типы гораздо эффективнее тестов. Покрытие типами дает такую уверенность, какую никакие тесты не дадут (потому что столько тестов никто не в состоянии написать). Хорошие типа отловят куда больше логических ошибок еще на стадии ввода текста. Тестировать останется только верность алгоритма, а это на порядки меньше.
Ох, ебать, в моей мухсрани появилась первая и едиснвтенная вакансия с названием жуниор, да еще и требования разумные впрочем, там похоже надо будет в древнем говне на жиквери ковыряться, но уже хоть что-то. Пиздец, аж сердце начало колотиться. А у меня портфолио - ебаное убожество с полтора лендосами, да и резюме парашное. К тому же я в эту контору тыкался, когда еще верстал на флоатах и самыми используемыми в моем коде функциями были алерт и конфирм. Мне давали тестовое, я сделал какое-то говно, мне сказали что испрвить, а я не смог и загасился. Пиздец, пиздец, пиздец. Похуй, все равно тыкнусь. Надеюсь, хаэрка будет другая или уже меня не помнит. Как трудно жить-то.
>>1195265 Гуглишь, как установить ноду и как создать в ней проект, потом гуглишь любой тест фреймворк для ноды, рекомендую tape >>1195285 Если твой юнит должен себя вести как-то при некорректных параметрах, например выкидывать конкретную ошибку "missing required parameter: zalupa" или возвращать объект {error: "zalupa is missing"}, то да, ты тестируешь это в любом случае, потому что это часть логики юнита, которую ты пишешь. Если нет, то ты просто оставляешь это на совести колеров этой функции, что они ознакомятся с API. Это суть динамической типизации. >>1195289 Тесты дают уверенность в работе программы, тогда как типы дают уверенность в тексте программы. Ты можешь быть уверен, что те ограничения, которые ты сам наложил на свою программу, выполняются. >Тестировать останется только верность алгоритма С любом языке, с динамической или статической типизацией, ты всегда тестируешь только алгоритм и ничего больше. В динамическом языке тестировать параметры функции на правильность - это идти против сути самого языка в 90% случаев.
А если у тебя есть полностью протестированный алгоритм, то ты сам начнешь задавать вопрос "а нахуя мне писать int каждый раз, если тесты и так показывают, что функция вызывается с нужным параметром и возвращает ожидаемый результат?". Разве что ради подсветки в IDE, что вопрос вкуса.
>>1187432 (OP) Анон, помоги мне справиться с болью работы с реактом и вебпаком. Сам я занимаюсь бэкендом, пришлось временно взять на себя часть работы по фронту, от чего я знатно охуел. Сперва разработка на всём вот этом очень понравилась, но я столкнулся с проблемой.
В проекте вынуждены были временно отказаться от роутинга реакта в пользу роутинга бэкендового фреймворка django. Поэтому весь написанный код на js приходится сперва собирать вебпаком в бандл, а потом полученный бандл подключать к html-шаблону. Беда только в том, что сборка бандла занимает какое-то неописуемо долгое время. Может по 5 минут длиться, что превращает процесс разработки в какой-то бесконечный ад:
Собираешь бандл 5 минут @ Забыл поставить запятую @ Исправляешь @ Снова собираешь.
Посредством гугления я понял, что избежать этого процесса никак нельзя. Это ведь так? Можно этот процесс хотя бы ускорить? Собирать отдельно каждый большой реакт-компонент, а потом всё это как-то импортировать, ну или как-то ещё?
>Константы в общем-то добавили, но приватных методов тут нет, либо реализовывать их надо через жопу, поэтому легче поставить подчеркивание.
Но ведь сейчас на совсем нативном ЖС никто не пишет, разве что jquery-дауны застрявшие в 2007. Все пользуются либо Бабелом с плагинами, либо тайпскиптом. А там уже всё что надо есть.
И ещё, можешь просто оптимизировать конфигурацию вебпака. Например, зачем тебе для разработки минифицировать яваскрипт? Или чанки собирать? Убери всё это, сделай dev и prod конфигурацию и будет тебе счастье.
>>1195372 Какая разница, что у тебя за обертка, если сам язык не поддерживает эти вещи? Они в любом случае будут реализованы средствами языка, даже если ты пишешь private method() {}, под капотом он все равно переводится в один из нативных костылей. Тот же кофескрипт, где он сейчас? Какие гарантии, что очередной тайпскрипт или жопаскрипт не будет выкинут на свалку истории, а проекты на нем не окажутся в категории нечитаемого легаси кода, который хуй обновишь без полного переписывания?
>>1195264 Ну давай, расскажи про себя, что с тобой? Такой же был? У меня есть мотивация что-то делать только к тем вещам, какие мне интересны. Диплом вуза то никому не нужен, а колледжа тем-более.
>>1195356 Моя компания, как видишь, на полноценного фронта зажабилась. Если бы наняли, я бы ему кофе носил, только бы этим не заниматься больше.
>>1195358 >>1195385 Как я понимаю, эта штука просто запускает тот же процесс сборки, но когда я меняю что-то в коде? Забыл упомянуть, сборка бандла нахуй вешает мой комп пока не закончится. Причём с довольно мощной конфигурацией. Подозреваю, что процесс разработки превратиться в то ещё развлечение. Сейчас попробую минификацию отключить, может, поможет.
Да, но пересобирается не весь проект, а только его часть. С Hot-reload это ещё быстрее, потому что обновлять страницу даже не надо. Ещё, уточни в package.json какая версия вебпака используется. С каждым майорным релизом его производительность увеличивается.
Алсо, в 4-м вебпаке есть выбор режима в конфиге - продакшн или девелопмент. И это влияет на размер кода - в дев. режиме есть подробные комментарии. Так что, если ты ещё и минифицируешь потом такое, то это совсем нехорошо.
>>1195476 Анон, даже не представляешь, как ты мне помог и как я тебе благодарен, в итоге с твоей помощью и помощью гугления, я уменьшил время сборки с пяти минут до 11 секунд, лол. Сильно помог ещё и HardSourceWebpackPlugin. Сейчас ещё попробую оптимизировать свой конфиг. Ещё раз спасибо.
Те же приватные методы или интерфейсы - уже Stage 3, их вот вот внесут в официальный стандарт.
И если тайпскрипт отличается хотя бы типизацией, то того же бабела не будет никаких проблем. Если только вместо официально поддерживаемых, ты ставил васянские плагины. Шанс на то что что-то выбросят - очень минимален, и даже в этом случае проблему можно оперативно устранить, а до устранения даже спустя лет 10 проект будет работать хотя бы благодаря содержимому package.json. Тайпскрипт же перевезти на тот же бабел или уже потенциально разжиревший в будущем нативный ЖС намного проще в виду практически одинакового синтаксиса.
Что за специальность то у тебя такая что за ночь можно дипломный проект написать? Я в качестве дипломной делал проект по распознаванию образов с использованием нейронных сетей и потратил на него весь последний семестр, притом что приличную часть проекта я спиздил. Правда я учился в своём миллионнике когда ещё айти-специальности шли по специалитету, а не бакалавриату, но я не думаю что год разницы такие отличия в требованиях даёт.
>>1195542 >делал проект по распознаванию образов с использованием нейронных сетей А ты тут такой не можешь нормально с Редаксом и Web паком разобраться :/
>>1195158 Сорян я тестовое херачу на самом деле для устройства на работу и так то я бэк на пхп ебашу 90% времени, но тут зарядили всё на аяксе сделать без перезагрузок и всё такое, вот и сижу разбираюсь в основах с 0.
А можешь создать index.html файл, и писать в нем с помощью тегов <script></script> или создать script.js рядышком и его подключить Почему ты хотя бы https://learn.javascript.ru/hello-world не прочитал?
>>1195645 Ну я бросился сразу книгу читать и думал, что есть какая-та ide вроде visual studio как у c#, но я просто не так понял, что такое javascript. В общем спасибо, теперь во всем разобрался.
>>1195443 >>меня есть мотивация что-то делать только к тем вещам, какие мне интересны
Тут ты и соснешь. Потому что интерес уходит , и тогда нужно тащить на дисциплине. >>Ну давай, расскажи про себя, что с тобой Да, такой же. Потом воткнулся в оч теплое местечко эникеем, и просидел так 8 лет. Потом понял что мне пизда. Что мне 30, что я нихуя не умею толкового и что перспектив нет. Начал дочить JS. Уволился. Сейчас дрочу react. Устроился на работку в спокойное место где есть большая тема на питоне + sql база. Буду все это изучать. Я тебе так скажу -важнее таланта, мозгов и прочего - умение подчинить себя дисциплине. Это важнее всего.
>>1195529 Каким образом? Если у тебя в коде эта функция вызывается неправильно, то тесты выявят это в любом случае. Валидация параметров обычно нужна только для удобства пользователей API, чтобы они сразу видели нормальное сообщение об ошибке, когда, например, вызовут конструктор без нужного параметра.
>>1195641 Лучше сразу ставь ноду и учись работать из терминала, а так же с файлами. Программировать в консоли браузера или через создание веб-страниц - это путь инвалида. Для винды тебе очевидно будет нужен нормальный терминал, можешь поставить ConEmu
>>1195176 Вообще неправильное определение константы. Это неизменяемый референс и значит именно референс не изменится. Объект там может быть мутабельный, но const гарантирует, что это будет один и тот же объект. Во всех языках const, final, let, val ведет себя именно так кроме Rust, который при иммутабельном биндинге дает именно иммутабельный объект и может за этим проследить, хотя можно реализовать и классическое поведение, которое здесь называется interior mutability
>>1195176 Понятие приватности на уровне ооп и прототипов не реализовано. Но proposal добавить их весьма популярен и любим народом, так что вероятно будет к es2019-2020.
Как получить настоящую приватность без ленивых __SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED можно почитать у Elliott E. - Programming JavaScript Applications, глава 3: Objects
Пилю фронт для борды на реакте. Застрял на ответах на посты. Как мне сделать попапы постов react-way? Мок на codepen https://codepen.io/anon/pen/aGxMRr
>>1195723 Ты из какого-то идеального мирка вещаешь. В реальности случается дерьмо, причем иногда из-за тупейших ошибок и невнимательности. Я не оспариваю нужность тестов. Я говорю, что использование типов снижает количество эти самых тестов в разы за их не надобностью, т.к. в нормальных языках типизация заставляет обрабатывать все возможные варианты. Опять же большая часть отладки из рантайма переходит в компайл-тайм.
>>1195735 Я предлагаю ньюфагу писать код в терминале на винде. Никто не будет ебаться с установкой линукса в виртуалку или второй системой, если они только начали изучать программирование, а хеллоувордам похуй, где запускаться.
>>1195749 Я пытаюсь донести мысль, что наличие типизации никоим образом не влияет на количество тестов, это абсолютно разные категории. Нет таких тестов, которые ты можешь скипнуть, если у тебя есть типизация. >>1195750 Ты путаешь две разные вещи, вебпак можно интегрировать в любой проект и он так же будет тебе компилировать фронтенд-ассеты в риалтайме.
>>1195752 А в чем вообще профит на ноде код запускать? Как среда выполнения влияет на обучение? К тому же, ему наверняка скоро надоест писать функции пук, которые на выходе дают среньк, он захочет писать более красочные перделки и пойдет ковырять дом.
>>1195767 Кстати для IDE стоит VSCode чекануть. Отличный баланс между модными редакторами (atom, sublime) и монструозными ide. Поддержка JS и TS на 20 из 10
>>1195761 Профит в том, что ты можешь сохранить код в файлы, разбить код на адекватные модули без ебли с глобалами, запускать разные файлы одной командой, при этом гугля что-то в бразуере и т.д. Любой адекватный фронтенд-разработчик рано или поздно перейдет на ноду, потому что пересобирать ассеты(даже автоматически) и жать ф5 в браузере каждый раз, чтобы проверить элементарное изменение в коде - это полный пиздец. Так что лучше уж сразу начать с нее, а в браузере играться только с домом.
Привет друзья,вкатывалищик итт, нужна ваша помощь. Т.к. я всю жизнь мечтал стать илитным формашлепом, то управляюсь с формами. Но я заглох на нахуй. По задумке я заполняю форму, нажимаю кнопку добавить, данные добавляются в таблицу. Но с таблицой происходит очевидная хуита. По сему было решено вынести в отдельную функцию createTable которая будет: 1) удалять все строки кроме заголовка 2) добавлять строки используя данные массива Но чет я в душе не ебу как это сделать. Мудрые, господа, помогите мне допилить мою функцию, а дальше я сам http://plnkr.co/edit/UkogZiYVIEJYWnB7LfYF?p=preview
>>1196048 Спасибо конечно. Но что-то я посмотрел как у тебя всё коротко, красиво и работает и грустно стало от того какой я тупой. Пиздец. Спасибо еще раз
>>1196041 Открой для себя шаблоны. Рекомендую JSRender. Он удобен и просто пиздецки быстр.
Ты делаешь шаблон в строке или в тэге <script type="x-template"> (тип - любой, кроме стандартных, он не имеет значения, главное, чтобы браузер его _не_ знал). А потом - ты этот шаблон рендеришь куда надо (таблицу целиком) - в контейнерный элемент.
У него есть компаньон - JSViews - привязка данных (двусторонняя) - как в Vue.
И, конечно же, если таких вещей у тебя много - открой для себя Vue. React тоже можно, но это будет сложнее для вкатывальщика.
>>1196081 да я пока ванильный жс ковыряю и кроме него ничего еще не трогал. Наверно надо потом джеквери покрутить какой. И анонвы выше писали в треде не спешить лезть во фреймворки без достаточных знаний ванилы.
>>1196085 Жиквери - ебаный костыль для инвалидов и домохозяек, не надо его трогать, разве что если в подзалупную контору пойдешь работать, где на тебя легаси говно свалят, да и то с жиквери по ходу дела разберешься. Для обучения с него никакой пользы, я гарантирую это.
Вся эта погоня за стеками и технологиями выглядит как клоунада. Хочется уже просто брать и врать об опыте работы. Сказать, что пилил систему на реакте, монге, ноде, 3д и что они еще там любят такое модное. А исходники показать не можешь и система закрытая была. ковыряльщик в жиквери легаси
>>1196099 > с чего такой хейт к жиквери? С того, что это просто набор функций, предназначенный для тех, кому манипуляция с домом на чистом жаваскрипте слишком сложна. > куча проектов на нем висит Тормозящих, неподдерживаемых, 2007 года выпуска? > а по "ходу разбираться" никто ньюфага не возьмет По ходу разбираться - это открыть документацию и смотреть какая функция тебе подойдет для конкретного случая, запоминание этих функций займет пару недель максимум.
>>1196085 Вот смотри, я написал тебе это решение >>1196048 Оно, скорее всего говно, потому что ни на ванильном js ни на jquery я никогда ничего не писал и конструкции, что ты использовал знаю лишь отдаленно. Но я 8 месяцев успешно прокидываю пропсы в реакте за выше средние для своей мухосрани 80к в месяц. Такие дела. Сделав сейчас упор на вью или реакт ты очень быстро получишь выхлоп в виде реально работающих сложных интерфейсов, не в табличку нод добавить, блеать. Добра.
>>1196140 в #table два потомка, а вообще это первое что нагуглилось на counting dom nodes
>>1196142 летом прошлого года я впервые начал изучать реакт, до этого знания были только в html и css. Изучал по ходу только то, что чаще всего встечалось именно в реакте, я имею ввиду не апи самого реакта, а те конструкции языка, которыми он оперирует - классы, функции, перебирающие методы браузерные апи - вот это всё, что пишешь 70% времени работая с реактом. Хотябы поверхностно, но как работает shadow dom, зачем jsx. На сегодняшний день фултайм из этих баззвордов: react redux flow webpack ssr jss jest enzyme. К этому неминуемо добавился линукс гит и докер. До этого был сорт оф прожект менеджер - тзшечки писал да терминами жонглировал.
>>1196085 >Наверно надо потом джеквери покрутить Вообще его не нужно трогать. У него уродлевый синтаксис. Все что можно сделать с jquery, можно и без проблем на ванильном js сделать. Может чуток больше кода будет, но зато более удобного и понятного кода. Ах да, и по производительности jquery отсасывает ванильному js.
Где найти гайд по редаксу для даунов? Документация какая-то пиздецовая, составлена так, будто я уже должен знать как он работает и как им пользоваться, а гайды из гугла либо устаревшие, либо "хуяк тут вот эту функцию, вот тут вот это вот пиздыкс и работает, ебана, ну вы поняли кароч".
>>1195754 ну чтобы вепак делал это в реалтайме в проекте где бэк на пхп например, то нужно еще докручивать всякие скрипты типа watch.js который будет смотреть на изменения папки или файла и на эти изменения все пересобирать и висеть в консоли - короче это долго и геморойно. легче сделать npm start и все крутится само.
>>1196104 да, манипулировать с домом на чистом жс не сложно, а долго. нахуя тратить время, если можно не тратить. >Тормозящих, неподдерживаемых, 2007 года выпуска? и все равно больше чем на реакто параше, разработка на которой занимает так много вермени, что никто ничего серьезнее одностраничников на реакте не делает. >По ходу разбираться - это открыть документацию и смотреть какая функция т а зачем им тебя тогда брать? любой таджик сможет так сделать.
>>1196098 >>1196135 >>1196237 Но везде же пишут, что это самая популярная библиотека, и если посмотреть вакансии джунов по Минску, то вроде везде джеквери указывают
>>1196258 У jquery падает популярность. Думаю через года 2-3 он нишей станет. Ну если тебе прям так хочется или других вакансий там у тебя нету, то учи его, oн не сложный.
>>1196257 > нахуя тратить время, если можно не тратить. Пара лишних минут механического тыканья по кнопкам - это, конечно, весомая причина тащить фреймворк на проект. > и все равно больше чем на реакто параше Жиквери был сделан во времена молодости твоей мамки, а реакт несколько лет назад. Хм, действительно, в чем же дело? > разработа на которой занимает так много вермени Так ты его не осилил, дурачок? CRA попробуй, там даже ты справишься. > никто ничего серьезнее одностраничников на реакте не делает. Фейсбук, инстаграм, вконтос, да даже сосака его тут пользует. Поставь девтулс реактовский, да потыкай по интернету. > любой таджик сможет так сделать Так на жикверях писать и так обычно даунов берут, лол. Ни одна серьезная веб-макак на жикаери не подпишется, разве что совсем ра безрыбье.
>>1196041 Господа, я кстати бампану вопрос. Господин выше написал мне решение, но оно не много не такое. Оно берет данные напрямую с инпутов и записывает их в таблицу. А мне надо чтобы данные брались из моего массива. Т.е. у меня написано, что в начале по нажатию бтн, данные с инпута записываются в массив, а с него уже в таблицу. Так что вопрос остался открытым. Как заставить эту ебаную таблицу нормально работать.
Анончики такой вопрос, есть один блог, пых внутри, снаружи бутылка древнее говно. Хочу привести все это дерьмо в порядок, но при этом не тратить сильно много времени. Подумываю о метеоре(был минимальный опыт), стоит вопрос с индексацией ибо блог и видимость в поисковике важна. Собственно вопрос, если я буду генерить страницы на сервере(page/12383.html) а на клиенте буду давать ссылки на них, но перехватывать клик и рисовать все реактом. Прокатит такое?
>>1196311 Во-первых у тебя очень грязный стиль. То точки запятые не везде ставишь, то var let const вперемешку, то табулятор не используешь. Простые функции я бы не объявлял как var dodik = function(), а function dodik(), как это в нормальных языках делается.
>А мне надо чтобы данные брались из моего массива > 1) удалять все строки кроме заголовка > 2) добавлять строки используя данные массива Изменил твою функцию createTable так, как ты хотел, но так обычно не делается, потому что это не эффективно. Обычно добавляют только новый элемент, а не все заново. Еще я добавил функцию addToTable, она делает как надо. (В продакшене конечно не совсем так, там нужно будет конкретный элемент передавать аргументом в функцию, а не брать последний элемент из глобального массива). Если хочешь использовать свою функцию, то убери перед ней коммент и поставь его перед addToTable.
>>1195075 >JS - динамический язык по сути, и полная обязательная статическая типизация в нём быстро становится обременительной. Она становится обременительной, если не умеешь выстроить архитектуру для статической типизации. В нормальной архитектуре заточенной под статичную типизацию редко возникает необходимость писать костыли с динамической. Если тебе такое приходится делать часто, значит ты что-то делаешь не так и статическая типизация просто не для тебя.
>>1195084 А в чем сложность бэка? Получил реквест, притянул данные из базы, вернул респонс. Тоннельная логика, не нужно жонглировать лярдами компонентов, не опасаясь, что интерфейс не развалится после третьего клика с обновлением десяти таблиц и синхронизацией их между собой, особенно когда бэкенд лег из-за того, что не смог замапить лишнюю property в жсоне. Сложность везде своя, друг. Не надо так смотреть свысока.
>>1196330 > жеквери-имбецил называет кого-то тупым, потому что не хотят есть его древнее говно Найс. Иди поверстай лендосы на таблицах, да прикрути пару жирных плагинов.
>>1196142 Реакт по сути и есть ванила. Начинающий может тупо заучить конструкции, и без понимания сути просто повторять их. Как там this передается - не особо и важно для работы - есть устоявшиеся конструкции. А в обработчиках пилишь стандартный js код. >>1196160 Скажи, мне интересно - ты понимаешь логику замыканий ? Передачи контекста this? Как работает прототипное наследование? super ? Промисы, итераторы , генераторы? Как this работает стрелках ?
>>1196533 >ты понимаешь логику замыканий Функция может искать переменные, определенные в контексте замыкающей функции через ссылку [[scope]] >Передачи контекста this? Указывает на контект вызова, объект перед точкой. >Как работает прототипное наследование? Костыльно. Если данные не найдены в объекте, то они ищутся в прототипею >Промисы Асинхронная хуйня, которая либо выполняет атомарную операцию успешно, либо возвращает ошибку. >итераторы Использую итераторы C++. В ЖС это наверняка хуйня какая-то. >генераторы Хуйня >Как this работает стрелках ? Стрелки не имеют своего контекста, их контекст заависит от того, где отработала функция.
>>1196533>>1196579 Опять шизик с замыканиями и промисами вылез. Ты думаешь это какие-то пиздец сложные понятия, которые нельзя загуглить и понять за пять минут, даже если их не знаешь? Зачем ты один и тот же вопрос задаешь пять раз за тред? Надо проверять общие знания, а не конкретных костылей в ЖСе. Например: что такое монады и почему жс промис - это монада?
>>1196459 Вопрос только в том, нахуя писать на джаваскрипте, если тебе больше по душе статическая типизация. И уж тем более выстраивать архитектуру целого приложения вокруг костыльно прикрученного тайпскрипта. Это как в функциональном языке хуярить структы на каждый чих и пытаться ими заменить объекты. Просто прими, что это другой стиль, другая парадигма со своими плюсами и минусами, и писать нужно по-другому. Еще скажи, что ты интерфейсы хуяришь в жсе, я вообще серану.
>>1196585 >>1196586 >>1196597 Ебать вы упоролись. Я просто хотел узнать у чувака - потребовалось ли знание всего чего я спросил, и озадачился ли он этим. >>1196576 Ты аообще полудурок, нахуй ты простыню то свою высрал.
>>1196571 Рефакторнул твою помойку, но можно еще лучше сделать. И добавил правильные ответы в конце теста, только стайл ты уже сам прикручивай какой тебе надо. https://jsfiddle.net/fbbLhkyc/
Оборачивают ли в 2к18 код в анонминую самовызывающуюся функцию или теперь есть какой-то более изящный способ? Как вообще нормальные пацаны нынче глобальные переменные прячут?
>>1196980 Потому что это CSS selector. В нативном жс document.querySelector() точно так же работает. А ты баран даже этого не знаешь, а уже лезешь в jquery. >вебмакака врывается в итт Ну собственно все понятно
Аноны, а какой сейчас самый модный стек под бекэнд? REST API - вчерашний день. Вместо него сверху есть прослойка GraphQL. А что по СУБД? MongoDB доверия не внушает.
>>1196576 >Стрелки не имеют своего контекста, их контекст заависит от того, где отработала функция. Плохо гуглил. Их контекст зависит от того, где они были созданы.
>>1197022 >graphql твой хуйня без задач Ну ты и дебич. С GraphQL можно делать всё, что можно делать с любым REST API, и при этом всегда за один запрос. Плюс всегда в запросе можно указать, какие поля тебе нужны.
>котлин Уёбывай в свой хипстерский калоотстойник >>1164648 (OP).
>>1197270 Друх, если можешь в английский, то лучше смотри видосы на ютубе, или скачивай с торрентов видео-курсы в таком же формате. Я имею в виду что-то вроде "react from scratch", где 10-20 видео по ~20 минут. Материал в таком формате воспринимается ЗНАЧИТЕЛЬНО проще, главное старайся найти за 17-18 года и читай комменты под видео, там часто пишут, как исправить ошибки и прочее. Js это не тот язык, где есть острая необходимость в книгах, оно конечно не повредит, но скорее просто отнимет больше времени.
>>1187432 (OP) >В этом треде собираются величайшие умы человечества
Моя остановочка. Я в прогромировании ~0. Реквестирую код скрипт/расширение для браузера/эту штуку/ну как там её "антимоча". Главная задача его в том чтобы при автообновлении треда не тёрлись удалённые мочой посты желательно чтобы они помечались а что нужно схоронялось и чтобы не майнил и по возможности делал минет. Подъемная задача, анон? Наверняка кто-то состряпал уже такое. Я вообще туда обращаюсь и где можно попросить? В гугле забанен.
>>1197320 Они остаются, только вместо номера 509, например, будет надпись "удален". Но если саму страницу обновишь, то удаленные посты пропадут, кстати. Чтобы и при перезагрузке страницы их сохранять, нужно уже как-то изворачиваться, я не знаю ничего на этот счет.
>>1197235 Ты думаешь побитовами операциями только в С занимаются? Их блять почти каждый язык поддерживает, даже блядский питон. Если ты хочешь работать непостредственно с данными файла или потока, ты будешь часто использовать побитовые операции. И даже в JS, например когда ты пишешь свой плеер и работаешь с протоколом HLS, ты переделываешь контейнер ts в mp4, там полно побитовых операций. Или когда пишешь свой файлформат (аудио, фото, видео, не важно), который браузер не поддерживает, или свой (раз)шифровальщик. Это все можно делать и делается в JS, примеры можешь в интернете сам найти. И вообще что ты так возмущаешься? То что ты не осилил побитовые операции, это уже твои проблемы, тебя никто не заставляет ими пользоваться, если ты обычный формошлеп, можешь готовые решения скачивать.
Смотрю уроки по реакту, там мужик начинал всё показывать с уже готового к работе репозитория. А я сделал для начальной основы create-react-app. И выходит так, что у мужика есть в корневой папке фаил babelrc, а у меня нет.
Откуда берется фаил babelrc? Как и зачем его создавать?
>>1197332 Олсо, думал сначала просто возвращать Promise.Reject, но у меня уже висит на .catch обработка ошибок, да и как-то непохоже это на хороший кодстайл, должно быть что-то иное.
>>1197332 >при определенном ответе от одного из них, нужно прекратить чейн, а при остальных продолжить >чтобы если первый резолв вернул false, последний .then поставить блядское условие if(val !== false) {твой код} ?
>>1196924 VSCode для именно редактирования/рефакторинга/автокомплита JS/TS работает лучше, в то же время в разы легче WS, потому что имеет куда меньше менее важных фич. Вполне неплохое plug'n'play решение, если не хочется часов анального секса за плагины худшего качества на виме.
Люто заебался смотреть на вакансии джунов из других городов, которые мне никогда не светят. В моей ебаной мухосрани ровно 5 вакансий фронтенда и ни на одной из них ниже миддла никто нахуй не нужон. Думаю смириться и опуститься до пхп, этого говна у нас как собак нерезаных. Какие подводные?
>>1197538 Посмотрел вакансии на похапе. Берут стажеров. Надо немного уметь пхп и хтмл. Зарплата 20 тыщ, что для мухосрани неплохо, а для стажера даже охуенно. Как там дела с фронтовскими вакансиями - промолчу. Просто, блядь, промолчу. https://youtu.be/TRXdxiot5JM?t=42s
Если мухосрань, то есть шанс что тебя возьмут на позицию Мидла даже если ты нихуя не умеешь, особенно если работодатель какой-нибудь провайдер или госконтора, где синьором является бывший монтажник оптоволокна с годом опыта работы.
>>1197580 >особенно если работодатель какой-нибудь провайдер или госконтора Да нихуя, там в основном манявебстудии, а в требованиях вообще все, от жиквери до ангуляра.
>>1197587 Епт, у нас то же самое. Знание всех фреймворков, ноды, джейквери, опыт работы от двух лет. Хз, что там за пиздец творится, знаю лишь, что там зп по два месяца задерживают и оформляют неофициально. В другой конторе требования те же, но хоть зп выплачивают.
Чувак, ты не поверишь. Это и есть "хороший кодстайл".
>Нужно зачейнить промисы. Промис - это монадообразная конструкция. И именно так они и чейнятся.
Монада - это контейнер для одного значения. И набор функций для работы с этим контейнером. Каждая функция принимает контейнер и функцию работающую со значением, и возвращает новый контейнер.
Контейнер может быть полным или пустым. Если он пустой - рабочая функция ничего не делает, если полный - делает.
Т.е. чейн _не_ прекращается, он просто работает вхолостую с момента ошибки.
Ошибка должна сохраняться до конца цепочки, и это забота библиотечного кода, который предоставляет тебе промисы.
Что не так с ООП в JS? Может быть я чего то не понимаю, но то что я сейчас увидел - тихий ужас. Почему они все еще не могут ввести что то подобное как в руби или питоне, зачем все эти издевки?
>>1197700 >Я тоже не буду, ибо тред тонет, и всё будет слито в унитаз. Можешь писать, треды на этой доске все равно долго не удаляются, вон два предыдущих js треда можешь до сих пор в каталоге найти.
Аноны, помогите разобраться с этой прототипной логикой.
Вот в Object.prototype.constructor содержится ссылка на Object. Почему тогда не получается циклической вложенности? Ведь в Object по сути ссылается внутри сам на себя.
>>1197743 В JS более мощная система. При помощи сахарка можно реализовать все, что есть в Python/Ruby. Разве что приватность слегка сложнее, но скоро и нативную приватность добавят.
Нюфаг 25 лвл выходит на связь. Я никогда в жизни не трогал программирование, решил вкатиться, сменить работу с манагера за 80к на web-программиста 80>100>130>150k
Установил себе Atom, листаю learn.javascript.ru
В большей степени нихуя не понятно, получается только некоторые задания делать и то потому что я на этом же сайте прочитал как написать нужный скрипт. Есть че попроще, прям совсем для новеньких? Нужно что бы был более подробный конструктивный разбор с пониманием что зачем и почему. Лернджава больше похоже для тех кто хоть какой-то язык учил.
>>1197845 Вот и меня и смущает приватность, через symbols или замыкания, очень интересно и в то же время странно выглядит Насчет нативной инфа соточка? Язык не молодой уже, странно что до сих пор нет
>>1197923 Там с каждой страницы актуальной инфы пару абзацев, остальное - разжевывание, что и почему и куда. Запоминается всё это прочтением и закреплением через практику(задачи). Параллельно можешь потыкаться в codewars или аналог. Всё это по мере прохождения по учебнику будет так или иначе повторяться в составах других задач. Из странного вброса инфы тяжелого могу вспомнить только главу про чай и мочу тестирование.
Если ты метишь в веб, тебе так или иначе понадобится html/css, попробуй с них начать, а после жабаскрипт уже, там всё очень легко и сразу можно простенькое на страничку лепить, но к программированию отношение отдалённое и в понимании жс это тебе не поможет особо.
А вообще, если не понимаешь как энное действие делается, поковыряйся в консоли разработчика в бровзере, пошерсти по комментам к главе учебника, поищи в интернете, на каком-нибудь стековерфлоу есть подробные ответы на любой твой вопрос с 99%-ным шансом.
>>1197845 Язык как раз начал получать базовые фичи в 2009 (es5) и 2015 (es6, теперь зовется es2015). Теперь четкий процесс при котором умеренно штампуют фичи каждый год. https://github.com/tc39/proposal-private-methods Stage 3 значит шанс, что введут достаточно высок.
В этом треде собираются величайшие умы человечества – мастера валидации форм и специалисты по JSON-технологиям. Этот тред посвящён главному языку будущего – JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач – от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы: https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения: https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки: https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md
Конфа /pr/ в Slack: https://slack-2chpr.herokuapp.com/
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.