
Всем привет! Привожу перевод статьи Penrose Tiling ExplainedЧитать полностью »

Всем привет! Привожу перевод статьи Penrose Tiling ExplainedЧитать полностью »
В теории типов вариантность описывает отношение между двумя обобщёнными типами (дженериками). Например, в каких обстоятельствах родительский тип может быть заменён дочерним, а в каких — нет, и так далее.
На эту тему можно найти множество ресурсов, особенно таких, где всё описано длинно и сложным, формально-архитектурным языком. Мне бы хотелось создать короткую и простую памятку (с небольшими вкраплениями формализмов), к которой можно легко вернуться, если вдруг забудутся детали.
Отношение ковариантности представляет собой обычное отношение подтипа, когда более Узкий/ДочернийЧитать полностью »
Этот мем смешной, пока не осознаешь, что в реальных проектах мы именно так и поступаем. Только заворачиваем не весь код сразу, а каждый HTTP-запрос по отдельности.
Пишешь fetchЧитать полностью »
Всем привет!
Меня зовут Майнура.
Моя история с Playwright началась около двух лет назад. За это время я не раз сталкивалась с трудностями, училась на собственных ошибках и теперь хочу поделиться опытом, который, возможно, окажется полезным другим.
Паттерны типизации в TypeScript напрямую влияют на технический долг — накопление неоптимального кода (костылей), которое замедляет разработку, увеличивает риски ошибок и повышает затраты на поддержку. Осознанный выбор паттерна минимизирует эти проблемы, обеспечивая предсказуемость и масштабируемость кода, что ускоряет адаптацию новых разработчиков и сокращает время на отладку. Ниже приведены исходные типы для дальнейшей демонстрации.
Читать полностью »
Если вы начинающий специалист в автоматизации тестирования, или автотестировщик с опытом, готовый обсуждать и улучшать стратегии тестирования, то с радостью представляю вам первый пост в серии, посвященный разборам подходов к тестированию ПО. Здесь я разбираю свой взгляд на способы решения реальных задач по тестированию, используя Playwright + TypeScript.
Для того, чтобы отсортировать массив данных, в Typescript есть метод .sort(), а так же .sort().reverse()Читать полностью »
Еще в 2008 году, посмотрев фильм "Железный человек", я понял, что хочу сделать себе такого же виртуального помощника, как у главного героя был Джарвис — искуственный интеллект, с которым Тони Старк общался в формате обычной речи, а тот понимал его команды и послушно исполнял.
Привет!
Хочу рассказать вам про свою библиотеку solidjs-hook-form,которую я сделал для упрощения работы с множеством форм в SolidJS.
Изначально я столкнулся с такой проблемой: валидация, управление состоянием, много инпутов, boilerplate... Капец, можно запутаться. Особенно когда форма не из двух полей, а с кучей логики. Вот и пришлось мне написать свою либу.
Многие разработчики при обсуждении основ Clean Code называют одни и те же принципы — чаще всего упоминаются DRY, KISS и YAGNI. Эти концепции прочно закрепились в профессиональном сообществе и воспринимаются как обязательная часть хорошего кода.
Принцип RUG упоминается значительно реже. Чаще всего о нём узнают с опытом, а многие применяют его интуитивно, даже не подозревая, что для этого подхода существует отдельное название и формулировка.
Сегодня я хочу поговорить о принципе RUG и о том, какие рекомендации он даёт по написанию программного обеспечения.
RUG (Читать полностью »

Всем привет! Меня зовут Дмитрий, и я руководитель фронтенд-разработки в компании Интелси.
Сегодня хочу рассказать о принципе единственной ответственности (Single Responsibility Principle) — первом из пяти принципов SOLID, сформулированных Робертом Мартином в его книге Читать полностью »