Как стать автором
Обновить

Пишем телеграм бота на Java от А до Я

Время на прочтение 3 мин
Количество просмотров 8.8K
Java *

Всем привет.

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

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

Кому это будет интересно?

Целевая аудитория — все, кто знает Java SE. Все остальное я буду или описывать в рамках этой серии статей, или это уже описано мною в других статья ранее (например работу с Гитом я описал заранее и просто прикрепляю ссылку на него).
Разумеется, это может быть интересно и уже опытным людям. Отдельно буду благодарен за конструктивную критику моей реализации (это можно будет сделать через гитхаб, в рамках нового issue или написать в телеграм-канале).

Во время разработки проекта столкнемся с проблемами, посмотрим как их можно решить. Напишем документацию. Отрефакторим код. Покроем все качественными тестами. Настроим и добавим метрики по отслеживанию качества кода в CI процесс.

Читать далее
Всего голосов 8: ↑2 и ↓6 -4
Комментарии 5

Flyway: управление миграциями баз данных

Время на прочтение 6 мин
Количество просмотров 69K
Java *
В этой статье я расскажу об одном из средств обеспечения версионности схем и управления миграциями БД — библиотеке Flyway. С поблемой версионности схемы базы данных рано или поздно приходится сталкиваться разработчикам любого приложения, опирающегося на СУБД. Увы, иногда эта проблема принимается в рассмотрение слишком поздно — например, если вопрос о внесении изменений в структуру базы встаёт, когда приложение уже находится в эксплуатации. Но и на этапе разработки контроль схемы базы данных причиняет не меньше проблем, чем все прочие аспекты версионности приложения: в отсутствие чёткой системы управления миграциями локальная, стендовая и эксплуатационная базы могут быстро «разъехаться», не предоставляя при этом никакой информации относительно своего текущего состояния.

Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 16

Использования FlyWay для баз данных на примере Maven

Время на прочтение 3 мин
Количество просмотров 26K
Администрирование баз данных *DevOps *
Привет Хабровчане и Хабровчановки!
Хочу рассказать о очень удобном и полезном инструменте под названием FlyWay. На самом деле статьи уже были на нашем любимом ресурсе, но в последнее время произошли некоторые достаточно существенные изменения, поэтому свежая порция информации не помешает я думаю.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 2

Инструментарий для рефакторинга баз данных: Flyway vs. Liquibase

Время на прочтение 3 мин
Количество просмотров 19K
Блог компании Haulmont Java *Администрирование баз данных *
Перевод

В этой статье мы поговорим о Flyway и Liquibase — двух наиболее популярных инструментах на основе Java для рефакторинга баз данных. Цель статьи — сравнить эти инструменты и выяснить, какой из них в каких случаях лучше применять.


DB omnibus

Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 13

Как не выстрелить себе в ногу, используя Liquibase

Время на прочтение 8 мин
Количество просмотров 5.5K
Блог компании EPAM Программирование *Java *Системы управления версиями *Администрирование баз данных *

Никогда не было, и вот опять!


На очередном проекте мы решили использовать Liquibase с самого начала, чтобы избежать проблем в будущем. Как оказалось, не все молодые члены команды умеют его правильно использовать. Я провёл внутренний воркшоп, который затем решил превратить в статью.


Статья включает в себя полезные советы и описание трех самых явных ловушек, в которые можно попасть, работая с инструментами миграции реляционных баз данных, в частности Liquibase. Рассчитана на Java разработчиков уровня Junior и Middle, для более опытных разработчиков может быть интересна для структуризации и повторения того, что, скорее всего, уже известно.


Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

Миграции баз данных с Flyway

Время на прочтение 6 мин
Количество просмотров 41K
Блог компании OTUS Java *Администрирование баз данных *
Перевод
Перевод статьи подготовлен в преддверии старта курса «Разработчик Java».




1. Введение


В этой статье описываются ключевые концепции Flyway и пример использования этого фреймворка для непрерывного изменения схемы базы данных на примере in-memory базы данных H2 с помощью maven-плагина flyway.

Flyway обновляет версии баз данных с помощью миграций. Миграции можно писать на SQL (с синтаксисом, специфичным для конкретной СУБД) или на Java.

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

Повторяющиеся миграции в рамках одного запуска всегда применяются после выполнения версионных миграций. Повторяющиеся миграции применяются в порядке их описания. В одной миграции все операции выполняются в рамках одной транзакции базы данных.

В этой статье мы сосредоточим внимание на использовании maven-плагина для миграций базы данных.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 2

Работа с базами данных глазами разработчика

Уровень сложности Простой
Время на прочтение 20 мин
Количество просмотров 11K
Тестирование IT-систем *PostgreSQL *Программирование *Java *
🔥 Технотекст 2020

Когда вы разрабатываете новый функционал с использованием базы данных, цикл разработки обычно включает следующие этапы (но не ограничивается ими):

Написание SQL миграции → написание кода → тестирование → релиз → мониторинг.

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

Поскольку мы в компании работаем с PostgreSQL, а серверный код пишем на Java, то примеры будут основаны на этом стеке, хотя большинство идей не зависят от используемой БД и языка программирования.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 17

Контроль версий в базах данных — Сравнение Liquibase и Flyway

Время на прочтение 6 мин
Количество просмотров 8.7K
Блог компании OTUS Программирование *Java *SQL *Облачные сервисы *
Перевод

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

Тем не менее, в связи с ростом популярности аджайл методологии в последние годы и востребованностью непрерывной интеграции и развертывания, мы больше не можем ограничивать применение CI/CD только к коду приложения, оставив SQL позади.

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

Ниже будут рассмотрены сходства и различия ныне хорошо известных продуктов Flyway и Liquibase.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 26

Что нового в JPA Buddy 3.0

Время на прочтение 3 мин
Количество просмотров 2.9K
Блог компании Haulmont Программирование *Java *

Мы выпустили JPA Buddy 3.0! В этом релизе наконец-то появилась генерация скриптов для Flyway, поддержка Kotlin, а также другие улучшения и исправления. Посмотрим на эти нововведения подробнее.

Для тех, кто не слышал о JPA Buddy: это плагин, который упрощает работу с JPA, Hibernate, Spring Data JPA, Liquibase и подобными технологиями. Подробнее о нем можно почитать в этой статье.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

Как автоматизировать развертывание баз данных с помощью Liquibase?

Время на прочтение 4 мин
Количество просмотров 4.1K
Блог компании OTUS SQL *Администрирование баз данных *
Перевод

Liquibase — это инструмент управления изменениями в базе данных. С его помощью вы можете отслеживать изменения в базе данных, сделанные с помощью SQL (или XML) скриптов. Эти скрипты могут быть добавлены в системы контроля версий, такие как git.

В данной статье мы рассмотрим, как автоматизировать развертывание баз данных с помощью Liquibase. Автоматизация может быть выполнена с помощью

1. Пайплайн Jenkins 

2. Shell-скриптов

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

Существует два способа записи наборов изменений в Liquibase, т.е. XML и SQL. Я выбрал SQL, чтобы избежать записи соответствующих изменений XML для каждого выполняемого нами обновления SQL. Таким образом, тот же SQL-файл, который мы пишем для разработки, используется для развертывания Liquibase.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 3

Нулевое время простоя при изменениях базы данных с помощью флагов функций — шаг за шагом

Время на прочтение 8 мин
Количество просмотров 2.2K
Java *
Туториал
Перевод

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

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

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 6