|
"Много в мире Java™-песен сложено.
Я спою тебе, спою еще одну..."
На нынешнем рынке компьютерной литературы трудно не заметить две великолепные книги по разработке приложений на языке Java:
- "Java без сбоев: обработка исключений, тестирование, отладка" С.Стелтинга и
- "Java сервлеты и JSP: сборник рецептов" Брюса У.Перри
Программисты и многие IT-специалисты, использующие другие средства разработки, наверно, должны позавидовать Java-истам, настолько материал этих книг отвечает профессиональным потребностям и чаяниям архитекторов и разработчиков, тестировщиков и эксплуатационников, лекторов и студентов по программному обеспечению на Java. И даже не надо долго объяснять, почему должны позавидовать. Собственно из названий этих книг следует их главная полезность для программистов. Недолюбливание тестирования и кошмар поиска, обнаружения, отождествления и исправления ошибок проекта и исходного кода преследуют каждого программиста. Каждого - как разработчика, так и особенно программиста сопровождения промышленной системы, поскольку он имеет дело с “чужим” кодом, практически всегда в нашей отечественной практике недостаточно документированным. С другой стороны - другая книга - так редко встречается четкое, можно сказать рафинированное, изложение опыта большего специалиста и не менее сильного писателя-популяризатора. Рецептурная манера подачи материала наводит прямые и непротиворечивые аналогии с медициной, где по нашему мнению, вершиной всего является Его Величество Рецепт. [Правда, поможет ли выписанный рецепт при лечении и/или предупреждении соответствующей болезни, зависит еще от пациента, а в нашем случае – разработчика, (не)способного принять и применить чужой опыт.] Попытаемся же чуть поконкретнее представить читателям рецензируемые книги.
Стивен Стелтинг, автор "Java без сбоев: обработка исключений, тестирование, отладка", начинает свою книгу эпиграфом: “Все необнаруженные ошибки следует считать несуществующими” - фразой из приписываемого некоей ведущей компьютерной компании технического руководства. [Сколько же истины в этих анекдотичных классических словах!
- это знают практически все программисты.] И далее продолжает, что, тщетно пытаясь найти книгу
по языку Java, в которой была хотя бы глава, полностью посвященная теме эффективной обработке ошибок в программном Java-коде, он, наверно, отчаявшись, решил написать такую книгу сам. Спасибо, Стивен! Спасибо не только от лица Java-программистов, но и всех программистов, мы в этом уверены, которые применяют алгоритмические (процедурные) языки высокого уровня. Потому что ценность подобной книги превышает собственный ее практический материал, она сильна своим методологическим содержанием, ибо может научить любого программиста правильно мыслить, правильно писать свою программу, правильно затем ее тестировать, отлаживать и устранять обнаруженные и, тем самым, обретшие существование ошибки. [И все тоже самое нужно сказать от лица программистов сопровождения больших программных систем. ]
Предельно подробное (по главам и подглавкам) содержание этой книги
сопровождает ее
аннотацию на сайте изд. “Кудиц-Образ”. Их названия настолько информативны (например, “Преобразовывайте исключение в обобщенный вид только в том случае, если сохраняется первоначальный контекст исключения” или (через полкниги) “Ошибки преобразования и времени выполнения страниц JSP”), что пропадает необходимость описывать содержимое книги в имеющей все же ограниченный объем рецензии. Для тех же наших читателей, у кого нет необходимости подробно знакомиться с оглавлением, а есть желание коротко узнать основные положения, мы процитируем несколько строк из “Предисловия”, где С.Стелтинг сам привел основные темы трех частей, на которые он разделил свою книгу “Устойчивая Java” (Robust Java™):
- “Исключения и принципы их обработки”
(главы 1 – 5) – позволят понять, что реально представляют собой исключения, как они возникают и как они могут использоваться внутри системы. Рассмотренные здесь темы создают всестороннее представление о роли исключений в языке Java, которое служит для понимания следующих двух частей книги;
- “Обработка исключений и проектирование программ” (главы 6 – 10) – обсуждаются способы включения обработки исключений в процессе проектирования программного обеспечения, и вводится концепция “анализа отказов”;
- “Эффективная обработка исключений и ошибок”
(главы 11 - 14) – обсуждается архитектура программного обеспечения, шаблоны проектирования, тестирование и отладка.
В конце книги приведены три приложения:
- А.
“Результаты теста сравнения режимов обработки и объявления исключений”
- Б.
“ Краткое доброжелательное учебное пособие по Junit”
- В.
“My Buggy Servlet – проблемы подтверждения правильности программного кода компонента”,
а с сайта издательства можно по адресу
http://www.okc.ru:8080/okc/publish/imag.nsf/28c5611a96e8a8c7c3256e97001f790b/ff7cabfea45a855cc3256ff9003221ee/$FILE/RobustJava_sourcecode.zip
можно скачать архив (226 КБ) с примерами кодов программ по главам книги.
Итак, “цель состоит в том, чтобы … перейти к методам формирования хорошо структурированных систем, которые могут хорошо сопровождаться в течение продолжительного времени”. Эту цель достигает автор, и лучше об этой книге сказать что-либо трудно.
На обложке книги Брюса У.Перри "Java сервлеты и JSP: сборник рецептов" имеется надзаголовок “Практические решения проблем реального мира”. Скорее всего, это генеральное направление серии, к которой относится данная книга, но это не столь уж важно. Важно то, что книга предельно практично написана и готова “к немедленному употреблению” - таковы ее все примерно 230 рецептов. Каждый рецепт состоит из обязательных частей: “Задача” (то есть постановка, формулировка задачи, которая занимает всего 1-2 строки текста), “Решение” (эта часть чуть побольше – до четырех строк и содержит основную идею решения сформулированной задачи) и “Обсуждение” (вот здесь уже автор дает волю словам и не жалеет пространства: разделите 750 страниц на 230 и Вы за малым вычетом получите средний объем каждого “Обсуждения”). Именно в “Обсуждениях” собранных в книге рецептов называются конкретные методы и параметры, даются советы, указываются опасности, приводятся примеры решений в виде листингов программных кодов, отображения JSP-страниц на экране браузера и другие компоненты программистской кухни. Воистину, “Поваренная книга”! Не даром же в оригинальном ее названии присутствует многозначительное слово “Cookbook”.
Невозможно, да и не надо перечислять все или часть названий включенных в книгу рецептов, поскольку
полное по-рецептурное ее оглавление сопровождает аннотацию книги на сайте издательства “Кудиц-Образ”. Но мы приведем фрагмент “Предисловия”, где сам автор [мы думаем с немалым удовлетворением и гордостью] перечисляет наборы рассмотренных рецептов. Только пусть читатели извинят нас за очень длинную цитату, она того стоит. Итак, “в этих рецептах показано как:
- аутентифицировать web-клиентов;
- работать с базой данных;
- отправлять почтовые сообщения;
- обрабатывать данные, полученные от web-формы;
- читать и обрабатывать cookie;
- выгружать файлы от клиента;
- интегрировать JavaScript с сервлетами и JSP;
- встраивать в JSP и сервлеты файлы мультимедиа…;
- работать с web-клиентами, говорящими на разных языках;
- протоколировать сообщения от сервлетов и JSP;
- ...
- использование “сеансов” в ваших web-приложениях;
- работа с “фильтрами”;
- связывание Java-объектов с сеансом или web-приложениями;
- создание собственных пользовательских тегов для JSP;
- ...
Короче говоря, книга создана, чтобы помочь Java-разработчикам в решении их повседневных задач и дать быстрые ответы на типичные проблемы web-программирования.”
Вот и получается, что по одному из самых популярных на сегодня средств разработки приложений в нашем распоряжении появилось очень ценное издание. Не просто справочник, а большой набор щедро прокомментированных рекомендаций по программированию типовых задач web-приложений. Хочется отметить достаточно малую задержку между выходом оригинала книги Брюса У.Перри (2004) и ее русского перевода. Но это – не предел оперативности. Оригинал Robust Java™ был опубликован в этом же 2005г., что и ее перевод на русский язык. Вот бы такую оперативность всем книгам компьютерно-информационного направления!
Каждое издательство адресует свои книги определенному кругу читателей. В данном случае “Кудиц-Образ” рекомендует названные в этой рецензии книги и новичкам, и подготовленным читателям, и специалистам, то есть, в диапазоне от студентов, изучающих Java, до опытных Java-разработчиков, желающих усовершенствовать свои знания и навыки в Java-технологиях. Это все так. Но нам представляется, что любой профессиональный программист или специалист по ИТ-технологиям, прочитав несколько страниц или главок, просто взяв в руки и перелистав эти книги, получит большое удовольствие от методологической насыщенности приведенного материала и качества текста.
Виктор Абрамов,
научный редактор "Oracle Magazine/Русское Издание"
Анатолий Бачин,
главный редактор "Oracle Magazine/Русское Издание" |