Привет, друзья!
Уже традиционно - планы на неделю.
🔜 Будет больше теоретических постов. Постараюсь раз в день радовать вас тем, что может пригодиться на собеседованиях, так что советую не пропускать!
🔜 У StringCrudDatabase проекта будет продолжение:
1️⃣ Ждите видос, где я запилю задачку в режиме лайв-кодинга. Тем из вас кто сделал задачку будет крайне полезно. Также оставлю ссылку на гит репозиторий, чтобы вы могли скачать код и все потыкать самостоятельно
2️⃣Появятся новые требования. Задача станет сложнее и интереснее. После этого я дам вам недельку на то, чтобы вы все закодили. Затем, также в режиме лайв-кодинга, я выложу свое решение, чтобы вы могли сравнить свое решение с моим и отрефакторить при необходимости свой код.
Мы будем повторять итерацию несколько раз и из нашего консольного приложения получится полноценный пет-проект на боевом стеке!
Я настоятельно рекомендую всем, кто еще не брался за выполнение задачи взяться за нее. Я считаю что это очень крутая возможность:
✅Прокачать навык решения задачи
✅Прокачать навык организации и структурирования кода
✅Запилить пет-проект с поддержкой Senior разработчика
Я также буду делать ревью кода. Бесплатно - только первому выложившему решение. Остальным либо за донат, либо за репосты в вк или инсте.
Итого на этой неделе нас ждут:
▶️посты по теории (7шт)
▶️ видос от меня по решению задачи (1шт)
▶️ новые требования для задачи (1шт)
Уже традиционно - планы на неделю.
🔜 Будет больше теоретических постов. Постараюсь раз в день радовать вас тем, что может пригодиться на собеседованиях, так что советую не пропускать!
🔜 У StringCrudDatabase проекта будет продолжение:
1️⃣ Ждите видос, где я запилю задачку в режиме лайв-кодинга. Тем из вас кто сделал задачку будет крайне полезно. Также оставлю ссылку на гит репозиторий, чтобы вы могли скачать код и все потыкать самостоятельно
2️⃣Появятся новые требования. Задача станет сложнее и интереснее. После этого я дам вам недельку на то, чтобы вы все закодили. Затем, также в режиме лайв-кодинга, я выложу свое решение, чтобы вы могли сравнить свое решение с моим и отрефакторить при необходимости свой код.
Мы будем повторять итерацию несколько раз и из нашего консольного приложения получится полноценный пет-проект на боевом стеке!
Я настоятельно рекомендую всем, кто еще не брался за выполнение задачи взяться за нее. Я считаю что это очень крутая возможность:
✅Прокачать навык решения задачи
✅Прокачать навык организации и структурирования кода
✅Запилить пет-проект с поддержкой Senior разработчика
Я также буду делать ревью кода. Бесплатно - только первому выложившему решение. Остальным либо за донат, либо за репосты в вк или инсте.
Итого на этой неделе нас ждут:
▶️посты по теории (7шт)
▶️ видос от меня по решению задачи (1шт)
▶️ новые требования для задачи (1шт)
🔥10❤3
А начнем мы с immutable objects.
На собеседованиях часто спрашивают:
❓ Что такое неизменяемый объект?
❓ Зачем нужны неизменяемые объекты?
❓ Как создать неизменяемый объект?
Неизменяемый объект - это объект, состояние которого не может быть изменено после создания. Когда объект является неизменяемым, его поля остаются постоянными и не могут быть изменены в течение его жизни.
Преимущества immutable objects:
💠 Потокобезопасность: Неизменяемые объекты безопасны для использования в многопоточной среде. Поскольку их состояние не может изменяться, нет необходимости в синхронизации доступа к ним.
💠 Безопасность: Поскольку неизменяемые объекты не могут быть изменены, они не подвержены ошибкам, связанным с изменением своего состояния случайным образом. Это особенно полезно, когда объект передается другим частям программы или потокам, и вы хотите быть уверены, что его состояние останется неизменным.
💠 Производительность: Поскольку неизменяемые объекты не могут быть изменены, их можно кэшировать и использовать повторно. Это может привести к улучшению производительности, особенно если создание новых объектов является затратной операцией.
💠 Еще одним важным применением неизменяемых объектов является использование их в качестве ключей для HashMap. В HashMap ключи хранятся в виде хэш-таблицы, и для быстрого доступа к элементам требуется эффективное вычисление хэш-кода. Если ключ изменяется, то его хэш-код также может измениться, что может привести к непредсказуемому поведению HashMap.
Использование неизменяемых объектов в качестве ключей гарантирует, что хэш-код ключа остается неизменным. Это обеспечивает правильное функционирование HashMap и предотвращает потерю элементов или неправильную работу при поиске элементов по ключу.
Создание immutable object:
▪️ Объявить все поля как private final:
▪️ Не предоставлять методы для изменения полей (сеттеры). Вместо этого, инициализировать значения полей через конструктор класса:
▪️Не возвращать изменяемые объекты, такие как коллекции, массивы или другие объекты. Вместо этого, возвращать их защищенные копии:
На собеседованиях часто спрашивают:
❓ Что такое неизменяемый объект?
❓ Зачем нужны неизменяемые объекты?
❓ Как создать неизменяемый объект?
Неизменяемый объект - это объект, состояние которого не может быть изменено после создания. Когда объект является неизменяемым, его поля остаются постоянными и не могут быть изменены в течение его жизни.
Преимущества immutable objects:
💠 Потокобезопасность: Неизменяемые объекты безопасны для использования в многопоточной среде. Поскольку их состояние не может изменяться, нет необходимости в синхронизации доступа к ним.
💠 Безопасность: Поскольку неизменяемые объекты не могут быть изменены, они не подвержены ошибкам, связанным с изменением своего состояния случайным образом. Это особенно полезно, когда объект передается другим частям программы или потокам, и вы хотите быть уверены, что его состояние останется неизменным.
💠 Производительность: Поскольку неизменяемые объекты не могут быть изменены, их можно кэшировать и использовать повторно. Это может привести к улучшению производительности, особенно если создание новых объектов является затратной операцией.
💠 Еще одним важным применением неизменяемых объектов является использование их в качестве ключей для HashMap. В HashMap ключи хранятся в виде хэш-таблицы, и для быстрого доступа к элементам требуется эффективное вычисление хэш-кода. Если ключ изменяется, то его хэш-код также может измениться, что может привести к непредсказуемому поведению HashMap.
Использование неизменяемых объектов в качестве ключей гарантирует, что хэш-код ключа остается неизменным. Это обеспечивает правильное функционирование HashMap и предотвращает потерю элементов или неправильную работу при поиске элементов по ключу.
Создание immutable object:
▪️ Объявить все поля как private final:
private final String name;
private final int age;▪️ Не предоставлять методы для изменения полей (сеттеры). Вместо этого, инициализировать значения полей через конструктор класса:
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}▪️Не возвращать изменяемые объекты, такие как коллекции, массивы или другие объекты. Вместо этого, возвращать их защищенные копии:
public List<String> getNames() {
return Collections.unmodifiableList(names);
}👍8🔥4
Привет, друзья!
Вопрос "Какие методы есть у класса Object" довольно часто встречается на собеседованиях.
Давайте взглянем как можно на него ответить:
Это лишь некоторые методы Object. Они предоставляют базовую функциональность, настраиваемую по вашим потребностям.
И если вас спросят, есть ли еще какие-либо методы у Object, можно будет рассказать о методах
Вопрос "Какие методы есть у класса Object" довольно часто встречается на собеседованиях.
Давайте взглянем как можно на него ответить:
equals(Object obj): сравнивает объекты на равенство. Можно переопределить для сравнения по значениюhashCode(): возвращает уникальный идентификатор объекта. Используется с коллекциямиtoString(): возвращает строковое представление объекта. Переопределите для более информативного выводаgetClass(): возвращает объект Class, представляющий класс объектаclone(): создает и возвращает копию объекта. Можно переопределить для глубокого копированияfinalize(): вызывается перед удалением объекта из памяти. Но нет никаких гарантий, что данный метод будет вызван, поэтому использовать данный метод не нужноЭто лишь некоторые методы Object. Они предоставляют базовую функциональность, настраиваемую по вашим потребностям.
И если вас спросят, есть ли еще какие-либо методы у Object, можно будет рассказать о методах
notify и wait, которые мы рассмотрим в след посте❤11🔥6👍1
Методы класса Object, продолжение
Эти методы связаны с концепцией мониторов и синхронизации потоков выполнения в Java. Они используются для координации работы потоков и обеспечения безопасного доступа к ресурсам в многопоточной среде.
Имейте в виду, что методы
Учтите, что в большинстве случаев вам не понадобится использовать эти методы напрямую, так как существуют более современные и удобные механизмы для работы с многопоточностью в Java, такие как классы из пакета java.util.concurrent.
notify(): метод используется для возобновления выполнения потока, ожидающего монитор объекта с помощью метода wait(). Обычно используется в контексте многопоточности.notifyAll(): аналогично методу notify(), но возобновляет выполнение всех потоков, ожидающих монитор объекта.wait(): приостанавливает выполнение потока до тех пор, пока другой поток не вызовет метод notify() или notifyAll() на том же объекте.wait(long timeout): аналогично методу wait(), но добавляет временное ограничение на ожидание, указанное в миллисекундах.wait(long timeout, int nanos): аналогично методу wait(long timeout), но позволяет указать временное ограничение с точностью до наносекунд.Эти методы связаны с концепцией мониторов и синхронизации потоков выполнения в Java. Они используются для координации работы потоков и обеспечения безопасного доступа к ресурсам в многопоточной среде.
Имейте в виду, что методы
notify(), notifyAll() и wait() вызываются только внутри синхронизированного блока кода или метода, который синхронизирован с использованием ключевого слова synchronized.Учтите, что в большинстве случаев вам не понадобится использовать эти методы напрямую, так как существуют более современные и удобные механизмы для работы с многопоточностью в Java, такие как классы из пакета java.util.concurrent.
👍11❤3
Делаю для вас видос. Делаю столько же ошибок сколько и новичок в коде)
Если плохой код - это говнокод, то неудачные дубли это…
Продолжите в комментах)
Если плохой код - это говнокод, то неудачные дубли это…
Продолжите в комментах)
❤12😁3👍1
Так, ребята, не успеваю запилить видос ко времени, к которому хотелось бы, а оставлять вас без дела тоже не хочу.
Поэтому вот вам задание на следующий этап.
Изучите формат JSON
Вам необходимо научиться парсить JSON строки. Для этого:
💠 Подтяните к себе в проект библиотеку jackson. В pom.xml в блоке dependencies укажите такую зависимость (скрин того как надо укажу в комментах)
💠 Обновите зависимости проекта. Для этого в IDEA клацаете ПКМ внутри pom.xml -> maven -> reload project
💠 Для сериализации объектов в json строки и дессериализации json строк в объекты вам нужно использовать класс
💠 Просто введите в коде
💠 Почитайте о работе с данным классом. В основном, вам потребуется всего два метода:
И когда вы все это сделаете, вы будете готовы к выполнению самого задания на следующий этап)
А оно вот такое:
Заведите класс
Теперь вместо строк, вы должны сохранять объекты класса
API останется тем же. Только теперь вместо простой строки, необходимо вводить конкретного person-a в json формате. Например так:
Ставь лайк, если зачесались руки 🤩
Поэтому вот вам задание на следующий этап.
Изучите формат JSON
Вам необходимо научиться парсить JSON строки. Для этого:
💠 Подтяните к себе в проект библиотеку jackson. В pom.xml в блоке dependencies укажите такую зависимость (скрин того как надо укажу в комментах)
💠 Обновите зависимости проекта. Для этого в IDEA клацаете ПКМ внутри pom.xml -> maven -> reload project
💠 Для сериализации объектов в json строки и дессериализации json строк в объекты вам нужно использовать класс
ObjectMapper из библиотеки jackson, которую вы подтяните шагом ранее. 💠 Просто введите в коде
ObjectMapper, и если вы все сделали правильно с зависимостями, IDEA предложит импортировать данный класс.💠 Почитайте о работе с данным классом. В основном, вам потребуется всего два метода:
readValue и writeValueAsString. В комментах выложу примеры кода по работе с данным классом.И когда вы все это сделаете, вы будете готовы к выполнению самого задания на следующий этап)
А оно вот такое:
Заведите класс
Person с полями:name - String,
age - IntegerТеперь вместо строк, вы должны сохранять объекты класса
Person.API останется тем же. Только теперь вместо простой строки, необходимо вводить конкретного person-a в json формате. Например так:
{ "name": "bob", "age": 25 }Ставь лайк, если зачесались руки 🤩
❤17😍2
Media is too big
VIEW IN TELEGRAM
Привет, друзья!
Надо объяснить куда я пропал.
Мне хотелось сделать большой и классный видос на youtube про свое решение нашей String CRUD задачки. Но увы, я уперся и дальше что-то никак не идет. Отнимает много внутренних ресурсов, а результата ноль. И к тому же, ничего другого постить не могу, так как "не закончил ведь видос снимать".
Поэтому я решил отложить эту идею до лучших времен и двигаться дальше. Большой и классный видос я вам не покажу, но маленький, ламповый видосик, записанный на скрипучий микрофон с радостью скину)
Вы можете скачать мое решение отсюда: https://github.com/yourjm/project1/tree/string_crud
И сделать мне ревью кода. Вопросы и замечания приветствуются. Пояснения к коду смотрите в видосике. Надеюсь, вы найдете для себя много чего-полезного.
А я пока подумаю, как нам дальше двигаться вперед 😎
Надо объяснить куда я пропал.
Мне хотелось сделать большой и классный видос на youtube про свое решение нашей String CRUD задачки. Но увы, я уперся и дальше что-то никак не идет. Отнимает много внутренних ресурсов, а результата ноль. И к тому же, ничего другого постить не могу, так как "не закончил ведь видос снимать".
Поэтому я решил отложить эту идею до лучших времен и двигаться дальше. Большой и классный видос я вам не покажу, но маленький, ламповый видосик, записанный на скрипучий микрофон с радостью скину)
Вы можете скачать мое решение отсюда: https://github.com/yourjm/project1/tree/string_crud
И сделать мне ревью кода. Вопросы и замечания приветствуются. Пояснения к коду смотрите в видосике. Надеюсь, вы найдете для себя много чего-полезного.
А я пока подумаю, как нам дальше двигаться вперед 😎
👍13❤1
📢 Привет, друзья! В рамках нашего Sting CRUD проекта вам пришлось много парсить строки. Сегодня я предлагаю вам 10 сложных упражнений, которые помогут вам совершенствовать навык парсинга строк. Эти задания потребуют от вас применения различных методов работы со строками в Java и помогут вам стать опытными разработчиками. Готовы принять вызов? Давайте начнем!
1️⃣ Упражнение 1: Парсинг даты
Напишите метод, который принимает строку, содержащую дату в формате "dd.MM.yyyy", и возвращает объект типа LocalDate, представляющий эту дату.
2️⃣ Упражнение 2: Разбор CSV
Напишите метод, который принимает строку, содержащую данные в формате CSV (Comma-Separated Values, запятая в качестве разделителя), и возвращает массив массивов строк, представляющих значения каждой строки в CSV.
3️⃣ Упражнение 3: Поиск и замена
Напишите метод, который принимает строку и два шаблона: начальный и конечный. Метод должен найти все вхождения начального шаблона в строку и заменить их на конечный шаблон.
4️⃣ Упражнение 4: Извлечение чисел
Напишите метод, который принимает строку и извлекает из нее все числа, возвращая их в виде массива целых чисел.
5️⃣ Упражнение 5: Парсинг JSON
Напишите метод, который принимает строку, содержащую данные в формате JSON, и возвращает объект, представляющий эти данные.
6️⃣ Упражнение 6: Обратный порядок слов, игнорируя знаки препинания
Напишите метод, который меняет порядок слов в строке на обратный, игнорируя знаки препинания, и возвращает новую строку.
7️⃣ Упражнение 7: Проверка сбалансированности скобок
Напишите метод, который принимает строку, содержащую скобки (круглые, квадратные и фигурные) и проверяет, является ли она сбалансированной, то есть каждой открывающей скобке соответствует закрывающая.
8️⃣ Упражнение 8: Удаление HTML-тегов
Напишите метод, который удаляет все HTML-теги из строки и возвращает новую строку без тегов.
9️⃣ Упражнение 9: Подсчет слов с учетом регистра
Напишите метод, который подсчитывает количество вхождений каждого слова в строке, учитывая регистр, и возвращает словарь, где ключами являются слова, а значениями - их количество.
🔟 Упражнение 10: Разбор URL
Напишите метод, который принимает строку, содержащую URL, и разбирает ее на составляющие (протокол, хост, путь и т.д.), возвращая объект, представляющий эти компоненты.
Просьба выполнить эти упражнения и написать соответствующие тесты для каждого из них. Эти задания помогут вам улучшить ваш навык парсинга строк и написания тестов, что сделает вас еще более квалифицированными Java разработчиками.
Завтра я выложу решения для каждого упражнения, и вы сможете сверить свои результаты с моими.
Удачи, и продолжайте развиваться в программировании на Java! 🚀💻
1️⃣ Упражнение 1: Парсинг даты
Напишите метод, который принимает строку, содержащую дату в формате "dd.MM.yyyy", и возвращает объект типа LocalDate, представляющий эту дату.
2️⃣ Упражнение 2: Разбор CSV
Напишите метод, который принимает строку, содержащую данные в формате CSV (Comma-Separated Values, запятая в качестве разделителя), и возвращает массив массивов строк, представляющих значения каждой строки в CSV.
3️⃣ Упражнение 3: Поиск и замена
Напишите метод, который принимает строку и два шаблона: начальный и конечный. Метод должен найти все вхождения начального шаблона в строку и заменить их на конечный шаблон.
4️⃣ Упражнение 4: Извлечение чисел
Напишите метод, который принимает строку и извлекает из нее все числа, возвращая их в виде массива целых чисел.
5️⃣ Упражнение 5: Парсинг JSON
Напишите метод, который принимает строку, содержащую данные в формате JSON, и возвращает объект, представляющий эти данные.
6️⃣ Упражнение 6: Обратный порядок слов, игнорируя знаки препинания
Напишите метод, который меняет порядок слов в строке на обратный, игнорируя знаки препинания, и возвращает новую строку.
7️⃣ Упражнение 7: Проверка сбалансированности скобок
Напишите метод, который принимает строку, содержащую скобки (круглые, квадратные и фигурные) и проверяет, является ли она сбалансированной, то есть каждой открывающей скобке соответствует закрывающая.
8️⃣ Упражнение 8: Удаление HTML-тегов
Напишите метод, который удаляет все HTML-теги из строки и возвращает новую строку без тегов.
9️⃣ Упражнение 9: Подсчет слов с учетом регистра
Напишите метод, который подсчитывает количество вхождений каждого слова в строке, учитывая регистр, и возвращает словарь, где ключами являются слова, а значениями - их количество.
🔟 Упражнение 10: Разбор URL
Напишите метод, который принимает строку, содержащую URL, и разбирает ее на составляющие (протокол, хост, путь и т.д.), возвращая объект, представляющий эти компоненты.
Просьба выполнить эти упражнения и написать соответствующие тесты для каждого из них. Эти задания помогут вам улучшить ваш навык парсинга строк и написания тестов, что сделает вас еще более квалифицированными Java разработчиками.
Завтра я выложу решения для каждого упражнения, и вы сможете сверить свои результаты с моими.
Удачи, и продолжайте развиваться в программировании на Java! 🚀💻
👍13
Media is too big
VIEW IN TELEGRAM
Теперь скину вам свое решение по работе с объектом класса Person вместо строки.
Посмотреть изменения можно сздесь:
https://github.com/yourjm/project1/pull/1/files
Скачать решение можно отсюда:
https://github.com/yourjm/project1/tree/person_json
Ссылка на требования к данному этапу:
https://news.1rj.ru/str/your_java_mentor/67
Посмотреть изменения можно сздесь:
https://github.com/yourjm/project1/pull/1/files
Скачать решение можно отсюда:
https://github.com/yourjm/project1/tree/person_json
Ссылка на требования к данному этапу:
https://news.1rj.ru/str/your_java_mentor/67
Media is too big
VIEW IN TELEGRAM
Как и обещал, делаю ревью человеку, который первым выложил решение к задаче.
@MikhailSumarokov это твое)
Напоминаю, что теперь бесплатно ревью буду делать только первому решившему.
Для всех остальных, ревью в видео-формате будет доступно за:
небольшой донат
либо
рекламку моего канал и (небольшой донат) / 2
Если вы хотите получить видео-разбор своего решения, напишите мне в лс (@zor_07), либо под этим постом чирканите "хочу ревью"
@MikhailSumarokov это твое)
Напоминаю, что теперь бесплатно ревью буду делать только первому решившему.
Для всех остальных, ревью в видео-формате будет доступно за:
небольшой донат
либо
рекламку моего канал и (небольшой донат) / 2
Если вы хотите получить видео-разбор своего решения, напишите мне в лс (@zor_07), либо под этим постом чирканите "хочу ревью"
👍10
Привет, друзья!
Вчера я выложил вам задачки на парсинг строк.
В комментах к этому посту выложу решения к каждой задачке.
Сохраняйте, чтобы не потерять!
Обратите внимание, что эти примеры решений являются лишь одним из множества возможных подходов. Ваше решение может отличаться в зависимости от требований и предпочтений.
Успехов в выполнении этих упражнений, и продолжайте развиваться в программировании на Java! 🚀💻
Вчера я выложил вам задачки на парсинг строк.
В комментах к этому посту выложу решения к каждой задачке.
Сохраняйте, чтобы не потерять!
Обратите внимание, что эти примеры решений являются лишь одним из множества возможных подходов. Ваше решение может отличаться в зависимости от требований и предпочтений.
Успехов в выполнении этих упражнений, и продолжайте развиваться в программировании на Java! 🚀💻
🔥8❤1
Привет, друзья!
Хочу дать вам следующее задание по нашему CRUD приложению.
Работа с HashMap - это конечно круто, но работа с реальной БД - еще круче 😎
Поэтому следующее задание - развернуть базу данных и создать в ней таблицу Person с полями id, age и name.
Но не просто развернуть, а сделать это в докер-контейнере 🐳
Соберем все воедино.
1. Напишите docker-compose файл, который развернет вам Postgres контейнер
2. Напишите init.sql файл, внутри которого напишите скрипт создания таблицы Person
3. Попробуйте настроить docker-compose таким образом, чтобы он выполнил скрипт init.sql
Завтра-послезавтра выложу свое решение 🚀
Хочу дать вам следующее задание по нашему CRUD приложению.
Работа с HashMap - это конечно круто, но работа с реальной БД - еще круче 😎
Поэтому следующее задание - развернуть базу данных и создать в ней таблицу Person с полями id, age и name.
Но не просто развернуть, а сделать это в докер-контейнере 🐳
Соберем все воедино.
1. Напишите docker-compose файл, который развернет вам Postgres контейнер
2. Напишите init.sql файл, внутри которого напишите скрипт создания таблицы Person
3. Попробуйте настроить docker-compose таким образом, чтобы он выполнил скрипт init.sql
Завтра-послезавтра выложу свое решение 🚀
🔥10
Отвечу отдельным постом на этот вопрос.
1️⃣ Первый шаг по выполнению задания по развертыванию бд в докере - установка самого докера
Для этого, в зависимости от того, какая у вас ОС надо гуглить:
Для того, чтобы удостовериться, что вы правильно установили докер необходимо выполнить команду:
Данная команда скачает вам образ докер контейнера и развернет его. Если все ок, вы должны будете увидеть сообщение, которое начинается со слов:
2️⃣ Затем, вам необходимо установить docker-compose. Гуглить по аналогии с поисковым запросом по установке докера. Только вместо docker укажите docker-compose
В интернете много статей на эту тему.
Как только вы выполните эти пункты можете задавать следующий вопрос)
✳️ Я разделяю философию - изучай делая. В работе программиста всегда нужно будет изучать новые технологии, фреймворки и тулы.
Позже я все равно расскажу о докере, а пока попробуйте сделать самостоятельно )
1️⃣ Первый шаг по выполнению задания по развертыванию бд в докере - установка самого докера
Для этого, в зависимости от того, какая у вас ОС надо гуглить:
Docker install windows/ubuntu/mac/итпДля того, чтобы удостовериться, что вы правильно установили докер необходимо выполнить команду:
docker run hello-worldДанная команда скачает вам образ докер контейнера и развернет его. Если все ок, вы должны будете увидеть сообщение, которое начинается со слов:
Hello from Docker!2️⃣ Затем, вам необходимо установить docker-compose. Гуглить по аналогии с поисковым запросом по установке докера. Только вместо docker укажите docker-compose
В интернете много статей на эту тему.
Как только вы выполните эти пункты можете задавать следующий вопрос)
✳️ Я разделяю философию - изучай делая. В работе программиста всегда нужно будет изучать новые технологии, фреймворки и тулы.
Позже я все равно расскажу о докере, а пока попробуйте сделать самостоятельно )
🔥6❤1👍1
Продолжаем плавно знакомиться с Docker 🐳
💡 Представьте себе виртуальную машину, на которой будет установлен linux, в этот linux установится Java, maven и прочие технологии, требуемые для работы Java приложения. И внутри этой ВМ вы запустите свое приложение.
🀄Также представте, что данная виртуальная машина, в сравении с другими, будет быстрее запускаться, потреблять меньше ресурсов и занимать меньше места на диске. Это и есть докер-контейнер.
Докер контейнер - это запускаемая и изолированная среда, в которой работает приложение и все его зависимости. Он создается на основе докер образа.
Докер образ - это шаблон или инструкция для создания докер контейнера. Например, мы можем "сказать" докеру - создай мне образ, на основе ОС Ubuntu, установи на него Java 17. И на основе данного образа вы сможете запускать множество контейнеров.
А Docker - это ПО, которое помогает упаковать и запустить приложения в изолированных средах, т.е. контейнерах.
Сегодня была упрощенная теория, практика будет завтра)
💡 Представьте себе виртуальную машину, на которой будет установлен linux, в этот linux установится Java, maven и прочие технологии, требуемые для работы Java приложения. И внутри этой ВМ вы запустите свое приложение.
🀄Также представте, что данная виртуальная машина, в сравении с другими, будет быстрее запускаться, потреблять меньше ресурсов и занимать меньше места на диске. Это и есть докер-контейнер.
Докер контейнер - это запускаемая и изолированная среда, в которой работает приложение и все его зависимости. Он создается на основе докер образа.
Докер образ - это шаблон или инструкция для создания докер контейнера. Например, мы можем "сказать" докеру - создай мне образ, на основе ОС Ubuntu, установи на него Java 17. И на основе данного образа вы сможете запускать множество контейнеров.
А Docker - это ПО, которое помогает упаковать и запустить приложения в изолированных средах, т.е. контейнерах.
Сегодня была упрощенная теория, практика будет завтра)
👍6❤2
🏁 Spring CRUD проект, карта активности
Цель - создать простой пет-проект на Spring-Boot
1️⃣ CRUD операции на строке используя HashMap
Задание
Мое решение
2️⃣ Заменяем строку на Person, используем JSON
Задание
Мое решение
3️⃣ Развертываем БД в докер-образе
Задание
Мое решение
4️⃣ Замена HashMap на реальную базу данных с использованием JDBC
Задание
Мое решение
PS Данная карта будет пополняться по мере прохождения
Цель - создать простой пет-проект на Spring-Boot
1️⃣ CRUD операции на строке используя HashMap
Задание
Мое решение
2️⃣ Заменяем строку на Person, используем JSON
Задание
Мое решение
3️⃣ Развертываем БД в докер-образе
Задание
Мое решение
4️⃣ Замена HashMap на реальную базу данных с использованием JDBC
Задание
Мое решение
PS Данная карта будет пополняться по мере прохождения
❤11
Media is too big
VIEW IN TELEGRAM
Итак, друзья!
Вот что сделано: https://github.com/yourjm/project1/compare/person_json...docker_compose
Для тех, кто желает ворваться в наш маленький квест по созданию пет-проекта на Spring, можно скачать проект вот отсюда посмотреть что было уже сделано, и продолжать работу прям со следующего задания, модифицируя написанный мною код
В видео я еще раз рассказываю о докере и о том, как с ним работать. Как говорил в видео, новичку не обязательно вникать в тонкости работы докера, достаточно просто уметь с ним работать. Минимальное количество действий, достаточное для работы с докером я показал на видосике выше
Те из вас, кто уже начал кодить со мной - вы большие молодцы, продолжайте в том же духе 😎
Для вас специальное задания - повторить мои действия из видео, и написать в комментах, что базу развернуть удалось. Будут вопросы - пишите также в комменты
ЗЫ Что вообще происходит
Вот что сделано: https://github.com/yourjm/project1/compare/person_json...docker_compose
Для тех, кто желает ворваться в наш маленький квест по созданию пет-проекта на Spring, можно скачать проект вот отсюда посмотреть что было уже сделано, и продолжать работу прям со следующего задания, модифицируя написанный мною код
В видео я еще раз рассказываю о докере и о том, как с ним работать. Как говорил в видео, новичку не обязательно вникать в тонкости работы докера, достаточно просто уметь с ним работать. Минимальное количество действий, достаточное для работы с докером я показал на видосике выше
Те из вас, кто уже начал кодить со мной - вы большие молодцы, продолжайте в том же духе 😎
Для вас специальное задания - повторить мои действия из видео, и написать в комментах, что базу развернуть удалось. Будут вопросы - пишите также в комменты
ЗЫ Что вообще происходит
🔥11❤1
Приветствую всех любителей нажимать на кнопочки и получать за это деньги!
Решил запилить навигационный пост, чтобы всем было удобнее ориентироваться тут 🔍
Для тех, кто у нас совсем недавно, расскажу кратко про себя и наш ламповый чатик.
Меня зовут Анзор, и я помогаю начинающим Java программистам прокачивать свои скиллы и находить работу.
В этом канале я делюсь различными материалами по Java, а также агитирую людей писать код 💻
Навигация по каналу:
Обо мне
💠 Меня зовут Анзор...
💠 Это видео я снял 4 месяца назад...
💠 Картиночки...
Наставничество
👨🏫 О моем наставничестве
Отзывы учеников
👨🎓 Отзыв от Дани
👨🎓 Отзыв от Адама
Проекты нашего канала
🧑💻 Spring CRUD
Решил запилить навигационный пост, чтобы всем было удобнее ориентироваться тут 🔍
Для тех, кто у нас совсем недавно, расскажу кратко про себя и наш ламповый чатик.
Меня зовут Анзор, и я помогаю начинающим Java программистам прокачивать свои скиллы и находить работу.
В этом канале я делюсь различными материалами по Java, а также агитирую людей писать код 💻
Навигация по каналу:
Обо мне
💠 Меня зовут Анзор...
💠 Это видео я снял 4 месяца назад...
💠 Картиночки...
Наставничество
👨🏫 О моем наставничестве
Отзывы учеников
👨🎓 Отзыв от Дани
👨🎓 Отзыв от Адама
Проекты нашего канала
🧑💻 Spring CRUD
❤8👍4