Обновить
4
0

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

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

Как я проходил собеседование на Senior Java

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели18K

Всем привет!

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

Читать далее

Spring без боли: моя шпаргалка для собесов в Java. Часть 3

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели11K

Всем привет!

Сейчас я работаю Senior Java Developer в одном из банков, и за последние годы мне довелось пройти множество собеседований, столкнуться с десятками непростых вопросов и вложить кучу времени в подготовку. И со временем я заметил одну закономерность: Spring — одна из самых объёмных и любимых тем на Java‑собеседованиях, причём спрашивают её у кандидатов любого уровня.

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

Читать далее

Многопоточность без боли: моя шпаргалка для собесов в Java

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели21K

Всем привет!

Я работаю Senior Java Developer в одном из банков, и за последние годы мне пришлось пройти не одно собеседование, услышать десятки каверзных вопросов и потратить уйму времени на подготовку. И вот что я понял: многопоточность — это одна из самых сложных и любимых тем на Java-собеседованиях, независимо от уровня кандидата.

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

Читать далее

Вводная глава учебника по матанализу нового типа

Уровень сложностиПростой
Время на прочтение51 мин
Охват и читатели25K

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

Я здесь, чтобы сказать вам: дело было не в вас.

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

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

«Напиши учебник. Тот самый, который мы заслужили».

Что ж, это он. Глава первая. Забудьте всё, что вы знали. Мы начинаем с нуля.

Мы отправимся в путешествие к самым основам человеческого мышления. Мы увидим, как драма, начавшаяся 2500 лет назад с простого вопроса о летящей стреле, породила всю современную науку — от физики до нейросетей.

Пристегнитесь. Мы погружаемся.

Читать далее

Адский эксперимент: личный сайт на нищих микросервисах

Время на прочтение27 мин
Охват и читатели37K

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

В этом эксперименте мы внедрим микросервисы в личный сайт, нарушив ключевые принципы DDD. Я создам антипаттерн «бедных сервисов» (Anemic Domain Model) и покажу, чем опасен прямой доступ к данным между микросервисами.

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

Читать далее

Все о коллекциях в Oracle

Время на прочтение12 мин
Охват и читатели307K
Статья имеет довольно таки тезисный стиль. Более подробное содержание можно найти в приложенном внизу статьи видео с записью лекции по коллекциям Oracle.

Коллекции присутствую в том или ином виде в большинстве языков программирования и везде имеют схожую суть в плане использования. А именно – позволяют хранить набор объектов одного типа и проводить над всем набором какие-либо действия, либо в цикле проводить однотипные действия со всеми элементами набора.

Таким же образом коллекции используются и в Oracle.

Содержание статьи



Шокирующие детали про коллекции в Oracle

Cursor: Обзор и возможности

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели21K

Cursor — это не просто новая IDE, а умная среда разработки с полноценными AI-агентами, способная понимать проект, анализировать код и помогать разработчикам, аналитикам и продакт-менеджерам работать быстрее и точнее. В этой статье я подробно расскажу, как Cursor помогает ускорять разработку, автоматизировать рутину и улучшать качество кода за счёт интеграции искусственного интеллекта в повседневные процессы.

Читать далее

Паттерны ООП, так не издевались даже… Структурные шаблоны с примерами на Java

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели18K

Привет! Меня зовут Бромбин Андрей. В этой статье разберём структурные паттерны ООП. Используя примеры на Java и простые метафоры, поймём природу шаблонов: как они работают, зачем нужны и чего требуют от нас взамен. Почему дизайн называют удачным при использовании паттернов по назначению, и почему так бывает не всегда.

Книг и статей о шаблонах проектирования, как песен о любви, потому что в разработке эта тема волнует каждого начинающего и не очень специалиста. Помните, как пели Чиж и Ко: «а не спеть ли мне песню о любви?» — давайте и я попробую.

Шаблонизироваться

Пограничные случаи HTTP, которые должен понимать каждый разработчик API

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели16K

В феврале прошлого года у интерфейса веб-серверов Rack, лежащего в основе практически каждого приложения Ruby on Rails, был обнаружен CVE-2024-26141. Уязвимость была простой: достаточно отправить запрос файла с сотней байтовых диапазонов, и Rack генерировал неожиданно большой ответ. Серверы продакшена можно было атаковать одиночными HTTP-запросами, пока у них не закончится ресурс памяти или канала.

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

Это пример того, как простой неправильно обрабатываемый пограничный случай HTTP может нанести существенный ущерб. И не потому, что мы плохие разработчики, а потому, что HTTP сложен. В идеальном случае всё работает замечательно. Но потом наступает продакшен.

Читать далее

Категории типов. Часть 4. Монады

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели9.5K

И вот, в четвёртой части обзора мы наконец-то встретимся с главным героем! Мы рассмотрим анатомию и морфологию монад и попробуем выяснить, почему их бывает сложно композировать. Попутно познакомимся с аппликативными функторами и комонадами.

Читать далее

Как я построил RAG-систему за вечер с помощью 5 open source-инструментов

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели20K

Команда Python for Devs подготовила практическое руководство по сборке полноценной RAG-системы из пяти open source-инструментов. MarkItDown, LangChain, ChromaDB, Ollama и Gradio превращают разрозненные документы в умную базу знаний с потоковой генерацией ответов. Всё локально, без облаков и с открытым кодом — попробуйте собрать свой ChatGPT прямо у себя.

Читать далее

Kafka для начинающих: откуда такой спрос и зачем нужна эта технология

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели36K

Почему REST API не всегда подходит для общения микросервисов?
Разбираем на примере интернет-магазина, как Kafka решает проблемы синхронной коммуникации, масштабирования и отказоустойчивости.

Простыми словами о топиках, партициях, consumer groups — для начинающих разработчиков.

Читать далее

Kubernetes на пальцах: самое простое объяснение, что это такое

Время на прочтение7 мин
Охват и читатели35K

Вы наверняка знаете, Kubernetes просто повсюду. От разработчиков, тестировщиков, DevOps-инженеров и системных аналитиков ожидают умения работать с этим инструментом. Даже продакт-менеджеры иногда интересуются, что это такое.

Если вы только начинаете знакомство с Kubernetes и хотите понять, с чего начать, эта статья для вас. Разберем, какие задачи он решает, какие у него основные объекты и как можно управлять кластером без сложных команд в терминале. Подробнее читайте внутри.

Читать далее

Как весь день быть продуктивным: не выгореть и покончить с прокрастинацией. Часть 1

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели25K

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

Читать далее

Возвращение легенды. Второе дыхание списанного IBM ThinkPad T40

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели16K

Признаюсь честно: я — поклонник классических ThinkPad, этих черных, угловатых, почти вечных ноутбуков, которые со стороны кажутся неубиваемыми. За годы работы с техникой IBM (еще до того, как серию прибрала к рукам Lenovo), я успел увидеть множество моделей, которые выдерживали падения, купания в коле и кофе, путешествия через несколько континентов в рюкзаках, и при этом всё равно продолжали работать, как ни в чем не бывало. Зная мою страсть к старым ThinkPad, пару месяцев назад знакомые торжественно вручили мне неисправный T40 с напутствием «забирай на запчасти, может, пригодится». Для меня это прозвучало, как маленькое приключение: удастся ли вернуть к жизни это наследие 2000-х, или безжалостное время окончательно искалечило столь замечательную и выносливую машину?

И что дальше?

Ни одного лишнего блюра: хардкорная оптика IDE для тех, кто пишет код десятилетия подряд

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели15K

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

Читать далее

Патчим Chrome для работы с YouTube

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели76K

Салют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как NoDPI написанной на питоне (большое спасибо @Lord_of_Rings!). Сегодня я хочу представить вам (почти) свою разработку, не требующую ни питона ни прокси. Мы будем патчить прямо на диске библиотеку chrome.dll - входяющую в пакет Chrome на Windows и лежащую в директории "C:\Program Files\Google\Chrome\Application\140.0.7339.208\chrome.dll". Цифры могут меняться в зависимости от версии. Данный патч занимает всего 8 байт и после него у нас появится YouTube.

Читать далее

Поиск работы Java-разработчика в 2025 году

Время на прочтение8 мин
Охват и читатели24K

В статье рассматриваются этапы поиска работы Java-разработчиком в 2025 году. Требования к резюме. Советы по прохождению. Технические вопросы с собеседований. Варианты развития событий. Немножко мемов. Моральная сторона вопроса. В 2025 году вышло много статей про падение рынка айти. Давайте посмотрим, есть ли ещё шанс найти работу или пора на завод.

Читать далее

Хранение временных данных в PostgreSQL

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели9.9K

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

В статье будут рассмотрены основные методы хранения временных данных в PostgreSQL: обычные таблицы, нежурналируемые таблицы, материализованные преставления, временные таблицы и память серверного процесса с использованием расширения pg_variables.

Читать далее

K8S для самых маленьких или как поднять отказаустойчивый кластер k8s. Часть 1

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K

Еще до открытия для себя практик Dev-ops я использовал Docker для упаковки и быстрой доставки кода на сервера (всё делалось ручками, я еще не знал про CI/CD xD). Со временем мои приложения становились больше, появлялись микросервисы, убирался монолит. И управлять ручками или через Portainer всей архитектурой было слегка сложновато. Простой, куча вопросов, падение контейнеров, рост нагрузки и все в этом духе. Тогда-то я и открыл для себя кубер.

Познать кубер
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность