Pull to refresh
27
0.1
Павел @Paveldpv

Семоучка

Send message

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

Level of difficultyMedium
Reading time3 min
Views3.2K

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

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

Читать далее

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

Level of difficultyMedium
Reading time6 min
Views2.2K

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

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

Читать далее

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

Level of difficultyMedium
Reading time9 min
Views2K

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

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

Читать далее

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

Reading time12 min
Views22K
image

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

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

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

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

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

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

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

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

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

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

Level of difficultyEasy
Reading time11 min
Views11K

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views1.8K

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

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Views106K

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

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time6 min
Views6.6K

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

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Views6.2K

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

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

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

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

Читать далее

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

Reading time11 min
Views11K

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

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

Читать далее

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

Level of difficultyEasy
Reading time3 min
Views4.5K

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time5 min
Views12K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views7.8K

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

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

Читать далее

Как перестать «гореть» в операционке: мои 10 системных решений для предпринимателей

Reading time4 min
Views2K

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

Я, как и многие, раньше по утрам видел только сотни уведомлений: «Подпишите документ», «Оплатите счёт», «Клиенту срочно нужна консультация». Однажды я понял: так не должно быть. Если ты постоянно тушишь пожары, значит, системы нет. А бизнес без системы — это хаос с доходами.

Читать далее

Как собрать первое портфолио: 5 настоящих историй

Level of difficultyEasy
Reading time5 min
Views1.5K

Привет, Хабр! На связи Friflex. Мы занимаемся разработкой мобильных приложений и веб-сервисов.

Во многих вакансиях работодатели просят прикрепить портфолио, чтобы оценить код, архитектуру проектов и направления, в которых работал кандидат. А что делать, если опыта работы еще нет? Роза Шархмуллина (Flutter-разработчик), Роман Галиновский (Flutter developer), Сергей Кочетков (Flutter Team Lead), Эрик Хадиков (Backend-разработчик) и Юрий Волковский (Frontend-разработчик) — о том, что они включили в первое портфолио и как бы действовали сейчас, случись им перенестись в прошлое.

Читать далее

Как сделать NeoVim самым удобным текстовым редактором: туториал по настройке

Level of difficultyEasy
Reading time7 min
Views81K

В этой статье затронем редакторы семейства Vi и разберем базовые сценарии работы с NeoVim. Начинающие специалисты смогут использовать материал в качестве туториала, а опытные разработчики, возможно, отметят для себя что-то новое.

Почему именно NeoVim? Всё просто: этот текстовый редактор сохраняет совместимость с Vim, но также предлагает дополнительные возможности и улучшенный интерфейс. Он позволяет более эффективно работать с кодом, а главное — настраивать редактор под свои нужды.

Читать далее

Я пытался устроиться айтишником, но что-то пошло не так…

Level of difficultyEasy
Reading time3 min
Views30K

Привет Хабр. Это очередная статья где абсолютно не знакомый парень будет рассказывать вам про то, с какими трудностями вам придется столкнуться при попытке устроиться на работу программистом (в моему случае на позицию Java Backend Developer (джун)). Сразу скажу что когда я говорю о программисте, я имею ввиду вполне квалифицированного и ответственного человека, а не вкатуна который вчера закончил курсы (хотя справедливости ради скажу что оттуда выходят адекватные специалисты).

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

Читать далее

Zustand в React

Level of difficultyEasy
Reading time4 min
Views2.8K

Управление состоянием в React — один из самых важных моментов при разработке приложений. Многие начинают с useState и useReducer, но со временем понимают, что для глобального состояния нужно что-то более мощное. Здесь хорошо подойдут Redux, MobX, Recoil и, конечно, Zustand.

Zustand (читается «цуштанд», в переводе с немецкого — «состояние») — это простая и мощная библиотека для управления состоянием в React, которая решает проблемы существующих решений.

Читать далее

Пять нужных кастом-хуков для React

Level of difficultyMedium
Reading time5 min
Views8K

React предоставляет программисту прекрасный базовый набор хуков и с каждой версией их количество и функционал увеличивается.

Трудно представить код современного React-приложения без таких функций как useState, useEffect, useRef и так далее.

Однако, в повседневной жизни мы часто решаем рутинные задачи, многие из которых могут быть автоматизированы.

Создание кастом-хуков это прекрасная возможность выделить часто переиспользуемый код в отдельные сущности.

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

Ниже мы рассмотрим примеры некоторых из них.  

Читать далее

Самая важная компания китайского автопрома (и это не BYD)

Reading time7 min
Views33K

Когда речь заходит про китайский автопром, обыватели вспоминают Geely, Chery, Haval, GAC, Zeekr, Li Xiang и другие чайнамарки, популярные на наших дорогах. Кто шарит чуть лучше - вспомнит про NIO, XPeng, Aito а также классическую китайскую "Большую четверку" (Dongfeng, FAW, SAIC и Changan). Совсем эксперты расскажут про Denza, Wuling, Deepal, YangWang и Leopard. Но про реального "серого кардинала" китайского автопрома не вспомнит почти никто. Хотя без него не было бы никакого китайского автомобильного чуда.

Эта компания называется CATL. Она делает батареи для львиной доли электромобилей и гибридов в Китае и за его пределами. В этой статье расскажу, как CATL прошёл путь от небольшого исследовательского бюро до стратегически-важного промышленного гиганта.

Читать далее

Information

Rating
3,430-th
Location
Сасово, Рязанская обл., Россия
Date of birth
Registered
Activity

Specialization

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