Это копия, сохраненная 6 апреля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - 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
А доки тут http://sanelotto.info/
Лично я нашел - espresso, chocolat, coda, textmate. Что из этих 4 посоветуете?
vimr
Ну когда emmet перестанут под "мой редактор" делать, тогда и перелезу, а сейчас хочу побыть нитакимкакфсе.
Vim, Emacs. На таком пишет в среднем один из двух сотен программистов.
neovim, даже на 2000 вимеров ты будешь одним таким.
Это я в крайности бросаюсь? Не у меня отсутствие эммета в редакторе - признак его андерграундности
Все редакторы, которые я перечислял, имеют таки emmet.
Это очень сложный язык программирования, тут используется продвинутая прототипная разновидность ООП и все переменные могут преобразовывать свои значения, поэтому язык почти невозможно выучить для таких как ты.
Названием и лого. Тебе должно хватить.
C програмер репорт ин. Пошёл на стажировку, заставляют пилить на JS интерфейс по шаблону, просто проект состоит не только из C но и из JS говнокода, это пиздец ,товариши, у вас в мозгах дерьмо, это на столько неудобное говнище, полное костылей, что просто пиздец. И скорости в итоге 0, и удобства 0.
Перепиши на тайпскрипт, отрефактори, но не ной блять, делать из говна конфетку и есть работа программиста.
Это первое впечатление только такое. Я сам когда на крестах писал и приходилось на жс писать -- плевался. А потом как-то вник и все понял, не хочу теперь на кресты возвращаться.
Да блин как не прочитаю всем с начала не нравится js.
Писал на крестах, как увидел js - сразу улучшилось настроение, артериальное давление и т.д. Реально. А вот когда например с той же java код вижу появляются рвотные рефлексы
Ну многие сначала отрицают и огораживаются, это нормально. Плюс опыта бывает маловато, чтобы понять охуенность языка/технологии.
А жаба как язык хороша, плохи жаба-кодеры и фреймворки типа спринга с кучей нинужной дрисни и xml.
Владимир = хуй.
https://jsbin.com/dofejapume/edit?html,js
https://media.giphy.com/media/6csVEPEmHWhWg/giphy.gif
а если я захочу продолжить, то как тогда я заставлю меняться гифки, а не заставлять их появляться с краю от предыдущей?
js это библиотека скиптов для джавы.
src менять.
Ну либо делать как тебе выше скинули и innerHTML менять у контейнера (для смены частой получше наверное даже будет)
Это тренд такой доку сразу на английском писать?
Зато название придумал и отдельную страницу под логотипы.
> Это тренд такой доку сразу на английском писать?
На каком языке говорит большая часть интернета и гитхаба в частности?
> сразу на английском
Я уверен, что документация изначально пишется на родном языке, чтобы не тратить время, а уже потом переводится. Разве нет?
Извини, я просто забыл куда попал.
Честно говоря, тех же слайдеров/галерей я там не вижу, опять совсем отдельные элементы как бы.
Такие элементо-ориентированные фреймворки только гугл пилит, я в прошлом треде тебе их кинул. Что ты ещё хочешь?
> Божецки, все правда так, как тут? Js везде и за ним будущее как за самым универсальным и стремительно растущим?
Ну как тебе сказать...
Этот график отражает динамику роста. Нода появилась - соответственно, начала расти, куда ей больше деваться, лол.
> Нода появилась - соответственно, начала расти, куда ей больше деваться, лол.
Тогда почему пыха, жаба и руби находят куда деваться?
Нода стартовала с нуля процентов в 2011. Остальные в это время уже устоялись, заняли свои ниши и динамику имеют куда более стабильную. Этот график не отражает вообще ничего, не несет полезной информации без графика абсолютных значений рядом.
А ты?
jQuuery UI. Именно UI, не просто jQuery.
Не надо. JS долбанутый язык, неудобный, не такой как остальные, нихрена на самом деле не кроссплатформенный. И вообще он скоро загнется ибо просто хипстерочки хайпнули его. Скоро мода уйдет. Вкатывайтесь лучше в c#, с++ или java.
Дайте нам самим возиться в этом болоте, будем тянуть это тяжелое бремя, так уж и быть. Даже смиримся с тем что разработчики на вышеназванных языках не считают js за нормальный язык, а нас за норм разрабов. Кто-то же должен тянуть это тяжелое бремя.
Так что пацаны бегите
http://ideone.com/65twgR
были бы еще вакансии на java
да куда угодно. Оставьте нас в нашем "гавне"
Это не одно и то же.
И да, желательно кроссбраузерное решение.
>А вот когда например с той же java код вижу появляются рвотные рефлексы
Cкоро если не уже то и от жс будут такие рефлексы
export default static class Foo extends AbstractSingletonProxyFactoryBean
Двачую, поубивал бы уёбков, который проголосовали за введение синтаксиса классов.
:(
Хипстоте нравится.
Спасибо! :3
Объяснишь?
Можно через прикладывание паспорта - гугли passport.js
Почитать гайды и повторить, написав простой сервер, после смотришь примеры с монгой и как только освоишь сохранение и выдачу данных клиентам можешь добавлять в резюме владение Node.js и Mongo.db
Уверяю, будешь знать больше, чем 99,9999% людей у которых есть эта строчка.
Смысл в том, что наследование в любом виде нахуй не нужно вообще практически никогда. А теперь его как бы поощряют, добавив синтаксис класса.
Нет, я не согласен. Композиция > наследование. Всегда. (есть вариант, когда много объектов-детей , допустим 50 тысяч в секунду, тогда наследование будет лучше в плане быстродействия, но если твой код создает 50к объектов в секунды, то ты явно делаешь что-то не так)
С классами много работаю, сейчас есть проект на реакте, там иногда по 3-4 уровня наследуются компоненты, и это пиздец скажу я вам. Разобраться что происходит очень сложно, нужно по цепочке туда-сюда ходить постоянно, смотреть у кого какие методы.
>>678586
Да ничего особенного, сайтики всякие, то, сё.
>Разобраться что происходит очень сложно, нужно по цепочке туда-сюда ходить постоянно, смотреть у кого какие методы.
То есть в случае прототипного наследования этого делать не придется?
Хуета зеленая
Да нет, я же говорю, в любом случае наследование это плохо. Тем более в жсе то всё прототипное, класс это просто сахарок.
Как тогда решать проблему, когда есть множество одинаковых методов, кроме как наследованием?
Ну так ничего, что у любого DOM-элемента, который ты берешь, методы наследуются от прототипа. То же самое методы массива, функций, етк.
Развернешь?
Но по факту ты пользуешься этим самым прототипным наследованием.
То же самое во всех твоих фреймворках, которые ты используешь. Ты пользуешься им. Оно тебе нужно.
А какой модуль использовать? Клиент будет присылать POST запросы с JSON данными. В ответ нужно будет отсылать JSON данные.
Это объективно самая слабая nosql база данных. Реально, хуже сложно было придумать.
Ты не понял, что анон имел в виду?
На что ссылки лол? Просто погугли "composition over inheritance javascript", что-нибудь такое
Хоть какое-то наследование в жс можно делать только через тайпскрипт, иначе огромного количества багов и непонятной всякой херни не оберешься.
>composition over inheritance javascript
Чем композиция так принципиально отличается от наследования?
>Разобраться что происходит очень сложно, нужно по цепочке туда-сюда ходить постоянно, смотреть у кого какие методы.
Разве тебе не придется смотреть, какие методы у объектов?
>Чем композиция так принципиально отличается от наследования?
Бла, ну я тебе буду расписывать теперь отличия? Если не научишься гуглить, то никогда в жизни не станешь кодером
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.
>Разве тебе не придется смотреть, какие методы у объектов?
Ну там хотя бы подсветка методов будет и их сигнатуры
Потерял нить разговора.
Ты спросил не придется ли мне смотреть методы объектов в тайпе, я ответил, что там это делается проще, т.к. есть анализатор. Причем тут ИДЕ?
>>678707
Да.
Чем _.extend() отличается от extends <className>, в контексте неудобства просмотра? Что ты видишь в первом случае, а что ты не видишь во втором?
Я же выше скинул список принципиальных отличий. Все они применимы в этом случае.
Например:
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) Чтобы сделать машину мы просто собираем её из частей:
краснаяЛегковаяЭлектрическаяМашина = СделатьМашину(легковойКузов,красныйЦвет,электрическийДвижок)
синяяГрузоваяБензиноваяМашина = СделатьМашину(грузовойКузов,синийЦвет,бензиновыйДвижок)
В целом примерно так. Это конечно самые основы, там куча всего есть ещё, много нюансов, но наследование проигрывает по всем пунктам почти.
Я же выше скинул список принципиальных отличий. Все они применимы в этом случае.
Например:
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) Чтобы сделать машину мы просто собираем её из частей:
краснаяЛегковаяЭлектрическаяМашина = СделатьМашину(легковойКузов,красныйЦвет,электрическийДвижок)
синяяГрузоваяБензиноваяМашина = СделатьМашину(грузовойКузов,синийЦвет,бензиновыйДвижок)
В целом примерно так. Это конечно самые основы, там куча всего есть ещё, много нюансов, но наследование проигрывает по всем пунктам почти.
>краснаяЛегковаяЭлектрическаяМашина = СделатьМашину(легковойКузов,красныйЦвет,электрическийДвижок)
>синяяГрузоваяБензиноваяМашина = СделатьМашину(грузовойКузов,синийЦвет,бензиновыйДвижок)
Это можно передавать в конструктор.
>2) Чтобы сделать машину мы просто собираем её из частей:
>краснаяЛегковаяЭлектрическаяМашина = СделатьМашину(легковойКузов,красныйЦвет,электрическийДвижок)
>синяяГрузоваяБензиноваяМашина = СделатьМашину(грузовойКузов,синийЦвет,бензиновыйДвижок)
Композиция это методология, а паттерн это фабрика, и фабрики хороший подход, я их тут разбирал уже, если вкратце, то можно совмещать наследование и композицию.
Ну правильно. Если ты передаешь в конструктор, то у тебя получается композиция, но как бы через некую фабрику, а не наследование, лол.
Правда всё равно в итоге будет лучше, если это будет собираться их отдельных объектов, а не делаться через огромную фабрику, в которой потом будет нереально разобраться, если у тебя допустим 100 частей машины.
Алсо, хочу заметить, что классы в жсе можно использовать, это не преступление, они ведь по сути просто объекты (например в реакте очень удобно компоненты делать через классы), но не должно быть больше одного уровня наследования. Если больше одного, то скорей всего нужно пересмотреть архитектуру
>>678740
Я ни слова про фабрику не говорил, ты что-то путаешь.
>можно совмещать наследование и композицию.
Не согласен. Наследование в 99.9% случаев это плохо, в итоге всё пойдет на перекосяк, как бы в начале хорошо это не смотрелось.
> Наследование в 99.9% случаев это плохо
Стандартные методы стоит выносить в базовый класс, а вот различия реализовывать через композицию.
Нет, не стоит. Я именно про это и говорю. Вначале, пока проект маленький, может показаться, что лучше делать так, типо меньше бойлерплейта и т.д. Но в итоге получится каша, появятся какие-новые методы, придется твой изначальный базовый класс обернуть в другой СуперБазовыйКласс, цепочки наследования будут друг друга переопределять постоянно, в общем я думаю, кто хотел, тот понял о чём я.
>>678740
О, я понял почему ты про фабрику подумал. Нет, метод сделатьМашину это не фабрика, я наверно не очень хорошо выбрал название, нужно было просто назвать extends или compose, это просто абстрактный метод объединения объектов, не фабрика, ему всё равно что подсовывать.
краснаяЛегковаяЭлектрическаяМашина = compose(легковойКузов,красныйЦвет,электрическийДвижок)
большойЧерныйЧеловек(чернаяКожа,большойЧлен,обезъяна)
>придется твой изначальный базовый класс обернуть в другой СуперБазовыйКласс
Не придется оборачивать, придется добавить/поменять методы базового класса, на то он и базовый. А если нужно что-то еще, то добавляешь через композицию. Это соотносится с идеей "не больше 1 уровня наследования".
Фабрика это просто функция, которая принимает объект(ы) и возвращает объект.
Ну если так, то пожалуйста. Это практически и не будет наследованием даже, убедил.
Если тебе надо подсвечивать методы базового класса при наведении, то можешь дописать эту функцию в атоме.
У меня тайпскрипт, я же уже писал, там всё подсвечивается.
ИТАК. Почему не работает кнопка ОЧИСТИТЬ?
Не спрашивайте насчет остального, всё хорошо работает.
Кстати, это происходит именно потому, что в остальном ты код написал как говно, не делай так больше, няша
Как минимум не использовать инлайн ивенты и обращение к айдишникам через глобальную переменную.
Вообще. Перепиши мне код тогда, пжалст. Тебе практика - я не говнокодер в ближайшем будущем.
Лол, вот мне нехер делать, а? Я уже сказал, что нужно переписать, захочешь -перепишешь.
Всё, соррь, на такие нубские вопросы нет времени отвечать, у меня вообще отпуск, пойду гамать.
Да ты лол просто. Единственный способ вызвать скрипт, отображающийся потом на хтмл странице это вызов её через инлайн ивент. Но ты говоришь нет, не надо. что за нах. Объясни быстро, плс.
Ну, как ты будешь вызывать скрипт с помощью инлайнов не по клику, а по тоучу, например?
На страничке нужно найти кликабельный элемент по строке и кликнуть на него.
Например, есть строка "Hello, 2ch!". Ищем эту строку на странице, затем пошагово доходим до первого родителя с элементом onclick и кликаем на него .click().
jquery используй. А именно contains и closest. Ну или навелосипедь рекурсивный проход по нодам вглубь с проверкой textContent, потом в цикле parentNode с проверкой наличия обработчика.
А можно ли использовать jquery в консоли браузера. Просто это у меня такой бот, запускаемый из под консоли браузера.
Навелосипедил, используя проверку textContent, благо проверить надобно не больше 4 блоков
Можно, если там подключен жквери
Иди нахуй, дебил
Да, это правда. Ещё вопросы?
Хорошо зашло, да?
Haskell тоже способствует
Да вы же дебилы. Если капсом не выделить - не прочитаете. Да и с капсом не факт.
Ты дебил? Дурака кусок.
Допустим, каждый запрос должен по окончании положить какую-то инфу в общий массив.
Как это сделать? На недоебаном яваскрипте одни setTimeout и setInterval, а о синхронизации тредов и обмене информацией между ними там походу никто не слыхал.
Эта задача вообще выполнима?
Итого, мне нужна синхронная функция, которая асинхронно выполняет 10 запросов и выдает результат.
Почитал про webworker, эта параша поддерживает только строго ограниченный набор функций.
Jquery не поддерживает, ибо это имеет отношение к DOM.
Похуй блядь, что я из него юзаю только .ajax и парсеры той инфы, которую через ajax получаю, то бишь к основному DOM страницы я отношения вообще не имею.
Сука, какой парашный язык, у меня багет. Это как пхп, только в 3 раза хуже.
Итого блядь, придется для этой хуйни перепысывать все запросы на нативный яваскрипт, а парсеры на регулярки. Я ебал, и почему это говно популярно у хипстерков? Там же что-то сложнее хеллоуворда написать нереально
worker.addEventListener('message', function(e) {
console.log('Worker said: ', e.data);
}, false);
Обосраться, это говно тоже асинхронное. Оно не может дождаться завершения тредов, оно только принимает от них ответы.
На яве ВООБЩЕ нельзя сделать парараллельную синхронизированную работу нескольких тредов?
Ява-ява, пасаси раззява)))
>Promise
Говно, опять та же асинхронная параша с обработчиками событий, только в профиль.
В яваскрипте похоже вообще анриал сделать нормальную синхронизацию, только пидорские колбеки и обработчики хуйни, который вызываются по по одному, хуй пойми где и хуй пойми когда.
Как отправить на выполнение несколько асинхронных тасков и подождать их выполнения?
Но только не в ебаном обработчике события, а прямо не выходя из функции.
>Ты уверен в выборе инструмента?
Расширение под браузер. Я не ебу, может браузеры поддерживают какие-то более вменяемые диалекты яваскрипта, где мультитрединг нормальный есть?
я про интенсивы
Базовый интенсив за 2015 год:
http://nnm-club.me/forum/viewtopic.php?t=899131
Продвинутый интенсив за 2015 год:
http://nnm-club.me/forum/viewtopic.php?t=900609
Базовый JS интенсив за 2015 год:
http://nnm-club.me/forum/viewtopic.php?t=974803
>мультитрединг
Чтобы что? Browser connection limit: 6-8, если что
Грузишь свои страницы через Promise.all, пидорасишь их, profit.
>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
)
Только вот я один хуй не могу дождать в той же среде кода завершения всех примисов. Тот же самый обработчик события навешивается, получить результат из которого я не смогу.
>получить результат из которого я не смогу
Просто пишешь .then снова и снова, в "той же среде" ты ничего не дождешься, почтому что она выполняется до промисов
Судя по всему, ты дЖеквери хочешь использовать?
Ну так у него .ajax() асинхронный.
Вызываешь его N раз и сидишь ждешь.
Не нравятся колбэки? .ajax() возвращает deffered, и тогда тебе надо читать про $.when() и deffered.done()
>Просто пишешь .then снова и снова
Бля, будет лапша-код, типа тех кодов где 100500 вложенных условий if.
У меня и без промисов такая мысль была, но это убьет нахуй всю структуру кода, одна большая асинхронная поебень получится, где я ничего не смогу контролировать.
делай чтобы каждый (ну или тот, который возвращает ошибку) промис из списка возвращал пустое значение типа httpGet('/article/promise/no-such-page.json').catch(() => []) если я тебя правильно поянл
ну так заверни в хелпер епта
Нет, без промисов будет callback hell, с промисами чуть легче: Promise.all().then(...).then(...).then(...)
Можешь конечно подождать es7, там будут async/await
Цепочка промисов.
И на фронте есть. Либа async
Ну может и бот, в общем мне надо написать короткий код, который можно вставить в браузерную строку, а он нажмёт по нужной ссылке и перезагрузит страницу. Первое что приходит в голову, прописать функцию, которая будет запускать определённый файл с кодом, и добавить его например в head, который будет кликать по ссылке и перезагружать страницу, мне надо только понять как можно сымитировать клик по ссылке, после того как этот скрипт запуститься.
>javascript:$('.btn-primary').click();location.reload()
О, спасибо, но тут на jQuery, браузер же не воспримет, надо подключить вначале jQuery?
>javascript:document.querySelector('.btn-primary').click();location.reload()
Ну или подключи жидквери, да
Да, спасибо, то что нужно, оказалось всё очень просто.
А если не сложно, можешь подсказать, как сделать так, чтобы скрипт работал не только тогда, когда ты находишься на странице где есть эта кнопка, а в любом месте сайта где есть эта кнопка?
Допустим кнопка находится по адресу www.site.com/loader.php а я хочу вставить этот скрипт на любом адресе сайта, например по адресу www.site.com/upload.php
Нет, при переходе на новую страницу скрипты перезагружаются и придется снова вставлять код
То есть никак нельзя сделать так, чтобы запускать можно было на любой странице сайта? Я пробовал сейчас делать это при помощи вот этого window.location.assign(url) но страница просто перезагружается и нажатие по кнопки не срабатывает. Получается возможности сделать с любой страницы нет?
Нет, код работает на той странице на которой ты находишься, так что с адресной строкой не прокатит. Можешь юзер скрипт сделать, который будет запускаться при переходе на нужную страницу.
Это нужно делать через браузер? То есть делать как расширение для браузера получается?
Немного легче даже, качаешь tampermonkey/greasemonkey в зависимости от религии, в этом расширении уже пишешь обычный скриптик, он срабатывает когда на нужную страницу зайдешь Зависимость есть
for ()
{
console.log ('Page ' + N + ' loaded');
}
А этот пиздюк каким-то хуем выводит сразу последнее сообщение цикла, а вместо других какие-то циферки, причем не какие-то, а из цикла приращения счетчика, будто он решил вывести одной изменяющейся строкой мое цикличное логирование.
В принципе, круто, но хотелось бы знать, как это вообще работает. Гугл хром.
Да я показал.
for (i = 0; i < 5000; i += 100)
{
console.log ('Page ' + i + ' loaded');
}
Гугл хром выводит сразу последнюю цифру цикла в консоль, а заместо остальных эту синую табличку, которая меняется аккурат по мере выполнения цикла и показывает i
Ну вообще да там промисы ебаные, асинхронные запросы. Надо же как-то это говно все-таки сделать, пусть уж будет лапша-код
Ладно, это все хуйня.
Подскажи лучше, как результат промиса передат не во вложенную функцию (или как там эта хуйня называется, лямбда?), а в отдельную.
Есть это
Promise.all([
httpGet('/article/promise/user.json'),
httpGet('/article/promise/guest.json')
]).then(results => {
alert(results);
});
А надо че-то типа этого
function result (){}
Promise.all([
httpGet('/article/promise/user.json'),
httpGet('/article/promise/guest.json')
]).then(results => result (results));
А, все, понял
function result (_results){}
Promise.all([
httpGet('/article/promise/user.json'),
httpGet('/article/promise/guest.json')
]).then(result);
Короче надо в расширении под хром (или просто в какой-то хуете типа темперманки или даже голым яваскриптом, если возможно) надо вообщем сделать вечный цикл, который будет работать даже при переходе между страницами. И будет отдавать конент-скрипту инфу.
Короче он переодически будет грузить всякую ебалу с серверов, а контент-скрипты на страницах должны получать эту свежую инфу. Она устревает раз в минуту, так что важно, а грузить ее постоянно в каждом скрипте не вариант, ибо грузится она как раз с эту минуту.
Лол, сработало.
var i = 0;
var refreshIntervalId = setInterval (function ()
{
++i;
//---------------
alert (i + ' lol');
//---------------
if (i >= 10)
{
clearInterval (refreshIntervalId);
}
}, 1000);
Правда нихуя не понятно, как инфу передавать контент-скрипту?
https://developer.chrome.com/extensions/messaging
https://developer.chrome.com/extensions/tabs#method-sendMessage
Вот это попробуй
Спасибо
Привет, анон, если ты джун и выше - .NET конфа приглашает тебя в свои ряды. Делимся опытом, помогаем с поиском работы, бугуртим после отказа на собеседованиях, копаемся в чужих говнокодах.
(Так же приветствуются JS и фулстаки)
https://telegram.me/joinchat/CBkRKT2h17QNagOSer0uNA
Есть еще SharedWorker
>Гугл хром выводит сразу последнюю цифру цикла в консоль, а заместо остальных эту синую табличку, которая меняется аккурат по мере выполнения цикла и показывает i
Нет, он не i показывает, а группирует одинаковые принты. Сделай цикл с 10000 до 10500 и увидишь.
Спасибо.
Отдельно подключи
Не знаю как задать вопрос. В общем встаю на шаткий путь js разраба, что бы вкатиться в разработку. Пока что пишу всякие скриптики и программки for fan как хобби по вечерам на VBA и python, пару раз на ангуляре писал работающие с базой простенькие приложения. Пока писал придумал вопрос: где можно подсмотреть хорошие, годные практики написания кода, архитектур приложений на js и всякого такого, что бы расти не как быдлокодер, а как белый человек в написании кода.
То есть, если мне надо, чтобы в IE8 работало QuerySelecor(...:last-child), то он он будет с этой библиотекой работать или будет работать только в ксс?
Универсального пути нет, братуха. Есть книжка patterns, но там общие вещи, для конкретноно фреймворка бери style guide, документацию и конкретные практики этого фреймворка
Надо чтобы к таблице добавлялись строчки, а в них соответствующее количество ячеек. Я в принципе сделал это, постоянно дописывая в tr:last-child нужное количество ячеек. Но это не работает в IE8, а мне надо его поддержку без полифиллов. Как получать последнюю строку таблицы без last-child?
Думаю запилить массив строк и пушить в него эту строчку, но опять же, как получить из DOM последнюю строчку таблицы без last-child и nth-child?
Допустим, у меня есть какая-то инфа.
Навешиваю коллбек на событие, когда оно происходит, коллбек должен получить эту инфу.
Она должна как бы храниться где-то между фаерами событий.
Ну смотри: я добавил все строки в массив. Получился массив из 10, допустим, строк.
Я добавляю строку через insertRow(). У меня в ДОМе 11 строк, в массиве 10.
Как я добавлю эту последнюю строку в массив без last-child?
Это как? Подробнее.
Вообще вот обработчик события.
Он находится в background.js.
chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
sendResponse({myOloloMessage: "куку епта"});
});
А content.js запрашивает у бекграунда это сообщение. И оно збс доходит, правда только 1 раз.
А в том же самом бекграунде крутится setInterval() с постоянно выполняемой задаче, инфу из которой надо передевать в коллбек того же самого бекграунда.
Как бы обработчик события шлет свежую инфу, НО ЕСЛИ СВЕЖЕЙ НЕТ, то шлет ту, что есть.
Короче надо, чтобы обработчик события имел доступ к обновляемой инфе из setInterval. Как это сделать?
var arr = [];
var obj = {'arr': arr}
Короче все же нет, это говно не работает. Переменная не хранится между выховами коллбеков
Да уже пробую.
Нихуя не пойму.
var prices = mergePromisesResults (_results);
// Запишем цены в localstorage
localStorage['prices'] = prices;
localStorage['priceInfoLastUpdateTime']= getCurrentTimeString ();
На этом этапе данные существуют. Как только передаю их через message passing в контент-скрипт - все, нихуя, они просто пропадают нахуй.
И как это ими сделать?
Короче есть 2 обработчика разных событий.
Один куда-то должен писать инфу, другой считывать
Нихуя не пойму, какое-то говно, данные пропадают.
chrome.storage.sync.set({'prices': mergePromisesResults (_results)}, function()
{
// ???
});
chrome.storage.sync.get("prices", function(data) {
console.log ('loging data: ' + JSON.stringify (data));
printPrices (data);
});
После mergePromisesResults (_results) данные точно есть, а потом нихуя - loging data: {"prices":"[]"}
Ну охуеть, оказывается это говно асинхронное. В чем тогда смысл вообще?
Короче.
Есть 2 обработчика разных событий.
Один куда-то должен писать инфу, другой считывать. А между их вызовами инфа должна храниться где-то в общем месте
Спасибо за старания, но я вообще не понимаю какое это имеет отношение к моему вопросу.
Есть 2 функции.
function handler1 ()
{
generalData = 'ololo';
}
function handler1 ()
{
console.log (generalData);
}
Эти 2 фукнции привязаны к обработчикам РАЗНЫХ событий.
Они случаются не 1 и не 2 раза, а постоянно.
Надо чтобы один обработчик инфу записывал, а другой считывал.
Не поможете? Нужно написать программу. Автоскрытие по нику. Поскольку я даун-аутист, прошу помощи у вас.
>Эти 2 фукнции привязаны к обработчикам РАЗНЫХ событий.
Вызывать одну из другой, хранить глобальный стейт. Четче формулируй задачу, тут нет телепатов.
>Вызывать одну из другой
Ну охуеть теперь. Из какого-нибудь onClick вызывать submit и дрочить друг друга, охуенная идея бля
Только еще доступа к DOM у меня нет и я не могу записать всю эту поебень куда-нибудь в скрытый инпут
Глобальный стейт, что тебе еще надо? Можешь хранить в замыкании объекта "settingsManager" и получать типа settingsManager->get("generalData");
Получать ноду через querySelector, парсить, ставить display: none, если ник негодный.
Ого. Благодарю, анон. Держи обсерваторию.
Как выполняется обычная прога на какой-нибудь яве, C++, сиське, шарпе или пыхе?
От начала и до конца.
В некоторых языках есть треды, правила работы с которыми просты и понятны.
Но ебучий яваскрипт.
Вот взять setInterval(). Где выполняется этот код? Какую область видимости имеет? Он пересоздается заново каждый раз или как?
Как организовать связь между двумя кодами в интервалах?
>>680830
Ну вот типа такая херня у меня в символ копирайта превращается, а нужно, что бы как ту работало. Сейчас попробую innerHTML
А можно как то в css прописать, что бы внутри тэга текст отображался как есть, что бы теги не считывались?
Есть там какое-то правило, гугли, но оно вроде имеет свои подводные камни, один раз использовал когда-то, не сильно удачно. >>680832
Не, тогда скорее всего innerHTML не поможет, по крайней мере я для таких кейсов его не пользовал. Думал тебе нужно на ходу преображать данные что пользователь ввел в какой-нибудь див.
Например, чувак ввел "Люблю <b>JS</b>" а у него в поле с выводом JS будет выделено жирным.
Стилизируется через цсс
>>680657
Короче, так и не могу решить это говно.
chrome.storage асинхронная параша и толку от него нет вообще.
localStorage - тоже походу.
Я просто блядь не могу сука передать информацию между коллбеками.
Даунизм какой-то
Пишу
localStorage.prices = JSON.stringify (mergePromisesResults (_results));
console.log (localStorage.prices);
Выводит []
Если просто написать console.log (mergePromisesResults (_results)); - все выведет корректно.
Ну вот что это за дерьмо, только что блядь записал в сторедж, считываю - а там блядь пусто
white-space:pre-wrap
Хелп! Че делать-то?
Еще раз поясняю ситуацию.
В background.js разширения хрома запускается setInterval(), который должен класть куда-то данные, чтобы потом из content.js сообщением вызвать коллбек из бекграунда, который должен эти данные ему отослать.
Так вот, localStorage тупо не пашет, как и chrome.storage. Кладешь туда данные - а вытаскивать нехуя, ибо их нет.
Аааа блять кажись че-то получилось.
// Ловим сообщения конент-скрипта.
chrome.runtime.onMessage.addListener(function(message,sender,sendResponse)
{
// Обрабатываем только определенные сообщения.
if (message.target == 'getMePrices')
{
//alert ('message received, sending data. Prices: ' + JSON.stringify (pricesDone));
//printPrices (pricesDone);
sendResponse({
ololo: 'OLolosdfasdfs',
prices: JSON.stringify (pricesDone)
});
}
});
Я в одном коллбеке навешиваю другой коллбек, а второй-то имеет доступ к переменным первого.
Только один вопрос. Это я что, заменит ли новый листенер предыдущий или я так навешиваю все новые и новые обработчики?
>Но ебучий яваскрипт.
>Вот взять setInterval(). Где выполняется этот код? Какую область видимости имеет? Он пересоздается заново каждый раз или как?
>Как организовать связь между двумя кодами в интервалах?
В JS все выполняется в одном треде. Асинхронность реализуется так - ретурн из любой функции, проверка, не пора ли сработать интервалу или таймауту, если да, то переход к телу интервала/таймаута.
Заменяй на < и >
Съеби, его задача не для промисов, ему нужен глобальный стейт.
>>681005
https://jsbin.com/vowaxegene/2/edit?html,js,output
< тест
> test
У меня Javascript с ароматом ванили.
Твои тИпы опять не туда угодили.
Пиздец смешно, просто ухохочешься
Прикручивай ббкод или сам пиши парсер смайликов. А то навставляют тебе жабаскрипта в иннерхтмл по самые гланды.
Просто класс.
а там блять 5-й класс с дибильными мультики с инфантильной добротой и песенками про контроллеры. пиздец кароч
Похоже на codeschool
А ты хуле хотел? Какие потребители, такие и уроки.
Обмазываюсь доками, курсы для быдла.
Какой пиздец, изучать целыми курсами то, что можно осилить за пару вечеров методом тыка.
>что можно осилить за пару вечеров методом тыка.
А с курсом за пару часов. ТОЛЬКО ВЫИГРАЛИ!
посмотрел этот курс ради интереса, он действительно очень ОК
Вот у меня есть сортировка по числу, как мне при onClick и перед сортировкой удалять блок-родитель (column), у которого пустое значение блока value?
https://jsfiddle.net/ptL6jugn/1/
а мне понравился их туториал, правда ангуляру он вообще не учит.
Анон, как добавить что-то в массив без выпиливания изначального объекта? Т.е есть например
эррейнейм[хуй]=x
Есть некое y которое нужно добавить. Так чтобы было
эррейнейм[хуй]=x+y
Как это сделал? Если сделать обычный пуш или присвоение то прежнее значение же выпиляется и будет
эррейнейм[хуй]=y
Тебе надо чтоб прямо под одним индексом два чего-то было? Или сумма этих двух? Или тебе вообще подойдет чтобы y занимало индекс хуй а остальная инфа со своими индексами сдвигалась?
Смотря какая там тип данных. Если текст, то сделай простую конкатенацию, ну и с другими типами данных другой способ, но суть, ты изменяешь информацию по идексу, относись к ней как к примитивному типу данных в переменной.
Алсо да, если там массив или такое, то просто записываешь подмассив же.
Ну я же написал, хочу удалять оранжевый блок при нажатии на кнопку, т.к. у него нет значения в value
Хуясе, спс, выглядит неплохо, сейчас попробую
1)Добиваю первую часть по Js на learnjavascript
2)Учу html и css
3)Перехожу ко второй части на вышеуказанном сайте документ, события, интерфейсы
4)По пути ознакамливаюсь с JQuery
5)Ебашу свой двач и интернет магазин для портфолио
6)Ищу работу.
7)???
8)Profit
Алсо поясните за удаленную работу. В моем городе программисту работать абсолютно негде, остается фриланс и удаленка. Расскажите про это пожалуйста.
Подскажите хотя бы ход мыслей.
Я пытался фильтровать и сортировать, но в таком случае блоки с пустым значнием пропадают, а нужно, чтоб они просто не участвовали в сортировке.
Если опыта нет, то даже не мечтай. Эти дауны лучше возьмут такого же как они долбоеба-крудошлепа с опытом, чем прошаренного без опыта. Типа так надежнее. Всегда с этого проигрываю.
Как отсеять из переменной yoba все буквы и оставить только символы "!" записав их в какую-то переменную?
if (yoba == "!") ниработает.
var yoba = "бла! бла! бла!".split("").filter((i) => i === "!")
А, ну ещё .join("") нужно в конце, если тебе строка нужна, ну я думаю ты понял
А вместо "бла! бла! бла!" можно как-то поставить переменную? Пытаюсь сделать так var yoba1 = yoba.split("").filter((i) => i === "!") а мне говорит TypeError: yoba.split is not a function.
Совершенно другой результат будет, ты даже не прочитал, что он хочет
>>682264
Да всё должно работать, если у тебя в переменной строка. Раз TypeError выдает, значит у тебя там не строка
Если я правильно понял, то у меня не sting а object, но в ней хранится текст! Как сделать мой реквест с переменной типа object?
18.
И как получить опыт? В таком случае если перекатываться джуном в ДС2 например, получится? Будет ли зарплаты хватать на съем хаты/комнаты плюс все остальное?
Я правильно понял, как надо реализовывать наследование и расширение методов? Нельзя ли заменить чем-то динамическим Animal.prototype.live(); и Cow.prototype.live();? Копался долго в консоли пытаясь отследить, в итоге получилось через this.__proto__.live(), но FlyingCow в итоге последнюю строку дважды логает из-за this. Голова трещит уже от прототипного наследования, а гугл выдает мне только сраные цепочки из двух конструкторов, где метод перезаписывается прямо во втором конструкторе.
Прототип надо заполнять через Object.create(Animal.prototype), тому что если Animal абстрактный и кидает ошибку, чтобы пидоры его не создавали, то у тебя все упадет нахуй. Конструктор родителя удобнее вызывать через Animal.apply(this, arguments). Методы родителя нужно вызывать через apply, потому что у тебя this проебался.
https://jsbin.com/mexelojuya/edit?html,js,output
Всё правильно понял? Насчет ссылки на метод родителя - так и надо делать, ручками писать прототип родителя?
Стажировка. Нет, не будет. Ищи возможность по знакомству устроиться, либо стажируйся.
Пили свои пет-проджекты, постоянно повышай планку и будет у тебя опыт. Компании есть разные. Одним нужны опытные разработчики чтоб вот прям щас и все сразу. Другие джунов берут с удовольствием. Твое дело - поднять уровень скиллов до рабочей планки и развиваться дальше, а уж способ заработать всегда найдется.
Я не тот антон, но у меня тоже план-экспресс. В мае-июне увольняюсь с заебавшей работы, дрочу месяца три-четыре жс, портфолио туда сюда, пытаюсь найти фриланс-заказы за еду/за бесплатно опять же для портфолио. Потом искать постоянку по месту жительства, можно начиная с стажировки, но чтобы период моей безработицы в сумме не затянулся больше чем на полгода, иначе денег на еду не останется. Хардмод в том, что я в Таллинне, а значит нужно еще ангельский устный подтянуть. Какие у меня шансы на успех?
>Какие у меня шансы на успех?
Только полный долбоёб увольняется с работы не имея другого способа заработка или денег прожить ~год (чтобы через полгода понять что нихуя не получается и идти на другую заебавшую работу). За три-четыре месяца можно по вечерам выучиться на фронтэнд джуниора, с внешними мотивирующими факторами у тебя вроде все в порядке.
>За три-четыре месяца можно по вечерам выучиться на фронтэнд джуниора
Сомневаюсь что он на полноценного джуна выучится за этот срок. Максимум продвинутый верстала со знанием джс. Это если конечно, у него нет знаний вообще.
Ну я уже полтора месяца в свободное время со средней активностью подрачиваю его, прочитал книгу Head First HTML5/CSS, learn.javascript.ru основной курс, написал змейку, автоматический слайдер дивов на чистом жс, ручной слайдер картинок на жквери, по мелочам еще. Понял что часто теряюсь в собственном коде, пишу оче грязно и до конца не понимаю как он работает, пошел по основам, потихоньку задрачиваю задачки с codewars, прошел первый курс по ангуляру на codeschool(ну и там еще кучу курсов чтоб закрепить по ванили, верстке, жквери) и потом еще курс просмотрел Udemy - Learn and Understand AngularJS, сам пока не ковырял. С мотивацией, в кои-то веки, всё норм и уверен что не заброшу, вопрос только в сроках, уж сильно заебала текущая работа да и на здоровье сказывается. До всего этого годами ковырял Game Maker лол, даже сделал игрушку на андроед на нем, которую скачало 50к человек и с которой я в сумме заработал около 200$, лол. Вот такой у меня бекграунд.
Пример хотя бы одной компании, куда берут без опыта, и с ЗП выше 40к (ниже это для ДС уровень подачек стажерам). Для мухосрани сойдет 20к.
Если тебя не устраивает компания из ТОП 25 с офисами в США, Гермашке и Украине, ну хуй знает тогда.
Вот теперь норм
>Работодателю важен ваш официальный опыт, то что в трудовой книжке значится.
Пидорахоработодателю ты хотел сказать.
Ни в одной приличной международной компахе не будут оценивать опыт в трудовой трудовой блять, это вообще пиздец, совок не вымер оказывается нихуя в ущерб реальным навыкам.
Там где есть нормальный менеджмент, тимлида в первую очередь будет интересовать, что человек может, а что там у него в трудовой, дело десятое.
Ты же хотел нормальную компанию с нормальной зп берущую без опыта. Вот тебе первый попавшийся вариант, с которым лично взаимодействовал.
Обычный продвинутый аутсорсер работающий на Сшашку и западную Европу, таких на уа рынке дохуя и больше. Можешь продуктовые компании и прочии стартапы нагуглить, там тоже часто молодые разрабы нужны.
Что там в ваших пердях, я без понятия, если честно. Если вот этот >>682476
прав, то это вообще пиздец.
И многие тут знают ингришь на достаточном уровне, чтоб хотя бы собеседование пройти? Я сам например неплохо владею техническим ингришем, доки без проблем читаю, но с разговорным беда. Словарного запаса нихуя нет. Это я еще в гимназии с профилирующим английским учился, ингриш на отлично сдал, а что об остальных говорить?
Да, я согласен, что иняз знать надо, но, блять, я хочу писать код, а не учить язык, иначе бы я задрачивал этот самый язык, а не кодинг. Я хочу работать в своей стране, пусть удаленно, но в своей стране. И не потому что я дохуя пидораха-за-путена-накатим. Только без политических срачей, плис.
Короче, я что хочу сказать. Если выбросить эти ваши фантазии о миллиардах долларов и охуенной жизни за бугром, и вернуться к нашим реалиям, применимым к среднему посетителю /pr/, то получается два стула: в забугорную компанию хуй возьмут, уровень не тот, а для поднятия уровня мало у кого хватит волевого импульса (он тоже не бесконечный), и в то же время пидорашкинские чмошные начальники больше переживают за то, как украсть побольше, чем за то, как сделать качественный продукт и получить побольше легитимными способами, поэтому ищут даунов для работы за еду, не желая связываться с потенциально более хорошими спецами без опыта ("он наверное мудак раз не работал еще, ну нахуй с ним связываться, еще вопросы задавать потом начнет, мое место займет, и вообще он асоциальный какой-то").
Это я и есть. У нас именно так обстоят дела, да. Ты просто учитывай, что не все люди настолько охуенны, чтобы еще и язык знать, и желать уехать за бугор. Для обычного человека это непреодолимо по разным причинам, от недостатка волевого импульса до банального патриотизма (и я сейчас не про "за-путена-накатим"). Я хочу работать в своей стране, общаться с соотечественниками. Поверь, вопреки этому вашему молодежному презрению к пидорахам, как люди они ничуть не хуже иностранцев, которые зачастую пустышки без души.
Прискорбно это слышать.
Сразу разберемся, для меня пидораха - термин не политический, а скорее жизненный. Пидораха может топить за украинушку/россиюшку/ америкашку/святой рейх/свободную Мальту/царство небесное да за что угодно блять. Но вести она себя будет именно так, как ты описал вот здесь>>682490
Прискорбно слышать потому что для меня ИТ сфера - двигатель прогресса, даже в богом забытом пост СНГ. У нас большинство заслуживаюзщих внимания компаний - аутсорс/аутстафф/продукт. Все они так или иначе ориентированы на западный рынок, хотя по большому счету являются украискими. Но мышление там тупо иное.
Менеджмент настроен на то чтобы справиться с задачей максимально эффективно. Адекватный тимлид мыслит по схеме - нужна крутая тима - запилить продукт - не сорвать дедлайн - продолжать в том же духе чтоб всем было норм.
Там нахуй не сдались приспособленцы, и человека берут за то что он умеет.
Налажали с продуктом - виновата вся тима, но в первую очередь ПМ/тимлид. С простого девелопера вряд ли серьезно спросят, почему твой продукт провалился. Они и так прыгают с компашки на компашку каждые несоклько лет, и это в лучшем случае некоторые за 2 года умудряются по собственному из 3-4 компаний уйти и в другие перекатится. А вот с тимлида спросят в первую очередь, и спросят везде. Вот и получается что во главу стола ставится разумная эффективность.
Я если честно, думал что и у вас так. Видимо ошибался.
Увы, какую вакансию ни открой, везде опыт требуют. Без опыта только стажировка за еду (иногда даже без еды).
По личным ощущениям, везде где требуют ~год опыта можно по крайней мере попробовать послать резюмешку. В некоторых компаниях так тупо защищаются от хитрецов, прошедших три с половиной курса, и возомнивших себя дохуя девелоперами.
Если ты учишся, пилишь свои проекты, ебашишь приложухи на каком нибудь реакте, то у тебя уже есть опыт разработки. Да не коммерческий, но тем не менее опыт. Ты не манька после кодакадеми, не умеющая на выходе нихуя, и не способная отличить один ивент от другого.
Перешёл на js с шарпа. Прекрасно разобрался в тонкостях того this и вероятно поэтому недоумеваю от this в js.
Плиз.
В функции что не является методом объекта или является вложенной в метод объекта ссылается на window.
В методе объекта ссылается на объект.
В конструкторе ссылается на объект что вышел из конструктора.
В ивентлистенере ссылается на event.currentTarget то есть на элемент на котором его вызвали.
Благодарю, для этих случаев понятно
Ошибок вроде нет, но и не работает.
Пикрелейтед. Это шкрипт, который проходит по каждой строке текста на сайте, ну или что-то вроде этого, я его спиздил, разумеется.
Так вот, на пике видно, что скрипт работает нормально, текст вон выводит #text "БлаБла!Бла!", но он типа object. Ну я его преобразовываю в string, ошибок нет, но и результата тоже нет. Второй пример с обычным текстом вместо переменной работает. Где я проебался?
В шапку!
Ставь блоку display: none.
А, ну так это у тебя нода, а не текст. Тебе надо вместо toString() юзать textContent
>У нас было 2 виртуальных машины (jvm, clr) , 3 старперских языка, рубиновая забористая дурь, одно пресмыкающееся и прочее множество некомплируемых воннаби недоязыков, а также надстройки над jvm, для желающих упороться функциональщиной. Не то чтобы это был необходимый запас для аутсорса, но если начал собирать дурь, становится трудно остановиться. Единственное, что вызывало у меня опасение — это JS. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем подсевший на JS с тамошними фреймворками. Я знал, что рано или поздно мы перейдем и на эту дрянь.
Действительно, работает, спасибо.
Анончики, еще один вопрос есть, как тут var yoba = node.textContent.split("").filter((i) => i === "!"); вместо "!" использовать регулярку? Ну серьёзно, как не делаю - не работает, а гугл в запросах о фильтрации выдаёт совершенно другие конструкции, ответьте пожалуйста.
Посоветую удалить брекетс и поставить атом
Java заебвывет
https://jsfiddle.net/45fLk9xf/1/
спасибо
http://electron.atom.io/
На днях стал тестить, сегодня увидел статью на хабре и понял, что поймал волну, а всё началось с желания запилить для себя плагин под атом.
Теперь вот пишу тут, а значит HYPE электрона пронизывает время и пространство, а значит теперь можно плевать в ёбла всем, кто посмеет заявить, что js не является десктоп приложением.
var yoba = node.textContent.split("").filter((i) => /^[^!]$/.test(i));
смешал жс с дом апи, молодец чо.
Лол, и чем брекетс тебе не иде? Там дохуя ненужного говна понапихано из коробки, так же как в хуйшторм
Но функционал-то тот же будет. Заебали уже какарекать, что IDE, а что блокнот, граница размыта понятий, и саблайм с тонной дополнений тот же самый IDE, при том, что он еще и быстр)
Мне кажется проблема все таки в руках.
Пиши больше, смотри/читай меньше.
IDE отличается от редактора хотя бы тем, что умеет в анализ кода и с умом его дополняет, а не просто сыпет всё, что есть в плагине от васяна. Поэтому я на больших проектах только IDE юзаю, с редактором приходится очень много лишний раз думать о вещах, про которые за тебя может подумать компутер.
Кекнул, копипастнуть одну строчку в консоль для тебя пердолинг? Ну ты ебанашка, никогда кодером не станешь
>>682979
И чем блять у тебя лучше "анализ кода", чем у того же атома? Ничем, иди нахуй значит
Тайпскрипт, тебе нужен тайпскрипт! Есть плагины для каждого ебаного блокнота, а с ними и автодополнение.
> И чем блять у тебя лучше "анализ кода", чем у того же атома? Ничем, иди нахуй значит
Атом даже в методы класса не может, ебанат
ставь сразу вижлу, и не еби себе голову. Плагинов у дяди билла хватит на всю жизнь, а если не хватит, то он напишет ещё
emacs
Сука, ты совсем уебан штоле?
Ты мне написал
>Атом даже в методы класса не может, ебанат
Я тебя нахуй послал, т.к. атом все методы на изи подсвечивает, ты теперь виляешь, что ты не про подсветку, а про что тогда? Совсем ебнулся пидорахен со своим пиздоштормом?
IntelliSense — технология автодополнения Microsoft, наиболее известная в Microsoft Visual Studio. Дописывает название функции при вводе начальных букв. Кроме прямого назначения IntelliSense используется для доступа к документации и для устранения неоднозначности в именах переменных, функций и методов, используя рефлексию.
http://ternjs.net/
Во, терн вообще бомба, правда как раз под атомом немного кривовато работает, под саблаймом лучшу
>>683190
Я про автодополнение в посте говорил, на который ты со своим атомом вскукарекнул: >>682979 Где ты там подсветку увидел - хуй знает
И даже с подсветкой твой атом обсерается. Попробуй открыть какой-нибудь большой файлик, подсветка после энного символа просто перестанет работать
Блять сука какой ты тупой пидорас
Подсветка МЕТОДОВ блять, а не синтаксиса, не ЦВЕТОМ, а блять в попапе появляются названия, понимаешь ты это или нет тупое чмо?
ну хули, вебшторм все мозги видимо съел
Ты автодополнение подсветкой называешь и меня после это тупым обзываешь, я правильно понял?
Аноны на больших проектах, вы используете TDD, или пишите тесты под какие-то определённые, с возможными подводными камнями методы? В джуна влезают тесты?
Да, ты даун, все поняли уже, нахуй иди.
>>683320
ТДД почти не используем, т.к. всегда нужно "вот прямо сейчас". Пишем на тайпе, поэтому есть какая-никакая защита от некого количества багов. Но на определенной фазе тесты добавляются, когда загрузка поменьше становится и основные фичи сделаны. Понимаю, что это достаточно тупой подход, но на практике хочешь как лучше сделать, а получается всегда так. В джуна тесты скорее не влезают, хотя я тоже по сути джун, но пишу тесты для реакт компонентов, там всё просто достаточно, т.к. "чистые" функции и всё такое, а вот если какую сложную систему тестировать это надо уже шарить
Мне нужно распарсить, найти определенный значения и определенные значения, а потом удалить минимальное определенное значение с условием.
JSON.parse
Но решил я пилить свое онлайн-чудо, а реализации ws для php все какие-то... сомнительные.
Вообщем, вкатываюсь в nodejs. Стал искать привычные классы (нашел, прототипы, хуе-мое, ладно), смирился с отсутствием стройного фреймвока с кучей структурированного готового стаффа (как ларавель), но меня окончательно вынес следующий вопрос.
Стал я искать ORM для работы с БД, нашел - https://www.npmjs.com/package/orm
И все ок, только результат получения записи в колбеке!
https://jsfiddle.net/o0rnr0ya/
Вот как мне с этим получить в этом роуте всех юзеров и вывести их имена? Не понимат.
Ну в этом роуте пиши запрос к базе, а в колбеке этого запроса уже шли ответ с полученными из базы данными.
В том и дело, что например метод all вызывает колбэк для КАЖДОЙ записи. И вот как тут собрать массив этих записей и где вызывать render?
Ну сделай сам массив, если это промис, просто then напиши что с ним делать дальше, что сложного?
>Стал искать привычные классы
Нормальные ребята не используют классы
>смирился с отсутствием стройного фреймвока с кучей структурированного готового стаффа
Твой хуйравель даже близко с нодой и её экосистемой не стоит
>Твой хуйравель даже близко с нодой и её экосистемой не стоит
Драка инвалидов. Спешите видеть.
На школьной доске он пишет. И отнюдь не в качестве учителя.
> >смирился с отсутствием стройного фреймвока с кучей структурированного готового стаффа
> Твой хуйравель даже близко с нодой и её экосистемой не стоит
Блять, опять этот поехавший. Давно сюда таких не заносило, второй день проигрываю
Кекнул с тебе манька, я сижу тут с прошлого лета каждый день, а вот тебя не видел ещё, пиздюк
Я так не считаю, я проигрываю с дауна, который фреймворки с языками сравнивает
>>683580
Ну значит ты сам по себе дегенерат, ничего не изменится
>Я так не считаю, я проигрываю с дауна, который фреймворки с языками сравнивает
Даун, я же написал "экосистема", никто не сравнивал язык и фреймворк
Хотя пхп это конечно не язык нихуя, так, надстройка над хтмл, идиоты до сих пор пользуются, как ни странно
>>683583
Дегенерат тут только ты. Как там дела-то, прошёл уже learn.javascript или до сих пор разбираешься что такое переменные?
> >Я так не считаю, я проигрываю с дауна, который фреймворки с языками сравнивает
> Даун, я же написал "экосистема", никто не сравнивал язык и фреймворк
Экосистему с языком сравнивал? Ну тогда всё нормально, да
> Хотя пхп это конечно не язык нихуя, так, надстройка над хтмл, идиоты до сих пор пользуются, как ни странно
У пыхи есть всё, чтобы называться языком программирования
> Дегенерат тут только ты. Как там дела-то, прошёл уже learn.javascript или до сих пор разбираешься что такое переменные?
О, а вот и проекции
А, ну ясно, если ты пыху считаешь языком программирования, то с тобой дальше не о чем говорить. Предлагаю тебе съебаться в пхп петушарню и больше сюда не приходить, т.к. мнение таких опущенцев тут никого не интересует.
Всё оказалось невыносимым калом и я вернулся на Sublime Text 3.
Поясню, недостатки остальных ide - они все тормозят, начиная от момента запуска, заканчивая самим процессом.
Второй недостаток словно следствие из первого - отсутствие плавной прокрутки.
Третий не такой существенный как первые два, но тоже меня выбесил - отсутствие внятной стилистики. То есть, если я ставлю в саблайм тему, меняется всё, тогда как только в атоме более менее хорошая система кастомизации.
Также в некоторых ide всё плохо с интерфейсом и такими важными вещами как folding и обозначение линий этого самого фолдинга. Приходится каждый раз туда-сюда скроллить, выискивая нужную скобочку, тогда как в саблайме всё элементарно.
Я уже не говорю про то, что во всех остальных редакторах нужно установить сотню расширений, чтобы приблизиться к базовому уровню саблайма, а некоторых фич до сих пор нет даже среди расширений.
Например, подсветка схожего кода при выделении. Не говоря уже о том, что автоподстановка во многих ide работает по принципу алфавитного порядка, тогда как в саблайме подстраивается под частоту использования. Такие казалось бы мелочные недочёты не позволили мне найти альтернативу лучшему редактору всех времён и народов.
Я же сказал, что сейчас у пыхи есть всё, чтобы называться языком программирования. Если ты считаешь иначе - оспорь или залазь обратно под свою петушиную шконку. Вопрос реализации - это другой вопрос.
И я на пыхе с 4-ой версии не писал, если что
Согласен.
Атом, правда, по всем параметрам лучше саблайма, кроме быстродействия, и это его действительно убивает немного. Саблайм снова начали апдейтить, кстати, после года бездействия, будем надеяться, что будут улучшения, т.к. он тоже не без изъянов.
>>683610
Да нахуй иди, буду ещё спорить с ебанашкой, который только и зашёл, чтобы попиздеть ниочем
По фронту тут неплохой список
https://github.com/h5bp/Front-end-Developer-Interview-Questions
По ноде даже не знаю, проще погуглить что-тор подобное "node js interview questions"
Когда замнёшься на какой-нибудь теме, скажи, что зато знаешь, почему люки круглые.
И всё же попытайся решить проблему. Думай над вопросами, а не копайся в воспоминаниях и если спросят что-то сложное, не бойся попросить сформулировать на простом языке.
Сейчас ищут в первую очередь по тому, сможет ли человек работать в команде, поэтому технические навыки не так важны, если конечно ты не конченный гуманитарий.
Возможно это просто заглушки под будущие условия.
Хочется и погромистом быть и в душном офисе не работать
Casperjs не подойдет ибо жирный очень, Cheerio тоже.
>>683712
Ну кодером, не так выразился. Но суть ясна. На еду то хватает?? Скажем 500 долларов в месяц подъемная сумма или как?
В нормальных компаниях с 500 баксов только джуны начинают без опыта.
Насчет фриланса точно не скажу. У меня знакомые на апворке и по 3к зелени в месяц рубят.
Пиздежь. Наглый при чем. Может в Варшаве и платят 1к$, но только там джуны как у нас мидлы, и то на джаве.
Так-то зп джуна от 400 до 800$ в зависимости от города и языка программирования.
Да, забыл добавить, иногда эта сумма даже без учетов налогов.
Могу поверить, что местным, но я когда-то пытался переехать, мне предлагали без опыта работы 1200, в Норвегии нашёл контору, которая 2500 хотела, но требовалось пройти какие-то курсы норвежского языка, хотя я прошёл собеседование на английском. Из-за этого пришлось дать заднюю. Вот нахуя им норвежский, когда вся документация и код на английском.
Ну хуй знает что за фантастические вещи ты сейчас вещаешь, я пока жил и работал там на подобные вакансии в 1200 и без опыта работы ни единого раза не наткнулся. Разве что 3,5к$ для мидла по js было дело, но там пачка требований была неплохих. Немного выше уровня мидла, конечно, но уж точно не дотягивала до сеньора. Что-то вроде трех лет с js, react, node и еще что-то, что уже и не вспомню.
И никакого тебе обоссанного унгуляра
В рашке в столице моей мухосрание предлагали 500$, хотя сначала я в резюме ещё написал, что интересуют только от 1000$ запрлаты.
Это ещё при старом курсе, то есть грубо говоря 30к рублей. Причём я приехал к ним на собеседование за 200 км и меня пытаются кинуть, типа всё заебись, но только 30к, хотя по телефону я переспрашивал, что имеет смысл только на 60к и больше, так как придётся оплачивать жильё, еду, а это около 30к от всей суммы. То есть грубо говоря они меня позвали работать за еду - получаю 30к и тут же сливаю 30к.
Я конечно нахуй не послал, но дверь хорошо там хлопнул.
Бамп бампу вопроса
https://egghead.io/lessons/javascript-redux-react-counter-example
Мне вот тут надо все 30 видосов просмотреть. После 10-го уже уши завяли.
Из orm используй Sequelize. И вместо колбэков используй промисы - не будет сильной вложенности.
ORM: Sequelize или bookshelf для sql баз, mongoose для MongoDB соответственно.
То есть, если a = [], A = {}, то операция a будет быстрей, чем A[key], поэтому советуют в мощных приложения использовать массивы.
Но когда нужно найти объект по id, а не порядковому номеру возникает дополнительная проверка, то есть в ассоциативном массиве можно просто достать нужный элемент A[id], тогда как в обычом придётся делать for (var id = 0, id != a[id].id, id++) и вот вопрос
ЕСЛИ НУЖНО НАЙТИ ЭЛЕМЕНТ ПО ID, КАКОЙ ТИП МАССИВА БУДЕТ НАИБОЛЕЕ ОПТИМАЛЬНЫМ?
Да, из ДС2, написал редакс, теперь работает в ФБ в команде Реакта, всего 23.
Да, конкретно three.js
http://pastebin.ru/v4BxeEML#
В чем проблема анон, и как вообще в js понять что нихуя не работает. Включил консоль в лисе там те же предупреждения что и в работающем примере.
Такой пример(без jquery и с функцией render) я делал до этого, но почему код книги не пашет(поломали обратную совместимость?) или хотяб jquery почему не работает?
myString = myString.replace(" ","")
>$("WebGL-output").add(renderer.domElement);
Нет # у селектора. add добавит domElement в jQuery object, а не в dom, нужно использовать append, например.
в requestAnimationFrame ты отдаешь объект renderer, он там нахуй не нужен, там нужен колбэк.
https://jsbin.com/dawinu/4/edit?js,output
Дошло антош, теперь вижу что хуйню написал(и почему).
>>684274
>>684277
Напишите свой редакс. А когда напишите (т.к. это не сложно), то поймете, что это дохуя удача.
Лол, проиграл с маньки
Чувак дрочит программирование с 12 лет, на всяких конференциях-хуенференциях светится, опенсорсит как бог, а ебанашка с двачей называет это удачей.
Фундаментальная ошибка атрибуции.
Индивидуумы склонны объяснять мотивы своих поступков внешними причинами, а чужих — особенностями личности. Если более точно: свои фейлы объясняются исключительно тижолой жизнью, чужие фейлы — исключительно тем, что те люди — мудаки, козлы, сволочи, неудачники и вообще ничтожества. С винами — наоборот. Собственный вин — исключительно потому что умный, сильный, сообразительный, выносливый (нужно подчеркнуть), чужой вин — исключительно потому что блат, переспал, насосал, мажор и прочая пруха по жизни.
Позволяет чувствовать себя Д'Артаньяном, даже не отличаясь от окружающих ни на йоту. Например, распихивать народ в метро, опаздывая на встречу, а через полчаса возмущаться человеком, в спешке, расталкивающим народ.
лол, как он уебищно разговаривает, такой харш рашн акцент, еще и пытается подражать британскому и гласные тянет, что делает его еще смешнее в совокупности с тоненкьим школоголоском.
Нормально он разговаривает, он ещё специально более четко всё проговаривает, чтобы всем было понятно, даже не англоговорящим и тем, у кого плохое понимание английской речи. Очень классный курс.
Алсо, он живет в Лондоне, естественно у него какой акцент может и начинает проявляться.
Уверен, что он знает инглиш в 100 раз лучше, чем ты, так что не тебе судить. А голос - какой есть, такой и есть, всем похуй вообще, кроме таких закомплексованых манек, как ты, проецирующих свою жизнь на других. Если тебя гнобили из-за голоса, то это только твои проблемы, сходи к психологу.
Давай еще посмеемся над профессионалом в го, такой омежий голосок, ха-ха, как смешно, еще и машине три раза проиграл. Вот серьёзно, ты даже к голосу приебался?
https://youtu.be/qUAmTYHEyM8?t=5h39m29s
так и веет желчной завистью с твоего поста, вангую, что ты вообще не знаешь ангельский, и только с смог, что к голову придраться, лол
То, что его приняли на работу, результат его деятельности. То, что именно его либу заюзали, результат удачи - оказался в нужное время в нужном месте с нужной реализованной идеей. Ничего феноменального в редаксе нет, большая часть фронтендеров так или иначе пишет для крупных проектов свой редакс или юзает что-то похожее.
Кек, т.е. вот просто так рандомно взяли и внезапно все начали юзать редакс, без видимых причин, и забыли про другие флаксы? Ты ебанат или троллишь?
ghbdtn = привет для него.
По-моему такие преобразования нужно делать на бэкенде
Какая связь между голосом и работой не за рубли?
Да
В шапке написано. Смотри пункт 3
Это копия, сохраненная 6 апреля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.