← All posts tagged Java

AlexVK

Жаба мне снесла root корневой раздел. Точнее попыталась. Т.к. прав нет никаких то удалила /home
Со всем. Конфиги, настройки, ключи — всё улетело нахрен. Какие то доки, проекты, сорцы....
Жалко только ключи и настройки. Документация вся в иторнетах, почта там же. проекты — там же. Книги — их тьма в телеге и на трекерах... А вот ключи и настройки, вот этого вот нет, так что всё настраивтаь таки заново.

Особый привет глючным либам в недрах которых могут быть shutDownHook с удалением рабочего каталога!!

AlexVK

По результатам #2884193 выкидываю Thymeleaf.
Может необъяснимо падать на ровном месте, не говоря про тормоза.
Так что идёт это поделие в пень!
Благо что пока только пробовали по сути.
Меняю на freemarker

AlexVK

github.com
Comparing Template engines for Spring MVC

Ну и чтобы 2 раза не вставать
jTwig 4.709 seconds
Thymeleaf 4.147 seconds
Scalate — Scaml 3.479 seconds
Handlebars 2.936 seconds
Jade4j 2.735 seconds
Freemarker 2.637 seconds
HTTL 2.531 seconds
Pebble 2.512 seconds
Velocity 2.491 seconds
Mustache (JMustache) 2.326 seconds
JSP 2.227 seconds
Проверил результаты взяв версии чуть новее — картина примерно такая же +-

AlexVK

В Spring-е , якобы защищённым spring security совершенно случайно обнаружили огромную дырень.
Якобы защищённые ресурсы можно легко попасть просто немного изменив url
Уязвимость находится в antRequestmatcher и работает только при использовании оного.
Уязвимы все версии spring 3 и ветки 4.0, 4.1 и 4.2
Протестил сочетия со всем ветками spring security 3.x и 4.x — дело не в нём, дело именно в spring.
Подробностей пока не будет.
Очень интересно во многие ли вещи можно будет элементарно заглянуть чуть изменив url :-)

AlexVK

На Jpont есть , хм, своебразный человек yegor256.com , говорящий за то как вы вот все неправильно мыслите и неправильно програмируете.
По сути 2 доклада , это Объектно-ориентированное вранье youtube.com и ORM — это обидно youtube.com об одном и том же. Где то в начале он предлагает купить свою книжку на Амазоне, где он описал советы. А дальше он говорит о том какой у нас неправильный ООП который и не ООП а что ни на есть процедурное программирование. Много говорит за single responsibility который сформулировал не он.
Что тут не так. Довольно мало примеров "как правильно". По сути их нет, есть одни только теоретические рассуждения. Нет указаний на других авторов, занимающихся подобной практикой. Взять того же Мартина Фаулера. Он много говорит о том же что и Мартин писал лет этак 10 назад. Причём у Мартина в книгах куда богаче и понятнее.
Принцип тут — я тут вам немного расскажу, а всё остальное прочитаете в моей книге.
Примеры, не рассуждения, примеры. Этим берёт Файлер, вот вам код, вот это конкретно в нём неправильно и вот почему. Берём неправильно и делаем правильно. А так в общем то зёрна есть, в архитектуре java действительно хватает недостатков.
Геттеры и сеттеры, например, действительно зло, пришедшее со старого стандарта javaBeans, и т.к. заявлена поддержка всего ранее написанного то имеем то что имеем.

AlexVK

Понравился доклад по JMS youtube.com
Хотя и прошлогодний. Интересно коснулся раз тем — и о архитектуре LinkedIn, про NoSQL и про катастрофу 11 сентября.
Действительно, oc4j и ряд Oracle-вых приблуд — говно и ни нужно. С oc4j в своё время хорошо натрахались.

AlexVK

К 8ке привыкаешь настолько что если сталкиваешься с версией ниже 8й кажется очень неудобным.
Всё таки в 8ке "говорливость" java чувствуется значительно меньше и иногда можно обойтись вообще без всякого xml. Хотя он всё ещё бывает нужен, но уже не десяток разных файлов, как раньше, а всего один — два. И то пока.
Начиная с 7 чем ниже версия тем больше боулерплейта.

AlexVK

Project Lombok
projectlombok.org
смысл просто — давайте весь boilerplate заменим на аннотации и будет генерится код по ним дабы жизнь казалась легче.
В принципе жизнь легче и так с любой нормальной IDE т.к. она легко расширяется плагинами и есть возможность весь этот boilerplate генерить так как надо буквально в пару кликов или в одно нажатие.
Глянул на то что получается — мда, лучше б я это не видел, всё таки в моей IDE это проще и как то понятнее что-ли.
Итог: абсолютно не нужно.

AlexVK

netty очень годная и клёвая штука, можно всячески рекомендовать для сетевых дел. Запилить свой протокол? Да в лёгкую. Неблокирующий сокет, все дела. Не разбегается на десятки потоков, сколько и как запилишь — так и будет.

AlexVK

http://company.yandex.ru/job/vacancies/dev_java_infra.xml
Интересны вопросы
1) Перечислите все проблемы, которые вы видите в данном коде:
2) Какие из следующих стандартных контейнеров позволяют найти в них элемент за O(log(n)) по его значению?
3) Опустим
Напишите  lock-free реализацию класса с методом BigInteger next(), который  возвращает элементы последовательности Фибоначчи. Код должен корректно  работать в многопоточной среде.
4) Есть  таблица в MySQL-базе, в которую записываются регистрирующиеся на  сервисе пользователи. Затем, если пользователь удаляется с сервиса, в  соответствующей записи в этой таблице появляется время удаления. Логин  можно использовать повторно, если на момент регистрации в базе нет  такого же действующего логина.