Авторский проект IT-специалиста Олега Барабанова Персональные публикации на тему IT и не только…

ES Modules — единственная модульная система которая должна остаться в современной JavaScript разработке

В данной статье я хочу упомянуть тему различных модульных систем, которые до сих пор можно встретить в JS-коде и поделиться своим мнением касательно того, почему на мой взгляд нужно использовать только ES Modules.

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

Опубликовал свою версию полифила для поддержки псевдокласса :has() в методах DOM Selectors API

Успел под конец месяца опубликовать первый релиз своего полифила для реализации мощного псевдокласса :has() в методах DOM Selectors API .querySelector(), .querySelectorAll() и пр. В статье я просто хочу рассказать о некоторых деталях разработки и о том, с какими сложностями мне пришлось столкнуться.

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

Применимость нового CSS псевдокласса :has() в проектах

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

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

JavaScript: Особенность работы Object.freeze() с объектами имеющими приватные поля

Иногда развитие языка программирования приносит не только новые возможности, но и новые подводные камни. В случае с JavaScript в статье я решил уделить внимание Object.freeze(), благодаря которому раньше можно было создавать полностью иммутабельные объекты, но с появлением нового синтаксиса приватных полей, это уже не совсем так.

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

Почему при написании кода не стоит смешивать воедино браузерный и серверный JS на примере Puppeteer

Работая с одной популярной JS библиотекой (Puppeteer), я обратил внимание в примерах на частое смешивание воедино браузерного и серверного JavaScript кода. что с одной стороны объяснялось удобством, а с другой стороны нередко приводило разработчиков в замешательство. Т.к. подобное мне и ранее попадалось в других программных решениях, я решил поделиться своим мнением касательно того, почему я считаю такое написание кода нежелательным.

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

Удаленная разработка с использованием VSCode и расширения Remote Development

Не секрет, что в настоящее время VSCode является одним из популярнейших редакторов кода, который имеет обширную базу плагинов, которые существенно расширяют его функционал. В данной статье я решил кратко описать активно применяемый мною в работе официальный набор плагинов от Microsoft — "Remote Development", благодаря которому VSCode получает возможность вести полноценную разработку на удаленной системе.

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

Мое мнение касательно TailwindCSS после использования его на коммерческом проекте

Давно уже хотелось поближе познакомиться с CSS фреймворком Tailwind и как раз подвернулась возможность использовать его в коммерческом проекте. В статье я хотел кратко резюмировать мое мнение об этом чудесном фреймворке.

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

Одна из причин, почему на body элементе не стоит отключать скролл

Работая с одним из проектов, я обнаружил проблему конфликта нового скролла с "рукояткой" у мобильной Оперы и отключением скролла на body элементе (для фиксирования высоты body по высоте экрана). Т.к. пользователей мобильной Оперы достаточно много, да и подобная фишка может оказаться в других браузерах или плагинах, я решил описать проблему отдельной статьей. Возможно это кому-то заранее сбережет время и нервы.

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

Отличия в применении знаковых нолей +0 и -0 в JavaScript и не только

Возможно это может показаться удивительным, но в JavaScript вполне есть случаи, когда наличие в выражении +0 или -0 может менять итоговый результат. Пример как раз одного такого момента представлен в статье.

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

Работа с Github в текущих реалиях при наличии OpenSSH версии младше 7.2

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

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

Обычные и асинхронные методы-генераторы в JavaScript и TypeScript

Обратил внимание, что в интернете обычные и асинхронные генераторы обычно упоминаются в виде простых функций (через function*) и не так часто упоминаются в контексте методов класса, что соответственно может запутать новичков, только знакомящихся с этим функционалом. В этой статье я представил небольшое пояснение с примерами реализации различных методов-генераторов (для классов в стиле ES6+) .

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

Что происходит с проектом Bootstrap-Vue? Стоит ли рассчитывать на эту библиотеку?

В этом году практически отсутствует какая-либо серьезная активность от разработчиков популярной библиотеки Bootstrap-Vue и вполне возможно что этот проект будет в итоге заброшен. Для нового проекта возможно вам стоит быть осторожным в выборе этой библиотеки.

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

Принципы KISS, DRY и YAGNI в разработке ПО

Три удивительно простых принципа: KISS, DRY, YAGNI, понимание которых помогает в разработке ПО (и не только!). В статье я кратко охарактеризую их и поясню, в чем их важность.

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

Декодирование SVG в WebWorker в JavaScript

В статье описал немного нетривиальный способ управления декодированием и растеризацией SVG внутри выделенного WebWorker (да-да, опять JavaScript....).

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

Основные недостатки JSON

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

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

Проблемы больших чисел в JavaScript или зачем нужен тип BigInt

Как думаете, какой результат будет, если в JS посчитать 9007199254740991 + 2 ? Если вы думаете что 9007199254740993, то вы можете серьезно ошибаться. В статье описаны проблема точности больших чисел в JavaScript, а также назначение типа BigInt при решении таких проблем.

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

Почему для начала изучения PHP нет необходимости ставить веб-сервер и базу данных ?

Зачастую в различных туториалах при изучении PHP требуют ставить LAMP, WAMP, OpenServer, Denver и пр. Рассмотрим, почему для изучения достаточно просто скачать PHP.

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

Декодирование шифра Цезаря на JS

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