Pull to refresh
7
Karma
3
Rating
Вячеслав Чернышов @xpendence

backend.developer { java, kotlin }

Телеграм бот прогноза погоды на Java Spring

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

Телеграм бот прогноза погоды на Java Spring

по-английски call - это и звонок, и вызов. просто "автор" спёр откуда-то статью на английском, криво перевёл в гугл-переводчике и выдал за свою

Понятнее о S.O.L.I.D

Вы хотите, чтобы я выкатил неподготовленному читателю в ознакомительной статье о SOLID формулировку от Барбары Лисков? Вы жестокий человек :)

Понятнее о S.O.L.I.D

Да, так и есть.

Понятнее о S.O.L.I.D

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

Понятнее о S.O.L.I.D

main является компонентом самого низкого уровня.

Компонент Main — это конечная деталь, политика самого низкого уровня.
Он является точкой входа в систему. От него ничего не зависит, кроме работоспособности системы. Его задача — создать все Фабрики, Стратегии
и другие глобальные средства и затем передать управление высокоуровневым абстракциям в системе.


Роберт Мартин, «Чистый код».

Я думал, Вы про микросервисы, к примеру.

Понятнее о S.O.L.I.D

Что Вы понимаете под верхними уровнями иерархии?

Понятнее о S.O.L.I.D

Тоже бывает. Но реже.

Понятнее о S.O.L.I.D

Спешу удовлетворить Ваш интерес. Из книги Роберта Мартина «Чистая архитектура», издание 2018 года, 77 страница. Слова «подтип» там нет. Изучать чистую архитектуру по википедии… Ну, такое… :) Уж лучше хабр :)

Понятнее о S.O.L.I.D

Изначально статья называлась «Что не так с S.O.L.I.D», Вы попали пальцем в небо :)

Понятнее о S.O.L.I.D

Добавлю чёткости. На предыдущем месте работы одна команда писала заказ для одного крупного ритейлера (привет, Николай). О S.O.L.I.D ничего не слышали (привет, Джонни). Пролетели по срокам более чем в 2 раза. На код без слёз не взглянешь.

Java 14: Record, более лаконичный instanceof, упаковщик jpackage, switch-лямбды и текстовые блоки

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

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

Java 14: Record, более лаконичный instanceof, упаковщик jpackage, switch-лямбды и текстовые блоки

Да, Вы во многом правы, если закопаться очень глубоко и долго дискутировать на эти, в общем-то, философские темы, но зачем заниматься буквоедством? Даже в узком кругу мы стараемся общаться на понятном друг другу языке, а большинство постов на Хабре пишутся для широкой публики, максимально просто и понятно.

И раз уж мне действительно непонятно, что это товарищ прицепился с таким замечанием, так может, Вы позволите ему самому высказаться и объяснить свою позицию?

А Вам — хороших выходных.

Java 14: Record, более лаконичный instanceof, упаковщик jpackage, switch-лямбды и текстовые блоки

Как объекту можно присвоить ссылку? Давайте подумаем.
Как нам известно, объект создаётся при помощи конструкции

var user  = new User();

Как работает эта конструкция (если вкратце)?
new — ключевое слово, выделяющее память под объект.
User — тип объекта.
() — вызываемый конструктор.
и самое главное — user — это ссылка.

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

Можем ли мы присвоить объекту ещё одну ссылку? Конечно. Например:

user1 = user;

Что произошло? Мы не создали новый объект, не выделили память под него. Мы просто присвоили ему ещё одну ссылку. Теперь объект доступен из памяти по двум ссылкам, а не по одной.

Окей. Как происходит преобразование объекта?

Object object = getObject();
var user  = (User) object;

При преобразовании объекта, насколько мне известно, происходит следующее:
— тип объекта теперь User, со всеми полями и методами
— новый объект при этом не создаётся
— преобразованному объекту присваивается новая ссылка — user.

Теперь объект можно получить по обеим ссылкам — по старой и по присвоенной.

Так почему присвоение ссылки объекту? Потому что для одного объекта может быть много ссылок, а для ссылки объект всего один. Ссылка принадлежит объекту, а не наоборот.

Но Вы и так это знаете.

Java 14: Record, более лаконичный instanceof, упаковщик jpackage, switch-лямбды и текстовые блоки

Вроде всё красиво, одно не понятно: как запихнуть в пакет ресурсы приложения с фс,
то бишь произвольные файлы, которые надо положить в конкретное место.

Вероятно, разработчики планируют использовать упаковщик только для десктопных приложений, где обычно не подразумевается распределение пропертей.
Мне не понятно, почему сообщение ссылается на поля, а не на методы. А если геттер возвращает вообще другое поле/сам что-то вычисляет или вообще сам возвращает null?

Ну так null может быть только поле, а не метод :)

Java 14: Record, более лаконичный instanceof, упаковщик jpackage, switch-лямбды и текстовые блоки

Отступы сохраняются относительно первого символа, IDEA подсвечивает их специальной вертикальной линией.

JOOQ и его кроличья нора. Как выжить без Hibernate

Вам, похоже, нужен Embeded Postgres + java-генератор, описанный в статье (через ApplicationListener). В таком случае, при сборке сначала отработает Embeded Postgres, поднимет Вам базу, потом отработает flyway и накатит таблицы, а потом сработает генератор, который сгенерирует сущности. При остановке приложения база будет свёрнута.

Рабочая конфигурация при этом не сильно будет отличаться от предложенной в посте (Postgres меняем на Embeded — вот и все отличия).

JOOQ и его кроличья нора. Как выжить без Hibernate

Очень сожалею, что встал на четвереньки. Теперь собака, похоже, будет бежать за мной ещё пару кварталов :)

JOOQ и его кроличья нора. Как выжить без Hibernate

Когда на тебя лает собака, вовсе необязательно разделять её уровень дискуссии, становиться на четвереньки, лаять в ответ и «объяснять свою позицию». Именно по этим соображениям я не поддержал начатую Вами «дискуссию». Прошу Вас больше не тратить моё время, да и своё тоже.

Information

Rating
636-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity