Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Современная серверная разработка на языке Java: 2. Архитектура серверного приложения

Reading time22 min
Views30K

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

Читать далее

Основные архитектурные шаблоны построения ПО

Reading time7 min
Views39K

Краткий обзор восьми наиболее востребованных архитектурных шаблонов с иллюстрациями:

Читать дальше →

Создание очередей с низкой задержкой размером в терабайт

Reading time5 min
Views6.4K

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

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

Java может хранить ограниченное количество информации, пока куча не станет ограничивающим фактором, в результате чего сборка мусора будет иметь большие последствия, что потенциально может помешать нам выполнить целевые SLA (соглашения об уровне обслуживания) или даже остановить JVM на секунды или даже минуты.

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

Читать далее

Как мы меняли шину данных, а создали интеграционную платформу

Reading time6 min
Views9.3K

Привет, Хабр! Меня зовут Евгений Лукин, я работаю в СберТехе и занимаюсь развитием интеграционных продуктов.

Сегодня поговорим об импортозамещении в банке с миллионами клиентов. Это интересный опыт, который, как мне кажется, будет полезен любому бизнесу. Ниже — мой рассказ о том, как мы заменили корпоративную шину иностранного вендора в Сбере, построив собственную cloud-native децентрализованную интеграционную платформу, и с какими вызовами столкнулись в процессе.

Читать далее

Tester. Или почему важно, изменить свою роль в команде

Reading time10 min
Views9K

Привет, друзья. Меня зовут Илья и у меня для вас плохие новости.

С текущей скоростью роста и развития продуктов в сфере IT, многие компании, в обозримом будущем, должны отказаться от роли тестировщика в своих командах.

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

Деминг, Уильям Эдвардс

Причины и варианты того, что мы можем сделать в этой ситуации, я предлагаю рассмотреть в этой статье.

Читать далее

5 лучших книг по Java для новичков и профи, на которые стоит обратить внимание в 2022 году

Reading time4 min
Views78K

Привет, Хабр! Мы поговорили с командой разработчиков Сбера и попросили поделиться книгами по Java, которые, по мнению коллег, заслуживают внимания как новичков, так и профессионалов.

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

Читать далее

Как программист настроил автоматическое развертывание бекенда с базой данных

Reading time11 min
Views14K

Всем привет, хабровчане и гости сайта

Сегодня решил рассказать о своем опыте, как я при помощи docker-compose и bash скрипта настроил развертывание бекенд приложения с базой данных.

Какая была идея? Хотелось при помощи одной команды в терминале разворачивать Java приложение с базой данных так, чтобы можно было передать все необходимые переменные в момент запуска и нигде не хранить их.
Так, чтобы можно было развернуть новую версию приложения даже с телефона, просто заранее заготовив необходимую команду.

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

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

Дело было так...

Сохранение и загрузка нескольких Docker образов в один архив

Reading time3 min
Views5K

Добрый день. Возможно, кому-то будет полезна данная информация. Мне в рамках некоторых рабочих задач понадобилось сохранить порядка 50 образов Docker и затем загрузить их в Docker на другом сервере.

За исходным кодом прошу под кат.

Читать далее

Биометрия по закону: что нового и есть ли перспективы

Reading time4 min
Views6.5K

С 1 марта 2023 г. законодательство ограничивает использование информационных систем (ИС) для идентификации и/или аутентификации с использованием биометрии. Как говорил Сенека: «Закон должен быть краток, чтобы его легко могли запомнить и люди несведущие». В этой статье буду придерживаться этого правила, и кратко расскажу, кому и на каких условиях разрешат использовать такие системы.

Читать далее

Разница между верификацией и валидацией

Reading time3 min
Views121K

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

Читать далее

Kotlin. Автоматизация тестирования (Часть 3). Расширения Kotest и Spring Test

Reading time17 min
Views6.8K

Kotest


Продолжаем автоматизировать функциональные тесты на Kotlin и знакомиться с возможностями фреймворка Kotest


Расскажу про расширения Kotest:


  • Что это такое
  • Как расширения помогают писать тесты
  • Реализацию запуска расширений в Kotest
  • Некоторые встроенные расширения
  • Про расширение для Spring
  • Углублюсь в интеграцию Kotest и Spring Boot Test
  • Сравню с Junit5
  • И на закуску добавлю отчеты Allure

⚠️Будет много кода, внутренностей и примеров.

Все части руководства:


Читать дальше →

QA Lead и точка: Часть 4 – Фасилитатор и Амбассадор

Reading time3 min
Views3.7K

В прошлой статье “QA Lead и точка: Часть 3”  мы рассмотрели список ролей, в которых может участвовать QA Lead и любой руководитель подразделения. Это роли наставника, эксперта, ментора, коуча и процессного управленца. Все они,  разве что за исключением последней, связаны с взаимодействием вас, как более опытного сотрудника, с другими участниками команды и нацелены на получение каких-либо знаний от вас или выход на путь к достижению целей самостоятельно. Этот список был бы не полный без таких двух важных ролей как фасилитатор и амбассадор. В большинстве компаний это то, что ожидается от опытного сотрудника на руководящей позиции. Рассмотрим каждую из них в отдельности.

Читать далее

Алгоритмы сортировки и их производительность

Reading time17 min
Views56K

Здравствуйте, давно читаю Хабр и все хотел написать кому-нибудь статью, но не знал с чего начать и о чем писать. Но решил что тянуть кота за причинное место. Надо просто взять и написать обзор о чем то что я знаю и что будет просто для начало. Поэтому решил описать алгоритмы сортировки в размере 37 штук. Я понимаю, что на Хабре есть подобные статьи, одна постараюсь их добавить количеством алгоритмов и приведением небольшого числа графиков.

Читать далее

Книга «Разработка интерфейсов. Паттерны проектирования. 3-е изд.»

Reading time11 min
Views12K
image Привет всем, Хаброжители!

Спроектировать хороший интерфейс приложения не так просто. Все заказчики хотят, чтобы пользовательский опыт (user experience) был гладким, чтобы пользователь быстро и безболезненно получал то, что ему нужно, на любом устройстве и пользуясь любым каналом взаимодействия.

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

Для опытных разработчиков книга станет источником интересных идей, а начинающие найдут ориентиры в мире интерфейсов, позволяющие не сбиться c пути и применять лучшие паттерны.
Читать дальше →

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

Reading time11 min
Views16K

Была тут одна замечательная история – пермский юрист Василий Черепанов отсудил у представительства Lenovo десятикратную стоимость за бракованный ноутбук.

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

Далее – интервью с Василием Черепановым с подробностями его «ноутбучной» истории и всевозможными юридическими моментами и судебными и досудебными тонкостями. Некий ликбез по «Закону о защите прав потребителей». Если вы с ним не особо знакомы, то будет интересно.

Читать далее

Книга «Kali Linux: библия пентестера»

Reading time13 min
Views32K
image Как дела, Хаброжители?

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

Читать дальше →

Почему вам следует полностью переходить на Kotlin

Reading time6 min
Views34K

Пришло время начать использовать современный язык программирования

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

Читать далее

Пять задач, которые приходится решать при трудоустройстве начинающим Java-разработчикам в 2022 году

Reading time6 min
Views49K

Хабр, привет! Меня зовут Даниил Пилипенко, я программный директор факультета backend-разработки направления «Программирование» Skillbox, директор центра подбора IT-специалистов SymbioWay. Сегодня разберём практические задачи, с которыми могут столкнуться Java-разработчики junior-уровня на собеседовании. Такого рода задачи мы часто видим на собеседованиях наших клиентов и коллег, а также сами даём соискателям.

Читать далее

CI/CD и еще один CD. Разбираемся в терминологии pipelines в контексте автоматизации тестирования

Reading time4 min
Views37K

В IT индустрии используется большое разнообразие инженерных культур и практик, таких как Agile, бережливое производство (lean software development), DevOps. Все они так или иначе нацелены на бесперебойную доставку ценности за счет повторяемых коротких итераций. Неотъемлемой частью такого подхода является конвейерный подход или по-английски – pipelines. Подразумевается, что в идеальном мире разработчик заливает код на сервер и дальше происходит магия, состоящая из автоматизированных этапов сборки проекта, контроля качества кода, запуска тестов и сбора метрики. На рынке существует большое количество платных и бесплатных инструментов для настройки такого процесса, который мы называем “процессом непрерывной интеграции” или CI/CD (Jenkins, GitLab CI, Teamcity и д.р.). Однако для построения действительно зрелого процесса недостаточно просто установить инструмент. За каждым этапом конвейера стоит сложная логика того, что должно быть запущено, на каких вычислительных ресурсах и как эти ресурсы используются.


На собеседовании кандидаты очень часто гордо говорят, что знают CI/CD. Но знать можно по-разному. Одно дело нажимать кнопку запуска и смотреть, какой цвет получился: красный или зеленый. И совсем другое дело настраивать весь флоу от и до самостоятельно, чем обычно и занимаются DevOps инженеры. Для проверки глубины знаний я задаю базовый вопрос, на который очень редко получаю ответ: “А в чем разница между CI и CD ?”. Далее я хочу поделиться своим пониманием отличий CI от CD и от еще одного CD на примере запуска автотестов. Заранее предупрежу, что мое видение может частично отличаться от вашего. Ведь у всех нас немного разный опыт, разные проекты и источники для изучения, которые могут расходиться. Главное, что какое-то видение у вас есть!

Читать далее

Лучший учебник по математике? «Вычисляем легко»

Reading time16 min
Views27K

Математику было достаточно просто изучить?

Я услышал множество хороших отзывов о книге  Calculus Made Easy by Silvanus P. Thompson. Начал читать и правда, это была самая простая книжка на английском, которую я читал (советую попробовать почитать в оригинале), причем понял лучше, чем на родном языке.

Но зачем ее читать взрослым людям, знакомым с математикой не понаслышке?

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

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

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

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

Окунуться в науку

Information

Rating
Does not participate
Registered
Activity