воскресенье, 24 марта 2013 г.

Погружаясь в мир Java

Продолжая изучать Java, прочитал еще две знаковые в этой области книги. Прежде всего это очень известная книга Брюса Эккеля "Философия Java". Как ни странно она по аналогии с "Core Java" так же зачастую делает ссылки на С++. По духу книга очень близка к уже упомянутому двухтомнику Хортсманна и Корнелла, но зачастую делает акценты в других местах. Именно сравнить эти две книги и хотелось бы дальше.

Эккель в начале дает описание ООП, основ Java, его синтаксиса, затем идет описание коллекций объектов, RTTI, шаблонов, массивов, io и завершает все глава про параллельное выполнение.

Автор придумал хитрую систему примеров: в начале дается полный исходный код, а затем в комментарии приводится формализованный вывод этого кода на консоль. Благодаря паре скриптов, написанных им, пример вывода в комментарии никогда не расходится с исходным кодом (что зачастую можно видеть у других авторов).

В книге очень хорошо описана реализация внутренних классов: тема достаточно нетривиальная, с подводными камнями. Ставим здесь плюс Эккелю. Так же очень хорошо описана параметризация и RTTI. Одна из самых сложных тем в Java - использование системы ввода/вывода (в основном за счет активного использования шаблона декоратор) тут описано намного понятнее чем в Core Java, в том числе и за счет исторического экскурса.

С другой стороны в Core Java имеются свои неоспоримые преимущества: к примеру, есть не мало тем, которых Эккель вообще не касается, но они очень важны для практического применения Java.  В целом "Философия Java" написана живо и интересно. Автор не боится при случае указать на недостатки в проектировании Java и книга выглядит достаточно объективно. В целом обе книги не плохо дополняют друг друга: разве что первые несколько глав Философии можно просто пробежать глазами после Core Java.

Так же хотелось бы написать про книгу Джошуа Блоха "Java. Эффективное программирование". Книга абсолютно не похожа на две предыдущие. Оформлена она в том же стиле как книги, например, Скотта Мейерас о С++: т.е. набор практических советов (один совет - одна глава) по различным областям программирования на Java.

Основные вопросы, затрагиваемые в книги это:

  • создание и уничтожение объектов
  • методы
  • классы и интерфейсы
  • замена конструкций из С
  • исключения
  • потоки
  • сериализация

В целом почти все разделы очень полезны. Информация сжата и советы конкретны. Проблемы выявлены очень четко. Например тут описана модель памяти Java, что я не нашел в предыдущих двух книгах. В целом не советую кому-либо садиться за написание крупного проекта без тщательного штудирования труда Блоха. Т.е. как и в мире С++ книга этого типа является must read для любого уважающего себя программиста на Java.



p.s.
В релиз на maps.yandex.ru уже вышел продукт он-лайн бронирования отелей (см. скриншот рядом).

Весь бэкэнд написан на Java и ходит он-лайн (т.е. сразу когда пользователь задает запрос в сервисе) к нашим партнерам за данными по бронированию отелей.

Комментариев нет:

Отправить комментарий