Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site |
|||||||||||||||||
Один монах из клана Следа Слона обнаружил, что его новый метод не обновляет базу данных, но и не кидает никаких исключений. Он обратился за помощью у учителю Бавану. Я положил в ящик двух зайцев, а достал восемь. Я уверен, что об этом в документации не написано.После быстрого изучения Баван заявил: “Автоматически созданный прокси-объект вашей службы не выполняет транзакцию, так как аннотация Transactional указана на закрытом вспомогательном методе, а не на доступном интерфейсном методе, который его вызывает”. “Я не понимаю”, - сказал монах, - “что это за ‘прокси-объект’, о котором Вы говорите?” Баван посмотрел на монаха с подозрением: “Опишите мне, как выполняются и отменяются транзакции в библиотеке AOP”. Монах пожал плечами: “Они выполняются автоматически”. Баван ударил монаха по голове: “Если бы я спросил Вас, как маг Императора заставляет кроликов исчезать, то Вы бы ответили ‘с помощью магии’? Думайте, прежде чем говорить, или я покажу Вам, как можно заставить исчезнуть монаха”. Монах потёр голову: “Выходит, что сторонние библиотеки не освобождают нас от необходимости знать, как они устроены внутри? А как насчёт принципа Чёрного Ящика?” Баван протянул руку за левое ухо монаха, достал из воздуха деревянную ложку и опять ударил ей монаха: “Когда кролика кладут в Чёрный Ящик и он там исчезает по команде, то у зрителей есть привилегия просто охать и ахать в изумлении. Но мы, стоя на сцене, должны знать, как выполняется фокус. Ценой аплодисментов является потеря наивности”. Перевод Sergey Malenkov. Отрывок из The Codeless Code, созданная Qi (qi@thecodelesscode.com). При условии, в соответствии с условиями Creative Commons Attribution-NonCommercial 3.0 Unported License. |