Брюс Эккель. “Философия Java”, 4-е издание
Для тех кто в танке, хочу сообщить, что вот уже как несколько месяцев мы имеем возможность читать шедевр Брюса Эккеля “Философия Java” в 4-ом издании на русском языке. Для информативности привожу аннотацию: Java нельзя понять, взглянув на него только как на коллекцию некоторых характеристик, — необходимо понять задачи этого языка как частные задачи программирования в целом. Эта книга — о проблемах программирования: почему они стали проблемами и какой подход использует Java в их решении. Поэтому обсуждаемые в каждой главе черты языка неразрывно связаны с тем, как они используются для решения определенных задач. Эта книга, выдержавшая в оригинале не одно переиздание, за глубокое и поистине философское изложение тонкостей языка считается одним из лучших пособий для программирующих на Java. В четвертом издании автор постарался полностью интегрировать усовершенствования Java SE5/6, включить и использовать их во всей книге.
Просмотрев книгу за 5 минут, могу сказать слудующее: судя по картинкам
в книге мало что изменилось, те же лампочки, те же UML диаграммы, а вот по тексту – хз, ещё не читал. Цена книги тоже не очень радует, стоит в районе 160 едениц украинской девальвирующей гривны. Хочу обратить Ваше внимание на то, как правильно нужно подходить к развитию бизнеса в сфере IT
внимательно рассмотрев обложку книги и прочитав 6-ю страницу
А вы уже прочитали мегахит всех времён и народов “Философия Java“, 4-е издание?
Какими должны быть EntityBean’ы?
Вот уже в который раз мне пришлось исправлять ранее написанные сущностные бины (в моем случае это OpenJPA) таким образом, что бы они соответствовали следующим требованиям:
- Каждый класс должен быть объявлен с модификатором public
- Каждый класс должен реализовывать интерфейс Serializable
- Каждый класс должен иметь публичный конструктор без аргументов
- Если класс является внутренним, он должен быть статическим
- Метод equals должен быть реализован таким образом, чтобы он обеспечивал уникальность сущности в соответствии с теми полями, которые непосредственно обеспечивают уникальность в таблице. (more…)
ORM и подводные камни реализации equals и hashCode.
Думаю каждому, кому приходилось работать в плотную с ORM (аля Hibernate, TopLink, OpenJPA, …), приходилось сталкиваться с подводными камнями при реализации классов. Тоже самое случилось и со мной, когда мне поручили искать бажину в одном из наших приложений …. окна дебага поглотили меня не на один час… Проблема заключалась в том, что при вызове утильного метода ListUtils.subtract(list1, list2) (данный метод исключает list2 из list1) на выходе получалось совсем не то что ожидалось, а получалось так потому, что лажа скрывалась в реализации метода equals. Просто не нужно в equals обрабатыать ВСЕ поля класса, ну не нужно, я Вас умоляю. В моём случае в equals обрабатывалось поле lastUpdated – о чём это говорит, думаю Вы догадываетесь. Именно по этой причине некоторые классы входящие в список list2 не исключались из списка классов list1, которые были детачены ранее. Плюс ко всему, старайтесь реализовывать метод equals таким образом, что бы он обеспечивал УНИКАЛЬНОСТЬ сущности в соответствии с теми полями, которые непосредственно обеспечивают уникальность в таблице! (more…)
Инициализация “static property” в “Spring application context configuration”
В проекте, над которым я работаю в данный момент, возникла необходимость инициализации статических свойств (в моем случае это Axis – org.apache.axis.AxisProperties) при формировании спрингового контекста. Закатав рукава с криками “Да это как два байта переслать” сразу же возник следующий вопрос: “Как в Spring application context configuration статическому методу передать параметры ?” (more…)


