Pull to refresh
26
0
Николай Шипяков @nshipyakov

Пользователь

Send message

Пишем plugin для IDEA, используя External System API, на примере простой build системы

Level of difficultyMedium
Reading time20 min
Views1.1K

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

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

Всем этим условиям удовлетворяют популярные билд-системы: Gradle, Maven, Sbt и не только, например Docker-compose. IDEA плагины для них построены на External System API. Поэтому для написания своего плагина, я также использовал данное API и хочу рассказать о нем более подробно.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments4

Разница между загрузкой и инициализацией классов в Java на любопытном примере

Level of difficultyMedium
Reading time9 min
Views13K

Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце).


Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments2

Практики ChatOps с VK Teams (часть I): мини-аппы, таск-трекеры, Bot API

Reading time11 min
Views11K


Всем привет! Меня зовут Макарий, я DevOps-инженер в команде кросс-платформенной инфраструктуры корпоративного супераппа VK Teams. Сегодня я расскажу, как мы применяем практики ChatOps в наших рабочих процессах.

ChatOps — модель организации работы и коммуникации внутри команды через общение, то есть через мессенджер. Такой подход объединяет разработчиков, DevOps-инженеров, QA-специалистов, инженеров поддержки, продуктовых менеджеров, аналитиков и других участников процесса в единую коммуникационную платформу. Я расскажу, как ChatOps помогает организовать работу команды: повышает производительность, ускоряет реагирование на инциденты, улучшает согласованность действий. Поделюсь успешными примерами внедрения принципов СhatOps на примере нашей команды VK Teams. Уверен, этот опыт откроет для ваc новые возможности, которые предоставляет ChatOps.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments2

Как с помощью практики на LeetCode я получил несколько офферов

Level of difficultyEasy
Reading time4 min
Views51K

После рассказа о том, как я получил работу в Amazon, в этом посте на reddit мне задали множество вопросов о том, как мне помог LeetCode в подготовке к собеседованиям.

В статье я отвечу на эти вопросы.

Сколько времени это заняло?

Я начал готовиться за 2-3 месяца до собеседований в BigTech. В то время я тратил по 2-3 часа в день на подготовку.

Читать далее
Total votes 46: ↑40 and ↓6+34
Comments54

Больше книг о СУБД — для тех, кто хочет погрузиться в работу с PostgreSQL

Level of difficultyEasy
Reading time4 min
Views6.2K
image

Недавно мы подготовили подборку литературы для тех специалистов, кто хочет поближе познакомиться с Redis. Сегодня мы продолжаем тему и говорим о настоящей легенде. Шутка ли — PostgreSQL развивают с 1996 года. За это время СУБД успела «обрасти» крупным сообществом и не потеряла актуальности. На рынок до сих пор выходят посвящённые ей книги. Мы собрали наиболее свежие издания — им не более двух лет. Все материалы в подборке получили высокие оценки и рекомендации от резидентов Hacker News и Reddit.

Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments3

Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go?

Level of difficultyMedium
Reading time19 min
Views9.9K

В июле в офисе РСХБ-Интех (технологической дочки Россельхозбанка) состоялся бесплатный митап для Java-разработчиков — RSHB Backend Dev Meetup. Обсудили Kotlin, Go, маппинг и разные аспекты бэкэнд-разработки. В числе докладчиков выступал Иван Кочергин, руководитель центра собственной разработки РСХБ-Интех. Иван более 10 лет занимается разработкой на Java, последние три года — на Kotlin. В своем докладе он сравнил, на чем лучше писать микросервисы в банке: Java, Kotlin или Go. Делимся расшифровкой доклада. Запись всего митапа можно посмотреть на Rutube.

Читать далее
Total votes 33: ↑23 and ↓10+13
Comments17

Java Digest #1

Level of difficultyEasy
Reading time5 min
Views7.4K

Всем привет! 👋 👋 👋

Мы — Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и решили делиться этим не только с коллегами, но и со всем сообществом. 

Льюис Кэрролл писал: «Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!» Надеемся, что поможем немного сберечь силы в этом марафоне всем читателям. Stay tuned! 😉

Читать первый выпуск
Total votes 27: ↑27 and ↓0+27
Comments3

Как в 3 раза снизить затраты на отказоустойчивую инфраструктуру, переехав с Hazelcast на Redis

Level of difficultyEasy
Reading time10 min
Views6.4K

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

Читать далее
Total votes 29: ↑28 and ↓1+27
Comments18

COROUTINES-23: code review fixes

Level of difficultyMedium
Reading time7 min
Views6.1K

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

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments6

Даже Amazon не может разобраться в serverless и микросервисах

Level of difficultyEasy
Reading time3 min
Views37K

Эта заметка является переводом поста в блоге Дэвида Ханссона под заголовком «Even Amazon can't make sense of serverless or microservices». Здесь минимум редактуры для сохранения оригинальной авторской подачи.

Команда Prime Video из Amazon опубликовала довольно примечательное тематическое исследование, посвящённое их решению отказаться от своей микросервисной serverless-архитектуры и заменить её монолитом. Этот шаг сэкономил им ошеломляющие 90% (!!) эксплуатационных расходов, а также упростил систему. Какая победа!

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

Читать далее
Total votes 79: ↑53 and ↓26+27
Comments94

Будущее после оркестраторов

Reading time6 min
Views7.4K

Оркестрация — это убийство времени.

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

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

Читать далее
Total votes 12: ↑10 and ↓2+8
Comments2

Чем новее, тем лучше: как мы с GSON на Kotlinx.Serialization переезжали

Level of difficultyMedium
Reading time12 min
Views8.8K

Привет, Хабр! Я Андрей Мещеряков, Android-разработчик в команде роста Тинькофф Инвестиций. Мы в Инвесте всегда стараемся пробовать новое и поддерживать современный стек технологий. Не обошли стороной и библиотеку Kotlinx.Serialization, которой сейчас пользуемся. Меня удивило малое количество русскоязычных публикаций по Kotlinx.Serialization, и я решил поделиться опытом Инвеста по миграции с Gson на Kotlinx.

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

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments5

История о том, как мы на Module Federation съезжали. Часть 1

Level of difficultyEasy
Reading time5 min
Views4.1K

Всем привет! На связи Максим Смирнов, архитектор по фронтенду в Тинькофф. В серии статей будет история о том, как мы переписывали один из монолитных сервисов на Federation.

Расскажу о том монолите, который переписали, и как дошли до момента, что надо распилиться. Еще покажу, какие фишки мы накрутили в Module Federation, потому что из коробки многих фич нет, надо докручивать самим. Добро пожаловать под кат!

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments2

Две культуры программирования: почему обе из них важны?

Reading time13 min
Views56K
Уже несколько лет я замечаю, что программисты и программистские инструменты делятся на две разные культуры:



Изначально я человек первой культуры и очень долгое время считал вторую несерьёзной. Пару-тройку лет назад я окончательно понял, что ошибался. Многие «старички» ошибаются в ту же сторону, а в последние годы ещё большее число людей ошибаются в обратную. Знакомство с соседней культурой и понимание, почему дела в ней делаются так, как там принято, превратит вас в лучшего разработчика.
Читать дальше →
Total votes 190: ↑172 and ↓18+154
Comments107

CI, кодстайл и TDD: обзор практик для повышения качества кода

Reading time8 min
Views11K

Blade Runner 2049, Warner Bros. Pictures

Я видел не во сне, а наяву атакующие корабли, пылающие под четырьмя вложенными if-else, и лучи CI с кучей сканирований у ворот Тангейзера, вызывающие лютую боль разработчиков. Меня зовут Максим Морев, и я техлид в Газпромбанке.

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

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments8

Spring Modulith: достигли ли мы зрелости модульности

Reading time6 min
Views5.5K

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

Однако минусы микросервисов настолько огромны, что это все равно, что отрубить себе правую руку, чтобы научиться писать левой; есть более управляемые (и менее болезненные!) способы достижения того же результата.

Даже с тех пор, как началось повальное увлечение микросервисами, возобладали некоторые более хладнокровные. В частности, Оливер Дротбом, разработчик среды Spring, долгое время был сторонником альтернативы moduliths. Идея состоит в том, чтобы сохранить монолит, но спроектировать его вокруг модулей.

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments13

Использование SEDA со Spring Integration и Apache Camel

Reading time13 min
Views3.2K

SEDA, или Staged Event-Driven Architecture, представляет собой архитектурный стиль, предложенный Мэттом Уэлшем в его докторской диссертации. диссертация. Его основными преимуществами являются масштабируемость, поддержка высококонкурентного трафика и удобство эксплуатации.

В этом туториале мы будем использовать SEDA для подсчета уникальных слов в предложении с помощью двух разных реализаций: Spring Integration и Apache Camel.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments0

Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение

Reading time10 min
Views8.7K

"Отдайте этот функционал в другую системы - он относится к ним" - ворчал мой собеседник. Ему с пылом отвечали: "Так быть не должно. Мы сами должны его сделать!" Спор грозил затянуться до вечера. Ни одна из сторон не могла привести ни одного настоящего аргумента, почему новый функционал нужно поместить в ту или иную автоматизированную систему.

Проблема была в том, что никто не понимал как правильно делить системы на части и по каким признакам включать в них новые модули. У собеседников не было никакой единой простой методики.

Но методика на самом деле есть, и весьма неплохая. Называется она Предметно Ориентированным Дизайном (Domain Driven Design, DDD). С помощью DDD деление большой системы на (микро)сервисы становится простым и понятным.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments1

Technical Governance для IDP на 7000 разработчиков

Reading time14 min
Views5.1K

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

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments4

История Android от L до T

Reading time25 min
Views21K

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

В июне я выступил с докладом об этом на конференции Mobius, а теперь для аудитории Хабра публикую его текстовую версию. Если есть что добавить — пишите в комментариях!

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments17
1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity