Как стать автором
Обновить
11
0

Java developer

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

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Время на прочтение25 мин
Количество просмотров125K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


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

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →
Всего голосов 94: ↑92 и ↓2+90
Комментарии37

Знакомство с Debezium — CDC для Apache Kafka

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


В своей работе я часто сталкиваюсь с новыми техническими решениями/программными продуктами, информации о которых в русскоязычном интернете довольно мало. Этой статьей постараюсь восполнить один такой пробел примером из своей недавней практики, когда потребовалось настроить отправку CDC-событий из двух популярных СУБД (PostgreSQL и MongoDB) в кластер Kafka при помощи Debezium. Надеюсь, эта обзорная статья, появившаяся по итогам проделанной работы, окажется полезной и другим.

Что за Debezium и вообще CDC?


Debezium — представитель категории программного обеспечения CDC (Capture Data Change), а если точнее — это набор коннекторов для различных СУБД, совместимых с фреймворком Apache Kafka Connect.
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии1

Сбор метрик Spring Boot приложения c помощью Prometheus и Grafana

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

В данной статье рассмотрен пример работы с метриками. В начале, настройка приложения для поставки метрик. Настройка Prometheus для сбора и хранения метрик. Настройка Grafana для отображения собранных метрик.

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии2

@Transactional в Spring под капотом

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

Spring предоставляет много удобств и многие его возможности кажутся магией - поставил аннотацию и все работает. Но, когда что-то идет не так (например, почему-то не работают транзакции как ожидается), приходится лезть внутрь и смотреть, где сломалось. В статье показан путь от создания инфраструктуры для обработки Transactional до обработки исключений.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии28

Разбираемся с partitions в PostgreSQL 9

Время на прочтение7 мин
Количество просмотров24K
PostgreSQL 10 был выпущен еще в начале октября 2017го, почти год назад.

Одна из наиболее интересных новых “фич” — это безусловно декларативное партиционирование. Но что, если вы не спешите апгрейдится до 10ки? Вот Amazon, к примеру, не торопится, и ввел поддержку PostgreSQL 10 только в последних числах февраля 2018-го.

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

Поскольку мы начали переписывать нашу финансовую систему в 2015ом, когда я только присоединился к компании, ни о каком декларативном партиционировании речи не шло. Так что и по сей день успешно используется методика описанная ниже.

Изначальной причиной написания статьи стало то, что большинство примеров partitioning’а в PostgreSQL с которыми я сталкивался были очень базовыми. Вот таблица, вот одна колонка, на которую мы смотрим, и быть может даже заранее знаем, какие значения в ней лежат. Казалось бы, все просто. Но реальная жизнь вносит свои коррективы.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии7

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google

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

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google.

Читать далее
Всего голосов 168: ↑158 и ↓10+148
Комментарии297

Реализация сервера авторизации OAuth с помощью сервера авторизации Spring

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

Сервер авторизации в OAuth предназначен для выдачи маркера доступа, который позволяет клиентскому приложению использовать этот маркер доступа для запроса ресурса, который ему нужно получить. Сервер ресурсов будет подтверждать этот маркер доступа с помощью сервера авторизации каждый раз, когда клиентское приложение запрашивает ресурс, чтобы определить, следует ли разрешить клиентскому приложению доступ к этому ресурсу. Вы можете использовать множество различных открытых источников, таких как Keycloak, Spring Security OAuth (устаревший), или же новый проект Spring под названием Spring Authorization Server для реализации этого сервера авторизации. В этом руководстве я покажу вам, как использовать сервер авторизации Spring (Spring Authorization Server) для реализации сервера авторизации OAuth (OAuth Authorization Server)!

Сначала я создам новый проект Spring Boot с Web Starter, Security Starter:

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

Делаем лампочку вечной и суперэффективной

Время на прочтение3 мин
Количество просмотров90K
Я нашёл новую отличную светодиодную лампу, которую можно за пять минут превратить в вечную.
Получится лампа, дающая 816 лм, с рекордной эффективностью почти 150 лм/Вт и почти неограниченным сроком службы.

Читать дальше →
Всего голосов 143: ↑139 и ↓4+135
Комментарии170

Tarantool vs Redis: что умеют in-memory технологии

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

В этой статье я хочу сравнить Redis и Tarantool. У меня нет цели сделать громогласный вывод «Tarantool лучше!» или «Redis круче!». Я хочу понять их сходства и отличия, разобраться, для каких задач какую технологию выбрать. Потому что это очень близкие на первый взгляд вещи, и вопросы про их отличия я вижу часто.

Для этого мы посмотрим на технологии в трёх частях:

  • Вначале посмотрим глазами новичка. Что такое БД в памяти? Какие задачи они решают лучше дисковых БД?
  • Потом посмотрим архитектурно. Как обстоит вопрос с производительностью, надёжностью, масштабированием?
  • В третьей части лезем в технические вещи поглубже. Типы данных, итераторы, индексы, транзакции, ЯП, репликация, коннекторы.

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

Поехали!
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии81

Как египетский фараон Аменхотеп основал христианство, и почему оно стало идеальным мемом

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

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

Я вырос в абсолютно нерелигиозной семье. Среди моих знакомых и друзей тоже почти не было религиозных людей. Поэтому с самого детства меня мучал один вопрос: почему существуют религии? Заметьте, вопрос состоял не в том, почему люди верят в Бога, хотя это тоже было мне не совсем понятно, а именно почему существуют религии с их нелепыми ритуалами и ограничениями. Раньше я считал их дремучими пережитками прошлых времен, простой картиной мира для глупых людей и удобным способом для властей управлять людьми. Но потом узнавая все больше и больше, я начал сомневаться. Факт, который в дребезги разбивал любые мои аргументы о том, что религия - это плохо: у всех когда-либо существовавших цивилизаций и обществ на нашей планете была своя религия. Это значило, что без религии цивилизация не может существовать. Но я все еще не мог понять почему. И вдруг совсем недавно я нашел простой и логичный ответ на этот вопрос в совершенно неожиданном месте.

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

Читать далее
Всего голосов 184: ↑128 и ↓56+72
Комментарии749

Как удалить «неудаляемые» приложения со смартфона

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


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

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Всего голосов 190: ↑179 и ↓11+168
Комментарии203

Странный вкус, как симптом

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

Вы когда-нибудь ловили себя или своих близких на странных вкусовых пристрастиях или излишествах? Не казалось ли вам, что 5 ложек сахара в чай уже не делают его сладким? Острый перец не такой уж и острый? А может быть вам нравится странное сочетание сладкого и соленого? Рыба с сиропом? Мороженное с пивом?

Читать далее
Всего голосов 114: ↑109 и ↓5+104
Комментарии59

Как я узнал о тайных услугах Мегафона

Время на прочтение3 мин
Количество просмотров125K
Добрый день всем!

Началось всё с того, что поздно вечером мне позвонила девушка из Мегафона и пролепетала что-то про скидочные купоны-талоны, которые появятся в моём личном кабинете. Мол, это просто партнерская программа и она не хочет, чтобы я пропустил такую прекрасную возможность.
Читать дальше →
Всего голосов 192: ↑179 и ↓13+166
Комментарии293

Ажиотажный спрос на новые карты Nvidia — заслуга не производителя, а косоруких разработчиков игр

Время на прочтение9 мин
Количество просмотров37K
После презентации новой линейки видеокарт серии RTX 3000, компания производитель графических чипов Nvidia столкнулась с беспрецедентным спросом на свою новую продукцию. Превышение розничных цен на топовые модели RTX 3080 и RTX 3090 составляет и $500 и более, что больше рекомендованной цены на 30-60%.



Причем просто на завышенных относительно оглашенных на презентации ценах проблемы с новыми RTX не заканчиваются. Так, один из официальных торговых партнеров MSI был уличен в спекуляции новыми видеокартами на онлайн-аукционах, а сами Nvidia заявляют, что купить по адекватной стоимости новые RTX 3080 и RTX 3090 можно будет не раньше следующего года. При этом релиз и поступление в продажу самой «вкусной» карточки RTX 3070 было вовсе отложено на две недели, с 15 на 29 октября 2020 года.

Человек, далекий от ПК-гейминга и релизов флагманских моделей железа справедливо спросит: «вы там что, совсем кукухой поехали? Какие 1200-1500$ за видеокарту? Какой ажиотажный спрос? Что вообще происходит?» Так вот, сейчас я, автор статьи, объясню, почему Nvidia столкнулась с таким ажиотажем вокруг RTX 3000 серии и почему геймеры с нетерпением ждут поступления в продажу этих видеокарт по заявленной стоимости.
Всего голосов 121: ↑76 и ↓45+31
Комментарии327

Популярная музыка на самом деле деградирует

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

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

Читать далее
Всего голосов 252: ↑234 и ↓18+216
Комментарии868

Графические войны #1: лагающее пиксельное XX столетие

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

50 лет истории видеокарт (1970-2020): Полная история видеокарт и их прародителей


Часть 1


Часть 2

Компьютерная графика. Услышав эти слова, мы представляем поражающие воображение спецэффекты из крупных блокбастеров, красивейшие модели персонажей из ААА-игр, и всё, что связано с визуальной красотой современных технологий. Но компьютерная графика, как и любой технологический аспект, развивалась не одно десятилетие, преодолев путь от отображения нескольких символов на монохромном дисплее до поражающих воображение пейзажей и героев, с каждым годом всё сложнее отличимых от реальности. Сегодня мы начнем рассказ о том, как начиналась история компьютерной графики, вспомним, как появился термин «видеокарта» и сокращение GPU, и какие технические рубежи год за годом преодолевали лидеры рынка, в стремлении покорения новой аудитории.

image

Предисловие эпохи. Зарождение компьютеров (1940-е/1950-е)


Эпоха компьютерных технологий у многих вызывает ассоциации с началом эпохи персональных компьютеров в начале 80-х, но на самом деле первые компьютеры появились гораздо раньше. Первые разработки таких машин начались еще до Второй Мировой войны, а прототипы, отдаленно напоминающие будущие ПК, увидели свет уже в 1947 году. Первым таким устройством стал IBM 610 — экспериментальный компьютер, разработанный Джоном Ленцем из Уотсоновской лаборатории при Колумбийском университете. Он первым в истории получил гордое название «Персонального автоматического компьютера» (Personal Automatic Computer, PAC), хотя оно и было слегка преувеличенным – машина стоила $55 тысяч, и было изготовлено всего 150 экземпляров.

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии25

В Tarantool можно совместить супербыструю базу данных и приложение для работы с ними. Вот как просто это делается

Время на прочтение15 мин
Количество просмотров12K
Пять лет назад я попробовал работать с Tarantool, но тогда он мне не зашел. Но недавно я проводил вебинар, где рассказывал про Hadoop, про то, как работает MapReduce. Там мне задали вопрос — «А почему под эту задачу не использовать Tarantool?».

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


Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии42

Расследование: как обезличенные данные становятся персональными и продаются на сторону

Время на прочтение14 мин
Количество просмотров38K
Неделю назад мне в очередной раз позвонили и предложили купить какой-то новый автомобиль в салоне, где я точно никогда не бывал. На простой вопрос о том, откуда звонивший взял мой номер телефона и мои имя и отчество, последовал прямой ответ — мы выбрали ваш номер случайным образом из номерной емкости. В это объяснение я не поверил, и решил поинтересоваться тем, как устроен рынок данных и понять, кто может сливать информацию о пользователях и как легко и виртуозно интернет-монополисты обходят стороной закон «О персональных данных» (№152-ФЗ).

Читайте под катом о том, кто монетизирует мои данные и как они попадают в руки компаний, услугами которых я никогда не пользовался — банков, страховых компаний, медицинских центров, застройщиков и прочих организаций с надоедливыми рекламными звонками. И да, это лонгрид, всё как вы любите.
Читать дальше →
Всего голосов 85: ↑79 и ↓6+73
Комментарии74

Мы тратим годы на то, что делается неделю — потому что все ларьки заигрались в IT-гигантов

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


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

Если бы меня кто-то спросил, за сколько можно сделать такое приложение в одиночку — я бы сказал: «два месяца на разработку, один на тестирование». Но нас было много, поэтому мы работали больше двух лет.
Читать дальше →
Всего голосов 262: ↑220 и ↓42+178
Комментарии257

Camel в вопросах и ответах

Время на прочтение14 мин
Количество просмотров54K
6-7 апреля в Москве в шестой раз пройдет JPoint – международная Java-конференция для опытных разработчиков. В этот раз в ней примет участие Клаус Ибсен (Claus Ibsen) – старший инженер Red Hat, гуру Apache. Ниже приводим перевод начала его книги «Camel in Action» – эксклюзивно для читателей нашего блога.



Читать дальше: Camel в вопросах и ответах
Всего голосов 8: ↑8 и ↓0+8
Комментарии16
1
23 ...

Информация

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