Search
Write a publication
Pull to refresh
1
0

User

Send message

Редизайн Яндекс Карт: почему мы перекрасили дороги

Level of difficultyEasy
Reading time16 min
Views82K

Не выразить словами, как волнительно и, чего уж там, страшно презентовать редизайн Яндекс Карт!

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

Угодить всем тяжело, так что отслеживание и пропуск через себя «болей» тех, кому наши изменения поломали привычки или просто пришлись не по вкусу, — не самая приятная, но важная часть нашей работы. Однако страх и желание любой ценой никого не обидеть способны парализовать, и порой надо быть смелым, чтобы внести изменения, необходимость которых уже назрела.

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

Читать далее

Человек-клей: как я нашел самого неэффективного сотрудника, чуть не уволил, а оказалось, что на нем все держится

Level of difficultyEasy
Reading time8 min
Views213K

Эпиграф:
Приходит чувак к музыкантам, в группу просится. Те у него и спрашивают: 
- А ты на гитаре играть умеешь? 
- Нет. 
- А на барабанах? 
- Тоже не умею. 
- Может ты поешь? 
- Не пою. 
- Зачем ты нам тогда нужен? 
- Знаете, я просто офигенный друг!

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

Читать далее

Почему я исправляю баги бесплатно и как это изменило мою карьеру

Level of difficultyEasy
Reading time6 min
Views15K

8 лет назад я исправил опечатку в чужом репозитории, а сейчас регулярно делаю коммиты в проекты, которые использую, и даже вошел в core team библиотеки с 27000 звёзд на GitHub

В этой статье покажу, что участие в Open Source проще, чем кажется. Расскажу, как регулярная работа с чужим кодом помогает быстрее разбираться в незнакомых кодовых базах, писать тесты и лучше документировать решения. А также объясню, почему публичная активность на GitHub выгодно отличает вас от других разработчиков, особенно в эпоху повсеместного использования ИИ.

Читать далее

Почему микро-сервисы редко взлетают?

Level of difficultyEasy
Reading time6 min
Views13K

Потому, что микро-сервисы часто оказываются не «микро», а «нано» сервисами.

Маленькими, изолированными сервисами под конкретную маленькую задачу. Они любят полакомиться чужими событиями. Но они не жадные: поймают одно событие, кинут три. Поодиночке они почти бесполезны. Про них можно слагать анекдоты: «Сколько надо сервисов, чтобы напечатать Hello World?». Поэтому нано-сервисов много, они плодятся как зайчики. Или как маленькие паучки, которые затягивают организацию своей паутинкой.

Систему нано-сервисов трудно спроектировать, легко уронить и невозможно поддерживать.

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

Читать далее

Байки бывалого разработчика: дарил миллионы клиентам, сжигал железо, злил политиков

Level of difficultyEasy
Reading time6 min
Views13K

За 25 лет в разработке со мной произошло много занятных историй.

Мы сделали клиентов миллионерами, проводя тестирование на проде. Едва не получили дипломатический скандал, показав министру неполиткорректный экран.

Я общался «по понятиям» с боссом из 90-х с индийским колоритом. Корпел над секторами жесткого диска из-за пингвина-терминатора (да, это про Linux!). Физически ощущал запах сгоревшей премии дорогого сгоревшего железа.

Здесь нет вымысла – только ТруЪ истории и опыт, который я получил. Читайте, смейтесь и… никогда не повторяйте это дома.

Итак, погнали!

«Кем Вы видите себя через 5 лет», или HRско-русский разговорник

Level of difficultyEasy
Reading time8 min
Views76K

Вас спрашивали «Кем Вы видите себя через 5 лет»? Меня тоже. За двадцать пять лет в IT я понял, зачем они так делают. Понял – это значит, что я «привык и научился пользоваться» (С). Но «неприятно удивлять» они меня не перестали.

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

Дисклеймер:

Я не призываю врать или «играть по правилам» HR. Я делюсь практической схемой подачи опыта и скиллов, чтобы минимизировать отказы «по софтам». В моем случае она работает.

Читать далее

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

Level of difficultyMedium
Reading time10 min
Views11K


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

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

Что я узнал, проконсультировав 100 айтишников

Reading time12 min
Views91K

Категорически приветствую, дорогой Хабр! Меня зовут Сергей и я психолог. Но не нужно хлопать и говорить «я тебя так понимаю» или «сочувствую». Я искренне люблю свою профессию. Одна из главных причин этой любви – возможность прикоснуться ко множеству жизней и понять размышления человека, его майндсет, если позволите. А также, увидеть, к чему этот майндсет привел – к каким достижениям и, разумеется, трудностям.

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

Подумать о себе

Книга: «RESTful Web API: Паттерны и практики»

Reading time5 min
Views7.4K
Привет, Хаброжители!

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

Издательство Sprint book представляет новинку — «RESTful Web API: Паттерны и практики». Майк Амундсен, автор книги, признанный эксперт в области веб-архитектуры, делится своим многолетним опытом. В «RESTful Web API» он собрал более 70 проверенных паттернов и практик, которые помогут вам проектировать API, способные выдерживать высокие нагрузки, адаптироваться к изменениям и минимизировать риски.
Читать дальше →

Яндекс.Разврат или анти-этичный ИИ

Level of difficultyEasy
Reading time6 min
Views44K

tl;dr: как обойти внутреннюю цензуру «Шедеврума» и получить то, что хочешь. Описание реализованных состязательных атак с примерами реализации. Без глубокого раскрытия механизма почему так получается.

Читать далее

Кратко про Nameko Python

Level of difficultyEasy
Reading time5 min
Views7.4K

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

Nameko, как фреймворк для Python, предлагает удобные абстракции и инструменты для создания микросервисов, ориентированных на сообщения и события.

С Nameko можно получить не только инструмент для создания микросервисов, но и платформу для реализации распределенных систем с поддержкой Dependency Injection, позволяющей легко интегрировать различные компоненты приложения.

Читать далее

Использование API-схем для property-based-тестирования

Reading time18 min
Views7.4K

Когда мы работаем с API-схемами, обычно существует несколько моделей, и они синхронизируются на разных уровнях. Обычно есть база данных, код и схема. И всё это нужно держать между собой в синхроне, чтобы они нормально друг с другом взаимодействовали.

Я расскажу об обычных проблемах, с которыми люди сталкиваются при использовании API-схем. Как можно использовать API-схемы для описания property-based-тестов, и чем здесь может помочь Schemathesis. И покажу на практике, как его можно интегрировать в  существующий проект.

Читать далее

Schemathesis: property-based тестирование для API схем

Reading time7 min
Views8.5K

image


Фото Chris Keats на Unsplash


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


Эти микросервисы используют Open API 3.0 схемы для описания того что от них можно ожидать. Схемы дают множество полезных вещей, например автогенерируемые клиенты или интерактивная документация, но их основное достоинство состоит в том, что они помогают контролировать как сервисы общаются между собой.


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

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

Тебя точно собираются уволить

Level of difficultyEasy
Reading time4 min
Views85K

Вы приходите на работу — а вам больше не дают задач. Коллеги внезапно перестают здороваться, а начальник при всех называет вас «бесполезным балластом». Вас нагружают невыполнимым объемом работы, а потом обвиняют в «профнепригодности». Было ли у вас такое? Может вы были свидетелем таких процессов?

Это не паранойя. Это система «выдавливания» сотрудников. По данным Роструда, каждый пятый работник сталкивается с давлением перед увольнением. Но лишь 3% обращаются в суд — остальные просто уходят «по собственному», теряя деньги и репутацию.

Но зачем так делать? Это просто выгодно. Увольнение «по статье» грозит им судами и проверками, а «сокращение» требует выплат. А вот если сотрудник как бы «сам ушел» — компания может сэкономить от 2 до 12 зарплат в каждом случае.

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

Как правильно действовать

Советы по эффективному обучению ML-моделей

Level of difficultyMedium
Reading time11 min
Views4.6K

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

Читать далее

Не позволяйте словарям портить ваш код

Level of difficultyMedium
Reading time7 min
Views15K

Как часто ваши простенькие прототипы или предметные скрипты превращаются в полномасштабные приложения?

Простота естественного разрастания кода не лишена и обратной стороны — такой код становится трудно обслуживать. Количественное размножение словарей в качестве основных структур данных чётко сигнализирует о наличии технического долга. К счастью, сегодня Python предоставляет для простых словарей много адекватных альтернатив.
Читать дальше →

Poetry vs UV: удобство или скорость?

Reading time8 min
Views5.6K

Привет! Это Леша Жиряков, техлид backend-команды витрины онлайн-кинотеатра KION. В прошлый раз я писал про Msgspec vs DataClasses, а сегодня поговорим о пакетных менеджерах. 

В жизни каждого разработчика наступает момент, когда нужно воспользоваться сторонней библиотекой — для работы с данными или отправки запросов в БД. А после выбора библиотеки и версии — использовать менеджер пакетов.

Читать далее

Компилятор GO. Добавляем цикл WHILE

Level of difficultyMedium
Reading time13 min
Views7.3K

На одной из конференций я наблюдал, как наши коллеги реализовывали тернарный оператор в Go с помощью комментариев. Доклад длился всего минут 10, и, честно говоря, я не смог уловить ничего внятного, кроме того, что ребята явно хорошо повеселились. Однако это вдохновило меня разобраться, как работает компилятор Go под капотом. А лучший способ разобраться — это попробовать написать что-то своё.

Самым простым и понятным для меня в этом плане показалась реализация цикла while. В этой статье я покажу, что у меня получилось выяснить. Вот примерный результат, к которому мы придём:

Читать далее

Погружение в Django: 8 полезных ссылок

Reading time2 min
Views7.1K

Привет! Это команда Яндекс Практикума. Делимся подборкой от экспертов курса «Python-разработчик» — материалы помогут познакомиться с Django и написать первый код, углубиться в Django ORM и найти ответы на популярные вопросы новичка. 

Актуальная версия Django — пятая, но некоторые источники в подборке рассматривают более старые версии. Это не беда, потому что основы фреймворка остаются теми же, кроме того, на старых версиях по-прежнему работает множество проектов.

Читать далее

Information

Rating
Does not participate
Registered
Activity