Комментарии 9
Уж и не знаю, заявит ли мне автор снова, что "Знаем, что можно изменить подходы, библиотеки и...", но похоже он не в курсе, что есть целый набор механизмов, позволяющий работать с сессией, а не с отдельными соединениями. Да, при этом придётся выбросить прокладку в виде спринга, но ведь именно она приводит к проблемам, не умея использовать сессию (авторы спринга тоже про неё не слышали?).
Вот так выбор модной библиотеки влияет на результат.
Спринг писали умные люди и все он позволяет.
Ошибка не в одной строчке кода, а в архитектуре. Любой сеньор должен просто знать что так проектировать сервис нельзя. Почему нельзя общими словами тоже должен знать.
Я про строчку ничего не говорил. И про можно или нельзя не говорил. Я лишь указал на гибельное влияние моды.
Хотя возможно вы против использования сессии? Или ещё как-то оригинально смотрите на мир?
Если бы задача стояла только во внедрении в проект basic auth, то да, следовать моде и подключать тяжеловесный спринг крайне лишне. Но у автора скорее всего уже весь проект на спринге, просто нужно реализовать дополнительную фичу. Насчет моды - спринг реально упрощает разработку, это не дань моде, а необходимость. Я тоже не сильно люблю спринг за его magic under the hood, но ничего не поделаешь, альтернатив мало. Альтернатив таких, чтобы в фреймворке было реализовано прям вот все что мне нужно
Но у автора скорее всего уже весь проект на спринге
Ну что вы, автор пишет про чтение данных пользователя из какого-то файлика. И пользователь там один. Для такого "гигантского" проекта действительно нужен спринг :)
спринг реально упрощает разработку
Можете привести пример? С моей колокольни спринг лишь вносит ненужное усложнение. Один из примеров скрытого некорректного поведения рассказал нам автор данной статьи. А ещё больше есть примеров неинтуитивной логики за сценой, которая требует либо погружения в исходники, либо писать на авось, с кучей ошибок, разумеется.
альтернатив мало
Спринг - это тонкая обёртка. Сначала вас садят на так называемые бины, которые неявным образом создаются где-то в глубинах спринга, а потом, когда вас отучили писать что-то вроде new MyObject(), спринг предлагает точно так же прятать и всё остальное. Вот в примере в статье спрятал за тончайшей (и ненужной) обёрткой вызов для проверки пароля, в результате возник косяк с производительностью. И альтернатива таким "прям вот все что мне нужно" штуковинам полно. Главная - просто используйте new MyObject() вместо кучи ненужных аннотаций и конфигурационных файлов.
Спринг это не мода. Это отраслевой стандарт. Довольно старый и устоявшийся стандарт.
Про строчку это к основной статье. Тут было просто чтобы комментарии не плодить.
Сессия это такое растяжимое понятие. Каждый под ней может понимать что-то свое. Я за любое стандартное работающее решение. В случае авторизации типовой токен или типовая кука. Которые можно проверить стандартным образом и быстро.
Проходят десятилетия, а spring все равно остается "модной библиотекой" ;)
По моему скромному мнения, spring как раз таки помог java сохранить свои позиции в современной web разработке. И не знать spring работая в этой сфере - это уже моветон.
Спринг всегда был где-то на обочине. Крупные конторы использовали и продвигали JEE, а молодые стартаперы да, пробовали всякую всячину. И да, пробовали они её десятилетиями (а в более широком смысле - тысячелетиями). Но сторонние подходы всегда были и будут очень пёстрыми, самыми разными. И на этом дико разнообразном фоне мы видим в том числе и спринг. Он далеко не победитель среди этой мелочи. Хотя если в конторе все вокруг обязаны использовать спринг, то может показаться, что это "промышленный стандарт".
Вопрос. Не промышленный стандарт в какой отрасли? Потому что по моему 10+ летнему опыту банки, по крайней мере в РФ, повсеместно используют спринг в не mission critical системах. А в облачных архитектурах, так повсеместно крутится спринг бут. Так где же он "не стандарт"?
P.S. А вот о том, чтобы кто-то использовал полноценно JEE я давно уже не слышал.
Love, Spring and HTTP Bugs