
В этой части мы создадим работоспособный микросервис, придерживаясь правильной архитектуры, которая обеспечивает качества, важные для промышленного проекта: гибкость, простота внесения доработок и исправления ошибок, масштабируемость.
User
В этой части мы создадим работоспособный микросервис, придерживаясь правильной архитектуры, которая обеспечивает качества, важные для промышленного проекта: гибкость, простота внесения доработок и исправления ошибок, масштабируемость.
Очереди часто являются фундаментальными компонентами в паттернах проектирования программного обеспечения.
Но что, если каждую секунду поступают миллионы сообщений, а многопроцессорные потребители должны иметь возможность читать полный журнал всех сообщений?
Java может хранить ограниченное количество информации, пока куча не станет ограничивающим фактором, в результате чего сборка мусора будет иметь большие последствия, что потенциально может помешать нам выполнить целевые SLA (соглашения об уровне обслуживания) или даже остановить JVM на секунды или даже минуты.
В этой статье рассказывается о том, как создавать огромные персистентные очереди, сохраняя при этом предсказуемую и стабильную низкую задержку с помощью Chronicle Queue с открытым исходным кодом.
Привет, Хабр! Меня зовут Евгений Лукин, я работаю в СберТехе и занимаюсь развитием интеграционных продуктов.
Сегодня поговорим об импортозамещении в банке с миллионами клиентов. Это интересный опыт, который, как мне кажется, будет полезен любому бизнесу. Ниже — мой рассказ о том, как мы заменили корпоративную шину иностранного вендора в Сбере, построив собственную cloud-native децентрализованную интеграционную платформу, и с какими вызовами столкнулись в процессе.
Привет, друзья. Меня зовут Илья и у меня для вас плохие новости.
С текущей скоростью роста и развития продуктов в сфере IT, многие компании, в обозримом будущем, должны отказаться от роли тестировщика в своих командах.
Покончите с зависимостью от контроля качества. Устраните потребность в массовых проверках, прежде всего встраивая качество в продукцию. Качество создается не в результате проверки, а благодаря улучшению производственного процесса.
Деминг, Уильям Эдвардс
Причины и варианты того, что мы можем сделать в этой ситуации, я предлагаю рассмотреть в этой статье.
Привет, Хабр! Мы поговорили с командой разработчиков Сбера и попросили поделиться книгами по Java, которые, по мнению коллег, заслуживают внимания как новичков, так и профессионалов.
Результат обсуждения ― в подборке ниже. Она будет полезной и тем, кто только начинает свой путь в мире Java, и тем, кто уже давно стал разработчиком. Если у вас есть собственный вариант хорошей книги по этому языку программирования ― делитесь в комментариях.
Всем привет, хабровчане и гости сайта
Сегодня решил рассказать о своем опыте, как я при помощи docker-compose и bash скрипта настроил развертывание бекенд приложения с базой данных.
Какая была идея? Хотелось при помощи одной команды в терминале разворачивать Java приложение с базой данных так, чтобы можно было передать все необходимые переменные в момент запуска и нигде не хранить их.
Так, чтобы можно было развернуть новую версию приложения даже с телефона, просто заранее заготовив необходимую команду.
Как получилось в итоге:
в корне проекта лежит баш скрипт, который принимает переменные окружения, которые нужны для запуска бекенда и базы данных. Там внутри никаких захардкодженных данных нет, что позволяет нам запускать где угодно и с какими угодно настройками.
Путь к этому был сложен и тернист для меня. С большой вероятностью можно было сделать легче и проще, если б я занимался этим каждый день, но сделал как умел и как предполагал возможным. Поэтому все, кто имеет что сказать поэтому поводу, приглашаются в комментарии.
Добрый день. Возможно, кому-то будет полезна данная информация. Мне в рамках некоторых рабочих задач понадобилось сохранить порядка 50 образов Docker и затем загрузить их в Docker на другом сервере.
За исходным кодом прошу под кат.
С 1 марта 2023 г. законодательство ограничивает использование информационных систем (ИС) для идентификации и/или аутентификации с использованием биометрии. Как говорил Сенека: «Закон должен быть краток, чтобы его легко могли запомнить и люди несведущие». В этой статье буду придерживаться этого правила, и кратко расскажу, кому и на каких условиях разрешат использовать такие системы.
Когда я пыталась разобраться в этих двух определениях, мне на глаза попалась эта статья. Она помогла мне расставить всё по полочкам, надеюсь, поможет и вам.
Продолжаем автоматизировать функциональные тесты на Kotlin и знакомиться с возможностями фреймворка Kotest
Расскажу про расширения Kotest
:
Kotest
⚠️Будет много кода, внутренностей и примеров.
Все части руководства:
В прошлой статье “QA Lead и точка: Часть 3” мы рассмотрели список ролей, в которых может участвовать QA Lead и любой руководитель подразделения. Это роли наставника, эксперта, ментора, коуча и процессного управленца. Все они, разве что за исключением последней, связаны с взаимодействием вас, как более опытного сотрудника, с другими участниками команды и нацелены на получение каких-либо знаний от вас или выход на путь к достижению целей самостоятельно. Этот список был бы не полный без таких двух важных ролей как фасилитатор и амбассадор. В большинстве компаний это то, что ожидается от опытного сотрудника на руководящей позиции. Рассмотрим каждую из них в отдельности.
Здравствуйте, давно читаю Хабр и все хотел написать кому-нибудь статью, но не знал с чего начать и о чем писать. Но решил что тянуть кота за причинное место. Надо просто взять и написать обзор о чем то что я знаю и что будет просто для начало. Поэтому решил описать алгоритмы сортировки в размере 37 штук. Я понимаю, что на Хабре есть подобные статьи, одна постараюсь их добавить количеством алгоритмов и приведением небольшого числа графиков.
Была тут одна замечательная история – пермский юрист Василий Черепанов отсудил у представительства Lenovo десятикратную стоимость за бракованный ноутбук.
С одной стороны, дело попахивает потребительским экстремизмом. С другой, человек год просидел без оплаченной покупки, изрядно побегал по всевозможным инстанциям, ну и вовсю ощутил на себе «заботу» производителя о потребителях. Те, кому «посчастливилось» столкнуться с подобной «заботой», наверняка уже воскликнули, мол, молодец парень, отомстил за всех.
Далее – интервью с Василием Черепановым с подробностями его «ноутбучной» истории и всевозможными юридическими моментами и судебными и досудебными тонкостями. Некий ликбез по «Закону о защите прав потребителей». Если вы с ним не особо знакомы, то будет интересно.
Пришло время начать использовать современный язык программирования
Я хочу рассказать вам о новом языке программирования под названием Kotlin и о том, почему вы должны рассмотреть его для своего следующего проекта. Раньше я предпочитал Java, но за прошедший год обнаружил, что кодирую на Kotlin при любой возможности, и сейчас я действительно не могу придумать ситуацию, в которой Java был бы лучшим выбором.
Хабр, привет! Меня зовут Даниил Пилипенко, я программный директор факультета backend-разработки направления «Программирование» Skillbox, директор центра подбора IT-специалистов SymbioWay. Сегодня разберём практические задачи, с которыми могут столкнуться Java-разработчики junior-уровня на собеседовании. Такого рода задачи мы часто видим на собеседованиях наших клиентов и коллег, а также сами даём соискателям.
В IT индустрии используется большое разнообразие инженерных культур и практик, таких как Agile, бережливое производство (lean software development), DevOps. Все они так или иначе нацелены на бесперебойную доставку ценности за счет повторяемых коротких итераций. Неотъемлемой частью такого подхода является конвейерный подход или по-английски – pipelines. Подразумевается, что в идеальном мире разработчик заливает код на сервер и дальше происходит магия, состоящая из автоматизированных этапов сборки проекта, контроля качества кода, запуска тестов и сбора метрики. На рынке существует большое количество платных и бесплатных инструментов для настройки такого процесса, который мы называем “процессом непрерывной интеграции” или CI/CD (Jenkins, GitLab CI, Teamcity и д.р.). Однако для построения действительно зрелого процесса недостаточно просто установить инструмент. За каждым этапом конвейера стоит сложная логика того, что должно быть запущено, на каких вычислительных ресурсах и как эти ресурсы используются.
На собеседовании кандидаты очень часто гордо говорят, что знают CI/CD. Но знать можно по-разному. Одно дело нажимать кнопку запуска и смотреть, какой цвет получился: красный или зеленый. И совсем другое дело настраивать весь флоу от и до самостоятельно, чем обычно и занимаются DevOps инженеры. Для проверки глубины знаний я задаю базовый вопрос, на который очень редко получаю ответ: “А в чем разница между CI и CD ?”. Далее я хочу поделиться своим пониманием отличий CI от CD и от еще одного CD на примере запуска автотестов. Заранее предупрежу, что мое видение может частично отличаться от вашего. Ведь у всех нас немного разный опыт, разные проекты и источники для изучения, которые могут расходиться. Главное, что какое-то видение у вас есть!
Математику было достаточно просто изучить?
Я услышал множество хороших отзывов о книге Calculus Made Easy by Silvanus P. Thompson. Начал читать и правда, это была самая простая книжка на английском, которую я читал (советую попробовать почитать в оригинале), причем понял лучше, чем на родном языке.
Но зачем ее читать взрослым людям, знакомым с математикой не понаслышке?
В этом вопросе все просто: наверняка у многих уже есть дети или скоро будут, поэтому прививать любовь к знаниям и науке нужно с малых лет, иначе школа с их скупым языком испортит у ребенка все желание тянуться к прекрасному.
Но это не только для детей книга. Взрослым может посмотреть, а тому ли его учили в школе и не перепутал он ничего из-за долгих лет планирования бизнес-логики.
Особенно поможет людям, которые мечтали стать хардкорными "дата-сатанисами" и прочими гениями современности, но как-то все не складывалось. Для множества тестеров, эйчаров, проект менеджеров, кто нашел себя в айти, но хочет еще развиваться.
Перевод довольно вольный, я не профессиональный переводчик и даже не учился в MIT, но постарался предать максимально понятно и близко к смыслу текста. Приму ваши замечания к сведению. Перевел тестовый кусок, чтобы понять интересно ли вам такое, чтобы замотивироваться. Первый кусочек принадлежит кому-то, кто написал вводную книги, а второй оригинальному автору, что еще интереснее и забавнее. Ну что, полетели.