Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

262,04
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Треугольник Серпинского — Canvas, JS

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4.8K

Треугольник Серпинскогофрактал, математическое описание которого опубликовал польский математик Вацлав Серпинский в 1915 году.

В этом посте мы напишем рекурсивный алгоритм отрисовки данного известного фрактала в canvas с помощью JS

Читать далее

Оптимизация сборки веб-приложения

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели10K

По мере того, как ваше приложение растёт и развивается, растут и затраты времени на его тестирование и сборку, достигая нескольких минут при пересборке в dev-режиме и, возможно, десятков минут при «холодной» production-сборке. Что, конечно, совершенно неприемлемо. И если поначалу увеличение временных затрат может казаться незначительным, то впоследствии это непременно ведёт к ухудшению процесса разработки и может негативно повлиять на скорость выкатки важных релизов или хотфиксов. Таким образом, в какой-то момент вопрос оптимизации и ускорения сборки приложения может стать критически важным для разработчика.

Читать далее

ts-reset и types-spring

Время на прочтение7 мин
Охват и читатели5K

Увы, typescript не идеален. Его ругают, но любят. Кто-то даже не может представить свою жизнь без него так же, как не может представить жизнь без комфортного автомобиля. Тем не менее, у этого "автомобиля" в базовой комплектации есть существенные недостатки, которые каждый "автолюбитель" "чинит" по своему.

Один мой знакомый сравнил тайпскрипт с css браузеров, которому необходим свой собственный аналог css reset. И оказалось, что такой действительно есть. Речь идет о пакете, название которого говорит само за себя - ts-reset. За полгода своего существования на github ts-reset набрал 6 тысяч звезд, и мне показалось странным, что на хабре я не нашел ни одной статьи, посвященной этому пакету. И если интересно, добро пожаловать под кат...

Читать далее...

TypeScript 5.0 и 4.9: оцениваем и сравниваем изменения

Время на прочтение9 мин
Охват и читатели13K

В середине марта 2023 года Майкрософт анонсировала релиз TypeScript версии 5.0. Разработчики ожидают от нее 10-20% прироста производительности, но так как всё зависит от кодовой базы и характеристик оборудования, они настоятельно рекомендуют опробовать эти изменения.

В этой статье мы разберём некоторые изменения в TypeScript 4.9 и 5.0 и сравним нововведения с предыдущими версиями. На примерах кода постараемся понять, для чего они были добавлены и как они упрощают нашу жизнь. Статья будет полезна опытным разработчикам, которые часто применяют TypeScript в работе, и начинающим, так как мы подробно разберем решения некоторых проблем.

Читать далее

Безопасное использование JSON: Распространенные ошибки и решения

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели19K

JSON — это инструмент, которым каждый веб-разработчик пользуется ежедневно. На первый взгляд кажется, что JSON слишком прост и незамысловат, чтобы читать про него целую статью. Но если вы не знаете, что такое санитизация данных, никогда не слышали про JSON Injection или XSS атаки, если информация о том, что JSON.parse и JSON.stringify принимают 2 и 3 аргумента для вас новость, то эта статья будет вам полезна.

Читать далее

Избавляемся от предупреждений и уязвимостей при установке пакетов с помощью yarn

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

В публикации речь идет о warnings и vulnerabilities при установке библиотек с помощью yarn и о том, как от них избавиться. Я рассмотрел несколько случаев, приведенных ниже, но решения можно применять и к другим, схожим ситуациям:

Warnings типа:

has incorrect peer dependency

has unmet peer dependency

Vulnerabilities:

Prototype pollution in webpack loader-utils

loader-utils is vulnerable to Regular Expression Denial of Service (ReDoS)

Crash in HeaderParser in dicer        

Читать далее

Пример биометрической аутентификации в веб-приложениях

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K

В довольно длинном и скучном посте описывается пример аутентификации пользователя в веб-приложениях при помощи биометрических средств (FaceID, отпечаток пальца), встроенных в мобильные телефоны. Код проекта - тут, рабочее демо - тут. Пример написан на чистом JavaScript и может быть отдебажен как на бэке (nodejs), так и в браузере.

Читать далее

10 игр для изучения JavaScript

Время на прочтение3 мин
Охват и читатели57K

Мы рассматривали 10 удивительных игр для изучения CSS. А в этой статье мы сделаем то же самое для JavaScript. Изучать язык, играя в игры, очень весело, а для некоторых людей это отличный способ наглядного восприятия языка.

Без лишних слов, представляю десять фантастических игр, с помощью которых вы можете изучать JavaScript.

Читать далее

Автоответчик на запросы доступа к файлам в гугл почте

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.3K

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

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

Узнать про гугл скрипт

10 советов по TypeScript для продвинутых пользователей в манере русских мифов

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.5K

«10 советов для продвинутого использования TypeScript: Путешествие по миру русской мифологии» — уникальное руководство, которое сливает воедино мир программирования и наследие русской культуры. В этой статье мы изучим TypeScript через призму десяти важных советов, каждый из которых связан с элементами русской мифологии – от волшебных зеркал до богатырских доспехов. Научитесь управлять асинхронностью, как птица в полете, или используйте интерфейсы для защиты вашего кода, как богатырский доспех защищает героя. Путешествие по миру TypeScript еще никогда не было таким захватывающим!

Читать далее

Zapier для бедных

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели30K

Если вы не знакомы с Zapier, вам повезло.

Если вы используете Zapier, вы счастливы.

Если вы собираетесь использовать Zapier —

вам повезло найти эту статью.

Приоткрыть завесу

Кто до сих пор использует PHP?

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели27K

Свой путь в сфере разработки я начала с языка PHP, но позднее в индустрии программирования акцент сместился в сторону JavaScript. Отчасти причина в том, что фронтенд-составляющая веб-среды так или иначе работает именно на JS. В этой сфере я провела последние десять лет.

Недавно мне подвернулась кое-какая работа, связанная с PHP. Поначалу я была удивлена, ведь за этим языком закрепилась дурная слава – преимущественно из-за его ассоциирования с устаревшими проектами WordPress (и всеми вытекающими из этого уязвимостями). Но WordPress – это всё же не PHP.

В общем мне стало любопытно. Кто они – те люди, которые до сих пор используют PHP? Почему они это делают? И как этот опыт можно сравнить с моим скромным миром серверных проектов на JS?
Читать дальше →

Клиент на Unity для авторитарного сервера: что он обязан уметь — создание сервера для онлайн ММО игр на PHP, ч. 8

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.3K

Сервер считает мир сам, клиент только показывает его и шлёт команды. Разбираю, что при этом обязан уметь клиент на Unity: держать постоянное соединение на ПК, мобильных и в браузере, переживать переход между локациями и не врать игроку при задержке сети.

Читать далее

Ближайшие события

Подключаемся к Ethereum Testnet используя только web3.js и консоль

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.5K

В этой статье я покажу как взаимодействовать с публичным тестовым Ethereum блокчейном при помощи только библиотеки web3.js и терминала. Ethereum Testnet это уже приближенный к реальной сети Mainnet блокчейн со множеством нод и независимыми аккаунтами. Мы научимся пополнять баланс тестовыми Ether при помощи Faucet, а так же находить информацию об аккаунтах и транзакциях в обозревателе блокчейна Etherscan. Всю ту же информацию мы получим и при помощи консоли. На всякий случай: в посте будет много картинок.

Читать далее

Свой NPM репозитарий Verdaccio + GitLab + Docker

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели9.1K

Требовалось кешировать используемые в разных проектах NPM пакеты (+ хранить свои пакеты) на отдельном сервере.

Было решено делать это с помощью репозитария Verdaccio (по нему есть достаточно хорошая офф. дока), крутится это все должно в Docker, а разворачиваться на отдельном сервере через GitLab CI/CD.

Т.к. реализация данной схемы заняла у меня некоторое время (Хотелось бы и по меньше), решил написать короткий туториал по этой теме, с описание нюансов, которые для меня казались не очевидными.

Читать далее

[Разбор резюме] Фронтенд-разработчик: как не утопить рекрутера в технологиях и не потерять фокус

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели29K

Это вторая статья из нашей рубрики «Разбор резюме». В первой мы разбирали резюме бэкендера, а здесь нам прислал свое CV фронтендер. Давайте посмотрим и разберем, что в нем можно улучшить: почему это резюме вообще лучше бы превратить в несколько, стоит ли включать в список навыков «опытный пользователь ПК» и как определяется уровень владения той или иной технологией.

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

Читать далее

Минëр: сапëр наоборот

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели19K
Что будет, если взять известную игру сапëр и изменить игровой процесс на обратный? Получится игра минëр


Так выглядит расклад в минëре на новичке.

Если задача в сапëре разминировать поле, то задаче в игре минëр наоборот — заминировать.
Читать дальше →

Попробуем выиграть 300 мс при загрузке Википедии

Время на прочтение7 мин
Охват и читатели3K

Вам знакомы муки, когда пытаешься добиться чего-то от тормознутого сайта, а он не реагирует на щелки мыши или пробуксовывает при прокрутке? Подобные проблемы с производительностью могут провоцировать:

Нервозное перещёлкивание (rage clicking)

Повышенный отток пользователей и снижение показателей конверсии

Потерю позиций в поисковой выдаче

Более трёх лет мобильная версия Википедии сбоила из-за фрагмента кода на JavaScript, выполнение которого могло занимать более 600 мс при загрузке страницы на маломощных устройствах. В результате работать со страницей становилось попросту невозможно.

Читать далее

Как сделать автодеплой UI kit на NPM с помощью gitlab CI/CD

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.5K

Как я сделал удобный автодеплой ui-kit на npm с помощью pipeline's gitlab.

Что удалось сделать?

Автоматическое обновление версии пакета при пуше изменений.

Автоматический деплой новой версии на npm.

Читать далее

Книга «JavaScript с нуля до профи»

Время на прочтение14 мин
Охват и читатели23K
imageПривет, Хаброжители!

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

В «JavaScript с нуля до профи» основное внимание уделяется ключевым концепциям программирования и манипуляциям с объектной моделью документа для решения распространенных проблем в профессиональных веб-приложениях. К ним относятся проверка данных, управление внешним видом веб-страниц и работа с асинхронным и многопоточным кодом.

Обучайтесь на основе проектов, дополняющих теоретические блоки и серии примеров кода, которые могут быть использованы в качестве модулей различных приложений, таких как валидаторы входных данных, игры и простые анимации. Обучение дополнено ускоренным курсом по HTML и CSS, чтобы проиллюстрировать, как компоненты JavaScript вписываются в полноценное веб-приложение.

Для кого эта книга
Для комфортного знакомства с книгой не требуется никакого опыта в JavaScript. Конечно, упражнения дадутся немного легче, если вы хотя бы немного умеете программировать. Знакомство с основами HTML и CSS будет вашим преимуществом. Если вы начинающий программист, для нас большая честь поприветствовать вас в мире программирования. Вначале он может показаться сложным, но мы проведем вас через все трудности.
Читать дальше →