Первая рабочая неделя
Подходит к концу первая рабочая неделя.
В понедельник дали все доступы.
Во вторник - новую задачу:
Отправить уведомления в операционный саппорт, если клиент закрывает последний счет.
В целом ничего сложного, просто пришлось разбираться с конфигурационным сервисом, который раздает проперти всем остальным сервисам.
В среду "ковырялся" - разбирался, как работают сервисы нотификации и отправки email'a. Все оказалось, прям, как я люблю - через билдеры.
В четверг в обед сдал код, через пару часов получил код-ревью. В целом ошибки были связанны с невнимательностью: косяк в паттерне форматера, потерянный перенос в темплейте письма.
Остальное про конфигурирование и логирование по-уму )))
В пятницу доделывал исправления и конфигурации.
Сейчас все залил, жду, когда покажут, как передать в тестирование, но кажется, это будет на след неделе.
Из нового и интересного:
🔸Паттерн сага и про то, как просто объяснить, что такое хореография и оркестрация.
🔸Бутовая аннотация @ConfigurationProperties
Подходит к концу первая рабочая неделя.
В понедельник дали все доступы.
Во вторник - новую задачу:
Отправить уведомления в операционный саппорт, если клиент закрывает последний счет.
В целом ничего сложного, просто пришлось разбираться с конфигурационным сервисом, который раздает проперти всем остальным сервисам.
В среду "ковырялся" - разбирался, как работают сервисы нотификации и отправки email'a. Все оказалось, прям, как я люблю - через билдеры.
В четверг в обед сдал код, через пару часов получил код-ревью. В целом ошибки были связанны с невнимательностью: косяк в паттерне форматера, потерянный перенос в темплейте письма.
Остальное про конфигурирование и логирование по-уму )))
В пятницу доделывал исправления и конфигурации.
Сейчас все залил, жду, когда покажут, как передать в тестирование, но кажется, это будет на след неделе.
Из нового и интересного:
🔸Паттерн сага и про то, как просто объяснить, что такое хореография и оркестрация.
🔸Бутовая аннотация @ConfigurationProperties
👍2👏2
Ручное тестирование API
Недавно получил новую задачу на создание сервиса. О задаче отдельным постом позже.
Сегодня возникла необходимость ручного тестирования сервиса.
Я работаю на корпоративном ноуте. Хром в последнее время ведет себя не очень, поэтому решил поискать альтернативу расширению.
Посоветовали insomnia.
Нашел вокршоп на тему.
Из него узнал, что в insomnia можно использовать переменные окружения и плагины. Это очень облегчает тестирование.
Самое, пожалуй, интересное - использование результатов запросов в других запросах. Это прям круто!💥💥
Давно я не мог сказать хоть про что-то - рекомендую!!!⚡️
Недавно получил новую задачу на создание сервиса. О задаче отдельным постом позже.
Сегодня возникла необходимость ручного тестирования сервиса.
Я работаю на корпоративном ноуте. Хром в последнее время ведет себя не очень, поэтому решил поискать альтернативу расширению.
Посоветовали insomnia.
Нашел вокршоп на тему.
Из него узнал, что в insomnia можно использовать переменные окружения и плагины. Это очень облегчает тестирование.
Самое, пожалуй, интересное - использование результатов запросов в других запросах. Это прям круто!💥💥
Давно я не мог сказать хоть про что-то - рекомендую!!!⚡️
Уведомления в телеграмм с сайта
Последнее время гугл злит меня все больше и больше.
Сначала хром мне много мозга съел - просто тупил, не синхронизировался, и в пике - не хотел ставить расширения.
Но недавно этот паразит внес свой же ящик в свой спам лист и из-за этого с сайта жены перестали приходить анкеты.
Поменял почту на яндекс — и все забегало...
За одно сделал так, чтобы инфа с форм приходила ей в телеграмм.
Оказалось все ну-у-у очень не сложно 😜
1️⃣ Создаем нового бота:
Оказалось просто: надо к запросу добавить
Жена счастлива, а когда жена счастлива... Ну вы сами понимаете
Последнее время гугл злит меня все больше и больше.
Сначала хром мне много мозга съел - просто тупил, не синхронизировался, и в пике - не хотел ставить расширения.
Но недавно этот паразит внес свой же ящик в свой спам лист и из-за этого с сайта жены перестали приходить анкеты.
Поменял почту на яндекс — и все забегало...
За одно сделал так, чтобы инфа с форм приходила ей в телеграмм.
Оказалось все ну-у-у очень не сложно 😜
1️⃣ Создаем нового бота:
t.me/botFather ➞ /start ➞ /newbot и в итоге получаем TOKEN
2️⃣ Узнаем ID своего аккаунта у t.me/userinfobot
3️⃣ Сcылка на API: https://api.telegram.org/bot[TOKEN]/sendMessage?chat_id=[ID]&text=[TEXT], получаем URL
4️⃣ И отправляем<?phpДольше всего провозился с "украшением текста" - не мог понять, почему не срабатывает в тексте разметка HTML.
file_get_contents(URL)
Оказалось просто: надо к запросу добавить
&parse_mode=HTML или Markdown, но это кому как нравится.Жена счастлива, а когда жена счастлива... Ну вы сами понимаете
👍4🔥2
Сообщение из Exel в Телеграмм.
Недавно сделал уведомления с сайта в телегу. Тогда же попытался сделать что-то подобное для другого проекта.
Требовалось из экселя по нажатию кнопки отправить уведомление.
Создание бота и кода на VBA трудов не составило, однако не заработало...
В воскресенье удалось посидеть над задачей. Заставить работать MSXML2.XMLHTTP и еще пару каких-то вариантов не удалось❌.
В итоге написал bat-ник с параметрами, а в нем curl'ы. Честно говоря, первый раз за все время мне пригодились знания о curl.
Отдельная печаль была с энкодингом строки, т.к. в VBA встроенной функции нет.
Сначала хотел написать сам🤔, но потом быстро нашел место, где списать...
Сейчас все работает. С сегодняшнего дня начали пользоваться.
Недавно сделал уведомления с сайта в телегу. Тогда же попытался сделать что-то подобное для другого проекта.
Требовалось из экселя по нажатию кнопки отправить уведомление.
Создание бота и кода на VBA трудов не составило, однако не заработало...
В воскресенье удалось посидеть над задачей. Заставить работать MSXML2.XMLHTTP и еще пару каких-то вариантов не удалось❌.
В итоге написал bat-ник с параметрами, а в нем curl'ы. Честно говоря, первый раз за все время мне пригодились знания о curl.
Отдельная печаль была с энкодингом строки, т.к. в VBA встроенной функции нет.
Сначала хотел написать сам🤔, но потом быстро нашел место, где списать...
Сейчас все работает. С сегодняшнего дня начали пользоваться.
👍2🔥2
Эмодзи в сообщение телеграмм-бота
После вчерашней победы захотелось добавить красоты в сообщения телеграмм-бота 🌸
Из стандартного работает:
*жирное*
_подчеркивание_
~зачеркивание~
[текст_ссылки](ссылка)
Захотелось еще и смайликов повставлять.
Нашел замечательную табличку Emoji Unicode Tables, взял из нее код UTF-8 (только через %, а не \x) — и вот она красота!!!
После вчерашней победы захотелось добавить красоты в сообщения телеграмм-бота 🌸
Из стандартного работает:
*жирное*
_подчеркивание_
~зачеркивание~
[текст_ссылки](ссылка)
Захотелось еще и смайликов повставлять.
Нашел замечательную табличку Emoji Unicode Tables, взял из нее код UTF-8 (только через %, а не \x) — и вот она красота!!!
🖥 Трудовые будни
Уже третью неделю занимаюсь одной задачей. Звучит достаточно просто - разработать сервис для автоматизации стрессового тестирования.
Что было понято после первых двух раз из прочитанного ТЗ:
1️⃣Надо получить данные, сложить их в свою базу.
2️⃣Сделать кое-какую агрегацию по этим данным и сохранить.
3️⃣Создать из заполненных таблиц csv файлы.
4️⃣Сохранить их в облако.
5️⃣Получить файл-сценарий, распарсить и сохранить в базу.
6️⃣Согласно сценарию сделать расчет.
Пока всё ещё сижу на первом пункте. 🫣
Структура работы с базой сервиса готова. Но вот получение — это просто ужас какой-то!
На данный момент нужны данные где-то из 20 таблиц с нетривиальными взаимосвязями. Причём просто взять и вытащить всё данные к себе не вариант. Данных ооочень много, количество столбцов в таблицах — около ста и выше, в некоторых более 150 миллионов записей.
Несмотря на ужас происходящего 🤣, до конца недели все-таки рассчитываю получить рабочий вариант п.1
Уже третью неделю занимаюсь одной задачей. Звучит достаточно просто - разработать сервис для автоматизации стрессового тестирования.
Что было понято после первых двух раз из прочитанного ТЗ:
1️⃣Надо получить данные, сложить их в свою базу.
2️⃣Сделать кое-какую агрегацию по этим данным и сохранить.
3️⃣Создать из заполненных таблиц csv файлы.
4️⃣Сохранить их в облако.
5️⃣Получить файл-сценарий, распарсить и сохранить в базу.
6️⃣Согласно сценарию сделать расчет.
Пока всё ещё сижу на первом пункте. 🫣
Структура работы с базой сервиса готова. Но вот получение — это просто ужас какой-то!
На данный момент нужны данные где-то из 20 таблиц с нетривиальными взаимосвязями. Причём просто взять и вытащить всё данные к себе не вариант. Данных ооочень много, количество столбцов в таблицах — около ста и выше, в некоторых более 150 миллионов записей.
Несмотря на ужас происходящего 🤣, до конца недели все-таки рассчитываю получить рабочий вариант п.1
🎓 Развитие
До НГ (2023) планирую:
🔹 доделать оглавление в заметках для собесов; ✅
🔹 доделать поиск по оглавлению; ✅
🔹 добавить в заметки вопросы по хиберу, jpa, и sql;
🔹 закончить курс по Oracle SQL; ✅
🔹 пройти курс по SPRING от DMDew;
🔹 просмотреть курс(интенсив) по KAFKA от Spurs; ✅
🔹 нарешать до 300 задач на leetcode, сейчас 173.
Мне кажется, что запланировано не так много и есть реальный шанс это всё сделать.
#plans
До НГ (2023) планирую:
🔹 доделать оглавление в заметках для собесов; ✅
🔹 доделать поиск по оглавлению; ✅
🔹 добавить в заметки вопросы по хиберу, jpa, и sql;
🔹 закончить курс по Oracle SQL; ✅
🔹 пройти курс по SPRING от DMDew;
🔹 просмотреть курс(интенсив) по KAFKA от Spurs; ✅
🔹 нарешать до 300 задач на leetcode, сейчас 173.
Мне кажется, что запланировано не так много и есть реальный шанс это всё сделать.
#plans
🔥5👍3
🖥 Трудовые будни
Продолжаю пилить сервис.
Для работы с BigDecimal сказали использовать библиотеку big-math.
Возникла необходимость запилить SQL (для MS) запрос данных со сроком давности, т.е., например, за последние 3 месяца.
Самым эффективным оказалось использовать функцию вычисления разницы дат
В обозримом будущем вижу несколько проблем:
- настройка доступа к нескольким БД,
- получение данных из стороннего сервиса, т.к. в нем, как я понял, нет пакетной обработки.
Неделя только началась, а голова уже кругом. 🤯
А как началась ваша неделя?
Продолжаю пилить сервис.
Для работы с BigDecimal сказали использовать библиотеку big-math.
Возникла необходимость запилить SQL (для MS) запрос данных со сроком давности, т.е., например, за последние 3 месяца.
Самым эффективным оказалось использовать функцию вычисления разницы дат
DATEDIFF (в_чем_мерить, дата, дата)Чтобы не забыть, текущая дата -
GETDATE()
Самое веселое — это приведение строки к дате, т.к. в базе дата хранится как строка yyyyMMdd
CONVERT(DATE, VARCHAR)Кстати, у последней множество стилей, которые надо указывать кодом, а не паттерном.
В обозримом будущем вижу несколько проблем:
- настройка доступа к нескольким БД,
- получение данных из стороннего сервиса, т.к. в нем, как я понял, нет пакетной обработки.
Неделя только началась, а голова уже кругом. 🤯
А как началась ваша неделя?
👍4
🖥 Трудовые будни
Как и предположил ранее - возникли проблемы 😜
Первая - доступ к нескольким БД. Шеф ее решил за час, просто создав апи 🤘
Вторая - получение данных из RuData. Тоже начала, вроде, решаться довольно бодро ✈️
Оказывается, у нас есть сервис-адаптер, который ходит, куда надо.
В него только следует подкинуть запрос - и все. Но когда подключил, все стало ломаться... 🤬🤯
Оказывается, данные, которые посылаю, вызывают в недрах стороннего сервиса 500-ю 🧨🧨🧨
Конечно, было бы приятнее увидеть что-то вроде 400 Bad Request, ну, да бог им судья 💩⚖️🎂
Буду завтра с утра мучить аналитика... 🎷🎻🎺
А пока пойду и выпью рюмку чаю что ли😜
Как и предположил ранее - возникли проблемы 😜
Первая - доступ к нескольким БД. Шеф ее решил за час, просто создав апи 🤘
Вторая - получение данных из RuData. Тоже начала, вроде, решаться довольно бодро ✈️
Оказывается, у нас есть сервис-адаптер, который ходит, куда надо.
В него только следует подкинуть запрос - и все. Но когда подключил, все стало ломаться... 🤬🤯
Оказывается, данные, которые посылаю, вызывают в недрах стороннего сервиса 500-ю 🧨🧨🧨
Конечно, было бы приятнее увидеть что-то вроде 400 Bad Request, ну, да бог им судья 💩⚖️🎂
Буду завтра с утра мучить аналитика... 🎷🎻🎺
А пока пойду и выпью рюмку чаю что ли😜
👍2
🖥 Трудовые будни. Любовь дня - mapstruct.
Как говорил раньше, в моей текущей задаче достаточно толстые сущности. И основная печаль - большие конструкции по их созданию и апдейту. 🤧
Плюс, еще надо плодить сущности из имеющихся, но с небольшим уменьшением полей, а потом и их апдейтить. 🤮
Короче, этот бойлерплейт стал резать глаза. 📛 И тут я вспомнил про mapstruct. 💡
В разных источниках всегда звучало, что его используют для создания DTO из сущности, а мне надо сущность из сущности. 🤔
Вот я и решил, что если не получится, буду хоть дтохи клепать. 🙏🏻
Как обычно, просто запустить не получилось, но описание настройки помогло и через полдня мучений все заработало. 🔥
Я получил, что хотел, но потом наткнулся на информацию, что можно еще делать и апдейтеры. Интересненько! 🧐
📅 Итог - буду переделывать все на маперы, и если получится, сделаю апдейты.
Кстати, если не надо мапить какое-то поле, то его можно заигнорить.
❓ А вы как мапите и апдейтите толстые сущности?
❓ Может есть что-то еще интересное?
Как говорил раньше, в моей текущей задаче достаточно толстые сущности. И основная печаль - большие конструкции по их созданию и апдейту. 🤧
Плюс, еще надо плодить сущности из имеющихся, но с небольшим уменьшением полей, а потом и их апдейтить. 🤮
Короче, этот бойлерплейт стал резать глаза. 📛 И тут я вспомнил про mapstruct. 💡
В разных источниках всегда звучало, что его используют для создания DTO из сущности, а мне надо сущность из сущности. 🤔
Вот я и решил, что если не получится, буду хоть дтохи клепать. 🙏🏻
Как обычно, просто запустить не получилось, но описание настройки помогло и через полдня мучений все заработало. 🔥
Я получил, что хотел, но потом наткнулся на информацию, что можно еще делать и апдейтеры. Интересненько! 🧐
📅 Итог - буду переделывать все на маперы, и если получится, сделаю апдейты.
Кстати, если не надо мапить какое-то поле, то его можно заигнорить.
❓ А вы как мапите и апдейтите толстые сущности?
❓ Может есть что-то еще интересное?
👍6
🌐 Конференция
Вчера первый раз побывал на профильной конференции.
Скажу сразу - мне очень понравилось. 🔥
🔸 Первый доклад
Андрей Аркаев «Обновление Hibernate через боль»
О переезде на хибер 6.1.
В целом интересно, но проблема показалась далекой от меня.
Хотя схема апдейтов была интересной. 📌
🔸 Второй доклад
Илья и Фёдор Сазоновы «Добровольно-принудительный Spring»
ОЧЕНЬ КРУТО!!!
На ребят приятно смотреть и слушать.
Самым близким стало - "скажи привату НЕТ!!!" 👎 ☠️
Одна из проблем - тестирование приватных методов, потому что они тупо не мокаются. Ребята предлагают вынести их в отдельный бин!!! 🔥
У меня такой даже идеи не возникало!!!🤦♂️
Буду по-тихоньку в текущей задаче переписывать и добавлять тесты, благо, время позволяет. 🤪
Еще из приятного - подарили блокнотик, ручку, карандаш. 😉
Если есть желание посмотреть доклады - вот ссылочка
Вчера первый раз побывал на профильной конференции.
Скажу сразу - мне очень понравилось. 🔥
🔸 Первый доклад
Андрей Аркаев «Обновление Hibernate через боль»
О переезде на хибер 6.1.
В целом интересно, но проблема показалась далекой от меня.
Хотя схема апдейтов была интересной. 📌
🔸 Второй доклад
Илья и Фёдор Сазоновы «Добровольно-принудительный Spring»
ОЧЕНЬ КРУТО!!!
На ребят приятно смотреть и слушать.
Самым близким стало - "скажи привату НЕТ!!!" 👎 ☠️
Одна из проблем - тестирование приватных методов, потому что они тупо не мокаются. Ребята предлагают вынести их в отдельный бин!!! 🔥
У меня такой даже идеи не возникало!!!🤦♂️
Буду по-тихоньку в текущей задаче переписывать и добавлять тесты, благо, время позволяет. 🤪
Еще из приятного - подарили блокнотик, ручку, карандаш. 😉
Если есть желание посмотреть доклады - вот ссылочка
👍5🔥2
🖥 Трудовые будни
Это просто про меня!!!
После посещения конфы у меня родилась идея:
💡 мой поток сознания (код в сервисе) разделить на компоненты. 🤘
Занимался этим три дня. 🛠🛠🛠
Потом еще день запускал проект - NPE и им подобное лезло из всех щелей... 🐜🐜🐜 Хотелось убить автора кода 🤣
Вчера, наконец-то, добрался до простыни с изменениями и ошибками, которые надо исправить. 📜
Сразу прочувствовал и оценил текущую архитектуру 🔥
Место, где что-то надо проверить или исправить, находится быстро.
И т.к. вся логика находится в одном и единственном месте (что-то из SOLID), то и правится тоже быстро. 👍🏻
Плюс ко всему, к исправленному сразу можно написать тест. 🤠
А вам когда-нибудь приходилось переделывать свой же код?
Это просто про меня!!!
После посещения конфы у меня родилась идея:
💡 мой поток сознания (код в сервисе) разделить на компоненты. 🤘
Занимался этим три дня. 🛠🛠🛠
Потом еще день запускал проект - NPE и им подобное лезло из всех щелей... 🐜🐜🐜 Хотелось убить автора кода 🤣
Вчера, наконец-то, добрался до простыни с изменениями и ошибками, которые надо исправить. 📜
Сразу прочувствовал и оценил текущую архитектуру 🔥
Место, где что-то надо проверить или исправить, находится быстро.
И т.к. вся логика находится в одном и единственном месте (что-то из SOLID), то и правится тоже быстро. 👍🏻
Плюс ко всему, к исправленному сразу можно написать тест. 🤠
А вам когда-нибудь приходилось переделывать свой же код?
🔥5
🖥 Трудовые будни
Вчера закончился испытательный срок. 🥳
Тортиков и подарков не было, хотя сказали, что подключат на след неделе к ДМС. 👍🏻
Продолжаю пилить свой сервис. 🧑💻☕️
Уже выложен на тестовые контура и работает. 🚀 Однако, аналитики и рисковики по мере проверки и анализа данных просят кое-что дорабатывать. 🙏🏻📜
Обычно это "кое-что" вылазит в несколько дней веселья.
🤦🏻♂️🤯🧑💻
До работы с облаком так и не добрался....
На работе архитекторы стали говорить о переходе на Spring Boot 3 и Java 17 🤔
С джавой все понятно, а с бутом - нет. Если кто уже переехал или пробовал, скажите, что там за подводные камни?
Как дополнение к выше сказанному - еще заговорили о Kotlin'е 😏
Не исключено, что придется развиваться в эту сторону.
С понедельника начинают внедрять Comunda 7. 📛
Вчера была вводная презентация, сегодня жду воркшоп.
А что у вас неинтересного?
Вчера закончился испытательный срок. 🥳
Тортиков и подарков не было, хотя сказали, что подключат на след неделе к ДМС. 👍🏻
Продолжаю пилить свой сервис. 🧑💻☕️
Уже выложен на тестовые контура и работает. 🚀 Однако, аналитики и рисковики по мере проверки и анализа данных просят кое-что дорабатывать. 🙏🏻📜
Обычно это "кое-что" вылазит в несколько дней веселья.
🤦🏻♂️🤯🧑💻
До работы с облаком так и не добрался....
На работе архитекторы стали говорить о переходе на Spring Boot 3 и Java 17 🤔
С джавой все понятно, а с бутом - нет. Если кто уже переехал или пробовал, скажите, что там за подводные камни?
Как дополнение к выше сказанному - еще заговорили о Kotlin'е 😏
Не исключено, что придется развиваться в эту сторону.
С понедельника начинают внедрять Comunda 7. 📛
Вчера была вводная презентация, сегодня жду воркшоп.
А что у вас неинтересного?
👍6
Обо всем и сразу
🖥 Трудовые будни
На прошлой неделе решилась проблема с облаком: оказывается, косяки были на стороне девопсов 🤬
Никак не можем исправить все баги в бизнес-логике - опять нашли ошибку в вычислениях, буду сегодня править 🛠
Мой непосредственный начальник увольняется. 😭 Я, конечно, за него очень рад, но грустно - умный, спокойный и способный объяснять человек, и, кажется, такого сочетания качеств у оставшихся нет. Ну и просто близкий по духу человек...
🎓 Развитие
Как всегда, все пошло не по плану, хотя оглавление и поиск по нему сделал. ✅
Дожимаю курс по SQL - осталось процентов тридцать. 🤪
За остальное даже не брался. 🤦🏻♂️
Но не все так плохо!
За декабрь поучаствовал в 2 адвентах: Календарь от Дианы 🎉 и Advent of code 2022 🔥
В первом очень хорошо вспомнил instanceof, узнал много интересного о внутрянке String, окончательно разобрался с Enum и познакомился с Record.
Во втором прочувствовал всю глубину поиска в ширину!!!
Ну и с ним я еще не закончил!!!
🖥 Трудовые будни
На прошлой неделе решилась проблема с облаком: оказывается, косяки были на стороне девопсов 🤬
Никак не можем исправить все баги в бизнес-логике - опять нашли ошибку в вычислениях, буду сегодня править 🛠
Мой непосредственный начальник увольняется. 😭 Я, конечно, за него очень рад, но грустно - умный, спокойный и способный объяснять человек, и, кажется, такого сочетания качеств у оставшихся нет. Ну и просто близкий по духу человек...
🎓 Развитие
Как всегда, все пошло не по плану, хотя оглавление и поиск по нему сделал. ✅
Дожимаю курс по SQL - осталось процентов тридцать. 🤪
За остальное даже не брался. 🤦🏻♂️
Но не все так плохо!
За декабрь поучаствовал в 2 адвентах: Календарь от Дианы 🎉 и Advent of code 2022 🔥
В первом очень хорошо вспомнил instanceof, узнал много интересного о внутрянке String, окончательно разобрался с Enum и познакомился с Record.
Во втором прочувствовал всю глубину поиска в ширину!!!
Ну и с ним я еще не закончил!!!
👍3