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

Впечатления от знакомства с микрофреймворком AlpineJS

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

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

Некоторые проблемы безопасности при установке модулей с помощью NPM

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

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

Почему я стараюсь вести разработку в Docker-контейнерах

Нередко на профильных сайтах, связанных с IT-тематикой (всякие Хабры и Stackoverflow), я вижу как некоторые программисты искренне непонимают назначение и пользу контейнеризаций и считают это излишним усложнением в разработке. Т.к. у меня часто стоят задачи, связанные с Web-разработкой, я решил привести пример безопасности разработки, в качестве причины по которой я использую контейнеры (в моем случае — Docker).

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

При веб-разработке не забывайте фиксировать библиотеки, подгружаемые с публичных CDN

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

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

Первые впечатления от использования Swiper Element на проекте

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

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

Проблемы больших (по количеству ячеек) таблиц в HTML

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

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

Принципы Graceful Degradation и Progressive Enhancement в веб-разработке

Не секрет, что в веб-разработке полная поддержка старых браузеров зачастую является нетривиальной и достаточно трудоемкой задачей. Для решения пообных проблем в свое время и были продуманы принципы Graceful Degradation и Progressive Enhancement, о которых и пойдет речь в статье.

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

Мое первое впечатление от использования Vite в коммерческой web-разработке

Наконец-то мне удалось более плотно поработать с таким замечательным инструментом веб-разработки как Vite но уже на полноценном рабочем проекте, где он использовался и как сервер разработки и как инструмент сборки веб-проекта. Вот и решил поделиться с вами своим первым впечатлением.

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

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

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