TrueRuslan

TrueRuslan

Java/Kotlin-developer . Деловой без дел. Веду блог t.me/TrueRuslan_Blog
Пикабушник
Дата рождения: 5 июня
116 рейтинг 2 подписчика 8 подписок 38 постов 0 в горячем
2

ВЫГОРАНИЕ?

😵‍💫 Столкнулся с проблемой морального круговорота, когда сам же себе рою яму для мотивации.

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

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

🧐 Так вместе с этим я еще в поиске компании мечты, по типу Яндекса (а преимущественно сам Яндекс), но таким требуются сильные специалисты.

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

🏖️ Не горите и не выгорайте.
Если понимаете, что перегружены, возьмите пирив.

Немыкин.Продакшн

ВЫГОРАНИЕ?
Показать полностью 1
2

СЕГОДНЯ Я ГОНЧАР

СЕГОДНЯ Я ГОНЧАР🏺

Ходил в гончарную мастерскую на Мастер-класс и с Кошкой лепил миска рис 🍚

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

Будет готово через 2-3 недели, тогда и покажу результат.

Для справки:
После обжига в печи глина приобретает белый керамический цвет, а краска становится более зеркальной.

Всем жару 🔥

ИДУ НА YOUNG CON

🌸 ИДУ НА YOUNG CON 🌸

Открываю утром почту и вижу письмо счастья, буквально.

ИДУ НА YOUNG CON

Очень хотел попасть на этот фестиваль, а для этого еще нужно было решать Контест, поэтому боялся не пройти. Но все случилось по кайфу, очень рад.
Для меня это будет первым опытом, ранее на технических мероприятиях такого масштаба не был. Разве что на IT-Пикнике от Тинькофф, но это, полагаю, другой формат.

До встречи на фесте! 🔥

Немыкин.Продакшн

Показать полностью 1
1

НОВОЕ ПОКОЛЕНИЕ МУЗЫКИ

НОВОЕ ПОКОЛЕНИЕ МУЗЫКИ

Сидели как-то с другом в Discord и тут он просто вкидывает напевая (такое часто случается): "I am from ghetto, I have no education".
Не долго думая, но долго смеясь, мы тут же поняли, что из этого надо сделать трек.

НОВОЕ ПОКОЛЕНИЕ МУЗЫКИ

Мы сами не музыканты, ни песни, ни музыку писать не умеем, поэтому обратились за помощью к ChatGPT.
Промт был примерно такой: Сгенерируй трек на уличный мотив гетто. За основу возьми и начало возьми эту строчку "I am from ghetto, I have no education".

И вот что получилось (покажу только первый куплет и припев):
(Припев)
I am from ghetto, I have no education,
But I hustle every day, that's my dedication.
Through the struggles and the pain, I find my elevation,
In this concrete jungle, I'm the manifestation.

(Куплет 1)
Born in the struggle, raised in the streets,
Where the odds are against us, but we won't accept defeat.
No silver spoons here, just broken dreams,
But we rise from the ashes, like a phoenix from the beams.

Hustling on the corner, trying to make ends meet,
Dodging bullets and sirens, trying to stay discreet.
They say we're statistics, just a number on a sheet,
But we're kings and queens, in these gritty city streets.

Education's a luxury, we can't afford to chase,
When survival's the game, in this hopeless place.
But knowledge ain't just in books, it's written on our face,
In the scars and the struggles, that time cannot erase.

Текст готов, причем бомбический по смыслу и рифме. Осталось сделать музыку и спеть.
К счастью, в это же время начала набирать популярность нейросеть Suno.
Suno — это программа создания музыки с генеративным искусственным интеллектом, предназначенная для создания реалистичных песен, сочетающих в себе вокал и инструменты или являющихся чисто инструментальными.

Закинул этот текст, добавил описание по стилю (Gangster street rap, Gangster, street, rap, beat) и получилось то, что взорвало уши.
Получился шедевр, не просто "песня". Мы и близко не ожидали подобного результата.

Представляю вам трек - "I'm from ghetto"


Немыкин.Продакшн
#Suno #Музыка #Песня

Показать полностью 1
2

Обзор популярных ORM для Java Spring приложений

Object-Relational Mapping (ORM) - это технология, которая позволяет разработчикам работать с базами данных, используя объектно-ориентированный подход. В экосистеме Java Spring существует несколько популярных ORM-фреймворков, которые упрощают взаимодействие с реляционными базами данных. В этой статье мы рассмотрим три таких фреймворка: Hibernate, JOOQ и MyBatis.

Hibernate

Hibernate - это самый популярный и широко используемый ORM-фреймворк для Java. Он предоставляет мощный и гибкий механизм для преобразования данных между объектами Java и реляционными базами данных.

Преимущества:
1. Автоматическое управление жизненным циклом объектов: Hibernate управляет состояниями объектов (transient, persistent, detached), что упрощает работу с ними.
2. HQL (Hibernate Query Language): позволяет писать запросы, используя объектно-ориентированный синтаксис, что делает код более читаемым.
3. Кэширование: поддержка первого и второго уровней кэширования для повышения производительности.

Недостатки:
1. Сложность: для больших проектов с множеством взаимосвязанных сущностей может быть сложным в настройке и использовании.
2. Производительность: в некоторых случаях, автоматическое управление объектами и кэширование могут вести к избыточным операциям, что снижает производительность.

JOOQ

JOOQ (Java Object Oriented Querying) - это фреймворк для построения SQL-запросов с использованием объектно-ориентированного подхода. В отличие от Hibernate, JOOQ фокусируется на SQL-first подходе, предоставляя мощный инструмент для генерации типобезопасных SQL-запросов.

Преимущества:
1. Типобезопасность: JOOQ генерирует классы для каждой таблицы в базе данных, что позволяет создавать типобезопасные запросы.
2. Мощь SQL: разработчики могут использовать все возможности SQL, включая сложные запросы и функции, без потерь производительности.
3. Гибкость: поддержка различных баз данных и их специфичных возможностей.

Недостатки:
1. Меньшая абстракция: в сравнении с Hibernate, разработчики должны больше знать о структуре базы данных и писать больше кода для управления данными.
2. Усложнение кода: при использовании сложных SQL-запросов код может стать менее читаемым и более сложным в поддержке.

MyBatis

MyBatis - это ORM-фреймворк, который предоставляет полуконфигурационный подход к работе с базами данных. Он упрощает взаимодействие с базой данных, позволяя писать SQL-запросы и маппить результаты на Java-объекты.

Преимущества:
1. Гибкость: разработчики имеют полный контроль над написанием SQL-запросов.
2. Легкость интеграции: простой и интуитивно понятный процесс настройки и интеграции с существующими проектами.
3. Поддержка сложных маппингов: возможность реализации сложных маппингов между результатами SQL-запросов и объектами Java.

Недостатки:
1. Ручное написание SQL: необходимость вручную писать SQL-запросы может увеличивать количество кода и сложность.
2. Отсутствие автоматического управления жизненным циклом объектов: разработчики должны самостоятельно управлять состояниями объектов и их синхронизацией с базой данных.

Сравнение

Фреймворк: Hibernate | JOOQ | MyBatis
Автоматизация (ORM): Высокая | Низкая | Средняя
Поддержка сложных запросов: Средняя | Высокая | Высокая
Типобезопасность: Средняя | Высокая | Низкая
Легкость использования: Средняя | Низкая | Высокая

Выбор ORM-фреймворка зависит от конкретных требований проекта и предпочтений команды. Hibernate подойдет для проектов, где важна автоматизация и управление жизненным циклом объектов. JOOQ будет отличным выбором для тех, кто хочет использовать мощь SQL и типобезопасность. MyBatis идеально подойдет для проектов, где важна гибкость и контроль над SQL-запросами.
На моем опыте при работе с большим объемом данных предпочитают использовать JOOQ.

Немыкин.Продакшн
#Java #ORM

Показать полностью
3

Современные фреймворки для разработки веб-приложений на Java

Современные фреймворки для разработки веб-приложений на Java 🌐

Разработка веб-приложений на Java эволюционировала с появлением новых, современных фреймворков, которые значительно упрощают процесс создания, тестирования и развертывания приложений. В этой статье мы рассмотрим три популярных фреймворка: Spring Boot, Micronaut и Quarkus. Мы сравним их, обсудим преимущества и недостатки каждого, а также приведем примеры создания простого приложения.

Spring Boot 🌱

Краткий обзор
Spring Boot — это мощное расширение Spring Framework, которое упрощает создание стоимостных приложений на основе Spring. Оно предоставляет готовые шаблоны конфигураций и уменьшает необходимость в написании бо́льшего количества конфигурационного кода.

Преимущества
- Богатая экосистема: Огромное количество модулей и библиотек.
- Сообщество: Активное сообщество и отличная документация.
- Интеграция: Легко интегрируется с большинством баз данных и внешних сервисов.

Недостатки
- Сложность: Может быть сложным для новичков.
- Потребление памяти: Более требовательное к ресурсам по сравнению с другими фреймворками.

Пример приложения
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}

Micronaut ⚡️

Краткий обзор
Micronaut — это современный, реактивный фреймворк, который ориентирован на микросервисы и серверлесс-приложения. Он отличается быстрой загрузкой и низким потреблением памяти.

Преимущества
- Быстрая загрузка: Малое время запуска.
- Низкое потребление ресурсов: Оптимизация потребления памяти.
- Компиляция: Использует компиляцию аннотаций для ускорения работы.

Недостатки
- Молодость: Менее зрелый по сравнению со Spring Boot.
- Меньшая экосистема: Меньше готовых решений и библиотек.

Пример приложения
@controller("/hello")
public class HelloController {
@Get("/world")
public String hello() {
return "Hello, Micronaut!";
}
}

public class Application {
public static void main(String[] args) {
Micronaut.run(Application.class);
}
}

Quarkus 🦸

Краткий обзор
Quarkus позиционируется как фреймворк для Java-приложений в контейнерах и облаке. Он оптимизирован для работы с GraalVM и Native Images, что позволяет достигать крайне низкого времени запуска и потребления ресурсов.

Преимущества
- Native Images: Поддержка нативных образов с GraalVM.
- Облачная оптимизация: Оптимизирован для контейнеров и облачных сред.
- Быстрое развитие: Быстро растущее сообщество и поддержка.

Недостатки
- Совместимость: Некоторые библиотеки могут не поддерживать GraalVM.
- Сложность настройки: Могут потребоваться дополнительные усилия для настройки.

Пример приложения
@path("/hello")
public class HelloResource {
@GET
public String hello() {
return "Hello, Quarkus!";
}
}

@ApplicationScoped
public class Application {
public static void main(String[] args) {
Quarkus.run(args);
}
}

Сравнение
Фреймворк: Spring | Micronaut | Quarkus
Время запуска Среднее | Быстрое | Очень быстрое
Потребление памяти: Высокое | Низкое | Очень низкое
Сообщество: Большое | Среднее | Быстро растущее
Экосистема: Обширная | Средняя | Развивающаяся

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

Немыкин.Продакшн
#Java_фреймворки

Показать полностью
5

Ведение собственной библиотеки


🧑‍🎓 Будучи еще на стажировке, начал вести свою библиотеку в Notion.
Собирал интересные статьи, книги, документацию и т.п. Добавлял то, что прочитал и то, что хочу/хотел прочитать в будущем.

Ведение собственной библиотеки

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

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

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

Немыкин.Продакшн
#IT_литература

Показать полностью 1
0

Теперь я точно понял, почему не работало

Теперь я точно понял, почему не работало!

Теперь я точно понял, почему не работало

Ну как понял, мне подсказали в чате сервиса. У меня была установлена старая версия их платформенной библиотеки для работы основных функций, diplodoc/cli и старая 14 версия Node.js.
По рекомендации обновил diplodoc/cli, запускаю проект и начали сыпаться ошибки, среди которых была ошибка об устаревшей версии Node.js. Без замедлений скачал новую 20 версию, обновил проект и запустилось все с кайфом.

Теперь со спокойной душой начну переносить документацию MarketDB на новую версию.

Немыкин.Продакшн
#Diplodoc #Документация #Разработка

Показать полностью
Отличная работа, все прочитано!