субота, 11 серпня 2012 р.

End of the road

Друзья, этот блог закрыт и активным будет этот. Ну насколько у меня вообще бывает активный блог :) Спасибо, что смотрели наш канал

неділя, 1 квітня 2012 р.

JPA 2.0: Entities design

При проектировании модели данных с использованием JPA, особенных правил, которые были бы определены стандартом, фактически нет. Очевидно, что класс должен

  1. Быть сериализуемым
  2. Cодержать реализацию equals и hashCode
  3. Некоторые рекомендуют перегружать toString
  4. Иметь публичные getters & setters для своих полей

Но это фактически требования к стандартным JavaBean's, чем конкретно к JPA entity beans. А между тем, именно JPA entity имеют свои особенности, о которых было очень полезно знать непостредственно при проектировании. И снова источником вдохновения стала статья Stijn Geukens на StackOwerflow

JPA 2.0: Persist vs Merge

Интересная вещь мне открылась, когда я решал проблему, традиционную для JPA, есть классическая ORM модель, в которой необходимо создать новый объект, но связать его с уже существующими данными. Довольно часто здесь возникает javax.persistence.PersistenceException, связанный с тем, что мы пытаемся вставить в базу данных объект, находящийся в состоянии DETACHED. Мой метод saveOrUpdate выглядел традицоинным образом
public T saveOrUpdate(final T entity) { 
    if (entity.getId() == null) { 
        entityManager.persist(entity); 
        entityManger.refresh(entity); 
    } else { 
        entityManger.merge(entity); 
    } 
    return entity; 
}
Так я использовал его множество раз и множество подобных примеров встречал в интернете. Моя наибольшая проблема заключалась в том, что модель приложения весьма обширна и вручную обрабатывать все связные классы на предмет их наличия в базе данных заняло бы очень много времени. Поэтому я стал искать более элегатное решение. И нашел его, но не совсем там, где расчитывал. А именно в документации по JPA. Подробное описание различия между методами persist и merge, я нашел в статье Zbyněk Šlajchrt. А я хотел бы поделится выводы, которые из этой статьи сделал:

середа, 15 червня 2011 р.

CAJD::Technologies

Вопрос второй

В проекте, где я работаю, используются устаревшие технологии. Как мне в такой среде поддерживать свои знания в актуальном состоянии, профессионально расти и увеличивать собственную рыночную стоимость?


Простой ответ - изучать "новые технологии" самостоятельно. И это, вобщем-то очень хороший совет, но по-моему это только часть ответа на вопрос. Снова поднимемся над ситуацией и попробуем найти корень проблемы.

четвер, 9 червня 2011 р.

CAJD::Interesting tasks

Открываю обещанный цикл статей по следам заседания "Клуба анонимных Java-девелоперов" на jeeconf.  Пока мне видится такой себе FAQ, по темам, которые всплыли уже надцатый раз и получили конкретные законченные ответы.
Итак, вопрос первый

Скучный проект не позволяет применять и развивать навыки программирования. А хочется роста, как быть?

вівторок, 24 травня 2011 р.

JEEconf resume

Вот и прошла первая конференция java-практиков JEEconf. Много говорить излишне - уже достаточно написано отчетов, твитов и обзоров. Хочу отметить два, главных для меня, момента: организацию и собственный псевдо-доклад.

Организация
Второй раз XPinjection делает конференцию на 5+. Устойчивое интернет-соеденение (в этот раз 8 точек), качественное питание, качественное и равномерное распределение участников, докладчики с реально интересным людям материалом. Все это уже становится визитной карточкой конференций. В двойне радует, что это Киев и наконец-то есть какое-то событие, которое украинцы могут организовать хорошо. Спасибо ребята, спасибо Коле за идею и драйв комьюнити, спасибо Ане за совершенно титанический труд в организации мероприятия на месте, спасибо волонтерам за волонтерство, организаторам за организацию, участникам за участие

Мой псевдо-доклад
Почему псевдо-? Потому что планировалась живая разработка проекта. Как по мне идея стоящая, но рисковая. Так и получилось. Я был бы не честен, если бы продолжил говорить "мой доклад", потому что делали мы его вдвоем с мои другом Юрой Литвиненко. Идея изначально была запрограммировать нечто прямо на конференции. И пришло как минимум 4 человека, которые очень хотели кодить  и имели ноуты. Но подавляющее большинство нашей аудитории были "интересующиеся". А так как вшестером довольно сложно получить результат работы за 4 часа, мы с Юрой переформатировали мероприятие в открытые дискуссии. И переименовали в "Клуб анонимных Java-разработчиков". Довольно сложная штука эти открытые дискуссии, их очень не просто вести. Но оказываться можно делать это эффективно. Даже появилась идея продолжить "Клуб..." на харьковской стороне. Посмотрим. В процессе обсуждения всплыли темы, которые стоят отдельных постов. О них я расскажу дальше.

субота, 23 квітня 2011 р.

UA Web Challenge 2011

В один из дней марта, не помню точно в какой именно, мне в телефон позвонил некто Игорь и предложил поучаствовать в жюри всеукраинского конкурса разработчиков UA Web Challenge 2011. А я возьми и согласись. Идея конкурса довольно проста и, как по мне, очень своевременна, она полностью отвечает тенденциям рынка труда - нужно дать возможность прежде всего юношам и девушкам, без опыта или с минимальным опытом работы, как проявить себя, так и найти/сменить работу буде у них такое желание есть/появится. Обе цели были достигнуты, участники разделились на две не равные части - большинство получило удовольствие от соревнования, результатов, новых знаний и знакомств; отдельные личности стали брюзжать на форуме DOU.
Соревнование проходило в три этапа - отборочный тур, полуфинал и финал. Изначально предполагалось, что судить жюри будет все этапы, но предварительные обошелся без нас. Чему лично я был очень сильно рад - поездка на JavaOne Moscow, работа и подготовка JEEconf все-таки отнимают много времени и сил.

субота, 16 квітня 2011 р.

JavaOne Moscow 2011

Откровенно говоря после Sun Tech Days St. Petersburg 2009 не думал, что поеду еще раз на мероприятие Oracle в России. Но, как говорят, строить планы - смешить Бога. В этот раз ее назвали JavaOne и ехали мы вчетвером, я подумал - а почему бы и нет. Тем более, что контора помогла с дорогой и регистрация была платной. Поездкой я доволен, несмотря на некоторые огрехи организации и (привет Бек) отсутствие технической конкретики в большинстве технических докладов.
Два, нет, три основных вывода
  1. С пришествием Oracle и отсечением откровенно "наколенных" поделок язык стал более агрессивным, разработка пошла не в количество фич или новых плюшек, а в качество, производительность и упорядочивание уже созданного. Что есть безусловно хорошим развитием. Потому что создано уже очень много всего, а вот стандартизировать и затюнить - это не к Sun
  2. У меня осталось стойкое ощущение, что Java уходит с front end уже окончательно. Конечно еще трепыхается JavaFX, еще пытаются его прооптимизровать, переписать заново, интегрировать на разных уровнях от JavaPlugin до JavaWebToolkit (GoogleWebToolkit в профиль). Но это скорее похоже на сохранение лица, чем на качественный рывок. Вместо этого мощное и стремительное развитие RESTfull, Servlets, EJB/EJB-light, JMS говорят о том, что основной упор делается и будет делаться на middle tier. Что логично и правильно ИМХО. Последний jersey невероятно прекрасен.
  3. Основные тенденции, основные направления деятельности Oracle достаточно ясны - Project Coins или допилить кривые конструкции языка; Java Memory Model уже сделана и верифицированна правильно, как следствие - работа в multithreading стала более однообразной и предсказуемой на всех платформах; MiddleTier и Enterprice; JVM как платформа динамических языков; тюнинг быстродействия - в первую очередь Garbage Collector и использование сверхбыстрой памяти.
Под катом больше подробностей и нравится/не нравится

вівторок, 5 квітня 2011 р.

Expert vs. Multipurpose

Не могу молчать, как говориться. Невинный вопрос "Если админ не смог настроить принтер на Ubuntu, потому что знает только Windows, значит ли это, что он плохой админ?" Получил совершенно невероятный ответ "Да - значит". Безаппеляционность? Ответчик не подумал? Возможно, но мне кажется, что это своего рода (не люблю слово трэнд) тенденция в обществе. Давайте попытаемся (ибо автор не является специалистом в системном администрировании), разобраться подробнее.

вівторок, 29 березня 2011 р.

jeeconf announcement

285x160

В конце весны 21 мая XP Injection приглашает вас в Киев на специализированную конференцию, посвященную разработке на Java. JEEConf -- это крупная конференция, целью которой является собрать вместе всех, кто использует Java технологии для разработки.