5 мая 2011 г.



Книга месяца: «Философия Java», Брюс Эккель

Меня время от времени спрашивают какие хорошие и стоящие книги можно почитать Java-программисту. Несмотря на то, что таковых книг ни одна и ни две, я всегда советую книгу Брюса Эккеля «Философия Java» (или «Thinking in Java» в оригинале). Уверен, что все Java-разработчики со стажем должны об этой книге знать и уже давным-давно прочитать. Если же по каким-либо причинам этого еще не произошло, то время исправить сие упущение.

Пожалуй, эта книга самая потрепанная из тех, что стоят у меня на книжной полке. А все потому, что ее не отнесешь к тому типу технической литературы, которую читают новички, набираясь некоторого минимально необходимого набора знаний, и благополучно задвигают затем в самый дальний ящик самого дальнего стола в самом дальнем углу. Эта книга так устроена, что бывает полезной вновь и вновь.

Что же касается новичков в мире Java (такие ведь еще остались, правда?), то по моему мнению более удачной книги для начала не придумаешь. Как показывает практика, новички зачастую знают об объектно-ориентированном проектировании/программировании немного - лишь голую, ничем не подкрепленную, теорию. Каким волшебным образом эта теория используется на практике понимают далеко не все. Это нормально, мы все учимся. Автор книги, судя по всему, прекрасно осведомлен о таком положении вещей и поэтому начинает с азов ООП, постепенно подводя неискушенного читателя непосредственно к Java.

Кроме общего обзора языка и его основных понятий и управляющих конструкций, которые неизменно присутствуют в любой технической книге, Брюс уделяет внимание более интересным и полезным вещам.

Например о способах работы сборщика мусора я узнал именно из этой книги. Почему так? Да потому, что среднестатистический разработчик не имеет дело со сборкой мусора и борьбой за утечки памяти каждый день. Уверен, многие программисты «поднимают» эту тему только в случае крайней необходимости, когда утечка уже случилась и надо что-то делать. А в остальных случаях, казалось бы, можно об этом и не вспоминать, Java все сделает за тебя. Но мы-то знаем, что это не так. Как бы нам не хотелось, чтобы управление памятью происходило без участия программиста, в реальности мы видим другую картину. И в этой картине именно на плечи разработчика ложится эффективное управления памятью.

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

Только не нужно думать, что книга подходит только совсем уж «зеленым» необстрелянным студентам. На мой взгляд, есть что почитать и более опытным программистам. Как минимум, для систематизации знаний, полученных за время работы из разных источников.

Лично для меня такими темами были:

  • эффективное использование внутренних классов, приемы проектирования
  • работа с системой ввода-вывода, стандартные потоки и новый ввод-вывод (nio) - то, что постоянно забывается и каждый раз заново ищется по интернетам :)
  • параллельные вычисления
Другим словами, есть что почитать, коллеги. Пускай вы не узнаете ничего нового, но, уверяю вас, картинка в голове станет намного яснее. Всем хорошего дня, никаких проблем с памятью и поменьше гейзенбагов!





Понравилось сообщение - подпишитесь на блог Подписка на блогFollow grodnosoft on Twitter




Читайте также:


Комментов: 0

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