6
June
2007

Java Головоломки (Java Puzzlers)

Posted in: Java technologies, J2SE, Ваш досуг. Полезные советы | 3 Comments

Всем привет.
Для разнообразия посмотрим на язык программирования Java с другой стороны.
Ниже вы найдете одну очень интересную ссылку. К моему глубочай?ему сожалению, я обнаружил ее совсем недавно.
Два серьезных дядьки - Джо?уа Блок (Joshua Bloch) и Нил Гафтер (Neal Gafter) в совсем несерьезном стиле предлагают ва?ему вниманию восемь интересней?их головоломок.
(more…)

21
May
2007

Паттерн Adapter (Адаптер)

Posted in: Паттерны проектирования | 5 Comments

Вернемся к рассмотрению структурных паттернов проектирования. На этот раз мы рассмотрим ?аблон проектирования под названием Adapter (его еще называют Wrapper на ряду с паттерном Facade).
?так, паттерн Adapter используется для того, чтобы объекты с разными интерфейсами могли работать друг с другом. Существует два типа адаптеров - Class Adapter и Object Adapter.
Для начала мы рассмотрим каждый из этих типов, а потом я объясню разницу между двумя wrapper’ами - адаптером и фасадом.
(more…)

11
April
2007

Исключения в Java (exceptions, errors, исключительные ситуации)

Posted in: Java technologies, J2SE | 11 Comments

Эта статья посвящается очень важному вопросу программирования - исключительным ситуациям и ошибкам (exceptions and errors).
В языке Java исключения (Exceptions) и ошибки (Errors) являются объектами. Когда метод вызывает (бросает - throws) исключительную ситуацию, он на самом деле работает с объектом. Но такое происходит не с любыми объектами, а только с теми, которые наследуются от Throwable.
Упрощенную диаграмму классов ошибок и исключительний вы можете увидеть на следующем рисунке:
(more…)

12
March
2007

Новый дизайн (new blog design)

Posted in: Разное (uncategorized) | 8 Comments

Пришла весна… В интернете распустились блоги, затмевая друг друга разнообразием красочных страниц…

Наконец-то и у моего сайта новый уникальный дизайн. Спасибо, Aphina, что не пожалела времени на создание макета и верстку, без которых, казалось бы, можно прожить :). Если честно, я не сразу проникся всей глубиной символизма, вложенного в дизайн.

Если вас интересует, как выглядел блог раньше, смотрите следующую ссылку: старый дизайн блога.

Пока что не было обнаружено никаких багов в Internet Explorer и Mozilla FireFox. Если вы обнаружите, что что-то не так, напишите мне, пожалуйста.

Всего хорошего.

10
March
2007

Производительность при работе с XPath в Java (performance issues)

Posted in: Технологии XML, XPath, Java technologies, J2SE | 1 Comment

Пакет javax.xml.xpath (Java 1.4) предоставляет пользователю независимый API для вычисления XPath выражений.
По умолчанию используется Sun’овская реализация всех классов из этого пакета. Работая с этой имплементацией была обнаружена одна интересная вещь.
По мере углубления в DOM-дерево (Document Object Model), скорость вычисления одних и тех же XPath выражений постепенно падает.
В этой статье я хочу продемонстрировать описанную проблему, а также предложить альтернативный способ работы с сильноветвящимся DOM-деревом при вычислении XPath.
(more…)

26
February
2007

SCRUM Митинг (daily scrum meeting)

Posted in: Project Management | 2 Comments

Существует 2 основных типа, на которые делятся методологии разработки програмного обеспечения (software development methodology). Это структурные и гибкие методологии. Структурные методологии предполагают высокоформализованный подход к разработке ПО (каскадная модель). Гибкие методологии (Agile) ориентированы в основном на итеративную разработку с минимально допустимой формализацией процесса.
Об основных принципах гибких методологий я расскажу в другой статье. А обратить ва?е внимание хочу вот на что. Agile методологии очень хоро?о себя зарекомендовали и сейчас даже самый высокоформализованный процесс трудно себе представить без “гибких” элементов, в частности митингов.
?так, SCRUM-meeting.
(more…)

13
January
2007

Паттерн Builder (Строитель)

Posted in: Паттерны проектирования | 13 Comments

Паттерн Builder является паттерном создания объектов (creational pattern). Суть его заключается в том, чтобы отделить процесс создания некоторого сложного объекта от его представления. Таким образом, можно получать различные представления объекта, используя один и тот же “технологический” процесс.
Паттерн Строитель иногда путают с паттерном проектирования Factory. ? не удивительно, так как они действительно во многом схожи.
В этой статье я опи?у неболь?ой пример реализации Builder’a на языке Java, а так же попробую коротко объяснить разницу между Builder и Factory.
(more…)

1
December
2006

Проблема с rowset.jar (NullPointerException)

Posted in: Базы данных, SQL, Oracle, Java technologies, J2SE | 2 Comments

Библиотека rowset.jar предоставляет набор имплементаций для таких интерфейсов, как CachedRowSet, FilteredRowSet, JoinRowSet и т.д, а также другие необходимые классы для работы с ними.
Чаще всего программистам приходится иметь дело именно с com.sun.rowset.CachedRowSetImpl. Этот класс позволяет кэ?ировать данные из data source (так сказать, работать в режиме off-line).
В этой статье я хочу рассказать о проблеме, которая возникла у меня при работе с библиотекой.
А именно, при попытке создать объект CachedRowSetImpl валился следующий Exception:

java.lang.NullPointerException
 at java.io.Reader.<init>(Reader.java:61)
 at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
 at java.util.Properties.load(Properties.java:266)
 at java.util.PropertyResourceBundle .<init>(PropertyResourceBundle.java:96)
 at com.sun.rowset.JdbcRowSetResourceBundle.<init>(Unknown Source)
 at com.sun.rowset.JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle(Unknown Source)
 at com.sun.rowset.CachedRowSetImpl .<init>(Unknown Source)
 at TestRowSet.main(TestRowSet.java:14)

(more…)

20
November
2006

Антипаттерн проектирования: Public Morozov

Posted in: Ваш досуг. Полезные советы | 9 Comments

Порадовать ре?ил моих благодарных читателей. К сожалению, copyright не мой.
?так, был придуман антипаттерн проектирования - Public Morozov. Это класс, который открывает доступ ко всем полям и методам класса-предка, не зависимо от их модификаторов видимости.
Ну и для того, чтобы окончательно скрасить рабочие будни, еще пару перлов…
(more…)

14
October
2006

Генератор случайных чисел (java.util.Random)

Posted in: Java technologies, J2SE | 6 Comments

Как говорится: случайность - частный случай закономерности. Поэтому наверняка вы используете случайные числа в некоторых своих разработках.
В Java есть класс для работы со случайными (точнее псевдослучайными) числами - java.util.Random. Тем не менее, некоторые люди пользуются им не совсем так, как надо.
Пример:
(more…)