Обновить
39
Илья Сазонов@poxvuibr

Software developer

64
Подписчики
Отправить сообщение

кстати, странно что для Михаила не стала откровением полная изменяемость ссылочных типов объявленных как final

Это не откровение потому что никто нам не помешает написать код, который поменяет значение полей объектов, даже если ссылка на объект записана в поле, на котором стоит final. А в том случае, котором мы говорим, нельзя написать код, который вписывает в final-поле новое значение и создаётся впечатление, что поменять значение этого поля вообще невозможно. А на самом деле это можно сделать с помощью рефлекшна.

кровавая история с десериализацией, возможно, связанна стем что final подразумевает однократную запись, т.е. она разрешена если ранее значение было не определено. Именно поэтому, мне кажется, он final а не const.

Когда мы говорим про десериализацию, то имеется в виду модификатор final на полях объектов, а не модификатор final на локальных переменных.

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

Статью надо было назвать Честный final!

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

Integrity by Default в этой статье означает, что final в коде это действительно должен быть честный final, значение которого совершенно честно нельзя изменить никак и никому. Честность по умолчанию! Я бы перевёл так, жаль возможность упущена.

Хороший, кстати, вопрос. Можете кого-нибудь порекомендовать?

Ну и вот холивары не нужны. Ничего полезного кроме поднятия своего ЧСВ оно не даёт и то только тому кто якобы победил.

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

Итого: final нужно тогда когда нужно.
Не final нужно тогда когда нужно.

Если так, то перед каждым классом или переменной нужно либо поставить модификатор non-final, либо final. Без модификатора код компилироваться не должен.

надо дизайнить так, чтобы оставлять возможность расширения и наследования

Это сложно, мало кто умеет. Поэтому ограничения в виде приватных классов и тому подобного можно встретить во многих популярных фреймворках. Вот с Спринге например

Нравится вам или нет, но наследование является неотъемлимым и одним из ключевых свойств ООП.

Есть же споры по этому поводу. Многие отстаивают мнение, что наследование реализации это нехорошо, а хорошо это когда ты реализуешь интерфейс или когда твой интерфейс расширяет другой интерфейс

Ну когда я делал дома ремонт, то да, этого вполне достаточно

Внезапно

с учётом инженерного образования в вузе и базового знания электротехники и свойств материалов

Я думаю, что впринципе если ты умеешь программировать, то ты сможешь работать программистом, да )))

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

Будет-ли в доступен для установке через winget?

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

Релизы JDK 25ой появиятся в списке доступных для скачивания в настройках JDK не раньше чем Axiom JDK 25?

Уже есть, я только что скачал ))

Вероятность коллизий UUIDv7, сгенерерованных в рамках одного бэкенда

А тут по бэкендом имеется в виду один бэкенд-процесс или один сервер с Postgresql?

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

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

Не, типовая будет while(inProgress) . Но вообще сам поисковый запрос несколько безумен и количество результатов мало о чём говорит. while false даст их всего в два раза меньше

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

А как насчёт тех нормальных людей, который используют интернет с ноутбука? Им как? Можно подключаться с ноутбука к публичному вайфаю?

Тоже самое могу сказать про entity framework без него вся логика фреймворка лежала бы в приложении а не библиотеке

Я процитирую кусок из статьи

А значит, выбор будет между полноценным, зрелым и мощным решением вроде Hibernate — и… собственным самодельным ORM, к которому я неизбежно приду в попытках решить те же задачи.

Так что то, о чём вы говорите есть прямо в тексте статьи

Промпт всё равно выбирает автор

Вот пусть он промпт и публикует

Spring Data JDBC умеет маппить результаты SQL-запросов прямо в DTO

И вот дискуссия из ORM не нужны плавно перетекает в плоскость - я не люблю Хибернейт. А люблю Spring Data JDBC. То есть Hibernate, который правильно приготовлен ))

Уже много лет использую только jdbcTemplate и его производные

А какие производные имеются в виду? Интересно, что получается всё-таки, какая-то ещё абстракция вам нужна и вы почему-то не считаете её лишней. Любопытно чего вам хватает

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

Абстракция, нюансы работы которой нужно знать, да. Но что она лишняя это ещё надо доказать.

И SQL тоже нужно знать обязательно.

Знание SQL это общее место. Неожиданно, что ещё надо знать, как работает jdbc.

В итоге получается, что эту абстракцию можно выкинуть и не ухудшать свой developer expirience.

Разрабатывать с помощью голого jdbc без Hibernate? Я подозреваю, что вы уже очень давно этого не делали. Экспириенс ухудшится и ещё как

А чем, собственно, самодельные решения отличаются от не-самодельных?

Тем, что в не-самодельных решениях накапливаются оптимальные решения для всех типичных кейсов

Их какие-то боги пишут вместо простых смертных?

Собственно да. Не боги, но люди, которые годами занимаются именно этими решениями.

Важный момент ещё. В РФ British Council включен в список нежелательных организаций, за финансирование которых могут последовать санкции. Поэтому возможно имеет смысл сдавать экзамен в какой-то другой организации

Информация

В рейтинге
6 016-й
Работает в
Дата рождения
Зарегистрирован
Активность