Сообщений 6 Оценка 292 [+4/-0] Оценить |
Книга представляет собой систематизированный сборник ошибок серверного программирования на языке Java с описанием их причин и возможных решений. В ней приводятся анти-паттерны для таких фундаментальных концепций Java и J2EE, как сервлеты, JSP, компоненты EJB, модели подключений в корпоративных сетях и масштабирование. Книга написана для программистов Java среднего уровня, аналитиков или разработчиков архитектур, не желающих повторять чужие ошибки.
Предисловие
Предисловие
Часть I
Глава 1. Грустные истории об анти-паттернах
Глава 2. Общая ситуация
Часть II
Глава 3. Сервлеты
Глава 4. JSP
Глава 5. Кэширование
Глава 6. Управление памятью
Глава 7. Подключения и привязка
Глава 8. EJB
Часть III
Глава 9. Культура программирования
Глава 10. Масштабируемость
Глава 11. Прощальные размышления
Алфавитный указатель
Одна из трех (первая – знаменитый Рефакторинг Мартина Фаулера, вторая - Типичные ошибки проектирования Эрика Аллена) переводных книжек о том, как не надо программировать, которые стали появляться последнее время. Направление действительно важное, поскольку на собственно опыте знаю, как легко новичок попадает в ловушки анти-паттернов – теперь этому есть название. Так же, как Мартин Фаулер, автор представляет фрагменты кода и проектировочные решения, обладающие различными недостатками, и описывает пути их возможного усовершенствования. На этом материале демонстрируются низкоуровневые проявления внутренних дефектов технологического процесса, недостаточной квалификации и тяги к упрощенным решениям. Программисты и специалисты-проектировщики найдут то, что непосредственно относится к их работе. В конце каждой главы приводится краткая сводка рассмотренных анти-паттернов. Собственно, по содержанию уже можно составить достаточно объективное мнение.
То, что надо изучать паттерны – это все признают. Вот как пишет об этом автор данной книги:
Паттерны: изучение положительного опыта
Паттерны проектирования представляют собой решения типовых задач в заданном контексте. Хорошим примером является паттерн "Модель-представление-контроллер", представленный в главе 3. Он обеспечивает общее решение проблемы отделения пользовательского интерфейса от бизнес-логики приложения. Хороший паттерн представляет решение, которое успешно применялось в нескольких разных ситуациях. … В роли программиста я использую их по нескольким причинам:
Активное применение паттернов меняет подход к программированию. Вы присоединяетесь к сообществу программистов, внутри которого распространяются паттерны, и занимаетесь исследованиями вместо того, чтобы браться за решение методом "грубой силы".
Однако автор ратует и за обязательное изучение антипаттернов и объясняет, что это такое.
Анти-паттерны: изучение чужих ошибок
В одной из книг, посвященных изучению анти-паттернов, автор приводит следующее определение: "обозначение часто встречающегося подхода к решению проблемы, приводящего к однозначно отрицательным последствиям". Мое внимание привлекли слова "часто встречающийся подход" и "однозначно отрицательные последствия". Во многих источниках эти негативные решения выдаются за образец правильного подхода. Некоторые анти-паттерны (такие, как "Волшебный сервлет") встречаются в программах, которые публикуются в учебниках, генерируются программами-мастерами или реализуются в библиотеках классов. Что касается отрицательных последствий, каждый, кто внимательно следит за развитием отрасли программирования, знает, что довольно высокий процент проектов завершается неудачей и проекты Java не являются исключением. На прошлых выходных я узнал, что одна из крупнейших компаний закрыла проект Java, использующий сервлеты и JSP, и заменила его новым проектом на базе CICS и C++!
Безумие, творящееся в нашей отрасли, в отдельных случаях объясняется злым умыслом. Некоторые фирмы продают программные продукты, заведомо неработоспособные или не доведенные до нормального состояния. Некоторые начальники сопротивляются изменениям и саботируют проекты. Некоторые из наших коллег ищут короткие обходные пути, зная, что последствия придется исправлять кому-то другому. И все же в большинстве случаев проблемы возникают из-за обычного невежества, безразличия или лени. Мы просто не утруждаем себя изучением стандартных анти-паттернов. Забывая о правиле экспоненциального роста затрат на исправление ошибок на стадии цикла разработки, мы тешим себя иллюзиями, что выбранное сегодня упрощенное решение можно будет исправить в будущем.
Некоторые распространенные анти-паттерны
Любой программист часто сталкивается с анти-паттернами, не имеющими ничего общего с Java. В этой книге они практически не рассматриваются, но я все же приведу несколько примеров, чтобы разжечь ваш аппетит.
Не правда ли, все очень знакомо? Для кого и зачем была написана эта книга, пишет сам автор.
В мире Java изучение и распространение проектировочных паттернов, "шаблонов" хорошо проверенных решений, имеет давние традиции. Об анти-паттернах этого сказать нельзя. Консультируя клиентов, я был поражен невероятным однообразием ошибок, которые обычно допускались нашими клиентами. Хотя конкретная проблема слегка изменялась в зависимости от предметной области или условий, общие недостатки проектирования, культуры программирования и даже технологии оставались на удивление одинаковыми. Я твердо убежден, что изучение анти-паттернов меняет подход к технологическому процессу программирования. Знание анти-паттернов делает нас более наблюдательными. Оно заставляет нас обмениваться знаниями с другими, помогает отойти от ежедневной рутины и внести в технологический процесс фундаментальные изменения, необходимые для его успешной работы.
Книга рассчитана на программиста средней квалификации. Если на вашей полке стоят все новые книги о паттернах Java, а в браузере имеются закладки для всех основных форумов, посвященных паттернам, - наверное, эта книга не для вас. Если вы еще не знаете Java, почитайте учебники для начинающих и только после этого беритесь за книгу. Но если вы, как большинство программистов Java, имеете среднюю квалификацию и не откажетесь от информации о типовых проблемах, встречающихся при программировании на Java, эта книга написана для вас. Она особенно пригодится тем, кто перешел на Java с более простых языков - например, сценарных или процедурных языков типа C.
И наконец, мое личное мнение. Книга чрезвычайно полезна, ее надо изучать и изучать, так же как Рефакторинг. То, что она, так же как и две другие книги, написана на Java, ни в коей мере не снижает ее ценности для других программистов. Непосредственно для них – третья часть. Но, конечно, особую ценность книга имеет как раз для Java-программистов, так как основное содержание составляет вторая часть, целиком и полностью посвященная конкретно Java-программированию.
По моему мнению, только один недостаток изложения – истории о каякерах и сплаве на лодках-каяках. Но может, кому-то именно это и понравится. Сам автор именно так и пишет.
Сообщений 6 Оценка 292 [+4/-0] Оценить |