Search
Write a publication
Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Что не пишут в документации Kotlin Contracts: тёмные закоулки и пасхалки

Level of difficultyHard
Reading time9 min
Views1.9K

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

Привет! Меня зовут Виталий. Я работаю Android‑разработчиком в Альфа‑Банке. В этой статье я делюсь пасхалками и неожиданными фичами Kotlin компилятора, связанными с Kotlin Contracts: как парсится список эффектов, как работает новый Contracts API изнутри, и почему, чёрт возьми, на уровне компилятора можно использовать контракты не только на уровне функций.

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

Читать далее

Коммуникации: как говорить, чтобы вас слушали (Памятка менеджерам)

Level of difficultyEasy
Reading time5 min
Views17K

Давайте честно: менеджер по большей части работает ртом. Договаривается, придумывает решения, продаёт эти решения окружающим, обосновывает, пинает, пинает, эскалирует, просит… Короче, говорить и объяснять ему приходится примерно все время. И умение четко и ясно доносить свои мысли в правильном ключе для менеджера – критично.

Как говорить так, чтобы от вас не отворачивались через 2 минуты с зевком? Как быстро объяснять занятым людям, в чем смысл вашего вопроса и чего вы хотите? Как сделать так, чтобы ваши вопросы решались руководителями за 2 минуты, вместо недель ожидания аудиенции? Ну и вообще: как перестать быть душным и негативным и стать быстрым и позитивным всего за пару приемов (не таких уж и простых, но все же)?

Вот об этом коротенько давайте поговорим в этой статье.

Эта статья написана по мотивам публикаций в моем ТГ канале «Морковка спереди, морковка сзади», который полностью посвящен управлению в IT, особенно в том, чему никто толком не учит – сфотскиллам. Если вам это интересно, заходите, читайте и подписывайтесь. Ну и читайте другие мои статьи на Хабре про управление.

Читать далее

Магия чисел в System Design: эти формулы спасут вас от банкротства и помогут оптимизировать вашу систему

Reading time9 min
Views4.2K

При проектировании систем, обязательным этапом является расчет нагрузки и стоимости на вашу IT-Систему. Давайте разберемся что это за этап и почему он так важен. А также вместе посчитаем основные показатели нагрузки и договоримся о стоимости решения.

Читать далее

CryptoProBuilder — fluent-интерфейс для КриптоПро на PHP: подпись, шифрование и работа с контейнерами

Level of difficultyEasy
Reading time7 min
Views1.6K

КриптоПро предоставляет мощные, но неудобные для автоматизации утилиты. CryptoProBuilder — это fluent-интерфейс на PHP, который упрощает подписание, шифрование и работу с сертификатами, без необходимости использовать сложный SDK.

Читать далее

Диаграмма потоков данных (DFD) для чайников: что это такое, как сделать и какой бывает

Level of difficultyEasy
Reading time5 min
Views5.6K

Диаграмма потоков данных (DFD) — схема, которая показывает, где информация застревает, дублируется или исчезает в никуда. Со стороны такая схема может казаться архаикой — зачем рисовать стрелочки, если можно сразу писать код? Ответ прост: исправлять проблемы в уже написанном коде дороже, чем на этапе проектирования.

В статье собрали основу про DFD для тех, кто с ней не сталкивался: зачем ее используют и как изображают.

Читать далее

Зачем и как писать ТЗ

Reading time13 min
Views6.7K


Эта статья написана для заказчиков разработки, в основном касается IT-продуктов на ранних стадиях. Цель статьи — дать понимание, что писать в ТЗ, как и главное, зачем.

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

Читать далее

Настраиваем CI/CD Android-проекта, часть 3. Автоматизация публикации версий в Play Store

Level of difficultyMedium
Reading time25 min
Views1.5K

Всем привет, меня зовут Кирилл и я Android-разработчик в Scanny. В прошлых статьях мы разобрали, как будет выглядеть наш CI/CD, научились запускать статический анализатор кода, выполнять Android (Marathon Labs и Firebase Test Lab) и Unit-тестирование, собирать различные Build Flavors и отправлять их в нашу Telegram-группу.

В этой статье мы настроим публикацию свежих версий в Play Market на примере Gradle Play Publisher и Fastlane, а так же поработаем с Gitlab Tag'ами.

Так же улучшим наш CI/CD, собрав свой Docker-образ со всем необходимым окружением.

Читать далее

Разбираемся со Spring Boot с помощью Spring Debugger

Level of difficultyEasy
Reading time5 min
Views5.3K

Команда Spring АйО перевела статью о работе со Spring Debugger и о том, как его применение существенно облегчает отладку приложений, написанных с использованием Spring Boot. На момент написания статьи фича доступна только в Ultimate версии IntelliJ IDEA.

Читать далее

Красивый GitLab CI: extends, якоря, include, trigger

Level of difficultyMedium
Reading time9 min
Views10K
image

В последнее время мне довелось столкнуться с огромным количеством CI в GitLab. Я каждый день писал свои и читал чужие конфиги. Мой день буквально выглядел как:
Читать дальше →

Авторизация OAuth 2.0 в PostgreSQL на примере Keycloak

Level of difficultyEasy
Reading time27 min
Views4.4K

Привет, Хабр! Мы продолжаем цикл статей о нововведениях СУБД Tantor Postgres 17.5.0, и сегодня поговорим о поддержке авторизации через OAuth 2.0 Device Authorization Flow — это современный и безопасный способ предоставления доступа, который позволяет приложениям запрашивать доступ к PostgreSQL от имени пользователя через внешнего провайдера идентификации и управления доступом, например Keycloak, что особенно удобно для облачных сред и микросервисных архитектур (функция будет также доступна в PostgreSQL 18). В статье пошагово разберём настройку OAuth-авторизации в PostgreSQL с использованием Keycloak: настроим Keycloak, подготовим PostgreSQL, напишем валидатор токенов OAuth в PostgreSQL и проверим успешную авторизацию через psql с использованием Device Flow.

Читать далее

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

Level of difficultyEasy
Reading time21 min
Views13K

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

Читать далее

SOAP, WSDL и немножко Python создаём веб-сервис шаг за шагом

Level of difficultyEasy
Reading time24 min
Views4.4K

Практика — лучший способ глубокого понимания теории. Рассмотрим на примере, как работают веб-сервисы с протоколом SOAP, для чего нужен WSDL и как он связан с XML-документом в теле POST-запроса.

Читать далее

Полный гид по 50 идеям, которые формируют современное мышление: от А до Я

Level of difficultyEasy
Reading time32 min
Views25K

Привет, Хабр! Представьте, что ваш мозг — это IDE, в которой 95% крутых плагинов попросту спят. Мы часто слышим об «Антихрупкости» или «FOMO», но сейчас этого стало настолько много, что я решил аггрегировать всё в одну статью, с примерами, чтобы всем было понятно.

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

Читать далее

Как работает @Lazy в Spring — и когда он полезен

Level of difficultyEasy
Reading time4 min
Views4.2K

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

Если вы хоть раз писали хоть что‑то сложнее REST‑контроллера в Spring, вы наверняка ловили больную ситуацию: два бина зависят друг от друга, инициализация идёт по кругу, и вот он — BeanCurrentlyInCreationException. И если в этот момент вы вспомнили про @Lazy — вы молодцы.

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

Читать далее

Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 2

Level of difficultyEasy
Reading time13 min
Views4.1K

Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно нарастить производительность приложения, оптимизировав его взаимодействие с БД. 

Доклад будет опубликован тремя частями. В первой части было рассказано об оптимизации управления подключениями к базе данных. Во второй части мы посмотрим на то, как оптимизировать код и настройки Spring Data и Hibernate, чтобы минимизировать количество отправляемых в базу данных SQL запросов. 

Читать далее

Chocolatey + PowerShell: как развернуть софт на 100 ПК за час

Level of difficultyEasy
Reading time7 min
Views4.5K

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

Но есть способ лучше - автоматизация через Chocolatey и PowerShell. В этой статье разберём:

1. Как развернуть ПО на всех машинах за кратчайший срок;
2. Как создать собственные пакеты и управлять ими;
3. Как внедрить данное решение в вашу организацию.

Если вы системный администратор, DevOps, ИТ-инженер или специалист ТП - постараюсь помочь сэкономить вам десятки часов рутинной работы.

Читать далее

Как строить ИТ-инфраструктуру: лучшие практики и обучающие ресурсы

Reading time4 min
Views4.6K

Привет, Хабр. В этом дайджесте мы собрали обучающие материалы по ИТ‑инфраструктуре — чтобы вы могли получить нужные знания точечно или системно и перенять лучшие практики от экспертов индустрии, так сказать, не отходя от станка. Без долгих предисловий, перейдём к делу.

Читать далее

«Hello, World!» и прощай: Почему новички сливаются из IT быстрее, чем успевают написать первую программу

Reading time5 min
Views47K

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

Но за красивой картинкой — тысячи часов проб и ошибок, выгорание, бессонные ночи и жёсткая конкуренция. Готовы ли вы на самом деле к этому пути? Или просто верите в сказку?

Warning! Warning! Warning! В этой статье я буду душнить…

Читать далее

Ansible, bash и я: три мушкетёра в мире автоматизации управления компьютерами на Linux

Level of difficultyEasy
Reading time10 min
Views7.8K

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

Не стойте на пороге - читайте дальше!

Information

Rating
Does not participate
Registered
Activity