JavaStart
909 subscribers
910 photos
28 videos
620 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Всем привет!
Расскажу немного про себя, как и почему я создавал курс.

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

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

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

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

Помимо цели обучения, есть цель устройства на работу. Пройдя очень много собеседований, я начал понимать, как это работает. Первое, что нужно сделать, это попасть на собеседование, нужно хорошее резюме, и пройти HR (HR делит ваше резюме на 2, значит нужно его умножить на 3? а если нечего умножать?). Далее собеседование. На самом старте собеседований не много, значит даже к первому нужно быть максимально готовым.

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

👉 JavaStart. Подписаться
👍14🔥42🤩1
Какая конструкция используется для обработки исключений в Java?
Anonymous Quiz
1%
for
3%
switch–case
3%
if–else
1%
foreach
91%
try–catch
0%
while
1%
Посмотреть ответ
32👍2🔥2🎉2
Всем привет!

Мы рады анонсировать вам платформу JavaStart

Вы уже знаете некоторую информацию про курс, но мы перечислим важные темы:

Курс будет доступен онлайн на платформе пожизненно;
Среднее прохождение курса составляет от 7–10 месяцев. Вы будете заниматься индивидуально и в своем темпе;
Личный ментор;
3 тестовых собеседования;
Три пет проекта для портфолио.

Первый проект только Java, второй Spring + Hibernate и финальный – система микросервисных приложений, которая включает в себя полный стек современных технологий крупных компаний – Spring Cloud, Docker, PostgreSQL, RabbitMQ.

Всего в курсе будет 4 модуля по 9–12 занятий. С программой курса вы можете ознакомиться на сайте. После второго, третьего и четвертого модуля ментор проведет вам собеседования.

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

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

Задавайте любые вопросы, на сайте есть ссылки на чат с поддержкой и номер телефона для связи – можно писать как в 💬 Telegram, так и в 💬 WhatsApp

Для тех, кто дочитал до конца, – промокод Start даст скидку 15% при оплате 😊

👉 JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥21👏1🎉1🤩1
JavaStart pinned a photo
Новое видео на Ютуб канале по интерфейсу Map в Java.

Друзья, для тех, кто лучше воспринимает информацию по видео, на нашем YouTube канале вышел короткий и очень наглядный ролик под названием “Интерфейс Map и его реализации”.

Переходите по ссылке и смотрите скорее! И конечно же подписывайтесь на наш канал JavaStart, чтобы не пропустить следующие обучающие видеоуроки по нашей любимой Java👩‍💻

https://www.youtube.com/watch?v=da99gND5RcI

👉 JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥21
😁26👍211🔥1
Паттерны проектирования в Java. Часть 1.

Практически всегда, если вы собеседуетесь на позицию Junior Java разработчика или стажера, вас спросят – знакомы ли вы с паттернами проектирования?

Также попросят рассказать о самом распространенном паттерне Singleton. Давайте разбираться.

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

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

Давайте я перечислю некоторые типы паттернов с кратким описанием, чтобы вы понимали, что их на самом деле очень много. А потом поговорим про каждый подробнее и в частности про Singleton паттерн.

И так, типы паттернов бывают:

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

– Структурные.
Структурные паттерны определяют отношения между классами и объектами, позволяя им работать совместно.

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

В следующих постах поговорим о представителях каждого типа паттернов проектирования.

👉 JavaStart. Подписаться
👍1641🔥1
Паттерны проектирования в Java. Порождающие. Часть 2.

Порождающие паттерны:

Singleton (Одиночка) - ограничивает создание одного экземпляра класса, обеспечивает доступ к его единственному объекту;

Factory (Фабрика) - используется, когда у нас есть суперкласс с несколькими подклассами и на основе ввода, нам нужно вернуть один из подкласса;

Builder (Строитель) - используется для создания сложного объекта с использованием простых объектов. Постепенно он создает больший объект от малого и простого объекта;

Prototype (Прототип) - помогает создать дублированный объект с лучшей производительностью, вместо нового создается возвращаемый клон существующего объекта;

И др.

К Синглтону ещё вернёмся. Как я уже говорил, о нем почти всегда спрашивают на собеседованиях 🤓

👉 JavaStart. Подписаться
👍6🔥621
Паттерны проектирования в Java. Структурные. Часть 3.

Структурные паттерны:

Adapter (Адаптер) - это конвертер между двумя несовместимыми объектами. Используя паттерн адаптера, мы можем объединить два несовместимых интерфейса;

Proxy (Заместитель) - представляет функциональность другого класса;

Facade (Фасад) - обеспечивает простой интерфейс для клиента, и клиент использует интерфейс для взаимодействия с системой;

Bridge (Мост) - делает конкретные классы независимыми от классов реализации интерфейса;

Decorator (Декоратор) - добавляет новые функциональные возможности существующего объекта без привязки его структуры;

И др.

Старайтесь запомнить, будет отлично, если сможете рассказать это на собеседовании, хотя бы пару слов 🔥

👉 JavaStart. Подписаться
8👍52🔥1
👍8😁722
Паттерны проектирования в Java. Поведенческие. Часть 4.

Поведенческие паттерны:

Template Method (Шаблонный метод) - определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом;

Observer (Наблюдатель) - позволяет одним объектам следить и реагировать на события, происходящие в других объектах;

Strategy (Стратегия) - алгоритм стратегии может быть изменен во время выполнения программы;

И др.

А в одном из следующих постов разберем подробно уже ставший нам знакомым Singleton паттерн.

👉 JavaStart. Подписаться
👍721👨‍💻1
Паттерны проектирования в Java. Singleton. Часть 5.

Как я уже говорил ранее, практически всегда, если вы собеседуетесь на позицию Junior Java разработчика или стажера, вас спросят о таком паттерне как Singleton. Давайте рассмотрим его подробно. Что это за зверь такой?

Синглтон — это один из самых простых шаблонов (паттернов) проектирования, который применяется к классу. Иногда говорят: “этот класс — синглтон”, подразумевая, что этот класс реализует паттерн проектирования синглтон.

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

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

Синглтон — это шаблон (паттерн) проектирования, который делает две вещи:

– Дает гарантию, что у класса будет всего один экземпляр класса;
– Предоставляет глобальную точку доступа к экземпляру данного класса.

Отсюда — две особенности, характерные для практически каждой реализации паттерна синглтон:

– Приватный конструктор. Ограничивает возможность создания объектов класса за пределами самого класса;

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

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

Первый пример на Картинке 1.

Закрытый конструктор вызывается один раз для инициализации поля INSTANCE. Открытых конструктор у класса нет, поэтому после инициализации класса будет существовать только один экземпляр Singleton.

Существует другой вариант (Картинка 2), когда вместо открытого статического поля создается открытый статический метод, а поле становится закрытым.

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

👉 JavaStart. Подписаться
🔥7👍5211
Какой интерфейс в Java используется для реализации множественного наследования?
Anonymous Quiz
2%
Runnable
10%
Serializable
9%
Cloneable
17%
Extendable
57%
Невозможно реализовать множественное наследование в Java
5%
Посмотреть ответ
👍742👏1🎉1
🔥5👍1👨‍💻1
Что такое логирование и логи в Java?

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

Логирование Java — это процесс, при котором программа записывает сведения о своем исполнении в консоль, или некий файл, или базу данных. Логирование дает возможность отслеживать ход исполнения программы и конкретно кода.

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

Логирование Java напоминает процесс работы «черного ящика» в самолете — в случае возникновения критических ситуаций оно способно «рассказать», что не так работает и на что обратить внимание.

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

Если мы с вами посмотрим на Картинку 1, то увидим так называемые логи:

Сначала записаны строки с текстом сообщения “Что-то не важное”
Затем строка с текстом “Состояние объекта”
Далее выводится  сообщение “Какая-то информация”
“Предупреждение”
“Ошибка!”
И наш привычный System.out.println(“Hello world!”);
Далее снова строки логирования.

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

В коде строка логирования с кастомным текстом сообщения может выглядеть, например, как на Картинке 2 - перед методом сохранения информации о юзере в базу мы пишем такую строчку с текстом логирования:

log.info("Saving data for user #{}", userId);     
// Пусть userId у нас равен 123
someRepository.save(user);

И в лог файле непосредственно перед вызовом метода сохранения мы получим строку:

Saving data for user #123

Обратите внимание, что на Картинке 1 сообщения логирования различаются  цветом. Это потому что существуют разные уровни логирования. Расскажу о них в следующем посте!

👉 JavaStart. Подписаться
👍6111👨‍💻1