С нуля до оффера
195 subscribers
91 photos
34 videos
15 files
30 links
Тут о превращении из омежки в сигму-программиста 🦾💻

По вопросам : @kottik111_dev
Download Telegram
05.05.2025

Ребятки, всем привет !
👋

Ну что, дни отдыха прошли отлично — но очень быстро
У меня был детокс от соцсетей: я восстанавливала нервную систему, отдыхала, гуляла на природе и ела много шашлыка 🦔

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

Ну а теперь к отчету 👇

Я практически выполнила весь план на эти выходные:
Анализ задач - 🔠
Написать продукт для заказов-
🔠
Повторить связь Many-to-many-
🔠
Внедрить в свой проект -
🔠

Не могу сказать, что я совсем не внедрила его
Просто со временем до меня вроде как дошло, как всё должно быть устроено
В итоге у меня получилось сделать связку products <——> orders, но изначально я зашла вообще не с той стороны:
Вместо того чтобы сразу определить, кто будет владельцем связи, и создать таблицу, я начала писать отдельный класс, в который пыталась запихнуть две сущности и связать их там
Но решение оказалось куда проще…


В конечном итоге я разобралась, всё сделала — и было гуд 😎
Но остался, так скажем, «моментик», который я упустила: добавлять количество продуктов 🤡

В стандартной связи @ManyToMany нельзя просто так добавить количество, потому что:

Стандартная связь @ManyToMany учитывает только две колонки, игнорируя любые дополнительные
И даже если вручную добавить еще одну колонку с количеством продуктов, то никак не получится заставить хибернейт
🎉
считывать данные из нее(новой колонки)


Решение, которое сразу приходит на ум — это снова использовать отдельную сущность, где можно заменить @ManyToMany на @OneToMany + @ManyToOne, чтобы в этой "промежуточной" сущности хранить quantity
Но такой вариант мне не подошёл
Так что пришлось обратиться за помощью к ментору — и он подсказал, что здесь можно немного поменять код и использовать Map, где ключ 🔑— сам продукт, а значение — количество

И ничего лишнего создавать не придётся
Так что завтра буду всё исправлять и доделывать 🙄

Программировала сегодня: 3 часа ⌨️

Всем большое спасибо, что подписываетесь и следите за моим продвижением! 🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
16
06.05.2025

Ребятки, всем пис
👋

Чего я сегодня делала

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


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

Пыталась понять,как это все перестроить с использованием Map — и спустя два часа вроде что-то сделала… 🥲

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

Программировала сегодня: 2 часа ⌨️

Всем большое спасибо, что подписываетесь и следите за моим продвижением! 🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10
А еще сегодня ездила на новую квартиру занималась установкой вай фая, так что позаниматься вышло не прям много

Зато сделала обещанный фото-обзор

Мечтой программиста не назовешь(по сравнению с прошлой ускользнувшей квартиркой), но тоже пойдет

Вообще эти переезды реально уже задолбали, столько сил высасывают…
Хочется конечно что-то свое, но пока не прям в пределах досягаемости :(
🔥19
This media is not supported in your browser
VIEW IN TELEGRAM
Как в моем воображении ментор ревьюит мой код 😅

#мемасики
😁151
07.05.2025

Ребятки, всем привет!
👋

Сегодня ничем интересным поделиться не могу

День выдался, мягко говоря, отвратительным — настроение испортили, и в итоге я почти ничего толком не сделала

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


Эх, когда-нибудь я стану эмоционально зрелой и перестану переносить свое моральное состояние на рабочие задачи, но пока еще не доросла до такого 😒

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


Программировала сегодня: 1 час 💻

Всем большое спасибо, что подписываетесь и следите за моим продвижением! 🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏114
Ребятки, ну что, всем привет! 👋
Надеюсь, вы готовы к моему возвращению сюда :)

Для начала - подведу учебные итоги, а во втором посте уже расскажу подробнее обо всём

Должна покаяться: занималась не очень много…

Продолжала улучшать свой проект - потихоньку добавляла во все контроллеры пагинацию, сортировку и фильтрацию
В целом это было не слишком сложно, но больше всего вопросов у меня вызвала работа со Specification — долго не могла нормально вникнуть и полноценно всё осознать😠

Потом я перешла к изучению MapStruct’а
До этого весь маппинг делала вручную (ментор сказал, что для таких орешков 🌰, как я, лучше сначала всё поделать ручками - и когда полноценно пойму, как всё работает, уже можно и жизнь себе облегчать)
Сейчас как раз занимаюсь тем, чтобы внедрить его в свой проект

Ещё недавно приобрела две интересные книжки по жабе👩‍💻
Там не просто основы должны быть, а прям глубокое, продвинутое ООП с паттернами, архитектурными приёмами и нетривиальными/сложными примерами кода


Пока что читаю книгу по ООП, вперед продвинулась немного, в начале новой информации не так уж много, но дальше, похоже, будет интереснее

Как дочитаю - обязательно дам своё ревью на книжку 🙂

Всем большое спасибо, что подписываетесь и следите за моим продвижением! 🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥123👍2
Ну а теперь расскажу, как прошли эти 1,5 недели моего отсутствия

Я за это время чуть не ☠️

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

Но самое прикольное было вот в чём:

1) Меня дважды кинул клининг
В первой компании бригадир получил травму, и они просто отказались ехать
Во второй компании сломалась машина для перевозки всей техники
Когда на третий день я, наконец, нашла клинеров - они оказались крысами 🐀

Они взяли с меня доп 💴 за мытьё посуды и уборку шкафов, но не поставили руководство в известность - тупо сунули деньги себе в карман

Если прям кратко они часть посуды помыли очень хуёво, сполоснули тупо водой и спрятали в шкаф, а 2 часть не стали мыть вообще, накрыли ее сверху парочкой чистых тарелок 🤷‍♂️

Когда я начала разбираться с руководством, оказалось, что они вообще не знали, что я что-то доплачивала 🤡

2) Для переезда пришлось подключать близких, и всю неделю у меня были "гости"
Во вторник они затопили соседей
(Я только заселилась, неделя прошла - а хозяйка уже орёт на меня 🫠)

3) В среду они засорили унитаз
Ремонт обошёлся в 7 тысяч

4) В пятницу приехала на старую квартиру забрать остатки вещей и обнаружила, что вся кухня обесточена
Во всех остальных комнатах всё работает, а там - нет
Увидела, что холодильник разморозился, всё из морозилки растаяло и потекло по кухне
Запах - как из ада 🔥

На следующее утро мне сдавать квартиру хозяину, а у меня - внеплановый адский потоп
Пришлось срочно всё убирать, чистить

Не знаю, что за ретроградный Меркурий это был,
но я буквально каждый день ходила с дёргающимся глазом 👀

#личное
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯17😱51
19.05.2025

Ребятки, всем привет!
👋

Сегодня планировала продолжить внедрять MapStruct, но ментор отревьюил то, что я делала последние 1,5 недели
В целом код был написан нормально, но не обошлось без правок:

1⃣При получении клиента почему-то перестал отображаться заказ 😢

2⃣Напутала с кое-какой бизнес-логикой при обновлении заказа

3⃣Не получается удалить клиента у которого есть заказы, те же заказы с продуктами удаляются спокойно


Короче, сейчас пытаюсь все исправить и как разберусь с этими ошибками буду возвращаться к мапструкту 😕

Программировала сегодня: 2,5 часа ⌨️

Всем большое спасибо, что подписываетесь и следите за моим продвижением! 🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Это я все 1,5 недели уверяла ментора, что с проектом точно нет никаких проблем

Тем временем как работает мой код 🥲 :

#мемасики
😁17🤪2
20.05.2025

Ребятки, всем привет!
👋

Сегодня что-то сильно устала, поэтому пост-отчёт будет кратким

Разобралась со всеми(практически) ошибками, которые прислал ментор — всё(практически все😅) теперь работает нормально

Единственная проблема, которую ещё предстоит решить — это удаление продуктов
При удалении клиента, у которого есть заказы с продуктами - происходит ошибка
Оказалось, это связано с тем, что я использую @ElementCollection со связью через Map, а не как полноценную сущность
В этом случае 🎉 не управляет ProductEntity

Есть два варианта, как это можно разрулить:

1️⃣Сделать полноценную сущность-связь, которая будет связывать Order и Product

2️⃣Убрать к чёрту этот Map и сделать @ManyToMany (я над этим Map столько пыхтела, так что такой вариант мне точно не нравится!!!!)
НО тогда мы потеряем инфу о количестве продукта в заказе ❗️

Дополнительный 3️⃣ вариант:

GPT посоветовал использовать в @ElementCollection такую штуку — @OnDelete(action = OnDeleteAction.CASCADE)
(ну а кто я такая, чтобы отказать гпт-великому 😄)
Попробовала добавить эту аннотацию — она вроде как должна позволить базе самой удалять строки из order_product, даже если 🎉 этого не сделал
Но в итоге получила какую-то ошибку 🤡

В общем, пока не знаю, как решать эту проблэму…
Ментор обещал тоже глянуть и, может быть, подскажет что-нибудь дельное

Завтра надеюсь вернуться к MapStruct’у и наконец начать с ним чего-нибудь уже делать


P.S Даа, пост вышел прям кратким, сори 🤭


Программировала сегодня: 3 часа ⌨️

Спасибо большое всем, кто подписывается и следит за моим прогрессом! 🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥113👍1
21.05.2025

Ребятки, всем привет!
👋

Сегодня особо ничего интересного, увы, не было

Я дошла до MapStruct’а
Ещё раз прошлась по теории - законспектировала, что это такое, зачем он нужен и какие типы преобразований умеет делать
Посмотрела примеры кода и то, как он заменяет ручной маппинг
После этого начала пробовать его внедрять

В целом оказалось даже не так сложно
🔹🔹 была одна основная загвоздка 👇

У меня в сущности OrderEntity есть поле Map<ProductEntity, Integer> — это товар и его количество
А в ответе (OrderResponseDto) мне нужно возвращать List<ProductWithQuantity>, где отдельно лежат ID, название товара и количество


Раньше я писала цикл вручную: проходила по мапе, вытаскивала товар и количество, создавала объект ProductWithQuantity и добавляла его в список

Такие структуры MapStruct автоматически не преобразует, это не просто копирование полей, а трансформация из мапы в список

Для решения надо написать отдельный метод внутри маппера, который вручную проходит по мапе и собирает список нужных объектов - а потом подключить его к MapStruct’у

Ноооо я сегодня до этого не дошла 🙁
Буду уже завтра всё заканчивать :)

А еще вчерашнюю проблему с удалением клиента, заказа и продуктов пока что решить так и не удалось
Жду когда ментор найдет время и глянет, че там вообще такое
🤔

Программировала сегодня: 2 часа ⌨️

Всем большое спасибо, что подписываетесь и следите за моим продвижением! 🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4
Media is too big
VIEW IN TELEGRAM
23.05.2025

Ребятки, всем
👋

Вчера не успела написать пост, так что сегодня отчёт сразу за два дня

Разбиралась с преобразованием из Map<ProductEntity, Integer> в List<ProductWithQuantity>

Как и планировала, написала отдельный метод в маппере — он вручную проходит по мапе и собирает список нужных объектов и этот метод я подключила к MapStruct’у

Часть ручного маппинга я сделала ещё в среду, а остальное как раз вчера
Но что-то программе не заладилось и всё вдруг пошло по одному месту…

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

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

Он с ходу тоже не понял в чём затык
Сказал, что все гуд 😎 на первый взгляд и видимо надо покапаться самому

И вот, спустя время, он мне присылает, где была эта сраная клоунская ошибка 😡

А в чём именно была проблема - узнаете из видоса 🤭

Программировала вчера: 3,5 часа 💻

Программировала сегодня: 2 часа 💻

Всем большое спасибо, что подписываетесь и следите за моим продвижением!
🫶

#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥5👍1