Взаимосвязь между теорией разбитых окон и техническим долгом
В этом месяце я столкнулся с проблемой теории разбитых окон на одном на примере одного из проектов, который я сам же когда-то и делал. Соответственно это подало мне идею немного написать о том, что это за теория и каким боком она связано с разработкой ПО.
Читать дальше →Некоторые проблемы безопасности при установке модулей с помощью NPM
Каждый веб-разработчик так или иначе знаком с NPM. Но как вы думаете, многие ли из этих разработчиков задумываются, насколько безопасно ставить модули с NPM? В статье я уделил внимание некоторым моментам, которые на мой взгляд иногда приводят к проблемам безопасности, при установке модулей с NPM.
Читать дальше →Почему я стараюсь вести разработку в Docker-контейнерах
Нередко на профильных сайтах, связанных с IT-тематикой (всякие Хабры и Stackoverflow), я вижу как некоторые программисты искренне непонимают назначение и пользу контейнеризаций и считают это излишним усложнением в разработке. Т.к. у меня часто стоят задачи, связанные с Web-разработкой, я решил привести пример безопасности разработки, в качестве причины по которой я использую контейнеры (в моем случае — Docker).
Читать дальше →При веб-разработке не забывайте фиксировать библиотеки, подгружаемые с публичных CDN
Недавно на одном из проектов, который я когда-то делал раньше, я обнаружил неприятный баг вследствие того, что не зафиксировал версию библиотеки, погружаемой с публичного CDN. На примере данного казуса я хочу рассказать почему в проекте всегда нужно фиксировать версии зависимостей.
Читать дальше →Первые впечатления от использования Swiper Element на проекте
При разработке одного из проектов, для реализации различных слайдеров, я решил попробовал достаточно новую библиотеку Swiper Element, которая работает с использованием нативных веб-компонентов. По итогу этого эксперимента, я хочу немного рассказать о самой библиотеке, а также поделиться с вами своими выводами, касательно использования её на продакшене.
Читать дальше →Антипаттерн "Золотой молоток" - что это такое и почему его лучше избегать
В данной статье я хочу рассказать про малоизвестный на слуху, но широко распространенный на практике, антипаттерн "Golden Hammer" ("Золотой молоток"), в чем его коварство и вред и как с ним бороться.
Читать дальше →Несколько принципов из менеджмента, которые вполне пригодятся программисту при решений проектных вопросов
Программисты не всегда занимаются только написанием кода, иногда им приходится принимать участие в решении проектных вопросов, которые могут повлиять на всю дальнейшую разработку, а в случае неверных решений, привести к постоянным переработкам и другим неприятным и нервным последствиям. В статье я хочу в упрощенной форме ознакомить с несколькими принципами из различных сфер менеджмента, которые могут в подобных ситуациях помочь начинающим разработчикам сэкономить свои время и нервы.
Читать дальше →Проблемы больших (по количеству ячеек) таблиц в 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() и пр. В статье я просто хочу рассказать о некоторых деталях разработки и о том, с какими сложностями мне пришлось столкнуться.
Читать дальше →SemVer - спецификация, призванная помочь регламентировать порядок нумерации версий ваших релизов
Обозначение версии релиза — это особый ритуал, с которым у некоторых разработчиков бывают трудности. Чтобы с этим процессом было проще, существует множество соглашений и спецификаций и в статье я как-раз хотел бы поделиться с вами своим мнением касательно широкораспространенной спецификации SemVer (Семантическое Версионирование).
Читать дальше →Выбор оптимального ограничения длины строки в коде
В данной статье я хочу порассуждать касательно выбора оптимального ограничения длины строки в коде и какую роль в этом играют инструменты автоматического форматирования кода.
Читать дальше →Применимость нового CSS псевдокласса :has() в проектах
Недавно в стандарт CSS был внесен и уже реализован в части браузеров новый псевдокласс :has(), который существенно расширяет возможности CSS. Т.к. я предпочитаю использовать самые современные стандартизированные решения, я поспешил поэкспериментировать на деле с этим новым псевдоклассом и в итоге решил поделиться своими мыслями касательно его применимости.
Читать дальше →Маленький список устаревшей компьютерной периферии, которая не вызывает у меня никаких теплых чувств ностальгии
В статье я просто решил рассказать о некоторой устаревшей и уже редко встречаемой компьютерной периферии, с которой мне когда-то приходилось иметь дело и которая вызывает у меня скорее негативные воспоминания, чем теплые чувства ностальгии.
Читать дальше →JavaScript: Особенность работы Object.freeze() с объектами имеющими приватные поля
Иногда развитие языка программирования приносит не только новые возможности, но и новые подводные камни. В случае с JavaScript в статье я решил уделить внимание Object.freeze(), благодаря которому раньше можно было создавать полностью иммутабельные объекты, но с появлением нового синтаксиса приватных полей, это уже не совсем так.
Читать дальше →Почему при написании кода не стоит смешивать воедино браузерный и серверный JS на примере Puppeteer
Работая с одной популярной JS библиотекой (Puppeteer), я обратил внимание в примерах на частое смешивание воедино браузерного и серверного JavaScript кода. что с одной стороны объяснялось удобством, а с другой стороны нередко приводило разработчиков в замешательство. Т.к. подобное мне и ранее попадалось в других программных решениях, я решил поделиться своим мнением касательно того, почему я считаю такое написание кода нежелательным.
Читать дальше →Удаленная разработка с использованием VSCode и расширения Remote Development
Не секрет, что в настоящее время VSCode является одним из популярнейших редакторов кода, который имеет обширную базу плагинов, которые существенно расширяют его функционал. В данной статье я решил кратко описать активно применяемый мною в работе официальный набор плагинов от Microsoft — "Remote Development", благодаря которому VSCode получает возможность вести полноценную разработку на удаленной системе.
Читать дальше →Мое первое впечатление от использования панели управления хостингом HestiaCP
В этом месяце, мною для конфигурирования и администрирования временного виртуального сервера была испробована система управления хостингом HestiaCP, о которой у меня в итоге сложилось хорошее мнение. В данной статье я делюсь своим первым впечатлением от данной системы.
Читать дальше →Мое мнение касательно TailwindCSS после использования его на коммерческом проекте
Давно уже хотелось поближе познакомиться с CSS фреймворком Tailwind и как раз подвернулась возможность использовать его в коммерческом проекте. В статье я хотел кратко резюмировать мое мнение об этом чудесном фреймворке.
Читать дальше →Применение Markdown в комментариях к исходному коду и в генерируемой технической документации
Markdown уже давно стал зарекомендовавшим себя с хорошей стороны форматом оформления простого текста в IT-среде. Даже не подозревая об этом, многие его уже используют. Но в тоже время есть немало специалистов, которые совсем не знакомы с этим простейшим форматом. В этой статье я решил рассмотреть Markdown с т.з. автоматизации, стандартизации и расширения возможностей текстового содержимого комментариев исходного кода и технической документации (в т.ч. автогенерируемой).
Читать дальше →Одна из причин, почему на body элементе не стоит отключать скролл
Работая с одним из проектов, я обнаружил проблему конфликта нового скролла с "рукояткой" у мобильной Оперы и отключением скролла на body элементе (для фиксирования высоты body по высоте экрана). Т.к. пользователей мобильной Оперы достаточно много, да и подобная фишка может оказаться в других браузерах или плагинах, я решил описать проблему отдельной статьей. Возможно это кому-то заранее сбережет время и нервы.
Читать дальше →Как помощь другим в сервисах вопросов и ответов (stackoverflow и др.) может улучшить коммуникативные навыки в IT-команде
Как-то я обратил внимание, что помогая кому-то в сервисах вопросов и ответов, я стал не только делать доброе дело, но и прокачиваться в объяснении сложных вещей простыми словами. Статья опирается только на личный опыт, но возможно кому-то она поможет открыть для себя что-то новое.
Читать дальше →Отличия в применении знаковых нолей +0 и -0 в JavaScript и не только
Возможно это может показаться удивительным, но в JavaScript вполне есть случаи, когда наличие в выражении +0 или -0 может менять итоговый результат. Пример как раз одного такого момента представлен в статье.
Читать дальше →Завершил и опубликовал перевод руководства "Google TypeScript Style Guide"
В этом месяце я наконец доделал перевод на русский язык руководства Google по стилю написания кода на TypeScript ( "Google TypeScript Style Guide"). В статье я предоставил ссылки на репозиторий проекта и онлайн-версию документации, а также просто поделился некоторыми деталями самой реализации перевода.
Читать дальше →Мое знакомство с КВОРУМ-64 - клоном культового компьютера ZX-Spectrum
23 апреля 2022 года исполнилось 40 лет ZX-Spectrum - знаменитому компьютеру, который в свое время стал легендарным. В честь этого юбилея, я захотел в статье изложить некоторые воспоминания моего знакомства и использования клона этой системы под названием КВОРУМ-64.
Читать дальше →Работа с Github в текущих реалиях при наличии OpenSSH версии младше 7.2
В этом месяце столкнулся с обновлением требований к ключам авторизации при работе с GitHub, повлекшую обновление требований к версии OpenSSH. Т.к. не всегда есть возможность обновлять стабильные версии ПО, пришлось разбираться, как можно настроить в текущих ситуациях работу git с Github при наличии только старой версии OpenSSH.
Читать дальше →Мысли касательно IT и прочего, на фоне происходящих событий в Украине
Я думаю все знают, какие события начались в этом месяце в Украине. Невозможно оставаться равнодушным к общей жестокости ситуации и я как маленький человечек этой огромной планеты, которую опять начинают сотрясать раздор и разрушения, нахожусь на стороне обычного мирного населения всей планеты, которому все эти военные конфликты мешают жить и развиваться. В этой статье я делаю небольшой уклон в сторону IT, просто потому что в этом немного разбираюсь.
Читать дальше →Обычные и асинхронные методы-генераторы в JavaScript и TypeScript
Обратил внимание, что в интернете обычные и асинхронные генераторы обычно упоминаются в виде простых функций (через function*) и не так часто упоминаются в контексте методов класса, что соответственно может запутать новичков, только знакомящихся с этим функционалом. В этой статье я представил небольшое пояснение с примерами реализации различных методов-генераторов (для классов в стиле ES6+) .
Читать дальше →Моя история того, как я в 2021 году стал дипломированным бакалавром прикладной информатики
Так получилось, что в этом году я успешно завершил обучение в УрГЭУ и получил диплом бакалавра прикладной информатики (даже с отличием) + европейское приложение к диплому. В такой немного личной статье я просто хочу рассказать, почему я пошел получать высшее образование по своему профилю и какие были трудности во время обучения.
Читать дальше →Что происходит с проектом Bootstrap-Vue? Стоит ли рассчитывать на эту библиотеку?
В этом году практически отсутствует какая-либо серьезная активность от разработчиков популярной библиотеки Bootstrap-Vue и вполне возможно что этот проект будет в итоге заброшен. Для нового проекта возможно вам стоит быть осторожным в выборе этой библиотеки.
Читать дальше →Делаете небольшой сайт и устали от тормозов и сложности популярных CMS? Присмотритесь к различным Flat-File CMS!
Огромное количество CMS заставляет брать одно единственное решение (часто это WordPress) и использовать его во всех случаях. Но всегда ли нужна вся эта мощь и сложность крупных CMS? На какой системе можно развернуть множество несложных по функционалу сайтов и не затратить много времени на это? Присмотритесь к Flat-File CMS - возможно этот класс CMS систем станет вашим полезным помощником в разработке сайтов.
Читать дальше →Какое из популярных руководств по написанию кода стоит выбрать за основу для проекта на TypeScript
Начиная новый проект на TypeScript вы естественно столкнетесь с проблемой согласования единого стиля написания. В статье я представляю свою точку зрения, касательно выбора за основу того или иного популярного руководства по написанию кода на TS, т.к. их применение имеет свои нюансы.
Читать дальше →Почему рейтинги языков программирования не демонстрируют их настоящую популярность
Практически в каждой журнальной статье про наиболее популярные языки программирования, ссылаются на аналитические данные популярных рейтинговых агентств или крупных сервисов. В статье я попытаюсь описать, почему на мой взгляд всякие рейтинги не могут демонстрировать настоящую популярность языков программирования
Читать дальше →Принципы KISS, DRY и YAGNI в разработке ПО
Три удивительно простых принципа: KISS, DRY, YAGNI, понимание которых помогает в разработке ПО (и не только!). В статье я кратко охарактеризую их и поясню, в чем их важность.
Читать дальше →Зачем начинающим разработчикам стоит для своих проектов выбирать виртуальные, а не физические сервера
Удивительно, но до сих пор существует множество ИТ-специалистов, не знающих про технологии виртуализации и при проектировании серверного ПО планирующих выделение физического сервера. Обычно это совсем новички и по большей части статья предназначена для них.
Читать дальше →Стили управления командой с учетом особенностей IT-сферы
Удивительно, как много руководителей не знают, что существует несколько стилей руководства командой ИТ-специалистов. В этой статье я хотел бы упомянуть про основные стили управления из менеджмента и посмотреть на это со стороны ИТ-сферы.
Читать дальше →Зависимость между управленческим циклом менеджмента и жизненным циклом разработки ПО
Рассуждения касательно того, почему разработчикам желательно знать основы менеджмента.
Читать дальше →Декодирование SVG в WebWorker в JavaScript
В статье описал немного нетривиальный способ управления декодированием и растеризацией SVG внутри выделенного WebWorker (да-да, опять JavaScript....).
Читать дальше →Основные недостатки JSON
JSON формат сейчас очень популярен и применяется где только можно: как файлы конфигурации, как формат передачи и пр. Но нередко этот формат используют там, где он неуместен, в силу своих недостатков, о которых я и упомянул в статье.
Читать дальше →Что общего у заочного и очного обучения с фрилансом и офисной работой
Работая над дипломной работой, мне стало интересно провести параллель между заочным образованием и фрилансом и попытаться рассмотреть общие черты, что я и изложил в основном содержании статьи.
Читать дальше →Зачем IT-шникам важно развивать знание английского языка
С одной стороны, вроде бы стремиться активно изучать английский нет смысла, если не работаешь с иностранцами. Но ведь с английским языком в современной IT-сфере приходится сталкиваться везде и отсутствие знания языка будет вносить дискомфорт в работу и влиять на её качество. В статье я высказал пару слов на тему того, почему надо всегда стремиться улучшать свой английский всем айтишникам.
Читать дальше →Elive - неплохой Linux-дистрибутив для экспериментов со слабыми компьютерами
Elive - интересный для изучения Linux-дистрибутив, который использует достаточно экзотический оконный менеджер Enlightenment. Стоит ли его рекомендовать владельцам старых компьютеров ?
Читать дальше →На что стоит обратить внимание при выборе хостинг-провайдера
Почему, на мой взгляд, цена не является главным критерием выбора хостинг-провайдера для своего проекта.
Читать дальше →Нотация EPC - удобное и наглядное средство описания бизнес-процессов
Недавно мне удалось познакомиться с несколькими методологиями описания бизнес-процессов различного уровня, а именно BPMN, EDIF, EPC и пр. В этой статье я захотел показать именно EPC-нотацию с демонстрацией наглядного примера, выполненного в ARIS Express.
Читать дальше →Проблемы больших чисел в JavaScript или зачем нужен тип BigInt
Как думаете, какой результат будет, если в JS посчитать 9007199254740991 + 2 ? Если вы думаете что 9007199254740993, то вы можете серьезно ошибаться. В статье описаны проблема точности больших чисел в JavaScript, а также назначение типа BigInt при решении таких проблем.
Читать дальше →Почему для начала изучения PHP нет необходимости ставить веб-сервер и базу данных ?
Зачастую в различных туториалах при изучении PHP требуют ставить LAMP, WAMP, OpenServer, Denver и пр. Рассмотрим, почему для изучения достаточно просто скачать PHP.
Читать дальше →Прекрасная идея тренировки английского языка на квестах от LucasArts
С конца 2019 года я стал более активно изучать английский язык. Конечно профессиональные учебники важны, но еще важнее было добавить в обучение элементы игры. И я вспомнил про старые добрые квесты от LucasArts, ремастеры многих которых недавно вышли.
Читать дальше →