Я недавно «засветился» в ролике одного очень крутого блогера - Саши Круасановой )))
Она Королева горячих инсайдов и актуальных кейсов, devrel-фея, экспертно решающая проблемы и споры на всех уровнях.
У нее прикольный контент. Если нравится, то подписывайтесь )))
https://tttttt.me/kruasanova_as
Она Королева горячих инсайдов и актуальных кейсов, devrel-фея, экспертно решающая проблемы и споры на всех уровнях.
У нее прикольный контент. Если нравится, то подписывайтесь )))
https://tttttt.me/kruasanova_as
Telegram
Sasha Kruasanova PROIT
Я — Саша Русанова.
Королева горячих инсайдов и актуальных кейсов, devrel-фея и IT HR.
Здесь будет много про Пересечение технологий, профессий и реальной жизни.
Для связи со мной: @rusanova_as
Королева горячих инсайдов и актуальных кейсов, devrel-фея и IT HR.
Здесь будет много про Пересечение технологий, профессий и реальной жизни.
Для связи со мной: @rusanova_as
Зачем нам вообще изучать Domain-Driven Design? Какая от него польза?
На это есть как минимум 5 причин:
👉 Благодаря разделению на Предметные Области, код становится понятнее.
Код, грамотно декомпозированный по доменам, легче читать и понимать, поскольку он отражает реальные бизнес-процессы. Читая понятный код, мы вырабатываем больше эндорфина и меньше кортизола.
👉 Единый Язык улучшает коммуникации.
Все члены команды, включая бизнес, лучше понимают друг друга, что благотворно сказывается на понимании постановок. Меньше приходится переделывать.
👉 Благодаря Ограниченному Контексту, предметные области проще делить на модули. Это особенно касается больших проектов — маленькими узкоспециализированными компонентами проще управлять.
👉 Инкапсуляция компонентов особенно важна для быстрорастущих систем. Системы, чётко структурированные по бизнес-процессам, дольше смогут выдерживать высокий темп изменений.
👉 Жёсткое структурирование по предметным областям спасёт при слабой или невнятной аналитике. Что позволит нам, разработчикам, дольше выдерживать покер-фейс посреди аналитического хаоса.
https://habr.com/ru/companies/sberbank/articles/781612/
На это есть как минимум 5 причин:
👉 Благодаря разделению на Предметные Области, код становится понятнее.
Код, грамотно декомпозированный по доменам, легче читать и понимать, поскольку он отражает реальные бизнес-процессы. Читая понятный код, мы вырабатываем больше эндорфина и меньше кортизола.
👉 Единый Язык улучшает коммуникации.
Все члены команды, включая бизнес, лучше понимают друг друга, что благотворно сказывается на понимании постановок. Меньше приходится переделывать.
👉 Благодаря Ограниченному Контексту, предметные области проще делить на модули. Это особенно касается больших проектов — маленькими узкоспециализированными компонентами проще управлять.
👉 Инкапсуляция компонентов особенно важна для быстрорастущих систем. Системы, чётко структурированные по бизнес-процессам, дольше смогут выдерживать высокий темп изменений.
👉 Жёсткое структурирование по предметным областям спасёт при слабой или невнятной аналитике. Что позволит нам, разработчикам, дольше выдерживать покер-фейс посреди аналитического хаоса.
https://habr.com/ru/companies/sberbank/articles/781612/
Хабр
Domain-Driven Design: чистая архитектура снизу доверху
Когда мидл-разработчик дорастает до сеньора, его, обычно мучает вопрос: « как правильно писать приложение ?» Понятно, что когда он был джуном, ему давали совсем атомарные задачи и он...
system-design-cheat-sheet
При собеседовании на позицию Senior+ во многих компаниях проводят этап System Design. На нем вам нужно показать ваш кругозор и умение проектировать архитектуру. По ссылке ниже репозиторий с краткой выжимкой по теме System Design.
https://github.com/gavr-dev/system-design-cheat-sheet
При собеседовании на позицию Senior+ во многих компаниях проводят этап System Design. На нем вам нужно показать ваш кругозор и умение проектировать архитектуру. По ссылке ниже репозиторий с краткой выжимкой по теме System Design.
https://github.com/gavr-dev/system-design-cheat-sheet
GitHub
GitHub - gavr-dev/system-design-cheat-sheet: System Design cheat sheet
System Design cheat sheet. Contribute to gavr-dev/system-design-cheat-sheet development by creating an account on GitHub.
50 терминов системного дизайна, которые должен знать каждый разработчик
https://habr.com/ru/companies/timeweb/articles/846420/
https://habr.com/ru/companies/timeweb/articles/846420/
Хабр
50 терминов системного дизайна, которые должен знать каждый разработчик
1. Масштабируемость / Scalability Масштабируемость — это способность системы поддерживать возросшую нагрузку путем добавления дополнительных ресурсов Примером является добавление дополнительных...
Английский для разработчиков
Хочу поделиться с вами бесплатным курсом английского специально для разработчиков на freeCodeCamp. Можно подтянуть свой уровень до А2. Там 105 уроков, каждый с практическими заданиями.
https://freecodecamp.org/learn/a2-english-for-developers
Хочу поделиться с вами бесплатным курсом английского специально для разработчиков на freeCodeCamp. Можно подтянуть свой уровень до А2. Там 105 уроков, каждый с практическими заданиями.
https://freecodecamp.org/learn/a2-english-for-developers
www.freecodecamp.org
Learn to Code — For Free
Управляем Arduino при помощи Java
Если вы хотите вынести логику работы с Arduino на ПК или Raspberry Pi и при этом писать на Java, то в этом вам поможет Firmata (готовая прошивка для Arduino) и Firmata4j (Java библиотека). В статье на стороне Raspberry Pi для примера поднимается Spring Boot приложение для управления Arduino.
https://foojay.io/today/control-your-arduino-with-spring/
Если вы хотите вынести логику работы с Arduino на ПК или Raspberry Pi и при этом писать на Java, то в этом вам поможет Firmata (готовая прошивка для Arduino) и Firmata4j (Java библиотека). В статье на стороне Raspberry Pi для примера поднимается Spring Boot приложение для управления Arduino.
https://foojay.io/today/control-your-arduino-with-spring/
foojay
Control your Arduino with Spring | Foojay.io Today
Learn how to use Firmata4j to control an Arduino board from a Raspberry Pi board or directly from your computer.
Исправление зависимостей в один клик
Если вы работаете с Gradle, то вам стоит обратить внимание на Dependency Analysis Gradle Plugin. Этот плагин помогает находить лишние зависимости и автоматически исправлять проблемы с ними. Однако стоит быть осторожным с этим плагином так как он может давай "осечки" на сложных скриптах. Это связанно с тем, что плагин использует упрощенную грамматику для парсинга. В будующих версиях парсинг обещают улучшить.
https://dev.to/autonomousapps/one-click-dependencies-fix-191p
Если вы работаете с Gradle, то вам стоит обратить внимание на Dependency Analysis Gradle Plugin. Этот плагин помогает находить лишние зависимости и автоматически исправлять проблемы с ними. Однако стоит быть осторожным с этим плагином так как он может давай "осечки" на сложных скриптах. Это связанно с тем, что плагин использует упрощенную грамматику для парсинга. В будующих версиях парсинг обещают улучшить.
https://dev.to/autonomousapps/one-click-dependencies-fix-191p
DEV Community
One click dependencies fix
Photo by Maxim Hopman on Unsplash If you maintain a JVM1 or Android project, chances are you've...
VisuAlgo
Сайточередной для изучение алгоритмов. Среди остальных сайтов с аналогичной тематикой он отличается тем, что работа алгоритмов хорошо представлена визуально.
https://visualgo.net/en
Сайт
https://visualgo.net/en
visualgo.net
visualising data structures and algorithms through animation - VisuAlgo
VisuAlgo was conceptualised in 2011 by Associate Professor Steven Halim (NUS School of Computing) as a tool to help his students better understand data structures and algorithms, by allowing them to learn the basics on their own and at their own pace. Together…
Kubetools
Коллекция популярных инструментов для Kubernetes. Там есть инструменты практически на все случаи жизни.
https://collabnix.github.io/kubetools/
Коллекция популярных инструментов для Kubernetes. Там есть инструменты практически на все случаи жизни.
https://collabnix.github.io/kubetools/
kubetools
Kubetools - A Curated List of Kubernetes Tools
Kubetools - Curated List of Kubernetes Tools
Algo.monster
Отличный ресурс для подготовки к собеседованиям созданный разработчикам из Google. Особенно он полезен тем кто планирует проходить интервью в компании из FAANG.
https://algo.monster/?sscid=11k9_ggcl7&
Отличный ресурс для подготовки к собеседованиям созданный разработчикам из Google. Особенно он полезен тем кто планирует проходить интервью в компании из FAANG.
https://algo.monster/?sscid=11k9_ggcl7&
AlgoMonster
AlgoMonster: The Most Structured Way to Prepare for Coding Interviews
Coding interviews stressing you out? Get the structure you need to succeed on LeetCode. Now powered by AI.
Java + Spring + Jakarta Validation. Самописный «аддон» для валидации Entity через БД и EntityManager
Валидации "первого круга" в jakarta.validation представлены прекрасно (NotNull, NotBlank и пр. аннотации). Статья про валидации "второго круга". К ним можно отнести такие наиболее типичные операции:
• Проверка поля на уникальность при создании новой сущности (записей со значением X поля N на момент сохранения быть не должно).
• Проверка поля на уникальность при обновлении сущности (при обновлении запись со значением X поля N должна оставаться только одна).
• Проверка существования проставленных FK-связей.
• Проверка существования самой сущности в случае обновления (делается, как правило, по ее ID-шке).
• Возможно, проверка unmodified-полей для обновления, т.е. если поле неизменяемое, но во входных данных мы пытаемся его изменить - исключение.
Решение не законченное, но интересное.
https://habr.com/ru/articles/839006/
Валидации "первого круга" в jakarta.validation представлены прекрасно (NotNull, NotBlank и пр. аннотации). Статья про валидации "второго круга". К ним можно отнести такие наиболее типичные операции:
• Проверка поля на уникальность при создании новой сущности (записей со значением X поля N на момент сохранения быть не должно).
• Проверка поля на уникальность при обновлении сущности (при обновлении запись со значением X поля N должна оставаться только одна).
• Проверка существования проставленных FK-связей.
• Проверка существования самой сущности в случае обновления (делается, как правило, по ее ID-шке).
• Возможно, проверка unmodified-полей для обновления, т.е. если поле неизменяемое, но во входных данных мы пытаемся его изменить - исключение.
Решение не законченное, но интересное.
https://habr.com/ru/articles/839006/
Хабр
Java + Spring + Jakarta Validation. Самописный «аддон» для валидации Entity через БД и EntityManager
Вступление Вот и моя первая статья на Хабре. Посвящена она будет презентации своего небольшого решения для валидации моделей с использованием запросов к БД и EntityManager. Вариант этот пока черновой,...
Применимость Java в искусственном интеллекте: 7 библиотек для нейросетей, которые стоит изучить
Python довольно широко распространен в среде разработчиков занимающихся AI, но есть ли у него альтернатива? Для Java также существуют библиотеки и фреймворки. В статье рассмотрены 7 наиболее популярных.
https://habr.com/ru/articles/864352/
Python довольно широко распространен в среде разработчиков занимающихся AI, но есть ли у него альтернатива? Для Java также существуют библиотеки и фреймворки. В статье рассмотрены 7 наиболее популярных.
https://habr.com/ru/articles/864352/
Хабр
Применимость Java в искусственном интеллекте: 7 библиотек для нейросетей, которые стоит изучить
Java — один из самых популярных языков программирования, особенно в корпоративной разработке. Несмотря на доминирование Python в области машинного обучения и нейросетей, Java сохраняет свою...
Подключение к GigaChat API на Java: пошаговое руководство
Статья о том как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов.
https://habr.com/ru/articles/854820/
Статья о том как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов.
https://habr.com/ru/articles/854820/
Хабр
Подключение к GigaChat API на Java: пошаговое руководство
Всем привет! В этой статье я расскажу о том, как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов, чтобы получать ответы от...
Telegram бот + ИИ Jlama своими руками
В статье описывается создание телеграм бота на Java, который будет использовать LLM запущеную локально. В статье используюется Jlama – максимально простой движок инференса для LLM, написанной на голой java без тяжеловесных фрэймворков. По факту Jlama дает возможность обслуживать LLM в java окружении напрямую, то есть в той же jvm, где работает наше приложение.
Статья интересна тем, что в ней не используется открытый API ChatGPT или новомодный Deepseek, а используется локально развернутый Jlama.
https://habr.com/ru/articles/877746/
В статье описывается создание телеграм бота на Java, который будет использовать LLM запущеную локально. В статье используюется Jlama – максимально простой движок инференса для LLM, написанной на голой java без тяжеловесных фрэймворков. По факту Jlama дает возможность обслуживать LLM в java окружении напрямую, то есть в той же jvm, где работает наше приложение.
Статья интересна тем, что в ней не используется открытый API ChatGPT или новомодный Deepseek, а используется локально развернутый Jlama.
https://habr.com/ru/articles/877746/
Хабр
Telegram бот + ИИ Jlama своими руками
Хабр, привет! Сегодня мы попробуем сделать свой ИИ с телеграм ботом для возможности простого общения с ней. Сразу оговорюсь, мы не будем в очередной раз использовать открытый API ChatGPT или...
Тестирование сообщений в Kafka
В статье представлен подход к написанию интеграционных тестов для Kafka-приложений с акцентом на читаемость и поддержку. Опираясь на принципы разделения тестов на этапы (Arrange-Act-Assert), изоляцию и повышение наглядности, мы упрощаем тестирование и понимание интеграций.
В качестве примера — телеграм-бот, перенаправляющий запросы в OpenAI и отправляющий сообщения в Kafka при нарушениях безопасности. Для тестов используется объект RecordCaptor, захватывающий сообщения из Kafka, с обеспечением изоляции и ожиданием смещений.
Подход демонстрирует, как сделать тесты эффективными и эстетичными, сохраняя фокус на логике взаимодействия. Рекомендуется ознакомиться с базовыми идеями в связанных статьях.
https://habr.com/ru/articles/840990/?utm_campaign=840990
В статье представлен подход к написанию интеграционных тестов для Kafka-приложений с акцентом на читаемость и поддержку. Опираясь на принципы разделения тестов на этапы (Arrange-Act-Assert), изоляцию и повышение наглядности, мы упрощаем тестирование и понимание интеграций.
В качестве примера — телеграм-бот, перенаправляющий запросы в OpenAI и отправляющий сообщения в Kafka при нарушениях безопасности. Для тестов используется объект RecordCaptor, захватывающий сообщения из Kafka, с обеспечением изоляции и ожиданием смещений.
Подход демонстрирует, как сделать тесты эффективными и эстетичными, сохраняя фокус на логике взаимодействия. Рекомендуется ознакомиться с базовыми идеями в связанных статьях.
https://habr.com/ru/articles/840990/?utm_campaign=840990
Хабр
Тестирование сообщений в Kafka
Данная статья предлагает подход к написанию интеграционных тестов для приложений с Kafka, позволяющий сосредоточиться на спецификации взаимодействия, делая тесты более читаемыми и легкими для...
GRASP: почему настоящая архитектура начинается не с SOLID
SOLID, GoF-паттерны и даже DDD — это круто, но как перейти от требований к модели? Почему инструменты не всегда решают задачу? Узнайте, как GRASP заполняет пробелы в архитектурном мышлении, помогая понять, что и почему моделировать, а не только как писать код. Личный опыт, аналогии и разбор — всё в одном посте!
https://m.vk.com/@javatutorial-grasp-pochemu-nastoyaschaya-arhitektura-nachinaetsya-ne-s-so
#Java #Architecture #GRASP #DDD
SOLID, GoF-паттерны и даже DDD — это круто, но как перейти от требований к модели? Почему инструменты не всегда решают задачу? Узнайте, как GRASP заполняет пробелы в архитектурном мышлении, помогая понять, что и почему моделировать, а не только как писать код. Личный опыт, аналогии и разбор — всё в одном посте!
https://m.vk.com/@javatutorial-grasp-pochemu-nastoyaschaya-arhitektura-nachinaetsya-ne-s-so
#Java #Architecture #GRASP #DDD
VK
GRASP: почему настоящая архитектура начинается не с SOLID
Многие инженеры начинают своё архитектурное мышление с SOLID. Затем изучают GoF-паттерны. Но всё равно остаётся ощущение, что чего-то не..
Аннотации и рефлексия для гибкого кода
Аннотации и рефлексия в Java — мощные инструменты для создания адаптивных приложений. Аннотации добавляют метаданные к коду, помогая компилятору и инструментам анализировать его. Рефлексия позволяет изменять поведение программы во время выполнения.
🔹 Что в статье?
- Объяснение аннотаций: встроенные (@Override, @Deprecated) и пользовательские.
- Как создавать свои аннотации для:
- Документирования кода.
- Проверки данных (@NotNull).
- Примеры кода для лёгкого старта.
https://habr.com/ru/companies/otus/articles/764244/
#Java #Annotations #Reflection #CodingTips
Аннотации и рефлексия в Java — мощные инструменты для создания адаптивных приложений. Аннотации добавляют метаданные к коду, помогая компилятору и инструментам анализировать его. Рефлексия позволяет изменять поведение программы во время выполнения.
🔹 Что в статье?
- Объяснение аннотаций: встроенные (@Override, @Deprecated) и пользовательские.
- Как создавать свои аннотации для:
- Документирования кода.
- Проверки данных (@NotNull).
- Примеры кода для лёгкого старта.
https://habr.com/ru/companies/otus/articles/764244/
#Java #Annotations #Reflection #CodingTips
Хабр
Аннотации и рефлексия в Java
Привет, уважаемые читатели Хабра! Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных...
🚀 Раскрываем секреты скорости в Java!
Хочешь знать, как работает сортировка в java.util.Arrays.sort()? 🤔 Timsort для объектов и Dual-Pivot Quicksort для примитивов — два алгоритма, которые делают Java молниеносной! Узнай:
- Почему Timsort — король упорядоченных данных.
- Как Dual-Pivot Quicksort от автора статьи изменил игру в JDK и Android.
- История создания и эволюция этих алгоритмов от эксперта!
💡 Погрузись в мир оптимизации Java и стань профи! Читай статью и прокачай свои знания.
https://habr.com/ru/companies/sberbank/articles/841342/?utm_campaign=841342
#Java #Timsort #Quicksort #Программирование
Хочешь знать, как работает сортировка в java.util.Arrays.sort()? 🤔 Timsort для объектов и Dual-Pivot Quicksort для примитивов — два алгоритма, которые делают Java молниеносной! Узнай:
- Почему Timsort — король упорядоченных данных.
- Как Dual-Pivot Quicksort от автора статьи изменил игру в JDK и Android.
- История создания и эволюция этих алгоритмов от эксперта!
💡 Погрузись в мир оптимизации Java и стань профи! Читай статью и прокачай свои знания.
https://habr.com/ru/companies/sberbank/articles/841342/?utm_campaign=841342
#Java #Timsort #Quicksort #Программирование
Хабр
Удивительная история развития сортировки в JDK
Как вы считаете, если выполнить java.util.Arrays.sort() , то какая сортировка будет вызвана? Quicksort? Timsort? И та, и другая, потому что для объектов вызывается Timsort , а для примитивов (чисел...
Погружение в безумный мир Brainfuck: создаём генератор кода и интерпретатор с нуля!
История о том, как автор статьи превратил простую задачку на C в настоящий кодерский квест.
Решать задачу стандартно? Скучно! Автор статьи решил добавить остроты и закодить решение на Brainfuck, а на C сваять интерпретатор для этого безумия.
Но писать Brainfuck-код вручную — это как чистить картошку тупым ножом. Поэтому он вооружился Java и создал генератор кода, чтобы автоматизировать этот хаос и сделать процесс эпичным!
🔥 Погрузись в детали на Хабре: https://habr.com/ru/articles/846076/
История о том, как автор статьи превратил простую задачку на C в настоящий кодерский квест.
Решать задачу стандартно? Скучно! Автор статьи решил добавить остроты и закодить решение на Brainfuck, а на C сваять интерпретатор для этого безумия.
Но писать Brainfuck-код вручную — это как чистить картошку тупым ножом. Поэтому он вооружился Java и создал генератор кода, чтобы автоматизировать этот хаос и сделать процесс эпичным!
🔥 Погрузись в детали на Хабре: https://habr.com/ru/articles/846076/
Хабр
О том как я генератор Brainfuck кода писал
На днях мне потребовалось написать решение задачи поиска максимально возрастающей последовательности цифр на C. Однако я решил что решать эту задачу привычным методом будет скучно и я решил слегка...