Обновить
27
0
Павел @Paveldpv

Семоучка

Отправить сообщение

Модификаторы вариантности параметров типа в TypeScript

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров2.3K

Здесь будут рассмотрены не очевидные, редкие и сложные инструменты и парадигмы для работы с типами в TypeScript.

Читать далее

Идеально размещённые тултипы: база

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.8K

Тултипы — классика веб-разработки. Кликаешь по элементу — и рядом всплывает небольшой «бабл» с дополнительной информацией. Но за этим простым кликом почти всегда стоит JavaScript, который рассчитывает, где именно показать тултип.

Попробуем поставить его сверху. Нет, места не хватает. Окей, давай снизу. Теперь он упирается в правый край — сдвинем чуть левее. Приходится учитывать кучу нюансов, чтобы тултип оказался на своём месте и нигде не обрезался, не теряя важный текст.

В этой статье я покажу, как написать хороший JavaScript, который обработает все такие случаи…

Шучу! Мы обойдёмся CSS и посмотрим, как современный Anchor Positioning API может помочь со всем этим. Никакого тяжёлого JS и лишних проблем с производительностью.

Читать далее

«План любой ценой»: Почему российский менеджмент превратил работу в выживание и можно ли с этим бороться

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

Краткий разбор системных ошибок управления, которые годами тормозят развитие российского бизнеса (и не только в IT) 

Если вы работали в российской компании — от крупного холдинга до небольшого стартапа — вы, возможно, сталкивались с этим. Не везде, но такое, наверняка случалось. Авралы по выходным, KPI, которые невозможно выполнить, приказы, противоречащие здравому смыслу, и вечное «надо выкручиваться». И наше любимое — всем сейчас и так плохо, нужно затянуть пояса. Это не отдельные недочеты, а симптомы глубокой системной болезни, которую можно назвать «постсоветский управленческий синдром». Он проявляется в нескольких взаимосвязанных паттернах, которые годами кочуют из компании в компанию. О них сегодня и расскажу.

Читать далее

Как я прогулялся из 1С в Java и захотел обратно

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

В данной статье я хочу поделится своим видением обоих профессий, сравнить их и дать свою субъективную оценку, а так же рассказать историю ИТ в общих чертах за последние 5 лет, как ИТ пузырь начал раздуваться и как он в конце концов лопнул.

Данная статья будет полезна для тех, кто решил вырваться из цепких лап экосистемы 1С или же наоборот сэкономить свое драгоценное время.

Читать далее

Как управляются современные предприятия

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

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

В качестве примера возьмем один известный пивоваренный завод. На этом предприятии начальник производства еженедельно анализирует круговую диаграмму, разделенную на секторы: простои из-за аварий, простои из-за переналадок и время эффективной работы оборудования. На основе этого анализа готовится доклад директору с вариантами решений. Если сектор аварий растет, руководитель службы КИП и ТОиР проводит разговор с инженерами и механиками. При увеличении времени переналадок начинается работа над оптимизацией производственного расписания.

Но за этой простой диаграммой стоит сложная цифровая экосистема, состоящая из систем управления: ERP и MES. Разберемся, за что каждая из них отвечает.

ERP-системы

ERP-системы (Enterprise Resource Planning) выполняют роль стратегического планирования и управления ресурсами предприятия. Согласно исследуемым данным, объем рынка российских ERP в 2024 году достиг 100 млрд рублей, показав рост в 20%. [https://www.tadviser.ru/index.php/Статья:Куда_движется_рынок_ERP_в_России_в_2025_г]

Функциональные особенности

ERP формирует календарный план производства на основе стандарта MRPII (Manufacturing Resource Planning - стандартизированная методология планирования производственных ресурсов предприятия, обеспечивающая координацию материалов, производственных мощностей, финансов и персонала через замкнутый цикл планирования, исполнения и контроля):

Читать далее

Автоматический подбор браузером контрастного цвета в CSS

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2.4K

Вам когда-нибудь хотелось, чтобы можно было написать простой CSS для объявления цвета, после чего браузер сам бы определял, чёрный или белый должен сочетаться с этим цветом? Теперь это возможно благодаря contrast-color(). В статье мы объясним, как это работает.

Представьте, что вы разрабатываете веб-сайт или веб-приложение, и в дизайне требуется куча кнопок с разными цветами фона. Для обработки цвета фона можно создать переменную --button-color, а затем присваивать ей разные значения.

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

Читать далее

Как с помощью Typescript я получал свойства React-компонентов

Время на прочтение5 мин
Количество просмотров3.8K

В статье — о том, как мы решили отказаться от PropTypes в пользу TypeScript для автоматического извлечения типов пропсов React-компонентов. 

Наши разработчики давно просили эту возможность, справедливо возмущаясь: «Зачем описывать типы дважды — в TypeScript и PropTypes?». Тем более, что аналогичный механизм уже работал в Storybook.

Если вы недовольны текущими решениями для организации библиотек компонентов или просто любите технические кейсы — добро пожаловать под кат!

Читать далее

Автовыведение типов в TypeScript: мощь дженериков и функций

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров4.1K

Я уже более 7 лет активно использую TypeScript, применяя его в самых разных сценариях — от простых типизированных переменных до сложных условных типов и интерполяции. Однако TypeScript продолжает удивлять: сегодня я открыл для себя ещё один элегантный сценарий использования автовыведения типов в дженериках и функциях.

В этой статье разберём, как TypeScript автоматически выводит типы в дженериках на примере функции fetchFile из моего кода.

Читать далее

Правила проектирования MES-систем, которые мы выработали

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

MES-системы — интерфейсы от которых зависит эффективность производственного процесса. Основная задача — обеспечить управление, ускорить принятие решений и снизить ошиби на всех этапах.

Разбираем как проектировать MES-систему, чтобы она была удобной в эксплуатации.

Читать далее

Всё, что вы хотели знать, но стеснялись спросить о кастомных курсорах в CSS

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.5K

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

Также сравним плюсы и минусы применения CSS и JavaScript для создания кастомных курсоров. Обсудим, когда стоит отказаться от курсоров по умолчанию и как учитывать потребности пользователей с ограниченными возможностями. Чтобы во всё это вникнуть, вам понадобятся базовые представления об HTML, CSS и JavaScript.

Читать далее

Как я осознавал пользу ИТ на заводе

Время на прочтение12 мин
Количество просмотров24K
image

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

Валок — это часть прокатного стана. В стан подаётся полоса металла, а на выходе после многократных обжатий со всех сторон получается почти готовая труба нужного диаметра. Почти — потому что с ней ещё много чего произойдёт, чтобы она стала настоящей трубой. Но это уже детали.

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

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

Тогда мне казалось, что хватит четырёх деревянных ящиков, папок для документации на каждый сортамент, блокнота и пары дней.

Оказалось — показалось.

Мне понадобился Excel, чтобы организовать сбор статистики. Затем я поговорил с «погромистами» и узнал, что можно выгружать произведённые объёмы труб из АСУ ТП. Потом думал над алгоритмами, рисовал интерфейсы в Пейнте и Паверпоинте.

Через 10 лет оказалось, что наша система — одна из немногих, которую цеховые понимают, пользуются ею и за неиспользование которой не прилетело ни одного взыскания.

Давайте я расскажу, как в цеху мы открывали для себя ИТ.
Читать дальше →

Как коммитить так, чтобы ваш код принимали мейнтейнеры: путь одного героя

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

Всем привет, меня зовут Юрий Пузыня, я занимаюсь развитием платформы документации Diplodoc в Yandex Infrastructure, которую мы пару лет назад выложили в опенсорс. И сегодня я расскажу лёгкую историю невероятного везения в опенсорсе.

Мой первый коммит как контрибьютора в опенсорс‑проект был смёржен спустя два с половиной года мной же в качестве мейнтейнера этого проекта. И в чём тут история успеха — спросите вы. Но давайте я расскажу всё по порядку.

Читать далее

Клонируем правильно: structuredClone() в JS

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

Привет, Хабр!

Глубокое копирование в JavaScript всегда было немного проблемой. До тех пор, пока в языке не появился structuredClone() — метод, который решил многие наши проблемы.

Читать далее

Как полюбить математику и подружиться с ней на всю жизнь, если ты уже не школьник

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров115K

«Вспоминаю, как в 7-м классе ничего не понимал, когда мы начинали разбирать тригонометрию. С учителем мы не смогли найти общий язык, поэтому к 8–9-му классу я был уверен, что никогда не буду заниматься математикой, а уж тем более сидеть по несколько часов в день, утыкаясь в учебники Беклемишева или Кожевникова и параллельно просматривая лекции Физтеха…»

Всем привет! Идею этой статьи я вынашивал довольно долго, пока не набрался опыта в том, что сейчас стало моей каждодневной практикой. Надеюсь, мой опыт поможет кому-то из вас комфортнее и эффективнее подойти к изучению математики (а может, и других наук). Предлагаю познакомиться:

Меня зовут Ренат, мне 23 года, я родился в Москве, окончил обычную школу и вплоть до 19 лет не понимал, чем хочу заниматься — что называется «что меня драйвит». Сейчас живу на Кипре, работаю тут аналитиком, продолжаю параллельно учиться в России и скоро заканчиваю там университет.

За последние несколько лет я успел поработать аналитиком в Ozon, затем продуктовым аналитиком в Тинькофф (ныне Т-банк), перешёл в лондонский стартап, а сейчас тружусь над проектами в сфере Trust & Safety. И вот в один прекрасный день я решился «серьёзно ботать математику»: уже несколько месяцев уделяю 10–15 часов в неделю задачам, лекциям и подготовке к поступлению в магистратуру (решая вступительные от МГУ, ВШЭ, МФТИ). Именно об этом пути — как я ищу мотивацию, борюсь с прокрастинацией и стараюсь не выгореть — я и хочу вам рассказать.

Читать далее

Многопоточность. Снизу вверх. Потоки в языке C#

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

Привет, Хабр! Это Дмитрий Бахтенков. Добро пожаловать в третью часть цикла статей «Многопоточность. Снизу вверх»! Мы уже разобрали процессор и операционную систему, а сегодня поговорим про использование потоков в .NET с помощью языка программирования C#.

Эта статья — обзор основных возможностей взаимодействия с потоками в .NET.

Читать далее

О своём pet-проекте при трудоустройстве

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.8K

Всем привет! Меня зовут Алексей, и я работаю Java‑разработчиком с 2018 года. В свободное от работы время я три года разрабатывал свой pet‑проект. В статье расскажу, как трудился над этим проектом и почему в итоге всё бросил. А ещё поделюсь мнением о том, помогают ли pet‑проекты в поиске работы. Спойлер — не особо.Также эта статья может быть полезна тем, кто хочет написать свой первый pet‑проект, и тем, кто пилит свой проект слишком долго, но не знает, стоит ли его бросить.

Поиск идеи проекта

Было это в 2019 году, я тогда уже год работал Java‑разработчиком в аутсорс компании и решил сделать крутой проект в свободное от работы время, чтобы свои знания в Spring прокачать и, глядишь, стартап стрельнет он при трудоустройстве поможет.

Какую же идею выбрать? Хотелось прям что‑то одно сделать и потом этот проект развивать, а не делать кучу проектов‑«набросков».

Читать далее

Скриншотное тестирование во фронтенде: современный подход к поиску визуальных багов

Время на прочтение11 мин
Количество просмотров14K

За последние годы скорость развития технологий для создания фронтенд-приложений выросла в разы. Новые фреймворки, библиотеки, инструменты сборки и подходы к разработке появляются практически каждый год. Однако, несмотря на это, основная точка взаимодействия пользователя с продуктом остаётся неизменной — это интерфейс. Именно он формирует впечатление о продукте и, по сути, является окончательной «витриной» всей вашей работы.

Традиционные подходы к тестированию на многих уровнях уже не успевают за реалиями разработки: ручное тестирование становится слишком трудоёмким, а написание unit- или end-to-end-тестов не всегда позволяет отследить именно визуальные изменения. И здесь на помощь приходит методология скриншотного тестирования — мощный инструмент для выявления визуальных багов, появляющихся в интерфейсе. Он позволяет убедиться в том, что ваш продукт отображается так, как задумано, и избавляет команду от многих сюрпризов.

Читать далее

Ramda.js — библиотека, которая избавит вас от reduce и map-каши

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.9K

Привет, Хабр!

Если вас когда-либо раздражало, что Array.prototype.map нельзя использовать для объектов или reduce постоянно требует передавать начальное значение, Ramda.js решает эти проблемы, делая код чище, декларативнее и удобнее.

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

Читать далее

Как сделать красивое резюме используя JSON

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров12K

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

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

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

Читать далее

Дизайн-системы в 2025 году: 6 актуальных трендов

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

Привет! Меня зовут Филипп Соломин, я дизайнер в Авито. Моя команда работает над библиотеками элементов сайта и мобильных приложений, техническими спецификациями компонентов и гайдлайнами по продукту.

Мы стараемся придерживаться трендов в архитектурных принципах построения дизайн-систем и хотим поделиться актуальными решениями, которые улучшили опыт работы с ДС. В этой статье собрали шесть наиболее актуальных (на наш взгляд) трендов.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Сасово, Рязанская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Frontend Developer, Fullstack Developer
JavaScript
React
TypeScript
Redux
CSS
Adaptive layout
BEM
SCSS
SASS
Express