Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
Краткий FAQ: 1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.
2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi, Unity), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. У меня вопрос по вёрстке, HTML или CSS, CSS-препроцессорам, Bootstrap или дизайну. Вы мне поможете? - Вряд ли. Этот тред посвящён непосредственно программированию, а вёрстка обсуждается в “Вёрстка-треде” в /wrk/, там и спроси. Кроме того, настоятельно рекомендую пройти https://htmlacademy.ru/ , если ещё не сделал этого раньше. После этого 90% вопросов отпадут сами.
4. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
7. Я хочу писать на ES6, но многие браузеры не поддерживают новые возможности. И вообще, надоел геморрой с браузерным зоопарком. Неужели нет способа обойти это? - Конечно есть! Чтобы код одинаково хорошо работал во всех браузерах и все возможности ES6 и будущих стандартов нормально работали необходимо собрать код с помощью сборщика. Сборщик компилирует весь код в один файл и делает его полностью кроссбраузерным. Наиболее удобен в использовании Webpack, хотя существуют и аналоги. Потребуется некоторое время на изучение, но результат себя окупит. Сборщики нужны только во Front-end, Node.js и так поддерживает все новые возможности.
8. Зачем нужны CoffeeScript и TypeScript? - Это особые варанты JS для любителей других языков. CoffeeScript подходит для любителей Ruby и Python, TypeScript - для сторонников строготипизированных языков. Если ты новичок в программировании, то учи оригинал и не забивай себе голову этим.
9. Можно ли писать фронт на других языках? - Да, существуют компиляторы различных языков в JS, такие как ScalaJS, PyJS и другие. Но стоит помнить, что у них есть масса недостатков и использовать их стоит только если на чистом JS (также CS и TS) не получается писать совершенно.
10. Ну ладно, с чего начать изучение то? - Дальше идёт список материалов для изучения.
Чистый JS: Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Джон Резиг, Расс Фергюсон - “JavaScript для профессионалов”
Node.js
М. Кантелон , М. Хартер - "Node.js в действии"
Кирилл Сухов - "Node.js. Путеводитель по технологии"
Дэвид Хэррон - Node.js. Разработка серверных веб-приложений
Front-end
Эдди Османи - "Разработка Backbone.js приложений"
Эрл Каслдайн, Крэйг Шарки - "Изучаем JQuery"
Читать онлайн
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском: http://speakingjs.com/
Написал свой инструмент для автодеплоя в стиле Capistrano, но без необходимости писать на руби, а с баш скриптами и возможностью использовать любой язык. Работает на любых Continuous Integration сервисах, написан на Python3. Работает со всеми языками, тестировал на нодопроекте. https://github.com/Vladimir37/Sanelotto
Посоветуйте пожалуйста красивый, с всякими рюшечками, на вид модненький редактор для OS X. Раньше таким был brackets, но сейчас он очень популярен стал. Лично я нашел - espresso, chocolat, coda, textmate. Что из этих 4 посоветуете?
>>677910 Это очень сложный язык программирования, тут используется продвинутая прототипная разновидность ООП и все переменные могут преобразовывать свои значения, поэтому язык почти невозможно выучить для таких как ты.
>>677826 (OP) C програмер репорт ин. Пошёл на стажировку, заставляют пилить на JS интерфейс по шаблону, просто проект состоит не только из C но и из JS говнокода, это пиздец ,товариши, у вас в мозгах дерьмо, это на столько неудобное говнище, полное костылей, что просто пиздец. И скорости в итоге 0, и удобства 0.
>>677922 Это первое впечатление только такое. Я сам когда на крестах писал и приходилось на жс писать -- плевался. А потом как-то вник и все понял, не хочу теперь на кресты возвращаться.
>>677940 Да блин как не прочитаю всем с начала не нравится js. Писал на крестах, как увидел js - сразу улучшилось настроение, артериальное давление и т.д. Реально. А вот когда например с той же java код вижу появляются рвотные рефлексы
>>677947 Ну многие сначала отрицают и огораживаются, это нормально. Плюс опыта бывает маловато, чтобы понять охуенность языка/технологии. А жаба как язык хороша, плохи жаба-кодеры и фреймворки типа спринга с кучей нинужной дрисни и xml.
Аноны, реально ли реализовать такую штуку в джс. Написал корява, но не суть. Я хочу попробовать сделать, чтобы при возрасте больше 18 лет появлялась гифка из ссылки ниже. При возрасте меньше 18, чтобы появлялась другая гифка либо картинка.
>>678009 > сразу на английском Я уверен, что документация изначально пишется на родном языке, чтобы не тратить время, а уже потом переводится. Разве нет?
Оп-няша, подскажи, есть какие-нибудь фреймворки или библиотеки по жс по аналогии с бутстрапом для цсс? Типа: вот команда для слайдера, вот для настраиваемой галереи, вот для выпадающего меню, вот для всплывающего с вкладками, все конфигится и не надо в 101ый раз изобретать велосипед. Идеально для тех, кто язык не знает и не хочет учить, или почти не знает, или дедлайн близко. Ну ты понял, наверное. Посоветовали angular material и polymer. Можно пожалуйста еще вариантов?
Прочитал шапку и немножко треда. Божецки, все правда так, как тут? Js везде и за ним будущее как за самым универсальным и стремительно растущим? Или это вы тут такие умные и то же самое можно рассказать про питон, кресты, шарп и прочие? Мне самому хотелось бы в прикладной софт или геймдев пойти, максимум, в энтерпрайз, хайлоад, если не найду работу по первым двум. Но джаву не хочу. Вот думал: кресты или жс-стак...
>>678056 Нода стартовала с нуля процентов в 2011. Остальные в это время уже устоялись, заняли свои ниши и динамику имеют куда более стабильную. Этот график не отражает вообще ничего, не несет полезной информации без графика абсолютных значений рядом.
Так, говорю для всех новичков и тех кто думает надо ли идти в js. Не надо. JS долбанутый язык, неудобный, не такой как остальные, нихрена на самом деле не кроссплатформенный. И вообще он скоро загнется ибо просто хипстерочки хайпнули его. Скоро мода уйдет. Вкатывайтесь лучше в c#, с++ или java. Дайте нам самим возиться в этом болоте, будем тянуть это тяжелое бремя, так уж и быть. Даже смиримся с тем что разработчики на вышеназванных языках не считают js за нормальный язык, а нас за норм разрабов. Кто-то же должен тянуть это тяжелое бремя. Так что пацаны бегите
>>677947 >А вот когда например с той же java код вижу появляются рвотные рефлексы Cкоро если не уже то и от жс будут такие рефлексы export default static class Foo extends AbstractSingletonProxyFactoryBean
>>678536 Почитать гайды и повторить, написав простой сервер, после смотришь примеры с монгой и как только освоишь сохранение и выдачу данных клиентам можешь добавлять в резюме владение Node.js и Mongo.db
Уверяю, будешь знать больше, чем 99,9999% людей у которых есть эта строчка.
>>678583 Нет, я не согласен. Композиция > наследование. Всегда. (есть вариант, когда много объектов-детей , допустим 50 тысяч в секунду, тогда наследование будет лучше в плане быстродействия, но если твой код создает 50к объектов в секунды, то ты явно делаешь что-то не так) С классами много работаю, сейчас есть проект на реакте, там иногда по 3-4 уровня наследуются компоненты, и это пиздец скажу я вам. Разобраться что происходит очень сложно, нужно по цепочке туда-сюда ходить постоянно, смотреть у кого какие методы.
>>678586 Да ничего особенного, сайтики всякие, то, сё.
>>678596 >Разобраться что происходит очень сложно, нужно по цепочке туда-сюда ходить постоянно, смотреть у кого какие методы. То есть в случае прототипного наследования этого делать не придется?
>>678680 >composition over inheritance javascript Чем композиция так принципиально отличается от наследования? >Разобраться что происходит очень сложно, нужно по цепочке туда-сюда ходить постоянно, смотреть у кого какие методы. Разве тебе не придется смотреть, какие методы у объектов?
>>678683 >Чем композиция так принципиально отличается от наследования? Бла, ну я тебе буду расписывать теперь отличия? Если не научишься гуглить, то никогда в жизни не станешь кодером Composition - has-a relationship between objects. Inheritance - is-a relationship between classes.
Composition - Composing object holds a reference to composing classes and hence relationship is loosely bound. Inheritance - Derived object carries the base class definition in itself and hence its tightly bound.
Composition - Used in Dependency Injection Inheritance - Used in Runtime Polymorphism
Composition - Single class objects can be composed within multiple classes. Inheritance - Single class can only inherit 1 Class.
Composition - Its the relationship between objects. Inheritance - Its the relationship between classes.
>Разве тебе не придется смотреть, какие методы у объектов? Ну там хотя бы подсветка методов будет и их сигнатуры
>>678702 Потерял нить разговора. Ты спросил не придется ли мне смотреть методы объектов в тайпе, я ответил, что там это делается проще, т.к. есть анализатор. Причем тут ИДЕ?
>>678716 Чем _.extend() отличается от extends <className>, в контексте неудобства просмотра? Что ты видишь в первом случае, а что ты не видишь во втором?
>>678718 Я же выше скинул список принципиальных отличий. Все они применимы в этом случае.
Например: Composition - Single class objects can be composed within multiple classes. Inheritance - Single class can only inherit 1 Class.
Могу на простом примере объяснить. Допустим мы хотим сделать Машину.
Как примерно это будет сделано при наследовании: 1) Мы сделаем некий абстрактный (уже херово звучит, правда?) класс я даже не могут придумать чего. Некую абстрактную машину. У неё будут колёса и движок.
2) Затем отнаследуем от неё легковую машину. У неё будет легковой корпус и 4 сиденья.
3) Затем мы захотим сделать электрическую легковую машину. Мы отнаследуем её от обычной легковой, и переопределим движок.
4) Затем мы захотим сделать кабриолет, отнаследуем его от обычной легковой и сделаем ему корпус без крыши.
5) Затем захотим электрический кабриолет, тут уже начинается полная жопа, когда не ясно что вообще где и от кого наследуется и полный пиздец кровь кишки распидорасило
Заранее очень сложно продумать итоговую архитектуру, по сути это сделать в 99% случаев невозможно.
Как это выглядело бы при комопозиции:
1) У нас есть маленький классы-детали. Кузовы (легковой, грузовой, кабриолет и т.д.), движки(электрический, обычный, водяной, любой в общем), цвет, что угодно.
2) Чтобы сделать машину мы просто собираем её из частей: краснаяЛегковаяЭлектрическаяМашина = СделатьМашину(легковойКузов,красныйЦвет,электрическийДвижок) синяяГрузоваяБензиноваяМашина = СделатьМашину(грузовойКузов,синийЦвет,бензиновыйДвижок)
В целом примерно так. Это конечно самые основы, там куча всего есть ещё, много нюансов, но наследование проигрывает по всем пунктам почти.
>>678728 >краснаяЛегковаяЭлектрическаяМашина = СделатьМашину(легковойКузов,красныйЦвет,электрическийДвижок) >синяяГрузоваяБензиноваяМашина = СделатьМашину(грузовойКузов,синийЦвет,бензиновыйДвижок) Это можно передавать в конструктор.
>>678728 >2) Чтобы сделать машину мы просто собираем её из частей: >краснаяЛегковаяЭлектрическаяМашина = СделатьМашину(легковойКузов,красныйЦвет,электрическийДвижок) >синяяГрузоваяБензиноваяМашина = СделатьМашину(грузовойКузов,синийЦвет,бензиновыйДвижок) Композиция это методология, а паттерн это фабрика, и фабрики хороший подход, я их тут разбирал уже, если вкратце, то можно совмещать наследование и композицию.
>>678731 Ну правильно. Если ты передаешь в конструктор, то у тебя получается композиция, но как бы через некую фабрику, а не наследование, лол. Правда всё равно в итоге будет лучше, если это будет собираться их отдельных объектов, а не делаться через огромную фабрику, в которой потом будет нереально разобраться, если у тебя допустим 100 частей машины.
Алсо, хочу заметить, что классы в жсе можно использовать, это не преступление, они ведь по сути просто объекты (например в реакте очень удобно компоненты делать через классы), но не должно быть больше одного уровня наследования. Если больше одного, то скорей всего нужно пересмотреть архитектуру
>>678740 Я ни слова про фабрику не говорил, ты что-то путаешь. >можно совмещать наследование и композицию. Не согласен. Наследование в 99.9% случаев это плохо, в итоге всё пойдет на перекосяк, как бы в начале хорошо это не смотрелось.
>>678747 Нет, не стоит. Я именно про это и говорю. Вначале, пока проект маленький, может показаться, что лучше делать так, типо меньше бойлерплейта и т.д. Но в итоге получится каша, появятся какие-новые методы, придется твой изначальный базовый класс обернуть в другой СуперБазовыйКласс, цепочки наследования будут друг друга переопределять постоянно, в общем я думаю, кто хотел, тот понял о чём я.
>>678740 О, я понял почему ты про фабрику подумал. Нет, метод сделатьМашину это не фабрика, я наверно не очень хорошо выбрал название, нужно было просто назвать extends или compose, это просто абстрактный метод объединения объектов, не фабрика, ему всё равно что подсовывать.
>>678751 >придется твой изначальный базовый класс обернуть в другой СуперБазовыйКласс Не придется оборачивать, придется добавить/поменять методы базового класса, на то он и базовый. А если нужно что-то еще, то добавляешь через композицию. Это соотносится с идеей "не больше 1 уровня наследования". Фабрика это просто функция, которая принимает объект(ы) и возвращает объект.
>>678817 Да ты лол просто. Единственный способ вызвать скрипт, отображающийся потом на хтмл странице это вызов её через инлайн ивент. Но ты говоришь нет, не надо. что за нах. Объясни быстро, плс.
На страничке нужно найти кликабельный элемент по строке и кликнуть на него. Например, есть строка "Hello, 2ch!". Ищем эту строку на странице, затем пошагово доходим до первого родителя с элементом onclick и кликаем на него .click().
>>679204 jquery используй. А именно contains и closest. Ну или навелосипедь рекурсивный проход по нодам вглубь с проверкой textContent, потом в цикле parentNode с проверкой наличия обработчика.
Короче. Мне нужно создать функцию, которая будет мультипоточно, допустим, в 10 потоков параллельно грузить 10 страниц, ЖДАТЬ ПОКА ЭТО ГОВНО ЗАГРУЗИТСЯ, а потом выдавать общий для них результат. Допустим, каждый запрос должен по окончании положить какую-то инфу в общий массив.
Как это сделать? На недоебаном яваскрипте одни setTimeout и setInterval, а о синхронизации тредов и обмене информацией между ними там походу никто не слыхал. Эта задача вообще выполнима?
>>679713 Почитал про webworker, эта параша поддерживает только строго ограниченный набор функций. Jquery не поддерживает, ибо это имеет отношение к DOM. Похуй блядь, что я из него юзаю только .ajax и парсеры той инфы, которую через ajax получаю, то бишь к основному DOM страницы я отношения вообще не имею.
Сука, какой парашный язык, у меня багет. Это как пхп, только в 3 раза хуже.
>>679736 Итого блядь, придется для этой хуйни перепысывать все запросы на нативный яваскрипт, а парсеры на регулярки. Я ебал, и почему это говно популярно у хипстерков? Там же что-то сложнее хеллоуворда написать нереально
Обосраться, это говно тоже асинхронное. Оно не может дождаться завершения тредов, оно только принимает от них ответы. На яве ВООБЩЕ нельзя сделать парараллельную синхронизированную работу нескольких тредов?
>>679763 >Promise Говно, опять та же асинхронная параша с обработчиками событий, только в профиль.
В яваскрипте похоже вообще анриал сделать нормальную синхронизацию, только пидорские колбеки и обработчики хуйни, который вызываются по по одному, хуй пойми где и хуй пойми когда.
Как отправить на выполнение несколько асинхронных тасков и подождать их выполнения? Но только не в ебаном обработчике события, а прямо не выходя из функции.
>>679771 >Ты уверен в выборе инструмента? Расширение под браузер. Я не ебу, может браузеры поддерживают какие-то более вменяемые диалекты яваскрипта, где мультитрединг нормальный есть?
>>679779 >Promise.all О, спс, похоже это ПОЧТИ то что надо.
Promise.all([ httpGet('/article/promise/user.json'), httpGet('/article/promise/guest.json'), httpGet('/article/promise/no-such-page.json') // (нет такой страницы) ]).then( result => alert("не сработает"), error => alert("Ошибка: " + error.message) // Ошибка: Not Found )
Только вот я один хуй не могу дождать в той же среде кода завершения всех примисов. Тот же самый обработчик события навешивается, получить результат из которого я не смогу.
>>679781 >получить результат из которого я не смогу Просто пишешь .then снова и снова, в "той же среде" ты ничего не дождешься, почтому что она выполняется до промисов
>>679713 Судя по всему, ты дЖеквери хочешь использовать? Ну так у него .ajax() асинхронный. Вызываешь его N раз и сидишь ждешь. Не нравятся колбэки? .ajax() возвращает deffered, и тогда тебе надо читать про $.when() и deffered.done()
>>679783 >Просто пишешь .then снова и снова Бля, будет лапша-код, типа тех кодов где 100500 вложенных условий if.
У меня и без промисов такая мысль была, но это убьет нахуй всю структуру кода, одна большая асинхронная поебень получится, где я ничего не смогу контролировать.
>>679781 делай чтобы каждый (ну или тот, который возвращает ошибку) промис из списка возвращал пустое значение типа httpGet('/article/promise/no-such-page.json').catch(() => []) если я тебя правильно поянл
>>679788 Нет, без промисов будет callback hell, с промисами чуть легче: Promise.all().then(...).then(...).then(...) Можешь конечно подождать es7, там будут async/await
Как писать парсеры на JS, такие, которые будут работать в браузерной строке, например, такой который будет нажимать на необходимую кнопку и перезагружать страницу после этого? Как в парсерсе симитировать нажатие на по ссылке у которой есть id? Извините если что за нубский вопрос, я не так давно начал изучать яваскрипт.
>>679804 Ну может и бот, в общем мне надо написать короткий код, который можно вставить в браузерную строку, а он нажмёт по нужной ссылке и перезагрузит страницу. Первое что приходит в голову, прописать функцию, которая будет запускать определённый файл с кодом, и добавить его например в head, который будет кликать по ссылке и перезагружать страницу, мне надо только понять как можно сымитировать клик по ссылке, после того как этот скрипт запуститься.
>>679816 >javascript:$('.btn-primary').click();location.reload() О, спасибо, но тут на jQuery, браузер же не воспримет, надо подключить вначале jQuery?
>>679837 А если не сложно, можешь подсказать, как сделать так, чтобы скрипт работал не только тогда, когда ты находишься на странице где есть эта кнопка, а в любом месте сайта где есть эта кнопка?
>>679866 Допустим кнопка находится по адресу www.site.com/loader.php а я хочу вставить этот скрипт на любом адресе сайта, например по адресу www.site.com/upload.php
>>679899 То есть никак нельзя сделать так, чтобы запускать можно было на любой странице сайта? Я пробовал сейчас делать это при помощи вот этого window.location.assign(url) но страница просто перезагружается и нажатие по кнопки не срабатывает. Получается возможности сделать с любой страницы нет?
>>679912 Нет, код работает на той странице на которой ты находишься, так что с адресной строкой не прокатит. Можешь юзер скрипт сделать, который будет запускаться при переходе на нужную страницу.
>>679918 Немного легче даже, качаешь tampermonkey/greasemonkey в зависимости от религии, в этом расширении уже пишешь обычный скриптик, он срабатывает когда на нужную страницу зайдешь Зависимость есть
Что это за хуйня? Короче в цикле пишу for () { console.log ('Page ' + N + ' loaded'); }
А этот пиздюк каким-то хуем выводит сразу последнее сообщение цикла, а вместо других какие-то циферки, причем не какие-то, а из цикла приращения счетчика, будто он решил вывести одной изменяющейся строкой мое цикличное логирование.
В принципе, круто, но хотелось бы знать, как это вообще работает. Гугл хром.
for (i = 0; i < 5000; i += 100) { console.log ('Page ' + i + ' loaded'); }
Гугл хром выводит сразу последнюю цифру цикла в консоль, а заместо остальных эту синую табличку, которая меняется аккурат по мере выполнения цикла и показывает i
А, ну еще вопросец. Но вряд ли кто-то знает. Короче надо в расширении под хром (или просто в какой-то хуете типа темперманки или даже голым яваскриптом, если возможно) надо вообщем сделать вечный цикл, который будет работать даже при переходе между страницами. И будет отдавать конент-скрипту инфу.
Короче он переодически будет грузить всякую ебалу с серверов, а контент-скрипты на страницах должны получать эту свежую инфу. Она устревает раз в минуту, так что важно, а грузить ее постоянно в каждом скрипте не вариант, ибо грузится она как раз с эту минуту.
>>677826 (OP) Привет, анон, если ты джун и выше - .NET конфа приглашает тебя в свои ряды. Делимся опытом, помогаем с поиском работы, бугуртим после отказа на собеседованиях, копаемся в чужих говнокодах. (Так же приветствуются JS и фулстаки) https://telegram.me/joinchat/CBkRKT2h17QNagOSer0uNA
>>679932 >Гугл хром выводит сразу последнюю цифру цикла в консоль, а заместо остальных эту синую табличку, которая меняется аккурат по мере выполнения цикла и показывает i Нет, он не i показывает, а группирует одинаковые принты. Сделай цикл с 10000 до 10500 и увидишь.
Ящитаю на добавить nodeschool.io и конкретно npm install -g javascripting в шапку. Заставляет писать код а не просто читать стены текста, очень полезно.
>>677826 (OP) Не знаю как задать вопрос. В общем встаю на шаткий путь js разраба, что бы вкатиться в разработку. Пока что пишу всякие скриптики и программки for fan как хобби по вечерам на VBA и python, пару раз на ангуляре писал работающие с базой простенькие приложения. Пока писал придумал вопрос: где можно подсмотреть хорошие, годные практики написания кода, архитектур приложений на js и всякого такого, что бы расти не как быдлокодер, а как белый человек в написании кода.
Возможно тупой вопрос, но selectivizr.js (библиотека для работы с css3-селекторами в IE8) подключат также работу с этими селекторами в самом JS? То есть, если мне надо, чтобы в IE8 работало QuerySelecor(...:last-child), то он он будет с этой библиотекой работать или будет работать только в ксс?
>>680240 Универсального пути нет, братуха. Есть книжка patterns, но там общие вещи, для конкретноно фреймворка бери style guide, документацию и конкретные практики этого фреймворка
Такая задача: Надо чтобы к таблице добавлялись строчки, а в них соответствующее количество ячеек. Я в принципе сделал это, постоянно дописывая в tr:last-child нужное количество ячеек. Но это не работает в IE8, а мне надо его поддержку без полифиллов. Как получать последнюю строку таблицы без last-child? Думаю запилить массив строк и пушить в него эту строчку, но опять же, как получить из DOM последнюю строчку таблицы без last-child и nth-child?
>>680404 Ну смотри: я добавил все строки в массив. Получился массив из 10, допустим, строк. Я добавляю строку через insertRow(). У меня в ДОМе 11 строк, в массиве 10. Как я добавлю эту последнюю строку в массив без last-child?
Вообще вот обработчик события. Он находится в background.js. chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){ sendResponse({myOloloMessage: "куку епта"}); });
А content.js запрашивает у бекграунда это сообщение. И оно збс доходит, правда только 1 раз.
А в том же самом бекграунде крутится setInterval() с постоянно выполняемой задаче, инфу из которой надо передевать в коллбек того же самого бекграунда.
Как бы обработчик события шлет свежую инфу, НО ЕСЛИ СВЕЖЕЙ НЕТ, то шлет ту, что есть. Короче надо, чтобы обработчик события имел доступ к обновляемой инфе из setInterval. Как это сделать?
>>680633 Ну охуеть, оказывается это говно асинхронное. В чем тогда смысл вообще?
Короче. Есть 2 обработчика разных событий. Один куда-то должен писать инфу, другой считывать. А между их вызовами инфа должна храниться где-то в общем месте
>>680657 >Эти 2 фукнции привязаны к обработчикам РАЗНЫХ событий. Вызывать одну из другой, хранить глобальный стейт. Четче формулируй задачу, тут нет телепатов.
>>680663 Глобальный стейт, что тебе еще надо? Можешь хранить в замыкании объекта "settingsManager" и получать типа settingsManager->get("generalData");
Как выполняется обычная прога на какой-нибудь яве, C++, сиське, шарпе или пыхе? От начала и до конца. В некоторых языках есть треды, правила работы с которыми просты и понятны.
Но ебучий яваскрипт. Вот взять setInterval(). Где выполняется этот код? Какую область видимости имеет? Он пересоздается заново каждый раз или как? Как организовать связь между двумя кодами в интервалах?
Посоны, делаю чат, как отображать сообщения со всякими тегами и т.д типа: "<br><script>" как есть? Нужно что бы, как пользователь написал так и было, как сделать?
>>680842 Есть там какое-то правило, гугли, но оно вроде имеет свои подводные камни, один раз использовал когда-то, не сильно удачно. >>680832 Не, тогда скорее всего innerHTML не поможет, по крайней мере я для таких кейсов его не пользовал. Думал тебе нужно на ходу преображать данные что пользователь ввел в какой-нибудь див. Например, чувак ввел "Люблю <b>JS</b>" а у него в поле с выводом JS будет выделено жирным.
В background.js разширения хрома запускается setInterval(), который должен класть куда-то данные, чтобы потом из content.js сообщением вызвать коллбек из бекграунда, который должен эти данные ему отослать.
Так вот, localStorage тупо не пашет, как и chrome.storage. Кладешь туда данные - а вытаскивать нехуя, ибо их нет.
Я в одном коллбеке навешиваю другой коллбек, а второй-то имеет доступ к переменным первого. Только один вопрос. Это я что, заменит ли новый листенер предыдущий или я так навешиваю все новые и новые обработчики?
>>680807 >Но ебучий яваскрипт. >Вот взять setInterval(). Где выполняется этот код? Какую область видимости имеет? Он пересоздается заново каждый раз или как? >Как организовать связь между двумя кодами в интервалах?
В JS все выполняется в одном треде. Асинхронность реализуется так - ретурн из любой функции, проверка, не пора ли сработать интервалу или таймауту, если да, то переход к телу интервала/таймаута.
на angularjs.орг ссылка на очередные курсы (которых блять как говна везде) а там блять 5-й класс с дибильными мультики с инфантильной добротой и песенками про контроллеры. пиздец кароч
>>681585 >что можно осилить за пару вечеров методом тыка. А с курсом за пару часов. ТОЛЬКО ВЫИГРАЛИ! посмотрел этот курс ради интереса, он действительно очень ОК
Посоны, помогите с фильтрацией. Что-то ебусь, да все никак. Вот у меня есть сортировка по числу, как мне при onClick и перед сортировкой удалять блок-родитель (column), у которого пустое значение блока value?
>>677826 (OP) Анон, как добавить что-то в массив без выпиливания изначального объекта? Т.е есть например эррейнейм[хуй]=x Есть некое y которое нужно добавить. Так чтобы было эррейнейм[хуй]=x+y Как это сделал? Если сделать обычный пуш или присвоение то прежнее значение же выпиляется и будет эррейнейм[хуй]=y
>>681801 Тебе надо чтоб прямо под одним индексом два чего-то было? Или сумма этих двух? Или тебе вообще подойдет чтобы y занимало индекс хуй а остальная инфа со своими индексами сдвигалась?
>>681821 Смотря какая там тип данных. Если текст, то сделай простую конкатенацию, ну и с другими типами данных другой способ, но суть, ты изменяешь информацию по идексу, относись к ней как к примитивному типу данных в переменной.
Все мои друзья, оцените план действий: 1)Добиваю первую часть по Js на learnjavascript 2)Учу html и css 3)Перехожу ко второй части на вышеуказанном сайте документ, события, интерфейсы 4)По пути ознакамливаюсь с JQuery 5)Ебашу свой двач и интернет магазин для портфолио 6)Ищу работу. 7)??? 8)Profit Алсо поясните за удаленную работу. В моем городе программисту работать абсолютно негде, остается фриланс и удаленка. Расскажите про это пожалуйста.
>>681720 Подскажите хотя бы ход мыслей. Я пытался фильтровать и сортировать, но в таком случае блоки с пустым значнием пропадают, а нужно, чтоб они просто не участвовали в сортировке.
>>682173 Если опыта нет, то даже не мечтай. Эти дауны лучше возьмут такого же как они долбоеба-крудошлепа с опытом, чем прошаренного без опыта. Типа так надежнее. Всегда с этого проигрываю.
>>682256 А вместо "бла! бла! бла!" можно как-то поставить переменную? Пытаюсь сделать так var yoba1 = yoba.split("").filter((i) => i === "!") а мне говорит TypeError: yoba.split is not a function.
>>682263 Совершенно другой результат будет, ты даже не прочитал, что он хочет >>682264 Да всё должно работать, если у тебя в переменной строка. Раз TypeError выдает, значит у тебя там не строка
>>682252 И как получить опыт? В таком случае если перекатываться джуном в ДС2 например, получится? Будет ли зарплаты хватать на съем хаты/комнаты плюс все остальное?
https://jsbin.com/poyacuxivo/edit?html,js,output Я правильно понял, как надо реализовывать наследование и расширение методов? Нельзя ли заменить чем-то динамическим Animal.prototype.live(); и Cow.prototype.live();? Копался долго в консоли пытаясь отследить, в итоге получилось через this.__proto__.live(), но FlyingCow в итоге последнюю строку дважды логает из-за this. Голова трещит уже от прототипного наследования, а гугл выдает мне только сраные цепочки из двух конструкторов, где метод перезаписывается прямо во втором конструкторе.
>>682437 Прототип надо заполнять через Object.create(Animal.prototype), тому что если Animal абстрактный и кидает ошибку, чтобы пидоры его не создавали, то у тебя все упадет нахуй. Конструктор родителя удобнее вызывать через Animal.apply(this, arguments). Методы родителя нужно вызывать через apply, потому что у тебя this проебался.
>>682434 Пили свои пет-проджекты, постоянно повышай планку и будет у тебя опыт. Компании есть разные. Одним нужны опытные разработчики чтоб вот прям щас и все сразу. Другие джунов берут с удовольствием. Твое дело - поднять уровень скиллов до рабочей планки и развиваться дальше, а уж способ заработать всегда найдется.
>>682460 Я не тот антон, но у меня тоже план-экспресс. В мае-июне увольняюсь с заебавшей работы, дрочу месяца три-четыре жс, портфолио туда сюда, пытаюсь найти фриланс-заказы за еду/за бесплатно опять же для портфолио. Потом искать постоянку по месту жительства, можно начиная с стажировки, но чтобы период моей безработицы в сумме не затянулся больше чем на полгода, иначе денег на еду не останется. Хардмод в том, что я в Таллинне, а значит нужно еще ангельский устный подтянуть. Какие у меня шансы на успех?
>>682466 >Какие у меня шансы на успех? Только полный долбоёб увольняется с работы не имея другого способа заработка или денег прожить ~год (чтобы через полгода понять что нихуя не получается и идти на другую заебавшую работу). За три-четыре месяца можно по вечерам выучиться на фронтэнд джуниора, с внешними мотивирующими факторами у тебя вроде все в порядке.
>>682467 >За три-четыре месяца можно по вечерам выучиться на фронтэнд джуниора Сомневаюсь что он на полноценного джуна выучится за этот срок. Максимум продвинутый верстала со знанием джс. Это если конечно, у него нет знаний вообще.
>>682467 Ну я уже полтора месяца в свободное время со средней активностью подрачиваю его, прочитал книгу Head First HTML5/CSS, learn.javascript.ru основной курс, написал змейку, автоматический слайдер дивов на чистом жс, ручной слайдер картинок на жквери, по мелочам еще. Понял что часто теряюсь в собственном коде, пишу оче грязно и до конца не понимаю как он работает, пошел по основам, потихоньку задрачиваю задачки с codewars, прошел первый курс по ангуляру на codeschool(ну и там еще кучу курсов чтоб закрепить по ванили, верстке, жквери) и потом еще курс просмотрел Udemy - Learn and Understand AngularJS, сам пока не ковырял. С мотивацией, в кои-то веки, всё норм и уверен что не заброшу, вопрос только в сроках, уж сильно заебала текущая работа да и на здоровье сказывается. До всего этого годами ковырял Game Maker лол, даже сделал игрушку на андроед на нем, которую скачало 50к человек и с которой я в сумме заработал около 200$, лол. Вот такой у меня бекграунд.
Тут видимо все путают навыки и опыт. Работодателю важен ваш официальный опыт, то что в трудовой книжке значится. Ну или хотя бы рекомендация от предыдущего работодателя, если неофициально работал. Ты можешь быть неплохим кодером, запилить пару добротных, качественных во всех отношениях проектах для себя, но без опыта тебя даже рассматривать никто не будет. А дауненка Васю, за 10 лет работы в офисных гадюшниках так и не понявшего, что такое event-driven, возьмут, потому что у него официальный опыт есть. Вот поэтому я и говорю: дауны.
>>682476 >Работодателю важен ваш официальный опыт, то что в трудовой книжке значится. Пидорахоработодателю ты хотел сказать. Ни в одной приличной международной компахе не будут оценивать опыт в трудовой трудовой блять, это вообще пиздец, совок не вымер оказывается нихуя в ущерб реальным навыкам. Там где есть нормальный менеджмент, тимлида в первую очередь будет интересовать, что человек может, а что там у него в трудовой, дело десятое.
>>682483 Ты же хотел нормальную компанию с нормальной зп берущую без опыта. Вот тебе первый попавшийся вариант, с которым лично взаимодействовал. Обычный продвинутый аутсорсер работающий на Сшашку и западную Европу, таких на уа рынке дохуя и больше. Можешь продуктовые компании и прочии стартапы нагуглить, там тоже часто молодые разрабы нужны. Что там в ваших пердях, я без понятия, если честно. Если вот этот >>682476 прав, то это вообще пиздец.
>>682482 И многие тут знают ингришь на достаточном уровне, чтоб хотя бы собеседование пройти? Я сам например неплохо владею техническим ингришем, доки без проблем читаю, но с разговорным беда. Словарного запаса нихуя нет. Это я еще в гимназии с профилирующим английским учился, ингриш на отлично сдал, а что об остальных говорить? Да, я согласен, что иняз знать надо, но, блять, я хочу писать код, а не учить язык, иначе бы я задрачивал этот самый язык, а не кодинг. Я хочу работать в своей стране, пусть удаленно, но в своей стране. И не потому что я дохуя пидораха-за-путена-накатим. Только без политических срачей, плис. Короче, я что хочу сказать. Если выбросить эти ваши фантазии о миллиардах долларов и охуенной жизни за бугром, и вернуться к нашим реалиям, применимым к среднему посетителю /pr/, то получается два стула: в забугорную компанию хуй возьмут, уровень не тот, а для поднятия уровня мало у кого хватит волевого импульса (он тоже не бесконечный), и в то же время пидорашкинские чмошные начальники больше переживают за то, как украсть побольше, чем за то, как сделать качественный продукт и получить побольше легитимными способами, поэтому ищут даунов для работы за еду, не желая связываться с потенциально более хорошими спецами без опыта ("он наверное мудак раз не работал еще, ну нахуй с ним связываться, еще вопросы задавать потом начнет, мое место займет, и вообще он асоциальный какой-то").
>>682487 Это я и есть. У нас именно так обстоят дела, да. Ты просто учитывай, что не все люди настолько охуенны, чтобы еще и язык знать, и желать уехать за бугор. Для обычного человека это непреодолимо по разным причинам, от недостатка волевого импульса до банального патриотизма (и я сейчас не про "за-путена-накатим"). Я хочу работать в своей стране, общаться с соотечественниками. Поверь, вопреки этому вашему молодежному презрению к пидорахам, как люди они ничуть не хуже иностранцев, которые зачастую пустышки без души.
>>682492 Прискорбно это слышать. Сразу разберемся, для меня пидораха - термин не политический, а скорее жизненный. Пидораха может топить за украинушку/россиюшку/ америкашку/святой рейх/свободную Мальту/царство небесное да за что угодно блять. Но вести она себя будет именно так, как ты описал вот здесь>>682490
Прискорбно слышать потому что для меня ИТ сфера - двигатель прогресса, даже в богом забытом пост СНГ. У нас большинство заслуживаюзщих внимания компаний - аутсорс/аутстафф/продукт. Все они так или иначе ориентированы на западный рынок, хотя по большому счету являются украискими. Но мышление там тупо иное. Менеджмент настроен на то чтобы справиться с задачей максимально эффективно. Адекватный тимлид мыслит по схеме - нужна крутая тима - запилить продукт - не сорвать дедлайн - продолжать в том же духе чтоб всем было норм. Там нахуй не сдались приспособленцы, и человека берут за то что он умеет. Налажали с продуктом - виновата вся тима, но в первую очередь ПМ/тимлид. С простого девелопера вряд ли серьезно спросят, почему твой продукт провалился. Они и так прыгают с компашки на компашку каждые несоклько лет, и это в лучшем случае некоторые за 2 года умудряются по собственному из 3-4 компаний уйти и в другие перекатится. А вот с тимлида спросят в первую очередь, и спросят везде. Вот и получается что во главу стола ставится разумная эффективность. Я если честно, думал что и у вас так. Видимо ошибался.
>>682525 По личным ощущениям, везде где требуют ~год опыта можно по крайней мере попробовать послать резюмешку. В некоторых компаниях так тупо защищаются от хитрецов, прошедших три с половиной курса, и возомнивших себя дохуя девелоперами. Если ты учишся, пилишь свои проекты, ебашишь приложухи на каком нибудь реакте, то у тебя уже есть опыт разработки. Да не коммерческий, но тем не менее опыт. Ты не манька после кодакадеми, не умеющая на выходе нихуя, и не способная отличить один ивент от другого.
>>682576 В функции что не является методом объекта или является вложенной в метод объекта ссылается на window. В методе объекта ссылается на объект. В конструкторе ссылается на объект что вышел из конструктора. В ивентлистенере ссылается на event.currentTarget то есть на элемент на котором его вызвали.
>>682317 Ошибок вроде нет, но и не работает. Пикрелейтед. Это шкрипт, который проходит по каждой строке текста на сайте, ну или что-то вроде этого, я его спиздил, разумеется.
Так вот, на пике видно, что скрипт работает нормально, текст вон выводит #text "БлаБла!Бла!", но он типа object. Ну я его преобразовываю в string, ошибок нет, но и результата тоже нет. Второй пример с обычным текстом вместо переменной работает. Где я проебался?
>У нас было 2 виртуальных машины (jvm, clr) , 3 старперских языка, рубиновая забористая дурь, одно пресмыкающееся и прочее множество некомплируемых воннаби недоязыков, а также надстройки над jvm, для желающих упороться функциональщиной. Не то чтобы это был необходимый запас для аутсорса, но если начал собирать дурь, становится трудно остановиться. Единственное, что вызывало у меня опасение — это JS. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем подсевший на JS с тамошними фреймворками. Я знал, что рано или поздно мы перейдем и на эту дрянь.
>>682659 Анончики, еще один вопрос есть, как тут var yoba = node.textContent.split("").filter((i) => i === "!"); вместо "!" использовать регулярку? Ну серьёзно, как не делаю - не работает, а гугл в запросах о фильтрации выдаёт совершенно другие конструкции, ответьте пожалуйста.
Аноны, вкатываюсь неспеша в js, угорел по библиотеке three.js, владею java и поэтому нехватает таких привычных вещей как автодополнения и рефакторинга имен переменных. Сейчас юзаю brackets и он нихуя не умеет, ясно что типизация динамическая, но все таки хотелось бы какого-нибудь примитивного автодополнения и изменения имен переменных(хотябы в рамках одного исходника). Что посоветуешь анон?
Кто пилит десктоп приложения на js (кроме adobe, microsoft и github), признавайтесь? http://electron.atom.io/
На днях стал тестить, сегодня увидел статью на хабре и понял, что поймал волну, а всё началось с желания запилить для себя плагин под атом.
Теперь вот пишу тут, а значит HYPE электрона пронизывает время и пространство, а значит теперь можно плевать в ёбла всем, кто посмеет заявить, что js не является десктоп приложением.
>>682953 Но функционал-то тот же будет. Заебали уже какарекать, что IDE, а что блокнот, граница размыта понятий, и саблайм с тонной дополнений тот же самый IDE, при том, что он еще и быстр)
>>682956 >>682961 При этом в саблайме без пердолинга даже менеджер пакетов не подключишь, а из за уебанской архитектуры написать свой плагин для него - целый геморрой.
>>682961 IDE отличается от редактора хотя бы тем, что умеет в анализ кода и с умом его дополняет, а не просто сыпет всё, что есть в плагине от васяна. Поэтому я на больших проектах только IDE юзаю, с редактором приходится очень много лишний раз думать о вещах, про которые за тебя может подумать компутер.
>>682963 Кекнул, копипастнуть одну строчку в консоль для тебя пердолинг? Ну ты ебанашка, никогда кодером не станешь >>682979 И чем блять у тебя лучше "анализ кода", чем у того же атома? Ничем, иди нахуй значит
>>683187 Сука, ты совсем уебан штоле? Ты мне написал >Атом даже в методы класса не может, ебанат Я тебя нахуй послал, т.к. атом все методы на изи подсвечивает, ты теперь виляешь, что ты не про подсветку, а про что тогда? Совсем ебнулся пидорахен со своим пиздоштормом?
>>683203 IntelliSense — технология автодополнения Microsoft, наиболее известная в Microsoft Visual Studio. Дописывает название функции при вводе начальных букв. Кроме прямого назначения IntelliSense используется для доступа к документации и для устранения неоднозначности в именах переменных, функций и методов, используя рефлексию.
>>683230 >>683190 Я про автодополнение в посте говорил, на который ты со своим атомом вскукарекнул: >>682979 Где ты там подсветку увидел - хуй знает И даже с подсветкой твой атом обсерается. Попробуй открыть какой-нибудь большой файлик, подсветка после энного символа просто перестанет работать
>>683270 Блять сука какой ты тупой пидорас Подсветка МЕТОДОВ блять, а не синтаксиса, не ЦВЕТОМ, а блять в попапе появляются названия, понимаешь ты это или нет тупое чмо?
Бля, реально такое чувство, что просто с тупым животным разговариваешь, ему уже блять и про intellisense сказали, и про терн, он всё равно тупит как бревно, ебать как можно быть таким тупым программистом, как он вообще хоть что-то пишет?
>>683224 Аноны на больших проектах, вы используете TDD, или пишите тесты под какие-то определённые, с возможными подводными камнями методы? В джуна влезают тесты?
Аноны на больших проектах, вы используете TDD, или пишите тесты под какие-то определённые, с возможными подводными камнями методы? В джуна влезают тесты?
>>683313 Да, ты даун, все поняли уже, нахуй иди. >>683320 ТДД почти не используем, т.к. всегда нужно "вот прямо сейчас". Пишем на тайпе, поэтому есть какая-никакая защита от некого количества багов. Но на определенной фазе тесты добавляются, когда загрузка поменьше становится и основные фичи сделаны. Понимаю, что это достаточно тупой подход, но на практике хочешь как лучше сделать, а получается всегда так. В джуна тесты скорее не влезают, хотя я тоже по сути джун, но пишу тесты для реакт компонентов, там всё просто достаточно, т.к. "чистые" функции и всё такое, а вот если какую сложную систему тестировать это надо уже шарить
Как работать с JSON строками? Мне нужно распарсить, найти определенный значения и определенные значения, а потом удалить минимальное определенное значение с условием.
Антоши, я вообще успешный PHP кодер, в JS - иногда с версточкой позабавиться, диалог кинуть, роут из задачи бэкенда прикрутить.
Но решил я пилить свое онлайн-чудо, а реализации ws для php все какие-то... сомнительные.
Вообщем, вкатываюсь в nodejs. Стал искать привычные классы (нашел, прототипы, хуе-мое, ладно), смирился с отсутствием стройного фреймвока с кучей структурированного готового стаффа (как ларавель), но меня окончательно вынес следующий вопрос.
>>683430 Ну сделай сам массив, если это промис, просто then напиши что с ним делать дальше, что сложного? >Стал искать привычные классы Нормальные ребята не используют классы >смирился с отсутствием стройного фреймвока с кучей структурированного готового стаффа Твой хуйравель даже близко с нодой и её экосистемой не стоит
>>683551 > >смирился с отсутствием стройного фреймвока с кучей структурированного готового стаффа > Твой хуйравель даже близко с нодой и её экосистемой не стоит Блять, опять этот поехавший. Давно сюда таких не заносило, второй день проигрываю
>>683583 >Я так не считаю, я проигрываю с дауна, который фреймворки с языками сравнивает Даун, я же написал "экосистема", никто не сравнивал язык и фреймворк Хотя пхп это конечно не язык нихуя, так, надстройка над хтмл, идиоты до сих пор пользуются, как ни странно
>>683583 Дегенерат тут только ты. Как там дела-то, прошёл уже learn.javascript или до сих пор разбираешься что такое переменные?
>>683587 > >Я так не считаю, я проигрываю с дауна, который фреймворки с языками сравнивает > Даун, я же написал "экосистема", никто не сравнивал язык и фреймворк Экосистему с языком сравнивал? Ну тогда всё нормально, да
> Хотя пхп это конечно не язык нихуя, так, надстройка над хтмл, идиоты до сих пор пользуются, как ни странно У пыхи есть всё, чтобы называться языком программирования
> Дегенерат тут только ты. Как там дела-то, прошёл уже learn.javascript или до сих пор разбираешься что такое переменные? О, а вот и проекции
>>683593 А, ну ясно, если ты пыху считаешь языком программирования, то с тобой дальше не о чем говорить. Предлагаю тебе съебаться в пхп петушарню и больше сюда не приходить, т.к. мнение таких опущенцев тут никого не интересует.
Пробовал Atom, Brackets, VS Code, WebStorm, WebMatrix, Eclipce.
Всё оказалось невыносимым калом и я вернулся на Sublime Text 3.
Поясню, недостатки остальных ide - они все тормозят, начиная от момента запуска, заканчивая самим процессом.
Второй недостаток словно следствие из первого - отсутствие плавной прокрутки.
Третий не такой существенный как первые два, но тоже меня выбесил - отсутствие внятной стилистики. То есть, если я ставлю в саблайм тему, меняется всё, тогда как только в атоме более менее хорошая система кастомизации.
Также в некоторых ide всё плохо с интерфейсом и такими важными вещами как folding и обозначение линий этого самого фолдинга. Приходится каждый раз туда-сюда скроллить, выискивая нужную скобочку, тогда как в саблайме всё элементарно.
Я уже не говорю про то, что во всех остальных редакторах нужно установить сотню расширений, чтобы приблизиться к базовому уровню саблайма, а некоторых фич до сих пор нет даже среди расширений.
Например, подсветка схожего кода при выделении. Не говоря уже о том, что автоподстановка во многих ide работает по принципу алфавитного порядка, тогда как в саблайме подстраивается под частоту использования. Такие казалось бы мелочные недочёты не позволили мне найти альтернативу лучшему редактору всех времён и народов.
>>683593 заебал демагогию тут разводить, пиздец, откуда вы понабижали такие? на каждое слово срач разводят, по делу ничего сказать не можешь, сиди и молчи в тряпочку
>>683599 Я же сказал, что сейчас у пыхи есть всё, чтобы называться языком программирования. Если ты считаешь иначе - оспорь или залазь обратно под свою петушиную шконку. Вопрос реализации - это другой вопрос. И я на пыхе с 4-ой версии не писал, если что
>>683607 Согласен. Атом, правда, по всем параметрам лучше саблайма, кроме быстродействия, и это его действительно убивает немного. Саблайм снова начали апдейтить, кстати, после года бездействия, будем надеяться, что будут улучшения, т.к. он тоже не без изъянов. >>683610 Да нахуй иди, буду ещё спорить с ебанашкой, который только и зашёл, чтобы попиздеть ниочем
Мне предстоит собеседование в одной неплохой компании. Но проблема том, что я хоть и способен писать код, но привык это делать с гуглом и стак оверфлоу, так что теорию я знаю очень плохо. Можете мне подсказать список частых вопросов на собеседовании по js, angular и node?
>>683624 Когда замнёшься на какой-нибудь теме, скажи, что зато знаешь, почему люки круглые.
И всё же попытайся решить проблему. Думай над вопросами, а не копайся в воспоминаниях и если спросят что-то сложное, не бойся попросить сформулировать на простом языке.
Сейчас ищут в первую очередь по тому, сможет ли человек работать в команде, поэтому технические навыки не так важны, если конечно ты не конченный гуманитарий.
Ананасы, посоветуйте какой-нибудь шутсрый инструмент который сможет пройтись по урлам из массива и сравнить данные, которые находятся в селекторах, с данными, которые находятся в csv. Casperjs не подойдет ибо жирный очень, Cheerio тоже.
>>683728 В нормальных компаниях с 500 баксов только джуны начинают без опыта. Насчет фриланса точно не скажу. У меня знакомые на апворке и по 3к зелени в месяц рубят.
>>683743 Пиздежь. Наглый при чем. Может в Варшаве и платят 1к$, но только там джуны как у нас мидлы, и то на джаве. Так-то зп джуна от 400 до 800$ в зависимости от города и языка программирования.
>>683745 Могу поверить, что местным, но я когда-то пытался переехать, мне предлагали без опыта работы 1200, в Норвегии нашёл контору, которая 2500 хотела, но требовалось пройти какие-то курсы норвежского языка, хотя я прошёл собеседование на английском. Из-за этого пришлось дать заднюю. Вот нахуя им норвежский, когда вся документация и код на английском.
>>683753 Ну хуй знает что за фантастические вещи ты сейчас вещаешь, я пока жил и работал там на подобные вакансии в 1200 и без опыта работы ни единого раза не наткнулся. Разве что 3,5к$ для мидла по js было дело, но там пачка требований была неплохих. Немного выше уровня мидла, конечно, но уж точно не дотягивала до сеньора. Что-то вроде трех лет с js, react, node и еще что-то, что уже и не вспомню. И никакого тебе обоссанного унгуляра
>>683753 В рашке в столице моей мухосрание предлагали 500$, хотя сначала я в резюме ещё написал, что интересуют только от 1000$ запрлаты.
Это ещё при старом курсе, то есть грубо говоря 30к рублей. Причём я приехал к ним на собеседование за 200 км и меня пытаются кинуть, типа всё заебись, но только 30к, хотя по телефону я переспрашивал, что имеет смысл только на 60к и больше, так как придётся оплачивать жильё, еду, а это около 30к от всей суммы. То есть грубо говоря они меня позвали работать за еду - получаю 30к и тут же сливаю 30к.
Я конечно нахуй не послал, но дверь хорошо там хлопнул.
Известно, что получение элемента в массиве быстрее, чем в ассоциативном аналоге.
То есть, если a = [], A = {}, то операция a будет быстрей, чем A[key], поэтому советуют в мощных приложения использовать массивы.
Но когда нужно найти объект по id, а не порядковому номеру возникает дополнительная проверка, то есть в ассоциативном массиве можно просто достать нужный элемент A[id], тогда как в обычом придётся делать for (var id = 0, id != a[id].id, id++) и вот вопрос
ЕСЛИ НУЖНО НАЙТИ ЭЛЕМЕНТ ПО ID, КАКОЙ ТИП МАССИВА БУДЕТ НАИБОЛЕЕ ОПТИМАЛЬНЫМ?
Анончики, какая-то хуйня с jsом, только начинаю вкатываться в three.js, набрал пример с сайта, покрутил куб, все изи. Далее скачал книгу learn 3js, набрал первый приме и нихуя не работает, на странице белый экран, вангую что ошибка в понимании работы js, но как прилежный codemonkey все как в книге делаю. http://pastebin.ru/v4BxeEML# В чем проблема анон, и как вообще в js понять что нихуя не работает. Включил консоль в лисе там те же предупреждения что и в работающем примере.
>>684532 Такой пример(без jquery и с функцией render) я делал до этого, но почему код книги не пашет(поломали обратную совместимость?) или хотяб jquery почему не работает?
>>684586 >$("WebGL-output").add(renderer.domElement); Нет # у селектора. add добавит domElement в jQuery object, а не в dom, нужно использовать append, например. в requestAnimationFrame ты отдаешь объект renderer, он там нахуй не нужен, там нужен колбэк. https://jsbin.com/dawinu/4/edit?js,output
>>684787 Лол, проиграл с маньки Чувак дрочит программирование с 12 лет, на всяких конференциях-хуенференциях светится, опенсорсит как бог, а ебанашка с двачей называет это удачей.
Индивидуумы склонны объяснять мотивы своих поступков внешними причинами, а чужих — особенностями личности. Если более точно: свои фейлы объясняются исключительно тижолой жизнью, чужие фейлы — исключительно тем, что те люди — мудаки, козлы, сволочи, неудачники и вообще ничтожества. С винами — наоборот. Собственный вин — исключительно потому что умный, сильный, сообразительный, выносливый (нужно подчеркнуть), чужой вин — исключительно потому что блат, переспал, насосал, мажор и прочая пруха по жизни.
Позволяет чувствовать себя Д'Артаньяном, даже не отличаясь от окружающих ни на йоту. Например, распихивать народ в метро, опаздывая на встречу, а через полчаса возмущаться человеком, в спешке, расталкивающим народ.
>>683796 лол, как он уебищно разговаривает, такой харш рашн акцент, еще и пытается подражать британскому и гласные тянет, что делает его еще смешнее в совокупности с тоненкьим школоголоском.
>>685114 Нормально он разговаривает, он ещё специально более четко всё проговаривает, чтобы всем было понятно, даже не англоговорящим и тем, у кого плохое понимание английской речи. Очень классный курс. Алсо, он живет в Лондоне, естественно у него какой акцент может и начинает проявляться.
>>685114 Уверен, что он знает инглиш в 100 раз лучше, чем ты, так что не тебе судить. А голос - какой есть, такой и есть, всем похуй вообще, кроме таких закомплексованых манек, как ты, проецирующих свою жизнь на других. Если тебя гнобили из-за голоса, то это только твои проблемы, сходи к психологу.
>>685114 Давай еще посмеемся над профессионалом в го, такой омежий голосок, ха-ха, как смешно, еще и машине три раза проиграл. Вот серьёзно, ты даже к голосу приебался? https://youtu.be/qUAmTYHEyM8?t=5h39m29s
>>685057 То, что его приняли на работу, результат его деятельности. То, что именно его либу заюзали, результат удачи - оказался в нужное время в нужном месте с нужной реализованной идеей. Ничего феноменального в редаксе нет, большая часть фронтендеров так или иначе пишет для крупных проектов свой редакс или юзает что-то похожее.
>>685195 Кек, т.е. вот просто так рандомно взяли и внезапно все начали юзать редакс, без видимых причин, и забыли про другие флаксы? Ты ебанат или троллишь?
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsbin.com/ для браузерного кода и https://ideone.com/ для серверного кода.
Краткий FAQ:
1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.
2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi, Unity), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. У меня вопрос по вёрстке, HTML или CSS, CSS-препроцессорам, Bootstrap или дизайну. Вы мне поможете? - Вряд ли. Этот тред посвящён непосредственно программированию, а вёрстка обсуждается в “Вёрстка-треде” в /wrk/, там и спроси. Кроме того, настоятельно рекомендую пройти https://htmlacademy.ru/ , если ещё не сделал этого раньше. После этого 90% вопросов отпадут сами.
4. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
5. Существуют ли стайл-гайды для JavaScript? - Да. Стайл-гайд для Node.js: https://github.com/felixge/node-style-guide , стайл-гайд для Front-end: http://www.w3schools.com/js/js_conventions.asp
6. Какие новые возможности добавил ES6? - Вот здесь можно почитать на русском: https://learn.javascript.ru/es-modern
7. Я хочу писать на ES6, но многие браузеры не поддерживают новые возможности. И вообще, надоел геморрой с браузерным зоопарком. Неужели нет способа обойти это? - Конечно есть! Чтобы код одинаково хорошо работал во всех браузерах и все возможности ES6 и будущих стандартов нормально работали необходимо собрать код с помощью сборщика. Сборщик компилирует весь код в один файл и делает его полностью кроссбраузерным. Наиболее удобен в использовании Webpack, хотя существуют и аналоги. Потребуется некоторое время на изучение, но результат себя окупит. Сборщики нужны только во Front-end, Node.js и так поддерживает все новые возможности.
8. Зачем нужны CoffeeScript и TypeScript? - Это особые варанты JS для любителей других языков. CoffeeScript подходит для любителей Ruby и Python, TypeScript - для сторонников строготипизированных языков. Если ты новичок в программировании, то учи оригинал и не забивай себе голову этим.
9. Можно ли писать фронт на других языках? - Да, существуют компиляторы различных языков в JS, такие как ScalaJS, PyJS и другие. Но стоит помнить, что у них есть масса недостатков и использовать их стоит только если на чистом JS (также CS и TS) не получается писать совершенно.
10. Ну ладно, с чего начать изучение то? - Дальше идёт список материалов для изучения.
Чистый JS:
Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Дуглас Крокфорд "JavaScript: сильные стороны"
Стефанов С. - "JavaScript. Шаблоны"
Джон Резиг - "Секреты JavaScript ниндзя"
Николас Закас - "JavaScript. Оптимизация производительности"
Джон Резиг, Расс Фергюсон - “JavaScript для профессионалов”
Node.js
М. Кантелон , М. Хартер - "Node.js в действии"
Кирилл Сухов - "Node.js. Путеводитель по технологии"
Дэвид Хэррон - Node.js. Разработка серверных веб-приложений
Front-end
Эдди Османи - "Разработка Backbone.js приложений"
Эрл Каслдайн, Крэйг Шарки - "Изучаем JQuery"
Читать онлайн
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS.
Пока только на английском: http://speakingjs.com/
Marijn Haverbeke - "Eloquent Javascript" - Вводная книга по JavaScript и программирование в целом.
Перевод на хабре: http://habrahabr.ru/post/240219/ На английском: http://eloquentjavascript.net/
DISCOVER METEOR - Книга по Meteor.js - одному из самых лёгких и функциональных фреймворков.
Полностью на русском: http://ru.discovermeteor.com/
И не забываем читать официальную документацию для каждого фреймворка.
Онлайн сообщества:
http://learn.javascript.ru/ - оно одно, единственное. Начинать учить язык лучше всего отсюда, потом переходить уже к книгам.
http://www.jstherightway.org/ - Огромный англоязычный гайд. Есть книги, статьи и всё-всё-всё.
http://nodeguide.ru - Огромное количество переведённых статей по Node.js
http://node-center.ru - собрание информации по Node.js. Особенно интересен раздел со ссылками и книгами.
Блоги и новостные ленты:
http://dailyjs.com/ - DailyJS
http://weblog.bocoup.com/ - Bocoup Weblog
http://perfectionkills.com/ - Perfection Kills
http://www.reddit.com/r/javascript - subreddit на reddit.com
http://toddmotto.com/ - Todd Motto, Lead front-end @appsbroker. Developer Expert @google.
Онлайн курсы:
Как же можно учить язык, только читая книжки? Нужна практика, только так изучаемое усваивается, и никак иначе.
CodeSchool - http://codeschool.com/
Отличный ресурс для изучения языка, очень много курсов по всем передовым технологиям.
CodeAcademy - http://www.codecademy.com/
Уже не такой сильный, но все еще интересный проект, также обязателен для улучшения навыка.
Udacity - https://www.udacity.com/course/ud015
Дает хорошее представление о замыканиях.
Выучил основы, написал свою пузырьковую сортировку и змейку? Не знаешь как двигаться дальше?
Почитай теперь это - https://shamansir.github.io/JavaScript-Garden/
СПИСОК ИНСТРУМЕНТОВ ДЛЯ РАЗЛИЧНЫХ ЦЕЛЕЙ
Front-end: jQuery, Angular, React, Backbone, Meteor.
Back-end: Node.js, Express, Koa, Sails (Включает Express и Socket.io + архитектура)
Десктопные приложения: NW.js, Electron, WinJS.
Мобильные приложения: Cordova, NativeScript, Phonegap, Ionic.
GameDev: Phaser, Cocos, Pixi, Unity.
Тестирование: Mocha, Chai, Jasmin, Sinon.
Continuous Integration: Semaphore, Shippable.
Генераторы статичных сайтов: DocPad, Metalsmith, Harp, Brunch.
Бесплатные хостинги: OpenShift, Heroku.
IDE/редактор: WebStorm, Atom, Brackets.
Шапка: https://docs.google.com/document/d/1x7fY7CIy9o6lrkYA1Y5iQuJWLJdEbtK7z3TjIZBskkg/edit?usp=sharing