Издевательство с url-pattern
Привязка сервлета к URL только двумя убогими способами («строка начинается с …» и «строка заканчивается на…») — это по нынешним временам совершеннейшая дичь. Благо, неравнодушные люди озаботились ситуацией и написали rewrite-filter.
Без специалиста не рыпайся ©
Намедни захотелось мне почитать что-нибудь из психологии. Пошел, как водится, в ближайший книжный магазин и ну искать по авторам. И что же? Фестингер — шиш. Левин — шиш. Фромм — и тот шиш.
То, что компьютерную литературу книготорговцы подбирают по дизайну обложки, мне было давно известно. Но если механизм справедлив и для книжек по психологии, и если так формируется вообще весь ассортимент, то это повод как минимум принять к сведению тревожный сигнал, почесать репу и начать шевелиться. Найти 3-4-5 человек, сведущих в своей области. Дать им определенные бонусы: безобразно большую скидку, любую бесплатную книгу раз в сколько-нибудь времени. И выяснить у них, наконец, какую литературу нужно возить вместо макулатуры, что собирает пыль на полках магазина.
А можно еще радикальнее — начать самим читать.
Перехожу на Spring Framework
В конторе накопилось много ценной информации, которая пока лежит кучами и не приносит отдачи. Перенос ее в базу данных и разработка бизнес-логики — вопрос времени. Рано или поздно придется это делать.
Но уже ясно, что легковесными казуальными решениями не обойтись: во-первых, еще никто не может четко представить задачи и сформулировать детальные требования к проектам, во-вторых, как следствие, настанет момент, когда все эти разнородные костыли будет сложно собрать в систему. Отсюда явно следует, что энтерпрайзу нужно предложить энтерпрайзовое решение. В нашем случае, реализацию бизнес-логики в виде бинов внутри Java EE-контейнера.
Чрезмерную сложность Java EE можно отчасти нивелировать внедрением фреймворка, который позволяет программировать бины, не захламляя код формальными конструкциями. На эту роль идеально подходит Spring Framework.
Кроме того, Spring Framework обещает элегантное решение проблем сквозной функциональности (например, журналирования), готовое MVC для веб-компонентов, аутентификацию / авторизацию и многое другое. Поверхностное чтение документации показало, что в центре внимания находятся как раз-таки насущные проблемы, которые много раз возникали в моих проектах. Это подтверждает (надеюсь) правильность выбора. Остается в который раз запастись терпением и глазными каплями — и в бой.