Search
Write a publication
Pull to refresh
2
0
Константин @ConstOrVar

Разработчик мобильных приложений

Send message

Как создавать понятные и наглядные графики с помощью библиотеки Plotly: 5 советов и примеры кода

Level of difficultyMedium
Reading time8 min
Views4.7K

Привет, Хабр! На связи Кирилл Мазуров, продуктовый аналитик в Garage Eight. Прошлая статья с советами по визуализации данных собрала больше 70 сохранений, поэтому написал вторую часть и дополнил ее примерами кода. 

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views8.5K

«А сколько пользователей выдержит наш сервис?»

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

Когда‑то, ещё в школьные годы, я читала журнал «Хакер» и мечтала, как было бы здорово «ломать серверы» и находить их слабые места.

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

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

Тем не менее, многие команды избегают нагрузки.

«Мы уже проверяли это в начале проекта — зачем снова?»

«Сложно, долго, не для нас.»

«Сделайте отчёт, главное чтобы красиво смотрелось.»

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

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

Читать далее

Трамплин в интернет: как мы ускорили запуск Яндекс Браузера

Reading time6 min
Views5.9K

Привет! Это снова Максим из Яндекс Браузера. Мы с командой продолжаем делиться историями об интересных и неочевидных оптимизациях производительности, которые внедряем в наш браузер. В прошлый раз мы писали о том, как улучшили стабильность GPU‑процесса, воспользовавшись оптимизациями в драйверах видеокарт, сделанными специально для Google Chrome. А сегодня речь пойдёт об ускорении старта нашего браузера на Windows.

Читать далее

Эффект душа: почему отдых и переключение на хобби помогают принимать крутые решения

Level of difficultyEasy
Reading time10 min
Views23K

Привет, Хабр! Вы — трудоголики? А как вам тот факт, что отдых больше помогает работе, чем лишний час перед ПК? И что, на самом деле, вы работаете, когда гуляете, нежитесь в ванной или режете морковь. И что это куда продуктивнее, чем сидеть в IDE или Confluence. Звучит немного парадоксально: как отдых может помочь быть более продуктивным в работе? 

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

Читать далее

Ещё 10 ошибок авторов Хабра

Reading time11 min
Views12K

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

Читать далее

Не нужно оверинжинирить сокращатель ссылок

Level of difficultyMedium
Reading time4 min
Views5.5K

На Reddit я наткнулся на статью про обработку создания 100 тысяч коротких URL в секунду1. [Прим. пер.: автор статьи по ссылке создал три варианта системы; третий, наилучший, по его мнению, вариант при помощи кластера-координатора делит нагрузку на несколько ECS-воркеров, использует DynamoDB TransactWrite для пакетных условных вставок, а для устойчивости применяет кэш Redis.]

Какой же это запутанный оверинжиниренный бардак!

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

Читать далее

Путь самурая к заветной 1К на LeetCode [личный опыт]

Level of difficultyEasy
Reading time3 min
Views11K

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

Читать далее

10 советов, как стать системным архитектором

Level of difficultyEasy
Reading time9 min
Views6K

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

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

Читать далее

Как Мэтт Годболт «продал» мне Rust (рассказав о C++)

Level of difficultyEasy
Reading time7 min
Views15K

Мэтт Годболт, знаменитый разработчик Compiler Explorer — потрясающий человек, вам стоит найти в вебе и изучить весь созданный им контент. Именно этим и занимался, просматривая Correct by Construction: APIs That Are Easy to Use and Hard to Misuse. Я уже больше двадцати лет работаю с C/C++, поэтому эта тема была мне близка.

Когда я смотрел его доклад, ко мне постоянно приходила мысль: «Да! И именно поэтому в Rust это делается так». После просмотра видео я подумал, что этот доклад — отличный способ понять, как Rust помогает разработчикам не только в безопасности по памяти, и в своей статье я расскажу об этом.

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

Читать далее

Где искать проблему в проде: сравнение профилирования с eBPF и BitDive

Level of difficultyMedium
Reading time5 min
Views1.6K

eBPF vs BitDive: Сравнение решений для системного и прикладного профилирования

Разбираем разницу между eBPF и BitDive: системное профилирование против глубокого анализа Java-приложений. Что выбрать для продакшена?

Читать далее

Paging3 в стиле Compose: секретный DSL, о котором молчат все Android-разработчики

Level of difficultyMedium
Reading time11 min
Views2.8K

В статье описан путь преобразования предложенного экспертами Google способа отображения страничных данных с использованием библиотеки Paging3 и Compose от развесистого сборника if'ов и when'ов, вероломно нарушающего все границы архитектурных слоев, до чистого, лаконичного и затягивающего в себя DSL.

Погрузиться в магию

ChatGPT: как искать уязвимости? Набор исследователя

Reading time4 min
Views4.2K

Сегодня мы ничего не ломаем (хотя совсем без этого не обошлось). Просто настраиваем. Хотя я сильно сомневаюсь, что все описанные методы должны работать в продакшене коммерческой модели. Но пока не пофиксили — смотрим.

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

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

Оценка риска этой статьи от ChatGPT: 80-90. Тема чувствительная, с высоким риском для злоупотреблений и манипуляций.

Читать далее

Эмулируем iPhone в QEMU

Level of difficultyMedium
Reading time12 min
Views4.6K

Мы начали наше исследование по эмуляции iOS с изучения уже существующих опенсорсных решений. Ранее мы уже успешно запускали alephsecurity/xnu-qemu-arm64, но нас беспокоило то, что проект имеет статус read-only.

Затем мы попробовали TrungNguyen1909/qemu-t8030 и обнаружили в нём довольно много интересных фич:

возможность восстановления iOS (при помощи второго QEMU-«компаньона» для подключения по USB)

запуск iOS 14
самую свежую версию QEMU
удобную wiki о запуске эмулятора

Благодаря этому проекту мы быстро получили доступ к оболочке и ssh, изменив System/Library/xpc/launchd.plist, что стало отличной отправной точкой.

Читать далее

Как доказывали теорему о четырех красках. Часть 1

Level of difficultyEasy
Reading time11 min
Views5.7K

Всем привет!

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

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

Мне стало интересно разобраться, как именно доказывал эту теорему Кемпе, какой контрпример нашел Хивуд и как в итоге устроено компьютерное доказательство Аппеля и Хакена.

Я не нашел достаточно подробного изложения на русском языке, поэтому взял книгу Робина Уилсона «Four Color Suffice», узнал из нее все, что мне было интересно, и кратко пересказал это для вас. Большинство иллюстраций в статье взято из этой книги.

Приятного чтения!

Читать далее

Как улучшить концентрацию внимания с помощью рекомендаций от СДВГ

Level of difficultyEasy
Reading time4 min
Views2.6K

Нейробиолог и биохакер Эндрю Губерман и психиатр Джон Круз в новом подкасте обсудили комплексный подход к управлению СДВГ. У здорового человека могут периодически проявляться отдельные симптомы, похожие на проявления СДВГ, особенно в условиях стресса, переутомления или недосыпа. Это не означает наличие расстройства, но может временно снижать качество жизни и продуктивность. Решение проблем с концентрацией требует комплексного подхода, который разбираем в статье. 

Читать далее

Java Digest #24

Level of difficultyEasy
Reading time9 min
Views3.1K

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске рассказываем о новых JEPs в OpenJDK, которые вошли в статус Candidate. Спойлер Applet API — RIP. В этом месяце вышли сразу IntelliJ IDEA 2025.1 и OpenIDE — эта битва будет легендарной! 

Мы добавили краткий обзор JavaOne’25. И, как обычно, собрали полезные статьи: как избавиться от Flaky-тестов с помощью JMina, как ZGC аллоцирует память в хипе. Сделали подборку материалов о паттернах и методологиях разработки и разбавили размышлениями о том, как писать хороший код и оставаться профессионалом. 

Читать свежий выпуск

Edge-to-edge в Android: опыт внедрения и рекомендации по тестированию

Level of difficultyMedium
Reading time9 min
Views8.9K

Всем привет! Мы – Саша Королёв и Юля Трусова, инженеры в Design System Авито. Наша команда работает над качеством интерфейсов: актуальностью, предсказуемостью, доступностью. В этой статье рассказываем про наш опыт внедрения edge-to-edge в мобильном приложении Avito для Android.

Материал будет особенно вам интересен, если ваше приложение не использовало режим edge-to-edge, но ввиду последних требований от Google по переходу на target SDK 35, появилась в этом необходимость. Ведь данное обновление применяет режим по умолчанию без возможности его отключить. Из статьи вы узнаете, с какими сложностями столкнулись мы как участники большого проекта при интеграции данного режима в масштабный проект с не одной сотней экранов.

Читать далее

Как довести фичу до продакшена без боли: пошаговый гайд от команды RuStore. Часть 1

Level of difficultyMedium
Reading time11 min
Views1.8K

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

Читать далее

Как простая глюкоза отравляет организм, делая нас толстыми и тревожными: плюс 7 способов остановить это навсегда

Level of difficultyMedium
Reading time11 min
Views16K

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

Материал проверен эндокринологом, доктором Анастасией Белошистой. Вот теперь точно погнали.

Представьте на секунду, что ваш организм – это космический корабль

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

Читать далее

Чистый код — красивая архитектура. А работает ли это?

Level of difficultyEasy
Reading time12 min
Views20K

Вы пишете код не для компилятора — он съест любую абракадабру, если синтаксис верен. Вы пишете для людей, для того парня из соседнего отдела, который будет разбирать ваш код через полгода. Для себя, когда забудете, о чём думали в момент написания. Для тимлида, у которого нет времени расшифровывать ваши «фичи», замаскированные под техдолг. 

Грязный код — это про непонятные переменные, запутанные модули и решения «на скорую руку». Вас ждёт после такого потеря во времени и в лучшем случае косые взгляды коллег. К сожалению, непонятный код часто пишут не только из-за спешки, но и из-за неопытности и чрезмерного энтузиазма тех, кто хочет всё переделать.

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

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

Давайте разберём, как превратить кошмар в конфетку — детали внутри.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity