Стать джуном
73 subscribers
4 photos
1 video
4 links
Канал про мое обучение и становление Junior Java Dev (Backend)

А это я: @velz01
Download Telegram
31.01.2025
Пробежался по многопоточности, как и хотел. Нормально выучу ближе к собесам, ибо сто проц все забуду.

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



Учился 1.5ч +-

Завтра хочу глянуть ThreadPool, т.к в 3 проекте Жукова пригодится.
01.02.2025
Глянул ThreadPool, Рефлексию и WebFilters

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


Учился 4-5ч

Завтра доглядеть курс по сервлетам и начинать проект Жукова потихоньку
02.02.2025

День бездельник (поработал чуть)

Завтра точно досматриваю сервлеты
03.02.2025

Досмотрел сервлеты

Узнал\вспомнил про аутенфикацию, авторизацию и как это реализуется в сервлетах


Учился 2-3 часа
04.02.2025

Начал 3 проект Жукова

Разобрал что такое rest, в общем понял что за это проект и что в нем делать


Учился 2.5 часа

Завтра 3-4 часа найти на проект
2
05.02.2025

Занимаюсь 3 проектом Жукова

Создал бд, сделал сервлеты, сервисы, дао, валидации и т.п
Теперь при запросах:
GET /currencies получаю все валюты
GET /currency/EUR конкретная валюта
POST /currencies добавляю валюту
Также я немного в ступоре был как правильно сделать коды ответов, в итоге разобрался.
В общем запросы для одной бд сделал.
Также думаю воспользоваться аннотациями @Singleton от jakarta вместо обычной реализации.


Завтра буду делать вторую бд "обмен валют" и реализацию запросов к ней.

Прогал сегодня 3.5 часа +-
06.02.2025

3 проект Сергея Жукова

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


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

Прогал 3 часа +-
2
07.02.2025 и 08.02.2025

3 проект Жукова

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


Остался один get запрос на обмен валюты, дальше рефактор(надеюсь недолго) и деплой 🎉

Программировал за эти 2 дня 4-5 часов
2
09.02.2025

Дописал 3 проект Жукова

Доделал запрос на получение обмена валют и еще пару штук которых нужно было переделать


Завтра буду это все дело рефакторить, возможно исправлю только основные моменты, типо разбиения еще каких то кусков кода по классам

Программировал 1-1.5 часа + почитал книжку на англ около часа
1
10.02.2025

До сих пор 3 проект

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

Ладно завтра оно как нибудь надеюсь исправится и буду изучать хибернейт на спокойничах.
Прогал 3-4 часа
🤬3
11.02.2025

Поставил по итогу фронт на проект, база данных заработала, но это получилось только при постоянном решении каких то неожиданных багов, которые берутся не пойми откуда.
Начиналось с того, что были трудности указать нормально путь на бд, чтобы и локально и удаленно работало, это можно было сделать одной простой строчкой, но кто о ней вот знал, да и после этого оказалось что пока я проверял что работает а что нет, появилась 5 одинаковых файлов с бд в разных директориях которые работали, когда захотели, просто тупо при запросе сработает одна база, при другом вторая и просто рандом) 🤩
Ну а закончилось тем что на серваке не работает изменение курса обмена валют, хотя через intelij все работает на ура, магия.

Также дальше нужно все таки изучать Junit а потом только hibernate, так что скоро займусь.

Прогал примерно часа 4
2👍2🔥1
Channel photo updated
12.02.2025
Начал изучать Junit (тестирование программ)

Продуктивный день, но не для программирования. Единственное что успел изучить так это Assertions. По сути они просто нужны для сравнения ожидаемого результата программы с актуальным при помощи огромного количества методов, но дмдев говорит все равно маловато как то, подключим дальше больше.
Еще странно, иногда пишут, что делали 3 проект месяц+, непонятная ситуация конечно, возможно конечно они просто с 0 знаний начали его делать🤨 ну окээй. Ну и в общем за сегодня ничего интересного.

Успел напрогаться час
🥰2💯2🤝1
13.02.2025
Junit 5

Узнал что есть аннотации которые дают возможность сделать действия перед/после каждого теста, всех тестов, ну для инициализации различных значений, или быть может что то подчистить. Еще интересная тема TDD, которая по сути говорит о том, что сначала мы пишем тесты, а потом код под них, так даже мыслим иначе при написании программы, уж в будущем думаю пригодится это. Плюс дмдев рассказал про доп. возможности для тестирования (assertJ, Hamcrest) ну из них явно удобнее пользоватся ассертJ.
Сонный денёк сегодня.🥱😴

Программировал 2-2.5 часа
🤩32🦄2
🗓15.02.2025

Junit 5

Прошел extension model сам он по себе из нескольких компонентов, в общем благодаря этой штуке, можно управлять жизненным циклом, описать действия перед\после блоков и тестов (ну описал не очень но там полезная фича), также появляется замечательная штука такая DI (внедрение зависимостей) ии можно внедрять зависимости как в методах, так и в полях, ну и остальное не так уже интересно. Посмотрел также один видос про моки, пока прям не успел уяснить все, но я так понимаю, что это замена реальных объектов (некая имитация), чтобы упростить себе жизнь при тестировании. Скоро подберусь к хиберу.

Не могу не вставить эстетик программирование вместе с дмдев.🤩

👨‍💻Программировал 2-3 часа, но что то непродуктивно снова😠
3👍3🔥2
🗓16.02.2025

Junit 5 (завершен). Начал Hibernate.

Прошел моки, спаи и даже есть то, что понял. Например моки:
    @Test
void shouldDeleteExistedUser() {
userService.add(NAME);
Mockito.when(userDao.delete(NAME.getId())).thenReturn(true);
boolean delete = userService.delete(1);
assertThat(delete).isTrue();
}

Например, здесь на 2 строке мы пользуемся фейк объектом (если я правильно понимаю) и указываем если в дао метод delete попадет id который указан как NAME.getId() то тогда дао возвратит сразу же true и никакой логики из настоящего класса не будет, это и круто т.к проверяем конкретный класс, тут это сервис (уже не зависящий от логики dao) на его работоспособность.
Также есть спаи (spy), но его отличие в том что он уже отчасти, возможно полностью работает как реальный объект, что тоже иногда нужно при тестировании.
В общем курс имба, мне понравилось. 👍
А по hibernate прошел только введение.

👨‍💻Программировал 2 часа.
👍32💔1
🗓17.02.2025 и 18.02.2025

Изучал Hibernate

Как мне подсказали, для 4 проекта будет достаточно посмотреть блок про Hibernate от Заура Трегулова. И разница действительно есть, даже в том, что dmdev я бы смотрел минимум 2 недели. Особенно учитывая, что он в сравнении с Трегуловым настолько углубляется и начинает про хибер рассказывать, что там это реально лишнее.
Смотря заура, я будто бы ощущаю себя мега профи во всем программировании, он и рассказывает по несколько раз так еще и простые вещи. Посмотрел последние видео про отношения в таблицах на 1.5-2х, нормально зашло.🔥

Так вот для тех кто не знает что такое Hibernate такой фреймворк, который на самом деле упрощает жизнь программисту, и вместо того чтобы вручную писать запросы к базам данных, он позволяет это сделать одной командой типа save, delete. Ну и главная фишка перевод данных из реляционного представления в объект (строка из базы данных -> объект в джаве)
try (SessionFactory factory = new Configuration()
.configure("hibernate.cfg.xml")
.addAnnotatedClass(Employee.class)
.buildSessionFactory();
Session session = factory.getCurrentSession()) {

session.beginTransaction();
Employee employee = session.get(Employee.class, 4);
employee.setName("Igor");
session.save(employee);

session.getTransaction().commit();
}

Тут по сути получение сессии, открытие транзакции, и все, пишем запросы и закрываем транзакцию.🥱

Программировал за эти дни 4-4.5 часа
3👍3🔥2
Всем вошедшим привет👋 , хочу рассказать как я учусь вообще и может вас замотивирую учить вполне хороший язык программирования -> java

Начну с роадмапа Сергея Жукова, который реально помогает закрепить все изученное.
В нем есть 7 петпроектов, начиная с java core, ООП до Spring + важные технологии для джуна. Плюс так понимаю что там есть и для python.
https://zhukovsd.github.io/java-backend-learning-course/
Как он говорит сделав 6 проект а это у нас уже использование spring, hibernate и mysql, да и получается, что можно искать работу. В общем, имба.

Но откуда брать материалы тогда, чтобы учить технологии для петпроектов, ведь все же платно? Но уже нет, давно люди уже всё слили, и вот например тут все курсы от dmdev в самом вверху да и плюс там еще много материалов.🤩
https://t.me/nickelodeona_ch
8🔥5💩4
🗓20.02.2025

Решил наконец таки прочитать ревью на свой устрашающий проект на сервлетах. Текста и соответственно ошибок куча, много из-за того, что просто уже в конце забил и побыстрее бы закончить :) Где то пользовался оберткой над примитивами за зря, а где то уже на уровне запросов к БД наложал (почти). 😔
Записал для себя что нужно будет не забыть при написании 4 проекта.

В общем, думаю надо начать с того, что у меня есть пробелы в знаниях по solid и попробую почитать книгу "Чистый код", там должно быть то, что мне нужно знать. Еще думаю лекцию по MVC глянуть, будто бы тоже есть что я могу не знать (так и есть) Также, когда уже перейду к следующему проекту, то буду уже его рефакторить, смотреть чужой код, кто да как сделал и изучать новые для себя фичи, все как надо постараюсь сделать, буду исправляться.

👨‍💻 Почти программировал сегодня 2 часа
6👍2🔥1
🗓21.02.2025 и 22.02.2025

Всем привет 🙋.
Читал эти дни книжку чистый код. И она реально неплоха. Прочитал главу про имена, но там +- вода типа выбирайте имена не используя сленг, остроумие и все подобное. 💧

Но вот глава про функции уже оказалась полезной. Только гляньте как он капсом пишет, что должны делать функции. Мне нравится как он на примерах объясняет как можно сокращать функции, как можно оставить функцию на одном уровне абстракции, то есть например она не должна получать какую-то страницу и одновременно с этим обрабатывать данные этой страницы (обработку вынесем в отдельный метод).
Из книги:
Короче говоря, программист, пишущий чистый код, — это художник, который проводит пустой экран через серию преобразований, пока он не превратится в элегантно запрограммированную систему.

Также глянул лекцию про MVC, интересно.

👨‍💻 Времени в айти: +3.5 часа
32💘2