Это копия, сохраненная 28 августа 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md
Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
После определенного периода копания пришел к выводу:
Все книжки - хуйня, дадут только базу в лучшем случае, а потом забудутся.
Все видеокурсы - развод для лохов. Уровня сетевого маркетинга.
После базы - только самому писать. В крайнем случае всякие квизы, но обязательно с ответами. Чтобы не гадать говнокод ли у тебя.
Начнём с самого пиздеца: язык. JS изначально создавался для мелкой скриптоты, позже требования к нему стали расти вместе с усложнением приложений, которые на нём писались. Сейчас имеем новые стандарты, которые только прикрывают проблемы языка и делают работу с ним менее болезненной. Однако хомяки продолжают ссать кипятком при виде очередной порции заплаток и очередного, десятого, способа записать литерал функции. И лишь еденицы замечают, что поезд горит и с него пора спрыгивать. А с системой приведения типов сталкивались? Ахах, сейчас расскажу! Тут творится приздец на уровне PHP. Ты можешь складывать самые разные значения и без ошибок получать ответ, каждый раз удивляясь, какая ебаная логика живёт там внутри. Удачной отладки! Ведь при таком подходе место, где проявилась ошибка, может находиться далеко от того, где её нужно исправить. Ещё даунам-авторам пришло в голову объеденить оператор доступа к свойству и оператор индексирования, в итоге имеем уродство в виде hasOwnProperty. Или возьмём новый const. У тебя не рвётся шаблон от того, что const вовсе не const, а просто способ запретить повторное присваивание? Сюда же let, который каждый уебан считает своим долгом притащить в свой новый ненужный язычок, ведь функциональщина это модно, молодёжно. Даже другая ебанутая идея из прошлого, variable hoisting, не вызывала столько ненависти. И это только вершина айсберга.
Дальше - библиотеки. 500 (!) тысяч пакетов. А, чтобы сделать сраный SPA, есть только react. Всё остальное полный шлак. Angular - синоним оверинжиниринга. Вспомнить только их dependency injection, который ломается после минимизации. Vue.js - сойдёт для корзины на сайте. И... всё, дальше идёт дюжина менее известных фреймворков/библиотек со своими изьянами каждый. И даже хвалёные инженеры из фейсбука выдают херню вида Component.componentDidMount вместо человеческого и общепринятого Component.onAfterMount. Чего уж говорить о рядовых макаках.
Последнее - коммьюнити. JS удивительным образом собирает вокруг себя самые пидорские, конченные личности. Типичный представитель это сутулый дрищ с неуверенным голоском. Он готов сутками херачить простынки на своём недоязычке, прыгая с одной волны хайпа на другую. Ведь главная цель нашего смузихлёба это залить как можно больше пакетов на npm и получить как можно больше звёзд на github. Тогда ЧСВ взлетит до небес и вчерашний чмоша будет считать себя гуру программирования. Любимое его занятие по вечерам это дрочить по кругу своим соратникам после того как они все поупражняются в придумывании названия к новому революционному фреймворку.
Только WASM вселяет надежду на то, что хоть немного ситуация в браузерах изменится в лучшую сторону.
Начнём с самого пиздеца: язык. JS изначально создавался для мелкой скриптоты, позже требования к нему стали расти вместе с усложнением приложений, которые на нём писались. Сейчас имеем новые стандарты, которые только прикрывают проблемы языка и делают работу с ним менее болезненной. Однако хомяки продолжают ссать кипятком при виде очередной порции заплаток и очередного, десятого, способа записать литерал функции. И лишь еденицы замечают, что поезд горит и с него пора спрыгивать. А с системой приведения типов сталкивались? Ахах, сейчас расскажу! Тут творится приздец на уровне PHP. Ты можешь складывать самые разные значения и без ошибок получать ответ, каждый раз удивляясь, какая ебаная логика живёт там внутри. Удачной отладки! Ведь при таком подходе место, где проявилась ошибка, может находиться далеко от того, где её нужно исправить. Ещё даунам-авторам пришло в голову объеденить оператор доступа к свойству и оператор индексирования, в итоге имеем уродство в виде hasOwnProperty. Или возьмём новый const. У тебя не рвётся шаблон от того, что const вовсе не const, а просто способ запретить повторное присваивание? Сюда же let, который каждый уебан считает своим долгом притащить в свой новый ненужный язычок, ведь функциональщина это модно, молодёжно. Даже другая ебанутая идея из прошлого, variable hoisting, не вызывала столько ненависти. И это только вершина айсберга.
Дальше - библиотеки. 500 (!) тысяч пакетов. А, чтобы сделать сраный SPA, есть только react. Всё остальное полный шлак. Angular - синоним оверинжиниринга. Вспомнить только их dependency injection, который ломается после минимизации. Vue.js - сойдёт для корзины на сайте. И... всё, дальше идёт дюжина менее известных фреймворков/библиотек со своими изьянами каждый. И даже хвалёные инженеры из фейсбука выдают херню вида Component.componentDidMount вместо человеческого и общепринятого Component.onAfterMount. Чего уж говорить о рядовых макаках.
Последнее - коммьюнити. JS удивительным образом собирает вокруг себя самые пидорские, конченные личности. Типичный представитель это сутулый дрищ с неуверенным голоском. Он готов сутками херачить простынки на своём недоязычке, прыгая с одной волны хайпа на другую. Ведь главная цель нашего смузихлёба это залить как можно больше пакетов на npm и получить как можно больше звёзд на github. Тогда ЧСВ взлетит до небес и вчерашний чмоша будет считать себя гуру программирования. Любимое его занятие по вечерам это дрочить по кругу своим соратникам после того как они все поупражняются в придумывании названия к новому революционному фреймворку.
Только WASM вселяет надежду на то, что хоть немного ситуация в браузерах изменится в лучшую сторону.
>А с системой приведения типов сталкивались? Ахах, сейчас расскажу! Тут творится приздец
Запомнить меньше половины страницы coercing и boxing - лучше чем каждый раз прописывать типы как ебаная макака.
Обожаю читать опусы таких вот говноедов, которые и колятся, и продолжают есть, и при этом просят ещё. На ваш выбор целый ассортимент BDSM удовольствий в лице компилируемых в жс язычков, но нет, мы хотим жрать говно и хлебать мочу.
Что, хотел ворваться во фронт и не замараться о свистоперделки?
>целый ассортимент BDSM удовольствий в лице компилируемых в жс язычков
Сядешь на динамически типизированный стул (ES6+, CoffeeScript), огребёшь те же проблемы, что и в обычном JS. На статически типизированный (TypeScript, Dart) сядешь, нужно будет заморачиваться с биндингами. А ведь я хочу простого человеческого bool([]) -> False, bool([1,2,3]) -> True. Или чтобы {} + [] кидал ошибку сразу на месте, а не проваливался на десять вызовов дальше, где устраивал бы кровь кишки распидорасило. Распутывай потом это.
>Что, хотел ворваться во фронт и не замараться о свистоперделки?
Ведь и замарался о них в надежде привнести меньше боли в свою жизнь. Но увы.
Тут разве не нужны биндинги к сторонним библиотекам на JS?
Алсо, сейчас понял, что мне нужен не статически типизированный язык, а сильно типизированный. Отказываться от ништяков динамической типизации не хочу, а хочу в рантайме получать ошибки на малейшую несогласованность типов.
Биндинги нужны, но они описываются в рамках системы типов. При этом делаются тривиально, в отличии от елма.
нет
а мне похуй на языки, я вкатываюсь изза экосистемы, и чем она больше и активней, тем лучше. не нравится что остальные накодили для тебя - пили свой язык, продвигай его и может все будет так как ты хочешь однаждыили расслабься и руби баблос 300к в сек попивая смузи как все
Подруби flow-types, боли будет меньше, я гарантирую это.
Начинаю практически с нуля (есть какой-то базис на Си, синтаксис и может пару вещей, сортировку и т.д даже не трогал пока).
Хочу во фронтенд запилиться (точнее не хочу, а уже запиливаюсь), но из-за мегатонн информации в интернетах начинаю теряться в том, что надо учить, где и как.
В общем вопрос к отцам данной отрасли - что именно я должен знать для состоявшегося джуниор жс разработчика (по пути и верстальщика конечно же) и откуда черпать лучшую инфу.
Сразу отсеиваю кодекадеми и хтмлакадеми (+ подобные информационные ресурсы) ибо очень нудно шажок за шажком, я хочу получить информацию сразу во всей красе и из нее черпать все, что мне надо.
В общем от вас я прошу подсказать что и в каком порядке учить (начиная с самого начала html) и на каких ресурсах это делать (чтобы был не устаревший, хотя бы чтобы там был разговор о html5).
От меня тонны нефти.
Пока прошел первый том на кодекадеми и уже засыпаю, я люблю когда информация подается на "одном листе", а я его читаю и что-то по пути пишу, проверяю, делаю, а не так что на каждый тег мне надо 100 уроков пройти и 20 тестовых заданий (что глупо проходить на тег <a> или <h1>).
хотел написать длиннопост, но всё стёр и написал, что ты - ебанутый
Открываешь гитхаб, находишь опенсорс проект с кучей звезд и основным языком js - получаешь информацию сразу и во всей красе. Не благодари
Смотря во что ты горазд.
Два треда тому назад здесь давали ссылки на real-world приложухи на реактусе, например, если тебя потянуло во фронт.
Я как-то задавал вопрос о том, зазорно ли использовать ассерты в production-ready коде, на что мне резонно ответили, что нихуя так делать нельзя.
А я намедни решил проникнуться исходниками SailsJS и вижу у них по коду разбросаны ассерты ( https://github.com/balderdashy/sails/blob/master/lib/app/private/controller/help-register-action.js#L31 ). Это норм?
>Ну кароч ето понял
>А аха всё ясно
>Ну ето легко, все кроче
>Ну теперь я кароч всё знаю
Пришел на собеседование, мычишь на первом же вопросе.
Ну пох, макака же - всё равно взяли.
Дали ТЗ.
>Ой, а как это делать?
фронт хочу, но там вылазиют опен-сорсы типа библиотек и фреймворков, хотелось бы опен-сорсы сайтов или приложух
Специально для тебя отмотал два треда назад, чтобы найти этот линк: https://github.com/ory/editor
Этот язык помогает мне добиться динамики на сайтах, перестать обновлять страницу, подгружать данные через AJAX, ну и прочее.
Что еще можно делать? Нахуй вы столько знаете?
Angular react redux node jquery
какие могут быть задачи, что вам пригодился этот язык? конкретно
Как вы помните недавно апач послал нахуй фейсбучие либы и фреймворки (Реакт) изза хитрожопой лицензии с патентом.
По поводу лицензии реакта все были недовольны еще год назад а потом забили хуй и начали использовать. Так вот, в чем прикол для фейсбука в этой лицензии и в патенте и нахуй они вообще так сделали? В чем состоит многоходовочка и смогут ли они нагнуть раком и обоссать любую компанию которая использовала/использует реакт? Я так понимаю всякие гуглы и прочие большие отмажутся если че, а мелкого Васяна, который случайно придумает win который будет люб фейсбуку, отымеют?
И я по такой же причине, кстати.
вопрос в патентах. читай, всего 30 строк:
https://github.com/facebook/react/blob/master/PATENTS
facebook дает тебе право использовать их патенты, какие есть в react. но ты теряешь это право, если подашь на них в суд за нарушение твоего патента.
получается, ты меняешь все свои патента на алгоритмы, взамен хуйни из реакт.
где работаешь? в некоторых странах нет патентов на алгоритмы.
если ты пишешь для конторы из стран с патентами на алгоритмы и если у конторы могут быть патенты по алгоритмам, то не используй реакт.
в любом случае лучше поговорить с юристом или перестать использовать реакт.
Микросерв... че сказал бля? Орхетектура какая-то. Выкинь ты эту хуйню из головы, в вебе все просто - $(() => { $("<h1>Hello, world</h1>").appendTo("body").css({ "font-size": "large", color: "yellow" }) })
>высокая производительность
Напомните мне, со скольких кубиков кубач начинает безбожно тормозить на лучшем пека /хв/ 2017 года с сотнями гигабайт памяти и четырьмя процессорами?
<div class='...' onlclick='console.log("ti pidor")'></div>
Bratique, заюзай какую-то либу. Гугл плохо относится к сайтам, которые используют нативный 'onclick'
Я бы с радостью, но в моем случае я не могу вставить отдельный скрипт. Мне нужно именно в онклик(
> <script type="text/javascript" src="/js/vendor/.....dev.min.js?1484779838"></script>
И он имеет у себя функцию вроде pidorise(). Почему после загрузки странички, у меня нет доступа к этой функции из консольки браузера? Пишет вот что:
> Uncaught ReferenceError: pidorise is not defined at <anonymous>:1:13
Так и должно быть?
Нет, не должно. Разобрался в проблеме, нужно было перейти в неймспейс айфрейма, в котором и реализован скрипт. Все работает из консольки, подтяни матчасть.
> Гугл плохо относится к сайтам, которые используют нативный 'onclick'
поясни за это. в смысле гугл плохо относится?
ньюфаг
https://www.youtube.com/channel/UCP-xJwnvKCGyS-nbyOx1Wmg
ну так дай канал на ES6
Нет большой корпорации за ним, не ясно его будущее. Не берут из-за страха, что сообщество его просто забросит, когда надоест. И правильно делают
>И пока всё идёт к тому, что другие языки
Электрон заслуживает отдельного места в аду вместе с людьми, которые им пользуются.
Ну так все верно, если реализовывать его наркоманию, то переопределяем метод __getattribute__ так, чтобы он по имени искал в globals переменную и обращался к атрибуту по значению переменной.
>Как добавить обработчик нажатия на DIV в его аттрибут?
>onlclick
Научиться писать названия аттрибутов без ошибок.
>что вынуждает лепить костыли из говна и палок
Это обычная практика в жс. Собственно, на этом все и держится.
Пиздец, хорошо я в свое время остановился на голом koa. Есть тебе контекст - ебошишь в/из него данные в каждом контроллере, если то необходимо, и в ус не дуешь.
ждем пока ентернет эксоплер сдохнет, ахах)
Миллионы сайтов на нем сделаны, никто ничего перерабатывать не будет.
now.sh сука больше 1 мб не ест, а у меня .map файл 2 мб...
чоза проект? скинь ссылочку на гитхабчик, надо заценить
rhCloud, не?
Приблизительно так. Вспоминаешь что давно хотел сделать и чего не хватало лично тебе, берешь и начинаешь писать без задней мысли.
Как эту парашу смотреть? накидано 10 RADME и 3 папки с пнг.
Что там непонятного?
А что должен уметь Full stak JS и как на него выучиться? Так же делая всё подряд?
Пиши нелегаси код, не используй бабел.
На том стеке какой ты выберешь. Можешь и онли жс.
Твой вопрос
>А что должен уметь Full stak JS
Равносилен
>Что должен уметь музыкант
использую riotjs. проблемы как отсутствие корпорации - не волнуют, это не такая сложная штука что бы самому не исправить тот или иной баг.
если и буду искать помощника, то riotjs изучается быстро, не вижу смысла указывать его как требование. может поэтому с vue нет вакансий.
То что ты пишешь на свой жс дрисне, делаешь интерфейс на html/css, используешь наработки из веба.
Ты можешь запусить веб приложение на десктопе, но не можешь запустить жава приложение в браузере.
>делаешь интерфейс на html/css
Не, там XML подобный синтаксис.
То есть преимущество только в том, что приложение можно запустить в обычном браузере?
>не можешь запустить жава приложение в браузере
Ты совсем нуфаг? Жабу можно было запустить из браузера когда про ангуляры еще никто и не слышал https://en.wikipedia.org/wiki/Java_Web_Start
> То есть преимущество только в том, что приложение можно запустить в обычном браузере?
ты тупой что ли сука???????? электрон и ЕСТЬ БЛЯТЬ ОКОШКО ХРОМА!
Ну так в чем смысл, если суть электрона в запаковывании приложения в exe и прочие? Я же не спрашиваю, в чем преимущество жабаскрипта, а в чем преимущество электрона.
Бля ну если тебе нужен exe для твоего веб приложения, например для стима, то ты берешь электрон/nwjs и запоковываешь.
Если ты хочешь сделать текстовый редактор, но твои макаки знают только жс.
> И то, и то кроссплатформа, но даже джава быстре и меньше занимает.
Если много занимает и это критично - есть альтернативный проект Electrino. Фишка его в том, что он мимикрирует апи электрона, но юзает при этом нативный для каждой платформы рендер.
Смотря как соберешь. Сделать index.hml + xyu.js не проблема. Обычно так и делают.
Тебе кто-то мешает просто взять и проверить? CRA собирает всё примерно в такую структуру:
build/
--index.html
--/js
----main.js
----main.js.map
--/css
----main.css
----main.css.map
Файлы .map это SourceMaps - специальные файлы, которые позволяют получать оригинальный, не минифицированный код в браузере или любом другом инструменте, который поддерживает соурс-мепы (удобно при дебаге)
1) html+css -> методологии верстки
2) vanilla js + jquery
3) scss, postcss, gulp, методы организации/сборки проектов
4) nodejs, webpack, react/angular
5) специфика работы с фреймворком (react-router, redux для реакта, typescript для ангулара
роад мап примерно такой
Нужна нормальная либа map/filter/прочего говна, которая адекватно поддерживает es6 генераторы (function*) - бесконечную итерацию, и т.д. Разработчик lodash прост конченый и не собирается этого делать.
ты ошибся, , олень тут только веб-короли и на твой зашкварный яндекс мы срали из жоп говном. так вот. для начала отдай-ка тут всем честь, потом решим что с тобой мудаком делать
Занялся изучением Jest'а и, соответственно, написанием тестов.
Так вот, встрял в одном, вроде бы, нетрудном месте - мокинг коммуникатора IPC, по которому ведется обмен между клиентской стороной и рендером электрона.
В джесте есть возможность мокать зависимости в импортируемом файле (импортирую экшоны реакта), и отсылка данных тестируется таким методом легко и просто, но как оттестировать входящие сообщения? Через jest.mock() нельзя заюзать глобальные переменные, поэтому объявить один глобальный ивент эмиттер, доступный и в тестируемых экшонах, и в тестах.
Выразительный javascript или Сильные стороны?
Не то и не другое. Первая с середины нехило выебет мозг новичку, при этом не дойдя до вещей, с которыми реально будешь иметь дело. Вторая просто устарела. За неимением лучших альтернатив лучше начинать с Кантора: learn.javascript.info посвежее на инглише, learn.javascript.ru прошлая версия на русском.
Фланаган же
Накидайте ссылок с заданиями для вкатывальщика лоу-скилла, желательно с пояснениями. Искал, везде только задания для йоб уровня выполнил задание - ты супер погроммист.
Накатай менеджер базы данных сотрудников.
Отделы, сотрудники, их профайлы и фотографии, ну ты понел.
CRUD, короче.
Ок, куда перекатится потом?
Я не могу в английский, да я знаю, что я долбоеб. Для нормального изучения английского мне нужен стимул, а он может появится когда хоть чуть чуть начну вкатываться в it. (Да и просто хз каким методом поднять школьные знания ангельского)
Нет, это к java-господам
Выбираю между backbone и meteor, на какой стул сесть?
Реакты, ануляры и вуй прошу не советовать.
Блять, в моей бы мухосрани такую конторку.
По делу все просто - забей на перечисленный стек и юзай что-нить навроде NightmareJS + Nightmare-jasmine и пиши e2e тесты.
Удачи.
То что он делает хелло вроты на реакте/ануляре не значит что все откажутся от используемых технологий и бросятся все переписывать на них.
На бакбоне и метеоре написано много приложений, которые нужно допиливать и поддерживать.
К тому же эти фреймворки "мертвые" только в фантазиях мамкиных борщехлебов.
> Выбираю между backbone и meteor
> много приложений, которые нужно допиливать и поддерживать
> выбираю между
> поддерживать
> выбираю что поддерживать
...
>>1032075
Дошел от тяночки 10/10 до ебаного компа, и в отличие от тяночки НИХУЯ ТВОЯ ПАРАША МЕНЯ НЕ УДОВЛЕТВОРЯЕТ СУКА
https://github.com/ramda/ramda/issues/1809
Допустим, есть сайт формой. Прямо в консоли браузера с помошью jQuery меняем, например, цвет кнопки:
$ = window.jQuery;
$("#button").css({"background-color": "red"});
Если нажать на кнопку и отправить форму, цвет поменяется на изначальный. Как это предотвратить?
Лучше изучи 1С. Там это делает на раз два вообще.
Так секундочку, ты чо, выбираешь фреймворк для изучения, исходя из того, как много легаси на нем нахуярено? Так чего мелочиться, бери сразу кобол.
Ну что, конь тебе копытом в грудь, дошел до коммента, где рекомендуют либу-итератор, умеющий работать с генератороми?
Imlazy, например.
Чего ты к словам цепляешься? Окей, замени "фреймворк" на "технология", тебе легче? ОКР отпустило?
bump реквесту. Ни одного ресурса не нашёл. Везде задания ебанутые: напишите такую-то хуйню. Ана, класс, только вот в вашей ебанутой книге/курсе эта тема затронута либо косвенно, либо криво. Почему я должен сам всё думать. Детям же, не дают букварь - типа думай сам какая буква означает определенный звук. А вообще, в треде чсв даунята собрались. джаваскрипт - позор погроммирования, но гонору то сколько у адептов.
Уебывай, необучаемый. Ресурсов миллиард, нет блять, не хочу думать, хочу чтобы все само.
Разобрался.
Короч, сделал в экшонах функцию, позволяющую менять дефолтный ipc обработчик.
В тестах, юзая эту функцию, написал мок на электроновский ipcRenderer в две строчки на основе штатного ИвентЭмиттера.
>Почему я должен сам всё думать
А кто за тебя должен думать, придурок? Не нравится свою одинокую извилину напрягать - уебывай.
>джаваскрипт - позор погроммирования
Сказало чмо, не могущее этот самый жаваскрипт выучить без репетиторов, преподавателей и говноподтирателей.
>джаваскрипт - позор погроммирования
>сказал вкатывальщик лоу-скилл, ищущий задачи для дебилов
Не нравится - не пиши на тайпскрипе, в чем проблема?
Маму свою покарай, щенок.
Я так понимаю нужно что-то, что отправляет http запросы, но не очень понимаю как работать с формой. Затем планирую из всего этого замутить телеграм бота. Я совсем ньюфаг, в какую сторону начать копать?
> джаваскрипт - позор погроммирования
Сам ты позор погроммирования. Js - лучший язык программирования когда либо созданный. Он учится за 2 часа. Функции first class. Всё работает, блять, из коробки, кложурки хуйжурки в отличие от питона, например. Всё работает, блять, везде, хоть в ебаном браузере твоей ебучей мамаши. Хоть один другой язык так может? Нет. Самой большой набор батареек у какого языка? Правильно, у js.
Данные описываются внутри языка в каком формате? В самом популярном формате представления данных в мире - json. Хоть один другой язык так делает? Нет.
если нужно через прайвэт апи - поставь митм прокси и свой сертификат чтобы прослушивать тлс, выковыри из либы ключ которым они шифруют трафикили не шифруют, я не юзаю это говно поэтому хз как там сделан тлс, дальше записывай трафик между клиентом и серваком и ковыряйся в его устройстве - это тебе и нужно будет эмулировать с помощью http
если паблик апи - на гитхабе позырь
Нахуй вообще нужна эта параша? Вам комитет делает из js заебательский fp язык просто, 2017 эдишон. Дауны хотят сделать из js сишечку с классами 19лохматый эдишон. Где логика?
Нихуя не понял
Типы в Окамле, и пророке его - Флове Фейсбуквиче.
Подписываюсь под каждым словом, анон.
Теперь-то отчетливо вырисовывается образ дегроидов в клетчатых кофточках и очочках в древесной оправе, яростно выступающих против нововведений Ecma. Оказывается, это те самые сишко-/шарподрочеры, застрявшие в нулевых, а то и более бородатых годах.
Школьники не могут без типов, спешите видеть. Теперь я понимаю, почему так популярен го. Школьникам прост необходимо, чтобы язык пиздил их по жопе кочергой, слишком привыкли к твердой батиной руке.
Свободным господам типы нахуй не всрались, начиная с лиспа.
>Почему я должен сам всё думать.
Как бы, если ты не способен в самостоятельный поиск информации, то программирование - это вообще не твое. И язык тут не при чем.
Проблемы и так нет.
Это не поведение у него ебучее, а у тебя стагнация неокортекса.
То-то в кложуру типы опциональные завезли.
Типизацию уже завезли?
Кто-нибудь пробовал писать на сабже? Можно ли его использовать на front-end вместе с React и Bootstrap?
>>1032472
Потому что суть энтерпрайза - чистить сортир вилкой. Без TypeScript и npm/webpack/gulp никак нельзя, тогда работать будет слишком просто и приятно, а программистишка обязан страдать и терпеть трудности.
Особенный цимес заключается в совмещении указанных инструментов на front end со сладким PHP хлебушком на back end, это высшая стадия опускания веб-макаки, практически виртуальное присаживание на бутылку.
Делаю игру на twg %%/gd% на нем. Взял Pux — фреймворк похожий на elm.
Писал 3 года, пока не было SPA и Node хайпа. Подключаешь Bootstrap и другие библиотеки через <script> и <style> и пишешь что тебе угодно. Ни TypeScript, ни говносборщики для этого абсолютно не нужны.
Написали, и я прогуглил перед тем как сюда писать. Проблема в том, что нигде не дают решение проблемы.
>Проблема в том
что ты тупой.
Это самый распространенный вопрос у вкатывальщиков вроде тебя, и решений не только в сети дохуя, а вкаждом предыдущем треде.
Так что иди нахуй просто. Погуглил он.
>нет запроса, нет и проблемы)))
Это не решение, это избегание проблемы.
>>1032578
Это правда. Я вижу там JSONP, но у меня XML. Еще предлагают поменять настройки сервера, лул. Вот только это публичное апи, с которым я свободно работал в php до этого. А теперь не могу работать в джаваскрипте.
>>1032573
Это еще что такое? На стаковерфлоу ничего подобного не советовали.
>Это еще что такое?
Я тебя умоляю , просто погугли "cors proxy" или "ajax proxy" .
>На стаковерфлоу ничего подобного не советовали.
Советуют, просто уже устали.
>работал в php до этого. А теперь не могу работать в джаваскрипте.
Ты не понимаешь разницы между клиентом и сервером.
>Прекрасно понимаю
Нет. Не понимаешь. От слова совсем.
И каждый в этом треде прекрасно видит, что ты не понимаешь.
Бля, ну ты и даун. Очевидно же, что пхп исполняется на сервере, а джс в клиенте. Так что путешествуй нахуй.
>пхп прекрасно оттуда отрабатывают по кросс домейн запросам, а джаваскрипт нет
Тупая скотина. Иди сделай кроссдоменный запрос из джаваскрипта с сервера, и он у тебя будет так же прекрасно работать.
Почему ты такой мудак и не понимаешь, что дело не в языке, а в тебе?
Да нет, дело в языке. И в даунах вроде тебя, которые эти костыли поддерживают.
У меня не к TypeScript притензии, он хоть както жопную боль смягчает, а к самому JS.
То есть ты на полном серьезе считаешь, что если бы у тебя в браузере, был другой язык - ты бы мог делать кроссдоменные запросы?
Хкйлуша, политики безопасности окружения не имеют ни малейшего отношения к языку. Ты настолько некомпетентен, что пиздец.
Я на полном серьезе считаю, что ты даун, который защищает костыли. Кроссерверные запросы прекрасно работают из клиентских приложениях без сервера. Например, можно свободно распространять приложение на какой-нибудь джаве, которая без проблем делает кроссерверные реквесты. Да на любом блядь языке можно так сделать. Только не на джаваскрипте, потому что он и браузер этого не могут. Чините свои костыли.
Я тебе задал простой вопрос, и ты не смог на него ответить. Я повторю его
>если бы у тебя в браузере, был другой язык - ты бы мог делать кроссдоменные запросы?
Попытайся еще раз.
У тебя в браузере других языков не существует, долбоебина. Вот когда завезут, тогда и будет всё работать.
ниче дедуль, все ок
Бамп
Просто подскажите с чего начать делать ебучего телеграм бота, который входит на сайт и пиздит оттуда данные
много больше по времени получается типизированном яп?
учитывая, что на js часто пишут не самые нужные миру вещи..
>ужасам undefined
Вангую мутабельную ООП парашу. С нормальным стилем таких проблем нет нихуя просто. Функциональный, сука, жаваскрипт прекрасно скалируется на любые блть проекты без статик типов.
Начинай свой день с изучения API тех сервисов, под которые ты пишешь софт.
Классический набор джентельмена:
Request - для облегченной работы с апи сторонних сервисов;
Cheerio - для упрощенной навигации по сграбленной странице;
Nightmare - для хардкорных вариантов (ранее использовались Phantom+CasperJS);
Jasmine + Karma - тестирование и отладка;
pm2 - для демонизации своего бота;
Fiddler + Wireshark - просто хорошие инструменты, не имеющие отношения к ЯП.
С этим чемоданчиком можно соорудить бота практически к любому сервису.
>практически во всех видах программирования
А кроме браузера на чем его исполнять? nodejs? еще варианты есть? если речь идет об универсльнх приложениях, а не о скриптах тпиа как для юнити. Планирую использовать js для одного научного проекта - программка работает с огромными деревьями (в json эквиваленте файлы размером от 1мб до 10гб) всячески трасформирует их, делает поиск, удаляет, добавляет, сравнивает и тд. Приложение сугубо "консольное" но в будущем возможно нужно будет прикрутиь гуи. Пилил раньше на с++, но потом просто не смог поддерживать проект из-за сложности. Пробовал rust - очень порадовало, прям сплошные плюсы, но всё-таки скорость написания кода очень медленная, а так как проект научный, то есть необходимость делать кучу эксперементов. В общем, посоветуете для этого js на nodejs? или нет?
>А кроме браузера на чем его исполнять? nodejs? еще варианты есть?
Дохуя на чем, например на Rhino.
>посоветуете для этого js на nodejs?
Почему бы и нет? Не паникуй, в случае чего напишешь либу на цпп с использованием N-API или подрубишь готовую через Node-FFI.
>>1032392
>>1032402
>>1032467
>>1032512
Ой, да идите вы, чсвшные мудаки. Всем известно задание FeezBudd, оно позиционируется и находится в курсах для совсем нубов. Вот моя попытка решения:
var i;
for (i = 1; i <= 20; i++) {
if (i % 15 == 0) { console.log("feedbuuuz"); }
if (i % 5 == 0) { console.log("feed"); }
else if (i % 3 == 0) { console.log("Buzz"); }
else console.log( i ) }
Как выяснилось, чтобы его правильно решить нужно обладать мэдскиллом, но ведь учебники его позиционируют как задание для совсем нубов.
питон
у js нет такой структуры как дерево. считай, ты делаешь деревья из струкуры hash table.
погугли trie in javascript.
Спасибо анон, сейчас буду ковырять
Нет нормального решения на самом деле. То, что реально удобно для научных экспериментов (питон) - реально тормозит с херней типа деревьев. Когда каждый запуск приходится идти пить чай это нихуя не круто, даже если графики красивые. Сам использую связку питон + C++(+CUDA) для критичных к быстродействию частей. Еще неплохо по скорости работы и удобству погромирования заходит си-диез, но проигрывает по удобству исследований питону.
мимо-занимаюсь-рнд-в-нейроночках
Онлай напоминалку для запоминания дней, по которым захаживаю в гости к твоей мамаше.
С первого раза за джва часа выучил, он же простой как два пальца. Никогда не занимался веб-парашей, нахуй она нужна вообще?
>считает замыкания сложными
>Работа
Я бы ему посоветовал дальше продолжать заниматься хтмл, это его максимум.
На прочтение документации обычно столько и нужно.
мимо Брендан Айк
Почему? У меня знакомый знакомого в холе работал, плохого ничего не говорил.
И вопрос прежде всего стоит не оффер урвать а поучаствовать в ивенте.
Ебать меня в сраку
Ну наконец-то хоть какая-то самодокументируемость появится у классов. Как же меня этим доебал уже жс, смотришь блять на функцию - и хуй поймешь, что она возвращает. Смотришь на аргументы - и хуй поймешь, что там. Смотришь на объект - пойди проссы, какие там проперти. Повсюду приходится обсираться портянками комментариев, которые еще и устаревают за мгновение.
Очередная параша от ООП детей. Нахуй не нужна, когда есть jsdoc. Лучше бы каррирование завезли уже.
Неделю как вкатился в JS, это конечно HTML, но все же прошу знатоков помочь.
Как понять знак "больше" в этом примере?
<option key={i}>{elem}</option>
BigInteger тебе в помощь. За Number, который под капотом всегда - double, можешь поблагодарить Netscape
Пили (ну или спизди) реализацию bignumber и читай спеки, ебанутый.
https://www.ecma-international.org/ecma-262/5.1/#sec-8.5
>toFixed()
Сука, всё равно говно выводит, вместо 253555651318017995 получается 253555651318017984
Ты ебанутый наглухо там что ли. У тебя одного такая проблема в мире? Даун блять конченый.
https://www.npmjs.com/package/json-bigint
Спасибо, попробую скостылять.
>I'm a mid level Full stack JavaScript developer on NYC. My boss just lowered all of our salaries by 20% because we are "replaceable".
>I am paid $80k and my coworkers are as well, but we have recently been told by the owner that due to supply and demand of programmers all of our salaries will be dropping by 20% in two weeks.
>He said that frankly there are so many boot camp graduates now who are willing to take a fraction of our pay that he is doing us a favor by keeping us.
Собеседую студентов на джунов. Даю им ноут с задачкой уровня физзбазз на полчаса. Как думаешь, сколько справляются? ¯\_(ツ)_/¯
Абсолютно ничего сложного, реши хоть за N^2 двумя вложенными циклами. Но нет, люди пишут в резюме "я умею программировать". Ок, вот тебе текстовый-редактор-нейм, давай. "Ооой, ну я так нимагу можно я дома?".
Ну значит это тождественно количеству "мидлов", которые приходят на собеседования.
Пузырь айти похоже начинает лопаться, по крайней мере для веба. Туда ломанулось столько народа, что зарплаты начали падать из-за избытка программистов.
>I'm a mid level Full stack JavaScript developer on NYC. My boss just lowered all of our salaries by 20% because we are "replaceable".
>I am paid $80k and my coworkers are as well, but we have recently been told by the owner that due to supply and demand of programmers all of our salaries will be dropping by 20% in two weeks.
>He said that frankly there are so many boot camp graduates now who are willing to take a fraction of our pay that he is doing us a favor by keeping us.
Ну посмотри на жабу. Сколько было историй о том что "специолиздов" переизбыток. И че? Одни из самых высоких зарплат по широкому рынку.
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('http://www.google.com/ncr');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
driver.quit();
Только chromedriver себе не забудь поставить (и может потребоваться в Path прописать
Бля, забыл про jasmine. С ним соответственно будет так:
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
describe('Название сценария', function () {
it('Название теста', function () {
driver.get('http://www.google.com/ncr');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
driver.findElement(By.name('q')).isDisplayed().then(function (isSearchFieldDisplayed) {
expect(isSearchFieldDisplayed).toBe(true);
driver.quit();
});
});
});
Запускай только не нодом а jasmine (поставив глобально)
главное чтобы клиент кайфовал
Жабобляди давно уже сосут у скриптогоспод и даже гей-осников:
https://geektimes.ru/post/242456/
https://habrahabr.ru/post/289516/
Только крестоблядь получает еще меньше жабобляди. Скоро отправятся на помойку к бомжам кобольщикам и паскальщикам, когда Python и JS отовсюду вытеснят жабу (а там, где они тормозят - вытеснит Go).
не насиловать труп
Слушай больше даунов. jQuery только для аякса - это норма.
Ну, кстати, вуй неплох, насколько вообще эта биндинг параша может быть неплоха с ограничениями ебанутого языка в WPF всё это лучше сделано, тащемта, например
я всем в офисе и так с вертухи пробиваю при встрече шоб не расслаблялись, типа в здоровом теле здоровый мозг и вся хуйня
Поставить полифилл.
Что со структурой директорий? Раскидываете компоненты в иерархию или так и оставляете всё в app?
Что с импортами? Импортите всё в app.module здоровой простынёй или раскладываете по модулям?
Какие best practices? Нагуглить не смог.
Купил VDS, установил ноду, не могу понять настроить среду разработки, есть IDE какие нибудь которые подключались бы к папке на VDS по ssh или FTP и работали напрямую с файлами на сервере?
Вообще пиздец, может оно еще и отсосать у тебя должно? Никак rsync скрипт написать? Поколение 2017.
Один rsync скрипт, блять. Нахуй дауну контроль версий для его хеллоу ворлда на VDS, а? А? А? Сука.
Ну можно и так, хули.
Нахуя это все надо?
Ставишь локально ноду, разрабатываешь все у себя. А потом гитом/рсинком/sftp чем угодно заливаешь на сервер.
Непреодолимое желание постоянно смотреть как оно работает на боевом сервере. Однажды разрабатывал хуйню на .net core, под виндой, заливал на сервак на убунте, и были ПРОБЛЕМЫ. Вряд ли с нодой будут проблемы, конечно.
Чтоб не быть привязаным к одному месту, из дома, с работы, еще откуда нибудь кодить
Проорал с дауна. Это не баззворд, а объективная реальность. На сервере никто ничего не редактирует уже сто лет.
>анус, дебил, хуйопс, пиздец
Как содержательно. Прослеживается связь между тем что отсталые дауны не понимают и отвергают DevOps. Совпадение? Не думаю.
Ты наверное еще не любишь ФП и ЕС6+
state = {counter: 1}
observable(state)
state.on('increment', () => state.counter += 1)
state.trigger('increment')
зачем в redux, pure functional reducers?
в fp, просто иначе нельзя.
в redux делается так:
function counterReducer(state, action) { if (action.type === 'increment') return {counter: state.counter + 1} else return state }
почему не: function counterReducer(state, action) { if (action.type === 'increment') state.counter += 1 }
Чем должна интересовать перепись школьников?
> девопс, ФП, ЕС6+
> обезьянка хватается за любую хуйню не потому, что она ему подходит, а потому что МОДНО
ясн.
Дискомфорт и неспособность принимать новое
>Этот автомобиль это просто базворд. Да там еще нужен бензин чтобы ездить. То ли дело лошади!
Просто признай что практики DevOps это лучшее на сегодняшний день из того, что имеется в деве, тесте, и деплое веб-сервисов. И отъебись со своими сраными рсинками, баш-скриптами и тд обратно в 90-ые
>>1034049
>считает хуйней девопс, ФП, ЕС6+
В голос. И че ты в жс треде забыл кстати? Тебе надо к сишярперам в тред, подрочите друг другу и вспомните "вот в наше-то время...".
> неспособность принимать новое
Лучше, чем неспособность фильтровать говно. Кстати, там новый фреймворк вышел, хули ты еще тут сидишь? Пиздуй ставить, даун.
Я не знаю, что такое девопс и в жс ньюфаг, но то что ты пишешь очень похоже на лай фанатика свидетеля иеговы.
мимо
https://medium.freecodecamp.org/why-redux-needs-reducers-to-be-pure-functions-d438c58ae468
вроде бы понял. допустим есть состояние:
state = {value: 0}
есть view: view(state)
и есть контроллер который рендерит только если изменилось состояние:
if (state.changed()) view.render(state)
изначально: state.value = 0
приходит сообщение: {type: 'value', value: 0}
т.е. value не меняется.
как должен быть реализован state.changed()?
нужно сравнить state.value с предыдущим значением.
а если в state много полей? нужно сравнить каждое поле.
если же reducer возвращает каждый раз новый объект, или старый, если состояние не изменилось, то state.changed() может выглядеть просто как: newState === state.
вместо сравнения всех полей состояния, сравниваются только ссылки на state и newState.
короче, фишка в том, что
1. сравнение всех полей в state -- дорогая операция, а создание еще одной копии состояния и сравнение ссылок не такая дорогая операция. хз почему.
2. мы не хотим рендерить если состояние не изменилось.
что бы избежать этого можно просто не пытаться изменить состаяние если ничего не изменилось:
if (state.value !== myForm.value) { state.trigger('set-value', myForm.value) }
или не все так просто?
https://medium.freecodecamp.org/why-redux-needs-reducers-to-be-pure-functions-d438c58ae468
вроде бы понял. допустим есть состояние:
state = {value: 0}
есть view: view(state)
и есть контроллер который рендерит только если изменилось состояние:
if (state.changed()) view.render(state)
изначально: state.value = 0
приходит сообщение: {type: 'value', value: 0}
т.е. value не меняется.
как должен быть реализован state.changed()?
нужно сравнить state.value с предыдущим значением.
а если в state много полей? нужно сравнить каждое поле.
если же reducer возвращает каждый раз новый объект, или старый, если состояние не изменилось, то state.changed() может выглядеть просто как: newState === state.
вместо сравнения всех полей состояния, сравниваются только ссылки на state и newState.
короче, фишка в том, что
1. сравнение всех полей в state -- дорогая операция, а создание еще одной копии состояния и сравнение ссылок не такая дорогая операция. хз почему.
2. мы не хотим рендерить если состояние не изменилось.
что бы избежать этого можно просто не пытаться изменить состаяние если ничего не изменилось:
if (state.value !== myForm.value) { state.trigger('set-value', myForm.value) }
или не все так просто?
>можно я дома
Как будто что-то плохое. Многие пишут именно копипастом из конспектов, и в этом нет ничего вульгарного - не у всех идеальная память. Главное же, что они понимают, что и как и почему работает.
> копипастом из конспектов
Каких конспектов, норкоман. Я давал браузер и доступ в инет - только реши.
https://jsfiddle.net/JamesJGoodwin/edncyc0m/1/
может быть от того, что нервничают.
Задачу в студию.
Твой код работает в одном потоке.
Все операции i/o в других.
Все управляется eventloop'ом.
Да, правильно тебе сказали. Когда ты например посылаешь запрос по сети, он посылается в отдельно потоке, а основной поток не блокируется (если ты сам его не заблокируешь) и твой код продолжает выполняться. Когда ответ от запроса готов, он обрабатывается твоим хендлером в основном потоке.
Потому что ЖС — лингва франка нашего времени. Хоть он и разрабатывался изначально не для программистов, а посильным даже для "авторов", которые должны наполнять Веб, многие "программисты" всё равно не справлялись с этим языком и хотели на любом языке писать на Фортране, приходилось помогать им костылями, вроде классов, нового пайпа или мириад готовых пакетов на каждый чих (и хорошо, что помогали — требования толкают на развитие).
Оказалось, что и с костылями, и на всём готовеньком эти программисты тоже испытывают трудности. Зато у них есть теперь новый мотив: костыльный, депенденси хелл, ой всё, у нас ЖС-фатигуе.
Да там даже массив можно с числом сложить, как вообще на этом можно писать? Нам нужны строгие типы, строгие приватные свойства, строгие библиотеки и строгий национальный лидер со строгим сапогом.
Видать, дело всё же не в ЖС.
Дрочую, нормальные программисты сразу выдают отличный машкод, и только лошкам нужны какие-то там дополнительные костыли.
Это я вырезал из проекта код, а там всё в порядке с body. Тем не менее, сейчас попытался изменить в фидле на window и на document - эффекта не последовало.
Нормальным программистам достаточно fp средств ванильного жс чтобы построить что им хочется. Так же как и с лиспом. Дегенератам, вроде тебя, конечно не обойтись без обоссаного ООП.
Лисп уже 60 лет занимает узкие нишы. Именно потому, что крупные проекты на нем писать полный пиздец.
Потому что хороших программистов очень мало. В основном вчерашние студенты, да дауны, которые в гробу видали саморазвитие. Именно поэтому взлетает всякое го-вно.
>нОркоман
Не знаешь, что такое конспект, нОркоман? Файл с заготовками и пояснениями на все случаи жизни. Кому сдался твой браузер с инетом, если там нужно искать инфу. А дома - всё готовое. И это нормально, судя по тому, что ты вообще разрешаешь искать инфу для решения не очень сложных задач.
Ты че студент дохуя? Если джуну мало SO, то такой джун не нужен.
> не может в гугл
> Файл с заготовками и пояснениями на все случаи жизни
Программисты с лишней хромосомой не нужны. Я бы еще и в лицо рассмеялся просто.
"В строгом режиме попытка определить в литерале объекта два или более свойств с одинаковыми именами считается синтаксической ошибкой."
На MDN написано:
"Дублирование имён свойств в строгом режиме является синтаксической ошибкой"
Тогда почему приведенный ниже код работает?
https://jsfiddle.net/9yxb7xdd/
сага прилипла
Кантора с задачами для аутистов не предлагать.
Доказывай теоремы ZFC на javascript
Шикарная тема, сенкью.
Какие подводные на этом ресурсе? Сколько кровных шекелей мне придется отвалить на ненавязчивом донате для комфортного аутирования в задачи?
Какое моргание? Может от недосыпа?
Какое моргание?
Не пользуйся фурифоксом, очевидно.
Решил задачу с инвертированием массива, посмотрел на человеческие решения в одну строку, пойду ляхи от говна отмывать.
сори уже закрыл приватную вкладку (регался через 10минутмейл, дабы не позориться).
там в функции сначала шла проверка на существование первого элемента массива (!array[0]), если его не было, то возвращался пустой массив []
дальше циклом for прогонял весь оригинальный массив, записывая
temp = -array, делая исключение в if для (array == 0), т.к ебаный -0 и от 0 отличается.
Хз, почему у остальных мигания не было, но я его заметил(Chrome 60, Win10). Попробуй сделать без анимации, а просто присвоить стили transform: translateY()
Да все не так плохо, как тебе кажется, родной.
Просто если хочешь быть таким же модным, как смузихлебы, то придется выкинуть из головы императивщину и мыслить в функциональном ключе. Благо современная спека ES к этому располагает.
Через fold еще могу понять.
> [1,2,3].reduce((acc, x) => [x].concat(acc), [])
Но мапом то как блеять?
Лал, инверсия значений внутри? Нахуй идите с такими задачами для денегератов.
благодарю
let rev = function(a) { return a.length === 0 ? [] : [a[a.length - 1]].concat(rev(a.slice(0, -1))); };
Достаточно нормально?
мимо-неебу-в-жс-3-минуты
Нахуя нужны твои лямбда-хуямбда костыли и недоязычек типа жиес, когда можно сразу писать идеальный машкод?
> идеальный
> машкод
/0
Идеальный код не привязан к вычислителю. Прочитай уже Книгу Истины, дегенерат, может придёшь к свету, наконец, блядина ты этакая.
Хачкелист, что ли?
То есть ты действительно такой даун, что не способен сгенерить первоклассный машкод под любой вычислитель и вынужден пользоваться уёбищными костылями интерпретаторами и недоязыками вроде жиес?
Ещё и протухшую парашу для умственно отсталых денегератов форсит.
Саня, ты ебанулся, иди проспись.
Если что-то сложное в джсе? Или рли любой крестобог может за пол дня перейти в жс и сразу стать сенйором - так там все по детски?
>здесь мерилом работы считают усталость.
СЛОЖНО =\= ПИЗДАТО, блядь.
ПИЗДАТО = НОРМ ПОЛУЧАТЬ.
Люди пишущие на JS получают на уровне кодеров на других языках (есть исключения офк) - значит он по сложности уж точно не ентри-левел.
Ну а насчет перескока - языки это просто смена синтаксиса.
От языка нихуя не зависит, от думалки - зависит.
Так что с крестобогом может быть вполне наоборот - когда JS сеньйор перепрыгивает ну не на кресты (хуй въедет в указатели и деструкторы) но в джаву - вполне и тоже остается специалистом.
>ЙЕУ МАНЬКИ Я ТЕПЕРЬ ЖС-СИНЬОР, ПРАВДА ОПЫТ ТОЛЬКО НА КРЕСТАХ.
>КАКОЙ DOM?
>ХУЛИ У МЕНЯ delete ОБЪЕКТ НЕ УДАЛЯЕТ?
>ВСМЫСЛЕ ЭТО НЕ СРАБОТАЕТ В IE?
>КАКИЕ БЛЯ RETINA ДЕСПЛЭИ?
>РРРРРРРЯЯЯЯЯ
А если устроиться байтоебом на завод?
Что за ебань? Их по квотам набирают, как фемиблядей и ниггеров?
>Что устарело в сильных сторонах?
Если это Good Parts of JavaScript, то она была издана в 2008 году.
В экселе за 2 минуты набросал? Уважаю братишь, тонко траллируешь жсблядков))))))
Но PEG.js генерирует готовый модуль с парсером (который может быть выше по иерархии Хомского, не для регулярных грамматик).
А мне нужны просто регулярки.
В общем я просто хочу дополнительный читаемый синтаксис для регулярок, с реюзом частей регулярок.
Как пример - грамматика из спецификации экмы https://www.ecma-international.org/ecma-262/8.0/index.html#prod-Comment
Нетерминалы с "::" у них как раз с подмножеству регулярных грамматик относятся и парсятся регулярками.
По работе пришлось столкнуться с angularjs.
Необходимо написать директиву, которая выводит данные, пришедшие с сервера.
Данные вложенные, поэтому я подумал, что оптимально будет использовать несколько директив - родительская директива выводит дочерние элементы.
Разметка в контроллере выглядит примерно так:
<parent-directive></parent-directive>
В родительской директиве как-то так:
<div>{{ items.length }}</div>
<child-directive ng-repeat="item in items" item="item"></child-directive>
В линк функции родительской директивы происходит обращение к серверу и запись переменной items в изолированный scope.
Но после того, как данные приходят с сервера шаблон не обновляется.
Пробовал вызывать scope.$digest, но в этом случае выдает ошибку, что дайджест цикл уже запущен.
Вот собственно вопрос, как сделать, чтобы обновился шаблон? Как образом его заново перекомпилировать?
Так вот,
И почему-то не создаются вотчеры на {{}} и ng-repeat.
Хотя для ng-if вотчер создался и корректно работает.
в смысле функцию-то выполнить без проблем, надо что бы stringify застопорился и подождал значение от асинхр функции
Методы синхронные и реализованы в нативном коде. Если хочешь асинк, бери любой подходящий сторонний сериализатор.
Вопрос в том, что в стандартной синхр, надо воспользоваться сторонней асинхронной и получить ее результат, затем продолжить выполнение
Чтобы вызвать асинк функцию (или промиз дернуть, не суть) ты уже должен быть в асинхронном контексте. Что не так в случае stringify.
Ангуляр 4 не читал.
Ангуляр 1 - начинает устаревает (у хипстеров) и не дает прям все под себя делать и много чего происходит за ширмой без твоего ведома. Но зато на нем можно хоть ракету запустить с коробки, много чего вшито полезного, но много и почти никем не используемого, надо дохуя читать доки и помнить дохуя всякой чисто Англуяровской хуерги, которую ты моментально забудешь, когда с него слезешь.
Рект - считай библиотека не фреймворк, аля "СОЗДАЙ ФРЕМВОРК САМ". Есть набор базовых понятий, аля Пропы - нельзя трогать, стейт - нельзя менять извне. Но большую часть работы ты берешь на себя так что там все возможности реакта - ограничиваются твоими познаниями JS.
Ангуляр 2 - более красивый реакт с тайпскриптом. Но реакт тоже не стоит на месте так что кто кого сейчас - спорный вопрос.
Есть одна не самая идеальная в мире платформа, под которую код пишется на JS. Сразу скажу, что всякие аррейбуферы с uint8array она не в свое время застала.
Платформа может отправлять данные по TCP. Для этого создается обычный массив чисел и строк, данные в нем перекодируются (или как это правильно назвать?) в бинарные, "склеиваются" в одну строку и отправляются на указанный хост. Символы кодируются по utf-8; экспериментальным путем установил, что числа до 256 превращаются в 8-разрядное двоичное число, то что больше - в хуйпоймикакое разрядное.
То есть, например, если мы отправляем массив ["a",5] то сервер получит 0110000100000101 - первые 8 бит это 97 (код "a" в utf-8) в двоичной, вторые 8 бит это 5 в двоичной.
Суть:
Мне требуется отправлять заданное число в 64-битном формате на сервак. Из идей только написать байтоебскую функцию, превращающая число в 8 новых таких, которые при переводе в двоичную систему и склейке дают исходное. Но хотелось бы проще, может какой-то встроенный функционал в JS таки есть?
И с тех пор не переиздавалась!
Это то же самое, что учить современный русский язык по учебнику древнерусского.
В С++ я бы пошел, если бы решил сделать это по-байтоебски. Хотя это вроде не должно вызвать трудностей, для 16-битных чисел уже запилил аналогичное.
Просто кому-то, а возможно и мне, эту хуйню поддерживать еще потом, поэтому желательно бы более джаваскриптное решение, если оно есть. Сам в JS ньюфаг.
Уже спрашивал в этом треде, но никто так и не ответил. Где учится писать годную архитектуру на Node.js? Как нормально подымать микросервисы? Все гайды на Ютубе (в том числе на иностранных языках) сводятся к настройке докера и ебле с докер имейджем, а как поставить нормально приложуху на микросервисах нигде и не написано толком..
>встроенный функционал в JS таки есть?
Нет встроенного функционала в js.
Есть библиотеки, гугли BigInt и еже с ним.
Не понятно что именно тебе надо, работать с большими числами, или с байтами.
В любом случае ни то, ни другое, встроенными функциями ЛЕГКО ты не сделаешь. Только писать(использовать) обертки.
>в хуйпоймикакое разрядное
Изучи что такое utf8. Та мне разрядность числа, а количество октетов. Один символ в utf8 восемь может занимать блавающее количество байт. То что у тебя 'a' попадает под диапазон 256 - так и должно быть. Если ты вместо 'a' попробуешь перевести в utf8 китайский иероглиф, он может и 4 байта занять. Это не скольки-то разрядное число, а определенная последовательность байт (там в каждом байте значим первый бит, который указывает включать ли следуюзий байт в символ или нет)
>иностранных языках) сводятся к настройке докера и ебле с докер имейджем, а как поставить нормально
ну а в чем проблема? ставишь хост для докера аля ранчер или атомик, на него контейнеры накатываешь и готово
спс, так и думал, просто там переписывать надо, влом
Да я слышал подобное, боялся с этим проблемы будут, но текст вроде как корректно отрабатывает на сервере по итогу, так что и хуй с ним. Проблема только на числах возникла, ибо после 256 нихуя не понятно как платформа переводит числа в биты. поднять локально эхосервер на ноде и посмотреть что же там приходит на больших числах конечно можно, но это уже совсем жопоебля какая-то
Спасибо, бро.
> только на числах возникла
Ты же работаешь со строками и кодировкой. Так что это не числа, а строка. И переводит он ее наверняка так же как символы. То есть число 1234
это четыре байта в utf8
>\x31 \x32 \x33 \x34
Я работаю и с числами и со строками. Массив составляется из стрингов и намберов.
Чтобы понятней было - я реализую поддержку вебсокетов. По спецификации там сначала передается фиксированное число бит служебной информации (маска, конец ли сообщения это и тп), а потом текст. В данную служебную информацию входит в том числе длина сообщения, которая может занимать 7, 16 или 64 бит.
Например, чтобы передать Hello без маски, надо сначала отправить серверу 10000001 00000101 , а потом utf-8 код. В платформе я пишу TCP.Send([129, 5, "H", "e", "l", "l", "o"]). Если там будут китайские символы, проблем не возникнет, платформа и сервак с кодированием-декодированием как-то справляются. Проблемы возникнут, если сообщение будет длиной в 100 тысяч символов, тогда мне придется передавать массив вида 129, 127, [Десятичное 100.000 в 64-битном двоичном представлении], [Символы по отдельности]. Вот как элегантно запихнуть произвольное число от 65535 до 2^64-1 в ровно 64 бит и составляло мой вопрос.
Сука, да лучше бы каждый код такая книжка выходила одинаковая, блять, в которой то же самое написано - как, ебаный в рот, писать в нормальном стиле чтобы всё можно было сделать как надо, используя те же самые полторы конструкции языка, которые нихуя не поменялись! Может быть дегенератов, клепающих говнище стало бы поменьше, блять. Горю просто.
Распознавание завтра допилю если что, пока стайл трансфер сделал. https://tenso.rs/demos/fast-neural-style/
Ребятки, очень нуждаюсь в свистоперделке, которая отлавливат все данные пришадшие с сервера на клиент и которая может имитировать отправку данных на сервер, в виде JSON документа. Уверен что такое существует, но нагуглить очень сложно...
Fiddler
Из пидорахии? Не проверял, у нас всё норм, даже на сафари работает.
Для тебя нормальный стиль - это все хуякс и пишут одинаковое говно 30 лет.
Язык разивается, равзивайся и ты, старый долбоеб.
Дохуя додиков встречаю которые в штыки воспринимают новые технологии и наотрез отказываются их применять и даже давать другим применять
Просто есть такая штука, как "серебряная пуля". И каждый год она новая. Поэтому те, кто это уже в цатый раз застают, обычно хотят выждать какое-то время, чтобы убедится, что овчинка стоит выделки. Впрочем мамонтов которые в профессии только ради бабла тоже хватает.
>Впрочем мамонтов которые в профессии только ради бабла тоже хватает.
А нахуя еще работать? Не за бабло я лучше дома посижу и попрограммирую микроконтроллеры да хаскель поизучаю.
Ну вот видишь. Тебе интересен кодинг как таковой. А есть люди, которые пишут код только с 9:00 до 18:00, а вечером ебутся в жеппы в клубах.
> Язык разивается, равзивайся и ты, старый долбоеб.
Куда развиваться-то? Охуенное ФП с кложурками придумали, внезапно, сорок ебаных лет назад. И тут короч в последние пять лет ниибаца модно стало, новое веяние прям, сука, проснулись, РАЗВИВАЙСЯ. Просто в хаха с даунов, просто.
Если с 9 до 18 писать код, то вечером не остается сил даже аниме посмотреть. Только пораковать на дваче и спать.
Двачую предыдущего анона, для интереса можно учить только функциональщину и системное программирование, ну еще геймдев, а вот вебом можно заниматься только за бабло. Нет там ничего интересного.
function doSmth() {
// code
function anotherFunc().then(function(result) {
// code
return newResult; // как мне вернуть это из doSmth()?
});
}
Из рабочего процесса нормального программиста, набивание непосредственно кода, занимает 20% времени. Все остальное время уходит на продумывание алгоритмов и архитектуры. У ребят из яндекса есть годное интервью на эту тему, в среднем за рабочий день сам код пишут не больше часа в общей сложности. И то, этот самый час размазан по времени.
Макаки перепечатывающие одно и тоже по 8-9 часов - не программисты.
Нет, ты должен обосновать то, что ты считаешь людей, любящих свое дело - даунами. Не потому ли, что сам бездарность?
И вдогонку.
Каким образом можно рендерить HTML, имея логику на JS?
До этого использовал ASP.NET MVC и там был Razor, так что можно было писать подобный код:
<div>
<p>@Model.myVar</p>
</div>
Хотелось бы что-то по типу.
Ну и посоветуйте что-то почитать о подобных паттернах и архитектуре кода.
Как это противоречит тому, что он написал?
>Если с 9 до 18 писать код
Внезапно, думать, как решить задачу и какой код написать - тоже входит в понятие "писать код".
Скажи мне, какое у тебя такое дело, что ты его любишь? Роботов для НАса делаешь? Ты работаешь на дядю, все результаты твоих плодов пожинает дядя, а тебе печеньку в миску кидает. Послушный раб любит кнут и готов работать сутками.
>тоже входит в понятие "писать код".
У тебя случаем понятие поссать не входит в понятие побегать, ебанат?
Вот такие вещи кодить интересно:
https://www.youtube.com/watch?v=4ftPAyNvx6s
https://www.youtube.com/watch?v=biNkSDOAxtY
А в изучении очередного фреймворка, преобразующего таблицу из базы данных в набор HTML тегов и CSS атрибутов, конечно, ничего интересного нет и быть не может.
>Ты работаешь на дядю
Ты не замечаешь совершенно, что все твои утверждения в этом треде основаны ни на чем, кроме собственных каких-то выдуманных тобою убеждений?
В вебе архитектуру придумывает твой начальник, все нужные алгоритмы уже есть в твоем фреймворке, а твое обезьянье дело - писать код и не выебываться.
Холивар начался с того, что есть люди, которые любят программировать. Ты назвал их дайнами. Тебя спросили почему - ты свел все к какой-то блядь работе. Ты понимаешь, что программировать можно и помимо работы. Можно программировать, имея соверешенно иную профессию. Короче. иди нахуй, даун.
Прекрати писать свои маняфантазии, школьник. Алгоритмы он сочиняет в вебе, вообще пушка.
https://github.com/kriasoft/react-starter-kit/blob/master/tools/webpack.config.js
галп уже легаси кстати, кроме вебпак в тренде prepack и rollup
Круто, спасибо. Буду разбираться теперь в доке Вебпака, чтобы настроить под себя.
> продумывание алгоритмов и архитектуры
> яндекс
Эта та конторка, в которой макаки какую-то хуйню сутками на перле ебашат? Алгоритмы и архитектура, обосрался прям. съебал из этой параши через джва месяца, ни зарплаты, ни работы нормальной. теперь ебашу роботов с нейроночками в стартапчике, полет збс
Мне еще нравится как Яндекс кукарекает и сравнивает себя с гуглом.
Там год назад были разбрательства и они кукарекали о честной конкуренции с гуглом и что он пиздец монополист спасите помогите.
Но я не помню времен, чтоб у гугла был гуглар который мне анально везде пытался установиться при любой установке и не помню чтоб гугл поиск тоже в установщиках впиливал "СДЕЛАЙ ГУГЛ ОСНОВНЫМ ПОИСКОМ" , да и хром тоже никто никуда никому не подкидывал.
Яндекс - додики и типикал славщит
> Нет там ничего интересного.
Ну от у друга дома появился свой сервак ненужный.
Я ему говорю "Ты давай от нехуй делать - умный дом себе пили, прикольно же будет".
А он давай ныть, что он мол веб кодер - ему это не окупится, в опыт не зачтется и вообще практичнее какие-то веб пет-проджекты вести чтоб развиваться тупо в вебе. И сидит там пирдит, не вылазиет.
Я от нехуй в рабочее время под ведроид пытаюсь шото ваять на крысу, но пока такое себе.
Ясное дело, что никто не пишет код 8 часов на рабочем месте. Я о том, что ты пишешь код только в рамках рабочего дня и не более.
Долбоеб, пытающийся в демагогию и пишущий код бездумно. Ноу комменс
Работая программистами вне работы программируют только Маньки без личной жизни, мечтающие о карьере или стартапе
Но на всяких интервью часто бывают тупняки с какими-то их ебаными хитровыебанными блядь задачками.
Я вообще в принципе норм понимаю все и как че к чему, но блядь там же как всегда ВОТ ТЕБЕ КАКАЯ-ТО ХУЙЕТЕНЬ ШО С НЕЙ БУДЕТ - и там ебень которую в жизни никто писать не будет и ваще хуй его как оно себя поведет (ну если в скайпе - то я тупо в консоль вбиваю и говорю результат, а потом уже от результата танцую с объяснениями. Я ж блядь могу примерно распиздеть почему так получилось, а вот без результата понять что там будет происходить - хуй могу. А если в живую на бумажке такую хуйню пишут, а потом еще и унизительно смотрят и за тебя решают, бля пизда выкашивают додики).
Но вот есть какая-то книжень тип чтоб не очень прям для долбоебов, а так чтоб въехать что под капотом и лучше понимать все эти скользкие кейсы из их долбоебских задачек?
на типичной работе к тебе раз в день подходит начальник с вопросом: что делаешь?
1. оптимизирую то да это.
ненужно, бери следующей задание.
2. застрял, пытаюсь разобраться.
оставь, потом подумаем.
...
ну наверное только яндексы и большие конторы могут себе позволить так не делать, хрен знает. если почитать историю Белл лабс, то там люди делали что хотели, и только в конце года заполняли анкету где описывали что сделали.
если бы так было везде, мы бы жили в утопии. дворник бы изобрел робота -метлу. пекарь.... и так далее.
До кризиса примерно так было в яндексе. Смузи, самокаты, вот это все. Большая часть народу нихуя не далала, но за счет коллективных усилий вся эта хуевина кое-как ехала.
Лолирую чет, дохуя я смотрю манек в нейроночках (нет).
А как можно получить эти elem и i? Как они в этот map попадают? Откуда?
Какая команда, маня? Тебе плохо?
Это метод Array.prorotype.map, у него есть четкая сигнатура. Читай доки.
Вкраци и понятно - мап итерируется по каждому элементу массива и возвращает новый массив основываясь на возвращаемых значениях функции-итератора.
Пример
let newArray = [1,2,3].map((item,index) => { return `Item:${item}, his index:${index}`});
//newArray => ["Item:1, his index:0", "Item:2, his index:1", "Item:3, his index:2"]
Почитай доки.
Ну и в функцию итератор на каждой итерации передаются первым аргументом - самое значение айтема массива, 2ым - его индекс в массиве. Ты ничего ручками не передаешь там.
Во спасибо, теперь понятно
Сильная динамика, все как просил, больше коммерческих япов с такой штукой нет
напиши свой map.
function map(array, callback) {
... let newArray = []
... for(let i = 0; i < array.length; i++) { newArray.psuh(callback(array, i)) }
... return newArray
}
map([1, 2, 3], (e, i) => e + i)
Ну что, господа вкатывальщики, на все вопросы ответили?
Все задачки решили?
> Простые задания
> Реализуйте функцию isPrime()
> isPrime(10000000000000)
> js
Проигрунькал с ходу просто с этого.
БЕЗ ПОЛНОГО ПРОХОЖДЕНИЯ SICP ТЕБЕ В ФРОНТЭНДЕ ДЕЛАТЬ НЕЧЕГО
Хотя не, на удивление не тормозит перебор до корня от этого. Думал всё хуже будет и надо кодить нормальный алгоритм.
Суть в этом
>Авторы этого списка вопросов — freeCodeCamp. Занимаются обучением новичков за донат и продажей бумажных сертификатов. Естественно в их интересах составить этот список таким образом, чтобы ученики не расслаблялись и конвертировались на платные курсы к менторам из ближнего круга. Типичный инфобизнес, короче
Проэкт донатный, тащемта.
Вот минимум настоящего программиста, а то что у них даже до макак не дотягивает
Подскажите, пожалуйста.
Так нихуя и не понял, как возвращать из promise значение без таймера.
Или стоп.
Всмысле без таймера.
Нахуй тебе асинхронность, если ты его хочешь синхронно выполнять?
var variable = ['1', '2', '3'];
var ref = variable;
Почему когда я пишу variable.push('4') у меня в переменной ref меняются значения вслед за variable, а когда я делаю variable = ['hue', 'moe'], у меня ref продолжает ссылаться на предыдущие значения переменной variable?
> var variable = ['1', '2', '3']; // &variable == 0xf001
> var ref = variable; // &ref == 0xf001
> variable = ['hue', 'moe'] // &variable == 0xf002
Проще говоря [...] выделяет память.
Наверно, потому что обе этих хуйни указывают на один объект. В первом случае ты изменяешь этот объект, а во втором присваиваешь первой переменной другой объект.
Мне это возвращает библиотека. Нужно вернуть объект, дальше сделать с ним какие-то действия.
Все попытки присвоить внешней переменной это самое значение из then(result), очевидно, терпят неудачу.
>>1035554
Как-то так.
https://pastebin.com/Fyue7y38
Не хуесосьте, я только второй день перекатываюсь с шарпа.
Бля, извини бразза, так лучше?
Твоей мамкой клянусь, не подсматривал в код выше.
https://jsbin.com/qucemufana/edit?js,console
TypeScript: пример с https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html
function greeter(person: string) {
return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML = greeter(user);
Gulp: пример с https://www.npmjs.com/package/gulp-typescript
gulp.task('allTS', function () {
return gulp.src('./s/js/*.ts')
.pipe(ts({
noImplicitAny: true,
outFile: 'ts_output.js'
}))
.pipe(gulp.dest("./s/js"));
});
Результат в ts_output.js:
function greeter(person) {
return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML = greeter(user);
// ОК, он скомпилировался в обычный JS, а куда делась проверка типа переменной? Что должно быть в галпе, чтобы от ТС был толк?
TypeScript: пример с https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html
function greeter(person: string) {
return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML = greeter(user);
Gulp: пример с https://www.npmjs.com/package/gulp-typescript
gulp.task('allTS', function () {
return gulp.src('./s/js/*.ts')
.pipe(ts({
noImplicitAny: true,
outFile: 'ts_output.js'
}))
.pipe(gulp.dest("./s/js"));
});
Результат в ts_output.js:
function greeter(person) {
return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML = greeter(user);
// ОК, он скомпилировался в обычный JS, а куда делась проверка типа переменной? Что должно быть в галпе, чтобы от ТС был толк?
хз, слишком много шума.
Вот тебе версия с таймаутом, которая наглядно показывает что все 10 запросов выполняются паралельно.
https://jsbin.com/towizizaju/edit?html,js,console
>[...Array(n).keys()]
Чёт я не понял зачем тут спред, но без него действительно не работает.
2. Выучил основы; примерно понял.
3. Ищешь проекты для закрепления и совершенствования знаний.
4. Нихуя не понимаешь.
Что делать?
> The keys() method returns a new Array Iterator that contains the keys for each index in the array.
Спред его конвертит в обычный массив.
Методы массива не проходят по незаполненным (undefined) слотам (ячейкам) массива, например. Поэтому он сначала создает массив, из него извлекается итератор, который заполняет слоты внешнего массива через спред. А уж по такому грех и мапом не пройтись.
есть одна пиздос тяжолая страница
хочу сделать крутилку загрузки, зависящию от процента загрузки[1] страницы
это вообще реально сделать?
гугол вроде говорит, что нет(
мб не через как-то?
мб не через жс как-то*
Потому что читать и не писать бесполезно.
Переписывай примеры кода из книжки в редактор кода. Ты 100% обосрешься и будешь сидеть отлавливать баги.
Может у тебя там на бэкэнде пхп в базу 5 секунд ходит. Начни с того, что найди узкое место.
> пиздос тяжолая страница
Убивать надо за такое прост нахуй. Сделай, блджад, нормальную страницу, даун! В 2017 половина с мабил, сука, сидит.
Глаза вытекли от полотна черного текста на белом. Хуже только htmlacademy
вначале приходится потратить больше времени, зато потом искать баги и дебажить в разы легче. Если во всём проекте нормальные тайпинги - есть уверенность в коде.
Это копия, сохраненная 28 августа 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.