среда, 31 марта 2010 г.

Hibernate: это должен помнить каждый - 2


При определении идентификатора - первичного ключа - таблицы в Hibernate можно явно указать стратегию генерации его значения. Делается это в мэпинге с помощью тега generator, у которого указывается атрибут class. Например, так:

<id name="uid" column="uuid" type="string" length="32">

   <generator class="ru.naumen.bpm.commons.util.PrefixUUIDGenerator"/>

</id>


Помимо того, что можно определить свою стратегию генерации как класс, реализующий интерфейс org.hibernate.id.IdentifierGenerator, фреймворк содержит ряд уже готовых генераторов. Рассмотрим их подробнее.

суббота, 27 марта 2010 г.

Имитируем алгебраические типы данных в языке Java


Продолжаем тему внедрения элементов функционального программирования в процесс разработки на императивном языке Java. Сегодня мы поговорим о красоте такого понятия как алгебраический тип данных. Интуиция, лежащая при создании такого понятия, и его использование хорошо описаны в статье Евгения Кирпичева "Элементы функциональных языков", опубликованной в 3-м номере журнала Практика функционального программирования . Если вам интересно, то подробное математическое обоснование понятия "алгебраический тип данных" можно прочитать в статье Романа Душкина "Алгебраические типы данных и их использование в программировании", опубликованной во 2-м номере того же журанала. В дальнейшем, обещаю не использовать такие термины, как "размеченное объединение", "декартово произведение", "нотация Хоара" и т.д.

Моя же статья является упрощенным переводом Structural Pattern Matching in Java с некоторыми дополнениями.

понедельник, 22 марта 2010 г.

Впечатления от Computer Science E-days


С 19-го по 21-е марта в загородном учебном центре Аракуль на берегу одноименного озера прошла школа Computer Science E-days, организованная усилиями компаний СКБ-Контур, Яндекс и отделения Microsoft Research.

Цель школы - познакомить молодых ученых, аспирантов и студентов старших курсов с современным состоянием основных областей компьютерной науки, предоставить платформу для общения специалистов и будущих специалистов, а так же интересно и с пользой провести время.

Были озвучены планы компаний-спонсоров сделать данное мероприятие регулярным. Но обо всем по-порядку.