2 Nov 2023, 10:00 UTC≈1,010 views14 reactionsread 8 August 2026 Kafka vs RabbitMQ
На самом деле брокеров сообщений (они же Message Queues) гораздо больше (ActiveMQ, ZeroMQ, NATS и т. д.), но массово используются именно эти два. Причём, несмотря на некую схожесть на первый взгляд, они предлагают совершенно разный «набор услуг».
Начнём с того, что Kafka — это в первую очередь платформа для стриминга данных, а не брокер сообщений. Она решает задачу распределённой потоковой обработ…
👍14
22 Sept 2023, 11:47 UTC904 views13 reactionsread 8 August 2026 Ситуация: есть задача с простым и элегантным решением, а разработчик приносит на код-ревью какую-то чушь.
Бывает, что ставишь, казалось бы, довольно простую задачу. В голове уже есть план реализации: написать новую функцию и прогнать данные через неё в двух местах кода. Выдаёшь её разработчику, а он через 3 дня возвращается с diff’ом на 50 файлов.
В такие моменты мне хочется оставить всего один комментарий: “WTF?”
…
👍13
13 Sept 2023, 10:15 UTC853 views6 reactionsread 8 August 2026 Поговорим немного про тест-дизайн. Мне понравилась книга "A Practitioner’s Guide to Software Test Design" авторства Ли Коупленда. Ниже приведены несколько базовых техник из нее.
Equivalence Partitioning (Разбиение на эквивалентные классы): Эта техника позволяет разделить входные данные и условия на группы, внутри которых они эквивалентны друг другу. Таким образом, можно выбрать одно представительное значение из кажд…
👍6
11 Aug 2023, 11:26 UTC744 views8 reactionsread 8 August 2026 Тестирование – это не только задача "тестировщика", но и процесс, в котором должны участвовать все члены команды.
- Разработчики: тестирование начинается на этапе написания кода.
- Владелец продукта активно участвует, определяя пользовательские сценарии и истории, которые должны быть протестированы.
- Тестировщики проверяют продукт на соответствие функциональным и нефункциональным требованиям. Они также проводят экс…
👍8
7 Aug 2023, 16:32 UTC723 views11 reactionsread 8 August 2026 Понимание принципа подстановки Лисков (LSP)
Принцип подстановки Лисков (LSP) — это один из пяти принципов SOLID.
Что такое LSP?
LSP гласит, что объекты базового класса должны быть заменяемыми на объекты производных классов без влияния на корректность программы. Другими словами, если ваш код работает с базовым классом, он должен работать так же хорошо и с любым из его производных классов.
Пример 1
У нас есть клас…
👍11
3 Jul 2023, 09:57 UTC660 views4 reactionsread 8 August 2026 Domain-Driven Design
DDD — уже довольно старенький, но все еще распространенный подход к проектированию систем. Забавно, что на собеседованиях буквально каждый способен выдать определение в стиле «разделение приложения на домены», и зачастую на этом все заканчивается.
На самом деле, DDD — это гораздо более масштабное явление, нежели просто организация кода. Во-первых, данное разделение происходит на уровне архитект…
👍4
16 Jun 2023, 10:49 UTC614 views7 reactionsread 8 August 2026 Антипаттерн "Utility class"
Во время код-ревью я часто встречаю в коде классы, в которые напихивают разные методы, у которых фактически нет необходимости находиться в одном классе, так как им не нужен общий state. Давайте поговорим, почему это плохо.
❓ Utility class, что это такое?
Utility class - это класс, содержащий только статические методы. Они часто используются для организации групп функций, которые не привя…
👍7
1 Jun 2023, 11:04 UTC588 views2 reactionsread 8 August 2026 Serverless вычисления
Имхо название для такого подхода крайне неудачное, исходя из которого первый вопрос, который хочется задать, это «если нет сервера, где происходят вычисления? На клиенте?». Хотя, по сути, это более высокий уровень делегирования, при котором сервер находится под управлением провайдера.
Я пока не вижу каких-то значимых преимуществ от бессерверной архитектуры для простого front-end+back-end прило…
👍2
15 May 2023, 11:17 UTC757 views12 reactionsread 8 August 2026 Ведение базы знаний Obsidian.md
Я веду собственную базу знаний по самым разным вопросам. И раньше это дело колхозилось в куче папок Markdown документами, что было, разумеется, не всегда удобно.
Пробовал много как облачных, так и self-hosted сервисов. Меня зацепила буквально пара:
- Evernote – как говорится, в рекламе не нуждается. Несмотря на тонну критики я все еще пользуюсь им для быстрых заметок. Можно делать ре…
👍12
3 May 2023, 10:21 UTC720 views5 reactionsread 8 August 2026 Наткнулся на вот такую статью о том, как составить хорошее резюме для ИТ специалиста, которое зацепит работодателя. Статья написана на основе интервью HR’ов Google и Airtasker.
Написано толково и без копирайтерской воды. Вот, что мне здесь больше всего понравилось:
Summary
Первый блок после ФИО и контактов – Summary, то есть краткое перечисление ваших достоинств, которые помогут понять рекрутеру что вы подходите п…
👍5
25 Apr 2023, 10:05 UTC611 views6 reactionsread 8 August 2026 Описание commit'ов, часть 2
Рекомендую ознакомиться со статьей Chris Beams. Мне кажется, ему удалось лучше всех сформулировать ряд простых правил, следуя которым можно получить информативную историю коммитов, а не набор букв.
Самое распространенное возражение против того, чтобы вести нормальную историю гита — это занимает больше времени и не нужно. Почему это нужно я уже постарался донести в первой части. А вот что…
👍6
21 Apr 2023, 09:41 UTC597 views11 reactionsread 8 August 2026 Описание commit’ов
Вот бывает открываешь историю коммитов, и видишь:
- Fixed
- Done
- Fix tests
- Code Review Fixes
- Ololo i don’t know why i do it
- Итд
И понимаешь, что истории и нет как таковой. Можно просто сделать squash всех коммитов в один, и никто не заметит разницы.
Для меня это очень показательный момент, как команда относится к протоколированию своей активности. И увы, среди всех грехов разработки, этот…
👍11
Showing the 12 most recent of 20 posts we hold for @nikitashpilevoy. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.