Thinking in Java, 2nd edition, Revision 11

©2000 by Bruce Eckel

[ Предыдущая глава ] [ Краткое содержание ] [ Содержание ] [ Список ]

D: Ресурсы

Программное обеспечение

JDK с java.sun.com. Даже если Вы решили использовать среды разработки от прочих производителей, использование стандартной JDK не плохая идея. Иногда она помогает найти и обойти ошибки компиляции. JDK это нечто вроде пробного камня, и если в нем есть какая либо ошибка, то шансов на то, что она уже известна достаточно велика.

HTML Java документация с java.sun.com. Я еще не видел книг документации по стандартным библиотекам Java, которые содержали бы старые данные или вообще не содержали бы нужных данных. Несмотря на это HTML документация с Sun-а - пристрелочные данные, с небольшими ошибками и иногда невообразимо краткие, но все классы и методы там есть. Зачастую люди испытывают некоторое неудобство при использовании онлайн документации, по сравнению с обычными печатными книгами, но Вы должны все-таки стараться использовать именно онлайн документации, поскольку они содержат наименьшее количество ошибок и исправляются очень быстро.

Книги

Thinking in Java, 1st Edition. Доступна в полностью проиндексированном, раскрашенном HTML виде, бесплатно с www.BruceEckel.com. Включая старые материалы и материалы, которые не попали во второе издание.

Core Java 2, авторов Horstmann и Cornell, Том I Фундамент (Prentice-Hall, 1999). Том II Продвинутые возможности, 2000. Громадная, сложная книга, я к ней обращаюсь в первую очередь, если мне нужен ответ на мой вопрос. Это так книга, которую я рекомендую, после того, как Вы закончите Thinking in Java.

Java in a Nutshell: A Desktop Quick Reference, 2nd Edition, автор David Flanagan (O’Reilly, 1997). Компактное обобщение онлайновой документации Java. Лично я предпочитаю смотреть документацию в онлайне, поскольку последняя изменяется достаточно часто. Однако многие люди все еще предпочитают использовать "твердые копии". А они ведь не бесплатные, поэтому это еще один аргумент в пользу того, какие источники использовать.

The Java Class Libraries: An Annotated Reference, авторы Patrick Chan и Rosanna Lee (Addison-Wesley, 1997). Вот такой должна быть документация онлайн: достаточно описания, что бы быть практичной. Один из технических обозревателей Thinking in Java сказал: "Если бы у меня была возможность получить только одну книгу по Java, то это была бы именно эта книга (ну и Ваша разумеется)." Я не захвачен интересом к этой книге. Да, она большая, дорогая, но качество примеров меня не устраивают. Но это именно то место где можно выбрать область, на которой необходимо заострить ваше внимание, ведь материал изложен достаточно глубоко и широко, даже по сравнению с Java in a Nutshell.

Java Network Programming, автор Elliotte Rusty Harold (O’Reilly, 1997). Я не понимал, как работают сеть в Java до того, как я нашел эту книгу. Я так же нашел вебсайт этой книги, вау! Такого количества информации для разработчиков, причем не зависимой от пристрастий автора или спонсора, я еще не видел. Автор так же регулярно обновляет новости о Java. Смотите сами metalab.unc.edu/javafaq/.

JDBC Database Access with Java, автор Hamilton, Cattell & Fisher (Addison-Wesley, 1997). Если Вы ничего не знаете о SQL и базах данных, то эта книга прекрасно поможет вам в них разобраться (на начальном уровне естественно). Она так же содержит некоторые интересные детали, как например, "аннотированные ссылки" на API (опять же, именно такой должна быть документация онлайн). Недостатком этой книги, как и всех книг серии "The Java Series" (Это те книги, которые авторизированны JavaSoft) это то, что она слишком уже "отбелена", в ней рассказывается, только о хороших сторонах языка и технологии, но Вы не найдете ни одного проблемного места.

Java Programming with CORBA, авторы Andreas Vogel и Keith Duddy (John Wiley & Sons, 1997). Серьезная трактовка с примерами кода трех Java ORB (Visibroker, Orbix, Joe).

Design Patterns, авторы Gamma, Helm, Johnson и Vlissides (Addison-Wesley, 1995). Конструктивная книга, которая вводит применение шаблонов в программирование.

Practical Algorithms for Programmers, авторы Binstock м Rex (Addison-Wesley, 1995). Алгоритмы написаны на C, поэтому их достаточно легко перевести на Java. Каждый из алгоритмов подробно разъяснен.

Анализ и проектировка

Extreme Programming Explained, автор Kent Beck (Addison-Wesley, 2000). Я влюблен в эту книгу. Да, я тяготею к радикальному решению вещей связанных с улучшением процесса разработки программ и эта книга при более внимательном взгляде мне кажется очень удачной. Единственная книга произведшая на меня такое же впечатление была PeopleWare (описана ниже), в ней рассказывается в основном об окружении и "разделении" умственных способностей. Extreme Programming Explained говорит о программировании и размещает все места по соответствующим им полочкам. О книге можно еще добавить, картинки в ней нормальные, но лучше будет, если Вы не будете их разглядывать, а будете постигать суть. (Да будет вам известно, что эта книга не имеет штампа допуска UML на своей обложке.) Я все такие предпочитаю работать над своим развитием именно с такими книгами, небольшие книги, маленькие главы, легкость прочтения, удовольствие от осмысления.

UML Distilled, 2nd Edition, автор Martin Fowler (Addison-Wesley, 2000). Когда Вы впервые открываете для себя UML, он выглядит устрашающе, поскольку содержит множество диаграмм и деталей. Соответственно Fowler, считая их несущественными просто выкинул их и оставил только суть. Для большинства проектов, вам достаточно знать всего лишь несколько инструментов диаграмм и Fowler оставил их, с хорошим дизайном, качественными объяснениями, так что не стоит по этому поводу слишком уж беспокоиться. Приятная, тонкая, читабельная книга, первая книга, если вам нужно изучить и главное понять UML.

UML Toolkit, авторы Hans-Erik Eriksson и Magnus Penker, (John Wiley & Sons, 1997). Разъясняют саму сущность UML и то, как его использовать, но кроме этого содержит уроки по Java. Сопроводительный CD ROM содержит коды Java и урезанную версию Rational Rose. Ну что же - превосходное введение в UML и в то, как построить реальную систему.

The Unified Software Development Process, авторы Ivar Jacobsen, Grady Booch и James Rumbaugh (Addison-Wesley, 1999). У меня были все основания для нелюбви к этой книге. Она выглядела, как сборник скучных учебных текстов. Но я был приятно удивлен, только карманные издания книги содержат разъяснения, которые выглядят, как если бы их основы не были бы понятны самим авторам. Основная часть книги не только "прозрачна" и ясна, но и может доставить удовольствие. Но лучше всего, процесс создания практических заданий. Однако, это не Extreme Programming (и не содержит так де ее ясности о тестировании), но она так же и часть UML неумолимой силы, даже если Вы не можете принять XP. Большинство людей залезают на борт "UML это хорошо" (в зависимости от их уровня знания о нем) и наверное вам он то же подойдет. Я думаю, эта книга должна быть главной книгой о UML, а если Вы прочтете ее после книга UML Distilled, то тогда Вы получите больше деталей.

До того, как Вы выберете любой метод, не плохо было бы оценить возможную "прибыль" на будущее от тех, кто не пытался продать один. Легко принять метод без действительного понятия, что вам действительно нужно для вас. Другие принимают решения на основании непреодолимых причин. Но все равно, люди имеют странный небольшой изгиб в голове: Если они верят в то, что что-то может решить их проблемы, они обязательно испробуют это. (Это называется экперементаторством, и это хорошо.) Но если их надежды не оправдались, то они удваивают свои усилия и начинают громко рекламировать крутую вещь, которую они только что обнаружили. (Это - протест, и не хорошо.) Такое обычно происходит при попытке самому разобраться в происходящем, а это не очень хорошо (ну может быть, если Вы просто болеете у себя дома).

Это не просто предположение, которое отрицает все методы, но Вы должны быть во все оружии (прямо вооружены до зубов) мозговыми "средствами", что бы найти в себе силы оставаться в режиме эксперементаторства (Оно не работает, но давайте попробуем что ни будь другое) и не находиться в режиме отрицания (Нет, это на самом деле не проблема, все чудесно и замечательно работает, нам не нужны перемены). Я думаю, что книги описанные ниже, предоставят вам эти самые мозговые "средства", и позволят вам выбирать оптимальный метод выполнения.

Software Creativity, автор Robert Glass (Prentice-Hall, 1995). Это лучшая книга, которую, я когда-либо видел, в ней рассуждается о перспективах использования различных метод. Эта книга - сборник коротких эссе и заметок, которые автор написал собственноручно и на собственном опыте (P.J. Plauger был его помощником), отражающие долгие годы обдумывания и изучения предмета. Они занимательны и достаточно важны; они не заставят вас долго блуждать по оглавлению и не наскучат. Но они так же и не пустой дым; в них содержится сотни ссылок на другие письменные работы и учения. Все программисты и менеджеры должны прочитать эту книгу до того, как они собираются погрузиться в болото методологии.

Software Runaways: Monumental Software Disasters, автор Robert Glass (Prentice-Hall, 1997). Важной стороной это книги является то, что в ней выносятся на первый план те вещи, о которых мы обычно не хотим разговаривать: сколько проектов не просто провалилось, а провалилось с треском. Я знаю, что многие из нас все еще думают: "Это не может случиться со мной" (или "Это не может произойти опять"), а я думаю, что такие мысли не делают нам чести. Сохраняя в памяти все те плохие вещи, которые всегда приводили нас к неправильному действию, мы будем находиться в более выгодной позиции, что бы сделать их все таки правильно.

Peopleware, 2nd Edition, авторы Tom Demarco и Timothy Lister (Dorset House, 1999). В силу того, что авторы имели опыт в разработке программного обеспечения, то эта книга в основном о проектах и командах. А фокус на людях и их потребностях, а не на технологиях и их потребностях. Они рассуждают о создании некой среды, где бы люди были счастливы и продуктивны, а не о правилах, которым эти люди должны следовать и стать в конце концов придатками машин. Это последнее замечание, я думаю, вызовет наибольшее одобрение у программистов, когда метод XYZ будет принят, а они будут тихо сидеть и вспоминать, что же они сделали.

Complexity, автор M. Mitchell Waldrop (Simon & Schuster, 1992). Это не книга, это хроники работы группы ученых различных дисциплин, собравшихся в Санта Фе, в Мексике. Они обсуждали настоящие проблемы, которые их дисциплины не могут разрешить (биржевой рынок в экономике, начальное формирование в биологии, почему люди делают то, что делают, в социологии и т.д.). Такое смешение физики, экономики, химии, математики, социологии и других наук создает прецедент многонаучного поиска пути решения какой либо задачи. Но наиболее важно, то, что использовались совершенно другие пути осмысления этих сверх комплексных проблем: прочь от математического детерминизма и иллюзии, что Вы можете написать эквивалент предиката определяющего все поведения, а вместо этого в первую очередь к наблюдению и исследованию с целью создания шаблонов и последующие попытки съэмулировать при помощи этого шаблона все возможные значения предмета. (Эта книга в частности посвящена решению алгоритмов генетики.) Эта разновидность мышления, а я надеюсь на это, очень удобна для поиска путей для решения все более и более комплексных программных проектов.

Python

Learning Python, авторы Mark Lutz и David Ascher (O’Reilly, 1999). Хорошее введение для программистов желающих быстро изучить язык, прекрасный компаньон для изучения Java. Книга содержит введение в JPython, с помощью которого можно комбинировать Java и Python в одной программе (интерпретатор JPython компилирует в чистые байт-коды Java, поэтому вам не нужно ничего другого, что бы добиться этого результата). Это соединение двух языков обещает огромные возможности.

Мой собственный список книг

Список в порядке публикации. Не все их книг в данный момент доступны в продаже.

Computer Interfacing with Pascal & C, (Самиздат через Eisys, 1988. Доступна только с www.BruceEckel.com). Введение в электронику с самого начала, когда CP/M все еще была операционной системой и когда DOS только появилась. Я использовал языки высокого уровня и параллельный порт компьютера для создания множества различных электронных проектов. Книга собрана из статей в первом и единственном журнале для которого я писал Micro Cornucopia. (Если перефразировать Larry O’Brien, редактора Software Development Magazine продолжительное время: лучший компьютерный журнал, к котором я когда либо печатался, у них всегда есть план, как вырастить робота в цветочном горшке!) Увы, Micro C пропала еще до возникновения Интернет. Создание этой книги было подведением черты, опыта публикаций.

Using C++, (Osborne/McGraw-Hill, 1989). Одна из первых книг по C++. Эта книга сейчас заменена второй редакцией C++ Inside & Out.

C++ Inside & Out, (Osborne/McGraw-Hill, 1993). Как уже замечено выше - вторая редакция Using C++. C++ в этой книге довольно правилен, но на момент 1992 года и по этому Thinking in C++ призвана заменить ее. Вы можете не только узнать больше об этой книге но и скачать ее целиком с исходными кодами с www.BruceEckel.com.

Thinking in C++, 1st Edition, (Prentice-Hall, 1995).

Thinking in C++, 2nd Edition, Volume 1, (Prentice-Hall, 2000). Доступна загрузка с www.BruceEckel.com.

Black Belt C++, the Master’s Collection, Bruce Eckel, редактор (M&T Books, 1994). Вышло из печати. Сборник глав от различных C++ светил, основанных на их представлениях на конференции разработчиков программного обеспечения, на котором я председательствовал. Обложка этой книги вдохновила меня на создание обложек всех последующих книг.

Thinking in Java, 1st Edition, (Prentice-Hall, 1998). Первая редакция этой книги получила награду Software Development Magazine Productivity, награду Java Developer’s Journal Editor’s Choice и награду JavaWorld Reader’s Choice Award for best book. Доступна для загрузки с www.BruceEckel.com.

[ Предыдущая глава ] [ Краткое оглавление ] [ Содержание ] [ Список ]