Обновить
236.38

JavaScript *

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

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

Движок для игры от первого лица в 265 строках Javascript

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

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].
Читать дальше →

Скрепинг данных с Chat GPT

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

Всем привет! 

Хочу поделиться своим опытом программирования с помощью чат GTP. У меня была коммерческая задача - нужно было собрать контактную информация с сайта yelp.com по выборке рестораны и бары. Это была часть процесса лидогенерации. Парсер должен был состоять из двух частей: Первый — собрать URL-адреса всех компаний, которые появляются в результатах поиска. 

Затем он просматривает каждую страницу и собирает данные, как название компании, веб-сайт, описание, адрес, контактную информацию и вертикаль.

Скажу сразу, я не разработчик, писать парсеры и скреперы не умею. Прошла базовый курс JavaScript, но честно говоря, мой 12-летний сын, знает об этом больше, чем я :) 

Просить помощи программистов было сложно, нужно было быстро, а вы сами знаете, какие у них очереди в разработке. Поэтому в большинстве случаев я прибегаю к старому доброму ручному “copy - paste”. 

Но сейчас я решила попробовать что-то новое. Я посмотрела кучу видеороликов на YouTube о парсинге веб-страниц и по рекомендации решила попробовать двух поставщиков готовых платформенных решений:

Читать далее

React: как сделать динамический суффикс в <input />, который будет двигаться вместе с набранным текстом

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

В этой статье вы узнаете как с помощью react можно сделать input с двигающимся суффиксом, который идет сразу после значения ввода

Читать далее

Как делать full-stack с одного устройства без СМС и регистрации

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

Как крутить 2 сервера с белыми IP одного компа, и попутно разрабатывать Telegram Web Apps  на Bot API 6.7. Фронт + бэк на примере веб приложения внутри телеграм React + Fast-api.

Читать далее

Debouncer: практический пример использования замыкания

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

Что такое дебаунсер?

Дебаунсер - это функция-обертка, которая ограничивает число выполнений переданной в нее функции, некоторым промежутком времени.

Практическое применение

Предположим, при вводе текста в инпут мы хотим отправлять запрос на сервер, чтобы получить выпадающий список вариантов под введенное значение.

По умолчанию, запрос будет уходить при вводе очередной буквы, но чтобы не грузить сервер запросами и не повторять рендер страницы с одинаковыми по значению данными, мы хотим обернуть запрос в дебаунсер с некоторым ограничением по времени.

Таким образом, запрос не будет совершаться при вводе каждой следующей буквы, а будет ограничен некоторым промежутком времени.

Читать далее

Путешествие в царство легаси. Как маленькая задача привела к большому рефакторингу

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

Привет! Меня зовут Артем Коньков, я frontend-разработчик в СберМаркете. А еще, я тот человек, который в фильмах ужасов спускается в темный подвал вопреки инстинкту самосохранения. Во-первых, потому что это интересно, а во-вторых — кто-то же должен это делать!

Это история о том, как мое любопытство превратило небольшую задачу в настоящий квест длиной в 5 спринтов. Надеюсь, мой пример поможет вам меньше бояться подобных задач, и даст мотивацию копать глубже. А в конце статьи я расскажу, как правильно закреплять результаты, чтобы такая масштабная работа не была проделана впустую. Но сначала немножко контекста.

Читать далее

Как тестировать не-REST-бекэнд. Часть первая, GraphQL

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

Привет! Меня зовут Сергей, я более 11 лет в тестировании, и успел за это время перепробовать множество разных подходов в QA — начинал простым тестировщиком, затем строил и развивал всевозможные отделы тестирования и автоматизации, а сейчас работаю в QIWI.

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

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

Под катом — разбор тестирования первого из этой тройки, GraphQL. Все примеры в посте я делал с помощью Postman, он достаточно популярен и доступен, чтобы вы при желании могли всё быстро в нём повторить.

Читать далее

ESLint. Анатомия правил линтинга: разбираем структуру, создаём собственное правило для React-приложения

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

Всем привет! Меня зовут Анастасия Щедрина, я технический лидер по фронтенду проекта размещения объявлений в компании Домклик. Сегодня я расскажу вам немного о том, как устроены правила в ESLint, и покажу на примере, как можно разработать собственные.

Статья будет полезна тем, кто уже задумался о создании своих правил, а также тем, кто использует линтер, но не знает, как он устроен и как подключённые правила обрабатывают наш код.

Читать далее

Maskito – новая коллекция библиотек для маскирования текстовых полей

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

Рады поделиться: выложили нашу разработку Maskito в открытый доступ, и совсем недавно произошел релиз ее первой мажорной версии. Maskito — коллекция библиотек, упрощающих маскирование текстовых полей, с удобным и гибким публичным API.

Maskito содержит разные библиотеки: основная написана на TypeScript без зависимостей, есть опциональный пакет с набором готовых конфигурируемых масок, а еще есть библиотеки для удобного использования Maskito в проектах на React, Angular или Vue. Рассказываю обо всем подробнее.

Читать далее

В поисках лучшей версии EcmaScript для сборки сайта

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

Как оказалось, выбор версии ES для сборки веб приложения, а так же организация самой этой сборки, может оказаться весьма сложной задачей. Задачей, включающей в себя много разнообразных вопросов.

В статье вы увидите бенчмарк производительности EcmaScript фич; узнаете какой из компиляторов генерирует самый производительный JavaScript код; а также можно ли добиться прироста производительности, начав собирать сайт в более поздней версии ES.

Читать далее

Какого черта мы нанимаем, или осмысленность собеседований в IT

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

Привет, Хабр, меня зовут Герман, и я лид разработки, вышедший из фронтов. Сегодня я хочу обсудить тему культуры собеседований, а точнее, тот хаос что творится на этом поприще. А заодно — узнать, что об этом думает комьюнити in situ.

Читать далее

Какой язык программирования выбрать? Часть 3. JavaScript

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

Если вы никогда раньше не работали с JavaScript и читаете этот текст из десктопной версии одного из современных браузеров, то вы можете прямо сейчас написать свой первый HelloWorld-скрипт. Нужно нажать клавишу F12 (открыть инспектор), перейти на вкладку «Console», ввести alert("Hello, World!"); и нажать клавишу «Enter».

Можно назвать JS особенным: будучи самым распространённым языком для браузеров, он также является одним из самых популярных языков программирования в мире.

Читать далее

Книга «React. Быстрый старт, 2-е изд.»

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

Незаменимая книга по React — технологии с открытым исходным кодом для быстрого создания многофункциональных веб-приложений. Второе издание, обновленное с учетом последней версии React, показывает, как создавать компоненты React и организовывать их в удобные для сопровождения крупномасштабные приложения. Если вы знаете синтаксис JavaScript, то сразу можете приступать к работе.

По ходу чтения разработчики и программисты создадут полноценное приложение. Вы быстро поймете, почему многие выбирают React для разработки веб-приложений.
Читать дальше →

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

Создание плагина кнопки редактора в Joomla 4

Уровень сложностиСложный
Время на прочтение23 мин
Охват и читатели3.4K

Статья о том, как удобно расширить пользовательские возможности при редактировании или создании контента в Joomla. Если Вы, например, захотите сделать подсчет СЕО-характеристик текста или внедрить ИИ помощник прямо в интерфейс Joomla, то эта статья расскажет как Вашему разработчику это сделать.

Читать далее

Cмарт-контракт. Solidity + Ganache

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

В данной статье мы познакомимся с тем, как задеплоить очень простой смарт-контракт на локальный блокчейн Ganache. После развёртывания смарт-контракта, мы научимся взаимодействовать с ним путём отправки транзакций в его адрес. Для простоты я буду использовать фреймворк Truffle, так как он облегчает деплой и взаимодействие со смарт-контрактом.

Читать далее

RSC с нуля. Часть 1: серверные компоненты

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


В этом техническом "глубоком погружении" (deep dive) мы с нуля реализуем очень простую версию серверных компонентов React.


Данный туториал будет состоять из трех частей (написана пока только эта).


Руководства, шпаргалки, вопросы и другие материалы по JavaScript, TypeScript, React, Next.js, Node.js, Express, Prisma, GraphQL, Docker и другим технологиям, связанным с разработкой веб-приложений.

Читать дальше →

Учим PixiJS на играх

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

В статье описал разработку 13-ти игр на PixiJS. Около 70% текста - это описание механики игр, остальное - реализация на PixiJS. Получилось много текста, т.к. описывать советы для PixiJS интереснее с примером из игр.
Самая последняя игра будет самой сложной и интересной.

Читать далее

Новые возможности ECMAScript 2021-2023

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

ECMAScript — это стандарт, на котором основан JavaScript, его часто называют ES.

Традиционно обновления ECMAScript публикуются в июне. Буквально недавно версия стандарта 2023 года перешла в статус freezed, что означает, что никакие изменения в нее уже вноситься не будут.

Поэтому сейчас самое время обсудить что нового произошло в стандарте за последние годы и что нас ожидает уже в этом году.

Обсудим почему JavaScript и ECMAScript не одно и тоже;

Разберем краткую историческую справку о стандартах ES;

Узнаем что интересного и полезного вышло в стандарте за последние пару лет и что нас ждет в этом году.

Для лучшего понимания исторической последовательности развития стандартов JavaScript до 2021 года можете также почитать мою статью ECMAScript 2015, 2016, 2017, 2018, 2019, 2020, 2021

Читать далее

Как я создал игру совместно с Chat GPT: история игры Чубрики

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

Вот уже прошла неделя с момента публикации моей игры, и я получил 7 500+ установок за первые семь дней. Ранее я не публиковал игры, так что это мой первый опыт в качестве разработчика игр, хоть и только одной. Но, как говорят, с чего-то нужно начинать. Все началось с того, что я стал активно использовать Chat GPT в своей работе веб-разработчика, в частности, для создания простых функций, таких как генерация паролей и других подобных задач. У меня сложилось некоторое впечатление о работе с Chat GPT. Я лично считаю, что это эффективный инструмент для уже известных практик и методов программирования, но не для генерации чего-то нового, как все говорят. Поэтому я был настроен скептически относительно полной замены разработчика. Тем не менее, я решил попробовать и передать проект нейросети.

Читать далее

Какие уроки я извлёк из создания расширения VSCode с помощью GPT-4

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

В последнее время я много экспериментировал с написанием кода при помощи LLM (Large Language Model, большая языковая модель). На мой взгляд, эти инструменты отлично справляются с генерацией небольших самодостаточных фрагментов. К сожалению, что-то большее уже требует человеческого участия для оценки результата LLM и предоставления дальнейших инструкций.

В большинстве случаев, когда кто-то утверждает, что «GPT написал X», человек выступает для LLM в роли своеобразного REPL (Read-Eval-Print Loop, цикл чтение-оценка-вывод), внимательно подводя модель к функциональному результату. Я нисколько не хочу принизить ценность этого процесса – очень здорово, что он работает. Но можем ли мы шагнуть дальше? Можем ли использовать LLM для генерации ВСЕГО кода сложной программы за раз без человеческого вмешательства?
Читать дальше →

Вклад авторов