Обновить
215.06

JavaScript *

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

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

Справится ли коробочная система с нетиповыми задачами? Опыт разработки собственных продуктов для корпоративного портала

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

Сотрудники Sminex каждый день заходят на удобный корпоративный портал — почитать новости, заказать канцелярию или подать заявку на программу обучения, предложить идею или воспользоваться одним из сервисов. В серии статей расскажем, как с помощью индивидуальных разработок мы объединили в коробочном решении множество процессов и почему при переходе на наш портал в нём сложно узнать платформу «Битрикс 24».

Читать далее

Взаимодействие с пользователем в макросах «Р7-Офис». Часть 1. Вводная

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

В  моих планах на эту серию статей   - раскрыть вам некоторые, на мой взгляд,  не самые  очевидный аспект при написания макросов  для офисного пакета  «Р7-Офис» версии десктоп. А именно: как пользователь может взаимодействовать с макросом привычным ему, оконным  способом.  Думаю, многое из мною здесь написанного вряд ли будет вами легко найдено в открытом доступе.  Кое – что конечно  имеется в «секретных» Телеграмм чатах.  Но некоторые сведения, вы наверное не найдёте даже там.  Я надеюсь,  изложенные  в этих  статьях мысли, будут стоить потраченных вами  усилий на их чтение. Ну а если вам не интересны мои рассуждения на тему текущего положения дела с макросами  в редакторе «Р7», то смело пропускайте эту вводную статью и ждите следующих практических.

Читать далее

Как я распознавание лиц к Yandex Disk-у прикручивал

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

«Крошка сын к отцу пришел и спросила крошка...»

Ну не сын на самом деле, а дочка, но пришла и спросила: «Паааап, у подруги тут ДР, вытащи мне из фотоархива все фото где мы с ней вместе». Да легко!

Читать далее

Я ненавижу React

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

Да, я его действительно ненавижу. Мне кажется, что команда React'а презирает разработчиков, и я презираю их в ответ. Все их решения направлены на то, чтобы сделать разработку сложнее, медленнее и непредсказуемее. На сегодняшний день они даже умудрились сломать работу JavaScript. Уму непостижимо, почему им это сходит с рук.

Читать далее

Почему Google Переводчик «ломает» React (и другие веб-приложения)

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

Команда JavaScript for Devs подготовила перевод статьи о том, почему Google Переводчик может ломать React и другие современные веб-приложения. Причина в том, что расширение вмешивается в DOM, нарушая работу виртуального DOM и вызывая ошибки вроде removeChild и insertBefore. Автор показывает реальные кейсы, обходные пути и поднимает важный вопрос: имеет ли фреймворк право на полный контроль над DOM?

Читать далее

Ссылочный тип данных в JavaScript: ключ к эффективному коду

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

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

Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript.  В этой статье я простыми словами расскажу, как работают ссылки, почему это важно знать и как правильно копировать объекты.

Читать далее

Хватит это терпеть: как я написал Telegram-бота для VPS, который не бесит

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

Всем привет! Меня, как и многих здесь, в какой-то момент достало. Достало логиниться по SSH, чтобы проверить htop. Достало запускать Termius на телефоне, чтобы сделать sudo reboot зависшему инстансу. Достало ставить тяжелые веб-панели, которые жрут ресурсы и открывают лишний порт, только ради того, чтобы посмотреть загрузку диска.

Я админю несколько VPS. На одних крутятся пет-проекты, на других — сайты, на третьих — кастомные сетевые приложения для транспортировки данных. Мне нужен был инструмент, который:

Читать далее

Единственная шпаргалка по ReactJS, которая вам нужна

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

Добро пожаловать в ещё одну шпаргалку по React! Но подождите, это не то, что вы подумали — не просто набор случайных примеров кода и банальных объяснений, как в других шпаргалках.

Обещаю, это будет по-настоящему полезно. Мы вместе разберёмся, как работает ReactJS, и как реализованы все его крутые фичи «за кулисами», с помощью интерактивных демо, которые я специально подготовил для вас. Это поможет вам реально понять, как всё устроено, и применять знания на практике.

Перейти к разбору ReactJS

Создание интерактивного макета. Упаковка кругов в квадрат и прямоугольник. Жадный алгоритм

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

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

Читать далее

Оверинжиниринг в бэкенде: «промышленные» решения, которые чаще вредят, чем помогают

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

За годы работы с TypeScript, Java, Kotlin и Go я не раз сталкивался с одним и тем же паттерном: команда внедряет «правильное» архитектурное решение — и получает не гибкость, а технический долг.

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

В результате принцип KISS — «Keep It Simple, Stupid» — работает не хуже, чем в 1930-х, когда его впервые сформулировали в среде авиационных инженеров. В этой статье — мой личный список подходов, которые в 90% случаев (особенно в REST-серверах) приносят больше вреда, чем пользы.

Читать далее

Почему Google Таблицы лучше Excel для частного инвестора, и при чем здесь Apps Script

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

Каждый инвестор рано или поздно сталкивается с необходимостью ведения учёта своего портфеля, особенно если брокеров несколько. В первом приближении для этого подходит Excel: многим знаком, работает локально и почти всегда установлен на компьютере. Подходит для расчета доходности, учета дивидендов.

Однако механическая работа со временем утомляет, а возможности Excel для автоматизации онлайн получения котировок ограничены. Google Таблицы решают эту проблему: это изначально облачный инструмент. Чтобы получить актуальную цену акций, достаточно одной формулы.

В этой статье мы разберём, как Google Таблицы могут дать инвестору больше свободы. Я покажу на примерах, как с помощью встроенных инструментов и простых гугл скриптов (Google Apps Script) превратить таблицу в полноценную платформу для анализа и автоматизации вашего портфеля. А ещё разберем получение котировок в обоих инструментах.

Читать далее

URLPattern — pattern matching, который мы ждали

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

Привет, Хабр! На связи снова Сергей, ведущий фронтенд-разработчик из Центрального университета. В последнее время я преисполнился URL и опять хочу про него рассказать. 

В прошлой статье я рассказал о том, почему неправильно использовать URL API для валидации ссылок. В этот раз буду использовать инструменты по назначению. Речь пойдет про новый URLPattern API для сопоставления URL с шаблонами, который позволит валидировать ссылки без головной боли.

Читать далее

Веб. К черту фреймворки! Пишем свой starter-kit с роутером и сторами. Часть 2

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

Пробуем собрать свой минималистичный starter-kit.

Туториал из трех частей.

В предыдущей части мы реализовали причудливый конфиг на webpack + собственный роутинг.

В этой мы используем магию Proxy, чтобы добавить реактивные хранилища. Реализуем их двумя (или тремя) способами.

В следующей рассмотрим работу с web-компонентами.

Читать далее

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

DANILOS

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

Буду хвастаться своим прекрасным рабочим столом на macOS.

От читателей жду комментарии на тему того, как это можно улучшить, потому что мои решения далеки от идеала — сделано «на коленке».

Часть этого процесса я уже описывал в предыдущей статье.

Как и многие, я понял, что рабочий стол — это не место для файлов и папок.

Это не секрет, что возможность класть туда всё нужное и ненужное — ужасная практика, порождающая хаос.

Допустим, вы уже дошли до того уровня дзена, чтобы перестать этим пользоваться, и теперь наблюдаете просто картинку на фоне. Это отлично.

Примерно 10 лет назад я понял, что хочу видеть там канбан-доску.

Зачем? Чтобы это постоянно включало в работу.

Как я это сделал:
Основной template, — Vite + Tailwind, с вертикальными фреймами и кнопкой для открытия меню. Plash опенсерсная утилита которая заменяет рабочий стол на safari с любой ссылкой или локальным html. и любые веб приложения.

Читать далее

Числовой тип данных с плавающей точкой float IEEE 754

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

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

Читать далее

Ну это полный мэтч! Как мы сделали бота для знакомств в чатах

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

Всем привет, я Иван, продакт-менеджер. И я состою в айтишном чате — человек двести, может, чуть больше. Там всё как обычно: обсуждаем новости, спорим про фреймворки, кидаем мемы.

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

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

Читать далее

Obsidian-совместимые заметки в своём приложении: Nest.js, Prisma, gray-matter

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

В этой статье я покажу, как связать Nest.js и Obsidian: хранить заметки в формате Markdown прямо из бэкенда, редактировать и синхронизировать их с базой данных. Если вы тоже любите Obsidian и пишете pet-проекты — это может вам помочь.

Читать далее

Я попробовал Solid.js — и начинаю ненавидеть React

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

Команда JavaScript for Devs подготовила перевод статьи, в которой разработчик с восьмилетним опытом работы с React делится неожиданным открытием: Solid.js оказался проще, логичнее и… приятнее в использовании. Меньше перерендеров, ближе к нативному вебу, честное поведение API и настоящие веб-компоненты — кажется, у React появился достойный конкурент.

Читать далее

Протоколы (устройства) системы DevelSCADA (часть 2)

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

Протокол OPC является наиболее универсальным, так как поддерживает все популярные типы данных и механизмы обмена информации, поэтому многие SCADA системы в принципе не поддерживают никаких дополнительных протоколов, помимо OPC, и подключение к другим протоколам осуществляют посредством сторонних OPC серверов. В DevelSCADA же работа с наиболее популярными протоколами ведется напрямую, а OPC используется для работы с протоколами, поддержка которых еще не реализована в ядре.

В DevelSCADA используется версия протокола OPC UA, так как он на данный момент является наиболее популярным и кросплатформенным. Так же протокол OPC UA имеет множество механизмов по защите соединения, что может быть актуальным при работе по незащищенном каналам связи (к примеру через сеть интернет).

Читать далее

Я мигрировал свой монорепозиторий на Bun — вот мой честный отзыв

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

Недавно я перенёс Intlayer (решение для i18n) — монорепозиторий, состоящий из нескольких приложений (Next.js, Vite, React, design-system и т. д.) — с pnpm на Bun.

Кратко (TL;DR): если бы я знал заранее, я бы, вероятно, не делал этого.
Я думал, что это займёт пару часов. В итоге ушло около 20 часов.

Меня привлекло обещание «всё в одном» и впечатляющие показатели производительности.
Я попробовал, я собрал — всё билдилось молниеносно, круто.
Затем я сделал коммит… и столкнулся с первой проблемой.

Читать далее

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