Современная электронная библиотека ModernLib.Net

Программист-прагматик. Путь от подмастерья к мастеру

ModernLib.Net / Компьютеры / Хант Эндрю / Программист-прагматик. Путь от подмастерья к мастеру - Чтение (стр. 20)
Автор: Хант Эндрю
Жанр: Компьютеры

 

 


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

Другие разделы, относящиеся к данной теме:

      • Неплохие программы
      • Стрельба трассирующими
      • Прототипы и памятные записки
      • Карьер для добычи требований

Вопросы для обсуждения

      • Иногда самыми жесткими критиками проекта являются те, кто над ним работал. Случалось ли вам испытывать разочарование, когда ваши собственные надежды не были оправданы тем, что вы создали? Как это могло произойти? Может быть здесь присутствует нечто большее, чем логика.
      • Что говорят ваши пользователи, когда вы поставляете им готовую программу? Пропорционально ли их внимание к различным аспектам данной программы усилиям, которые вы в эти аспекты вложили? Что их восхищает?

46
Гордость и предубеждение

      Вы восхищали нас довольно долго.
Джейн Остин, Гордость и предубеждение

      Программисты-прагматики не уклоняются от ответственности. Вместо этого они испытывают радость, принимая вызовы и распространяя свой опыт. Если мы несем ответственность за проектное решение или фрагмент программы, мы делаем работу, которой можем гордиться.
 
      Подсказка 70: Ставьте вашу подпись под работой
 
      В прошлом мастеровые гордились, подписывая свою работу. Вы должны следовать их примеру.
      Проектные команды все еще состоят из людей, и это вызывает сложности. В некоторых проектах идея монопольных прав на программу может вызывать трения. Люди могут начать обособляться или не выказывать желания работать над общими фундаментальными элементами. Проект может закончиться феодальной раздробленностью. У вас возникнут предубеждения относительно и вашей программы, и ваших коллег.
      Этого-то мы и не хотим. Вы не должны ревниво защищать свою программу от тех, кто вторгается в ее пределы; вы должны платить людям той же монетой и относиться к программам других разработчиков с уважением. Золотое правило ("Поступай с другими так, как бы ты хотел, чтобы они поступали с тобой") и взаимоуважение среди разработчиков является важным для действия подсказки, приведенной выше.
      Анонимность, особенно при работе с крупномасштабными проектами, может оказаться благодатной почвой для небрежности, ошибок, лени и неудачных программ. Слишком легко рассматривать себя лишь в качестве винтика в большой машине, высказывая неубедительные извинения в бесконечных отчетах о состоянии, а не просто создавая хорошие программы.
      У программы должен быть владелец, но он не обязательно является физическим лицом. Успешный метод eXtreme Programming [URL 45], разработанный Кентом Беком, рекомендует коллективную собственность на программу (но это требует дополнительных процедур типа парного программирования в целях защиты от анонимности).
      Мы хотим, чтобы вы гордились правом собственности. "Я это написал, и я стою за своей работой". Ваша подпись должна стать признанным знаком качества. Люди должны увидеть ваше имя в заголовке программы и рассчитывать на то, что она будет солидной, хорошо составленной, проверенной и документированной. Эта должна быть поистине профессиональная работа. Написанная настоящим профессионалом.
      Прагматиком-программистом.

Приложение А
Информационные ресурсы

      Авторы затронули в книге весьма широкий круг вопросов программирования, и этому есть объяснение: вопросы рассматривались с высоты птичьего полета. Но если бы им было уделено то внимание, которого они заслуживают, то объем книги стал бы больше на порядок.
      Книга начинается с утверждения, что программисты-прагматики должны постоянно учиться. В данном приложении приводится перечень источников информации, которые могут им в этом поспособствовать.
      В разделе "Профессиональные общества" приведены координаты IEEE (Institute of Electrical and Electronical Engineers – Институт инженеров по электротехнике и радиоэлектронике) и ACM (Association of Computing Machinery – Ассоциация по вычислительной технике). Мы рекомендуем программисту-прагматику вступить в ряды одного (или обоих) из этих обществ. Ниже в разделе "Собираем библиотеку" указаны периодические издания, книги и интернет-сайты, которые содержат высококачественную и ценную информацию (или просто-напросто забавны по своему содержанию).
      В книге содержится много ссылок на программные ресурсы, доступные через Интернет. В разделе «Интернет-ресурсы» приводятся их адреса (URL) с кратким описанием. Но в силу природы Интернета многие из этих адресов могут устареть к моменту выхода книги в свет. Для того чтобы найти более свежие ссылки, можно воспользоваться одной из поисковых систем или же посетить наш интернет-сайт: www.pragmaticprogrammer.com и просмотреть соответствующий раздел.
      И наконец, в приложении содержится библиографический список.

Профессиональные общества

      У программистов существует два профессиональных объединения мирового уровня. Association of Computing Machinery – ACM (Ассоциация по вычислительной технике) и Institute of Electrical and Electronical Engineers – IEEE (Компьютерное общество института инженеров по электротехнике и радиоэлектронике). Всем программистам рекомендуется вступить в одно (или оба) из этих обществ. Кроме того, разработчики, проживающие вне США, могут вступить в соответствующие национальные объединения (примером может служить British Computer Society – BCS – Британское компьютерное общество).
      Члены профессиональных обществ пользуются рядом преимуществ. Конференции и собрания дают возможность общения людям с общими интересами, а специальные секции и технические комитеты позволяют участвовать в выработке стандартов и рекомендаций, используемых во всем мире. Многое можно почерпнуть из их публикаций, в которых ведутся «высоколобые» дискуссии по практическим вопросам и «приземленные» разговоры по компьютерной теории.

Собираем библиотеку

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

Периодические издания

      Люди, подобные авторам книги, хранят старые журналы и периодику до тех пор, пока вес стопки не будет достаточен для превращения нижних экземпляров в алмаз. Вот некоторые периодические издания, рекомендуемые авторами.
      •  IEEE Computer.Рассылается по подписке членам Компьютерного общества Института инженеров по электротехнике и радиоэлектронике. Этот журнал сосредоточен на практических аспектах, но не чужд и теории. Некоторые номера посвящены конкретной тематике, другие же представляют собой просто сборники интересных статей. Говоря языком связистов, журнал обладает хорошим соотношением "сигнал-шум".
      •  IEEE Software.Не менее ценная публикация Компьютерного общества Института инженеров по электротехнике и радиоэлектронике, издаваемая раз в два месяца и нацеленная на программистов-практиков.
      •  Communications of the ACM.Основной журнал, получаемый всеми членами Ассоциации по вычислительной технике; на протяжении десятилетий является отраслевым стандартом и опубликовал больше основополагающих статей, чем любой другой источник.
      •  SIGPLAIM.Журнал выпускается секцией языков программирования, входящей в ассоциацию АСМ, распространяется среди членов АСМ. В нем часто публикуются спецификации языков программирования, наряду с тематическими статьями для всех, кто любит "копать вглубь".
      •  Dr. Dobbs Journal.Ежемесячный журнал, распространяемый по подписке и продающийся в киосках. Этот журнал непрост для восприятия, но его статьи охватывают как практические аспекты, так и чистую теорию.
      •  The Perl Journal.Поклонникам Perl стоит подписаться на этот журнал (www.tpj.com).
      •  Software Development Magazine.Ежемесячный журнал, посвященный общим вопросам управления проектами и разработки программного обеспечения.

Еженедельные профессиональные издания

      Существует несколько еженедельных газет для разработчиков и менеджеров. Эти газеты в основном представляют собой сборники фирменных пресс-релизов, перекроенных в статьи. Тем не менее, их содержание представляет ценность – оно позволяет быть в курсе событий, не отставать от объявлений о выходе новых продуктов и следить за возникновением и распадом отраслевых альянсов. Но от них не стоит ожидать наличия глубоко проработанных технических материалов.

Книги

      Книги по компьютерной тематике весьма дороги, но при тщательном выборе они становятся хорошим вложением денег. Вот некоторые из них, понравившиеся авторам:

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

      •  Object-Oriented Software Construction, второе издание.Эпическое произведение Бертрана Мейера, посвященное основам объектно-ориентированного программирования, общим объемом 1300 страниц [Меу97Ь].
      •  Design Patterns.Конструктивный шаблон описывает метод решения конкретного класса задач на более высоком уровне по сравнению с фразеологизмом на языке программирования. Эта неоклассическая книга [GHJV95], написанная "бандой четырех" (группа авторов Erich Gamma, Richard Helm, Ralph Johnson и John Vlissides. – Прим. пер.), содержит описание 23 базовых конструктивных шаблонов, включая Proxy, Visitor и Singleton.
      •  Analysis Patterns.Сокровищница высококлассных архитектурных шаблонов, выбранных из множества реальных проектов и переработанных в виде книги. Относительно быстрый способ перенимания опыта моделирования, полученного в течение многих лет [Fow96].

Команды и проекты

      •  The Mythical Man Month.Классическое произведение (не так давно переработанное) Фреда Брукса, о "подводных камнях", появляющихся в ходе организации команд разработчиков [Вго95].
      •  Dynamics of Software Development.Серия коротких очерков о разработке программного обеспечения в больших командах, сосредоточенных на динамике взаимодействия членов команды между собой, а также между самой командой и внешним миром [МсС95].
      •  Surviving Object-Oriented Projects: A Manager's Guide."Вести с переднего края", сообщенные Алистером Кокбэрном, иллюстрируют многие опасности и ловушки, подстерегающие вас при управлении объектно-ориентированным проектом, особенно если это ваш первый проект. Г-н Кокбэрн дает подсказки и методики, позволяющие читателю решать наиболее общие проблемы [Сос97Ь].

Среды программирования

      •  Unix.У.Р. Стивенс написал несколько прекрасных книг, включая "Advanced Programming in the Unix Environment" и "Unix Network Programming" [Ste92, Ste98, Ste99].
      •  Windows.Книга Маршалла Брэйна "Win32 System Services" [Bra95] является кратким справочником по низкоуровневым интерфейсам прикладных программ. Труд Чарльза Петцольда "Programming Windows" [Pet98] стал своего рода Библией для разработчиков графических сред пользователя Windows.
      •  С++.Получив проект на языке С++, нужно бежать (а не идти) в книжный магазин и хватать книгу Скотта Мейера под названием "Effective С++" и к ней, возможно, книгу "More Effective С++" [Меу97а, Меу96]. При построении систем существенных размеров может понадобиться книга Джона Лакоса "Large-Scale С++ Software Design" [Lak96]. В поисках более сложных методик стоит обратиться к труду Джима Коплина под названием "Advanced С++ Programming Styles and Idioms" [Сор92].
      Кроме того, книги из серии Nutshell издательства O'Reilly ( ) дают оперативное и всестороннее освещение разнообразных тем и языков, таких как perl, уасс, sendmail, внутренней организации Windows и регулярных выражений.

Интернет

      Найти в Интернете нужную информацию трудно. Вот несколько ссылок, которые проверяются авторами как минимум раз в неделю.
      •  Slashdot.Под заголовком "News for nerds. Stuff that matters" (Новости для дебилов. Материал со значением) скрывается один из крупнейших сайтов сообщества Linux. Помимо регулярно обновляемых новостей из мира Linux сайт предлагает информацию по модным технологиям и проблемам, которые волнуют разработчиков.
      
      •  Cetus Links.Тысячи ссылок на тему объектно-ориентированного программирования.
      
      •  WikiWikiWeb.Центральная база данных шаблонов и обсуждение шаблонов (в Портленде, США). Не являясь особо выдающимся ресурсом, данный сайт представляет собой интересный эксперимент по коллективному редактированию идей.
      

Интернет-ресурсы

      Приведенные ниже ссылки на ресурсы, доступные в Интернете, были действительны во время работы над книгой, но (Сеть есть Сеть!) к моменту выхода ее в свет могут сильно устареть. В этом случае можно попробовать общий поиск по именам файлов или же зайти на сайт Pragmatic Programmer (www.pragmaticprogrammer.com) и проверить имеющиеся на нем ссылки.

Текстовые редокторы

      Emacs и vi – не единственные межплатформенные редакторы, но они распространяются бесплатно и находят широкое применение. Пролистав любой специализированный журнал (например Dr. Dobbs), можно найти ряд коммерческих альтернатив вышеуказанным редакторам.

Редактор Emacs

      Редакторы Emacs и XEmacs имеют версии как для платформы Unix, так и для Windows.
      [URL 1] Редактор Emacs
      
      Новейший «крупнокалиберный» редактор, обладающий всеми возможностями своих предшественников. Кривая обучения Emacs почти вертикальна, но вас ждет щедрое вознаграждение по мере овладения тонкостями работы. Редактор также содержит отличную программу чтения почты и новостей, адресную книгу, календарь и дневник, приключенческую игру…
      [URL 2] Редактор XEmacs
      
      Отпочковавшись от классического редактора Emacs несколько лет назад, XEmacs отличается более корректными внутренними командами и более изящным интерфейсом.

Редактор vi

      Существует как минимум 15 различных клонов редактора vi. Редактор vim переносится на большинство платформ и является хорошим выбором при работе в различных программных средах.
      [URL 3]The Vim Editor
      
      Цитата из документации: "Редактор vi содержит большое количество усовершенствований: многоуровневая отмена команд, многооконный интерфейс с буферами, выделение синтаксиса, редактирование в командной строке, дополнение имен файлов, экранная справка, визуальный выбор объектов, и т. д."
      [URL 4] Редактор elvis
      
      Усовершенствованный клон редактора vi с поддержкой X.
      [URL 5] Emacs Viper Mode
      
      Viper представляет собой набор макрокоманд, которые придают редактору Emacs внешнее сходство с редактором vi. Некоторые могут поставить под сомнение разумность шага, заключающегося в расширении самого большого редактора в мире с целью эмулирования другого редактора, характерной чертой которого является компактность. Другие, напротив, считают, что он объединяет в себе лучшее из двух цивилизаций – Emacs и vi.

Компиляторы, языки программирования и средства разработки

      [URL 6] The GNU C/C++ Compiler =» www.fsf.org/software/gcc/gcc.html
      Один из наиболее популярных в мире компиляторов С и С++. Он также работает с Objective-C. (Во время работы над книгой проект egcs, который вначале отпочковался от gcc. находился в процессе воссоединения с последним.)
      [URL 7] The Java Language from Sun
      java.sun.com
      Домашняя страница Java, включающая загружаемые SDK, документацию, средства обучения, новости и т. д.
      [URL 8] Perl Language Home Page
      
      Эти ресурсы, относящиеся к языку Perl, предоставляются фирмой O'Reilly.
      [URL 9] The Python Language
      
      Объектно-ориентированный язык программирования Python является интерпретируемым и интерактивным, обладает хитроумным синтаксисом и большим количеством верных поклонников.
      [URL 10) SmallEiffel
      SmallEiffel.loria.fr
      Компилятор GNU Eiffel работает на любом компьютере, снабженном компилятором ANSI С и средой выполнения Posix.
      [URL 11] ISE Eiffel
      
      Фирме Interactive Software Engineering принадлежит авторство программы Design by Contract; она реализует на коммерческой основе компилятор Eiffel и сопутствующие инструментальные средства.
      [URL 12] Sather
      
      Sather является экспериментальным языком программирования, ведущим свое происхождение от Eiffel. Его задача – поддерживать функции высшего порядка и итерационной абстракции, а также Common Lisp, CLU или Scheme и быть таким же эффективным, как С, С++ или Fortran.
      [URL 13] Visual Works
      www.objectshare.com
      Основной ресурс для среды VisualWorks Smalltalk. Некоммерческие версии для Windows и Linux распространяются бесплатно.
      [URL 14] The Squeak Language Environment
      www.squeak.cs.uiuc.edu
      Squeak представляет собой бесплатно распространяемую и переносимую реализацию – Sma!ltalk-80, написанную на Squeak; может генерировать код на С для повышения производительности.
      [URL 15] The ТОМ Programming Language
      
      Весьма динамичный язык, ведущий свое начало от Objective-С.
      [URL 16] The Beowulf Project
      
      Проект посвящен построению высокопроизводительных компьютеров из сетевых кластеров, состоящих из недорогих Linux-блоков.
      [URL 17] iContract – Design by Contract Tool For Java
      
      Данное инструментальное средство использует формализм предварительных условий, выходных условий и инвариантов, реализовано в виде препроцессора для Java. Использует наследование, реализует кванторы существования и многое другое.
      [URL 18] Nana – Logging and Assertions for С and С++
      
      Улучшенная поддержка проверки утверждений и регистрации в С и С++. Nana также обеспечивает некоторую поддержку для программы Design by Contract.
      [URL 19] DDD – Data Display Debugger
      www cs.tu-bs.de/softech/ddd
      Бесплатный графический интерфейс конечного пользователя для отладчиков Unix.
      [URL 20] John Brant's Refactoring Browser
      
      Популярный браузер, применяемый при реорганизации (язык Smalltalk).
      [URL 21] DOC++ Documentation Generator
       
      DOC++ представляет собой систему документирования для C/C+ + и Java, которая генерирует выходные файлы в форматах LATEX и HTML для просмотра документации непосредственно из заголовка С++ или файлов класса Java.
      [URL 22] xUnit – Unit Testing Framework
       
      Представляет простую, но мощную концепцию; модуль тестирования структур xUnit является полной платформой для тестирования программного обеспечения, написанного на нескольких языках.
      [URL 23] The Tel Language
       
      Язык Tel (Tool Command Language) является языком сценариев, разработанным для упрощения процедуры встраивания в приложение.
      [URL 24] Expect – Automate Interaction with Programs
      
      Расширение expect, построенное на языке Tel [URL 23], позволяет создавать сценарии взаимодействия с программами. Помимо помощи при составлении командных файлов, которые, например, осуществляют вызов файлов с удаленных серверов или расширяют возможности оболочки, expect приносит пользу и при регрессионном тестировании. Графическая версия expectk позволяет оборачивать приложения пользователя с графическим интерфейсом в оконный интерфейс.
      [URL 25] Т Spaces
      
      Цитата с web-страницы: "Т Spaces представляет собой сетевой коммуникационный буфер с функциональными возможностями баз данных. Он осуществляет связь между приложениями и устройствами в сети с гетерогенными компьютерами и операционными системами. Т Spaces обеспечивает следующие средства: коллективной связи, работы с базами данных, переноса файлов (основанные на URL) и оповещения о событиях".
      [URL 26] javaCC – Java Compiler-Compiler
      
      Генератор грамматического разбора, связанный с языком Java.
      [URL 27] The bison Parser Generator
      
      Генератор bison получает на входе описание грамматики и генерирует из него исходный текст соответствующей программы грамматического разбора на языке С.
      [URL 28] SWIG – Simplified Wrapper and Interface Generator
      
      SWIG представляет собой инструментальное средство разработки, стыкующее между собой программы, написанные на языках С, С++ и Objective-C, с языками высокого уровня, такими как Perl, Python, Tcl/Tk, а также Java, Eiffel и Guile.
      [URL 29] The Object Management Group, Inc.
      
      Фирма Object Management Group, Inc. является «распорядителем» различных спецификаций для разработки распределенных объектно-базирующихся систем. К числу работ этой фирмы относятся CORBA (обобщенная архитектура брокера объектных запросов) и ПОР (протокол передачи сообщений между сетевыми объектами через Интернет). Сочетание этих спецификаций дает возможность объектам связываться друг с другом, даже если они написаны на разных языках и выполняются на компьютерах различных типов.

Инструментальные средство UNIX, работающие в среде DOS

      [URL 30] The UWIN Development Tools
      
      Фирма Global Technologies, Inc., Old Bridge, NJ
      Пакет UWIN предоставляет библиотеки динамической компоновки (DLL) Windows, которые эмулируют большую часть библиотечного интерфейса уровня Unix С. Используя данный интерфейс, фирма Global Technologies, Inc. перенесла большое число инструментальных средств из командной строки Unix в систему Windows. См. также [URL 31].
      [URL 31] The Cygnus Cygwin Tools
      
      Фирма Cygnus Solutions, Sunnyvale, CA
      Пакет Cygnus также эмулирует интерфейс библиотеки Unix С и предоставляет большой набор инструментальных средств, работающих в режиме командной строки Unix, при работе в операционной системе Windows.
      [URL 32] Perl Power Tools
      
      Данный проект посвящен повторной реализации классического набора команд Unix на языке Perl, что дает возможность их использования при работе со всеми платформами, поддерживающими Perl (их довольно много).
      Средствауправленияисходнымтекстомпрограмм
      [URL 33] RCS – Revision Control System
      
      Система управления исходным текстом программ GNU для Unix и Windows NT.
      [URL 34] CVS – Concurrent Version System
      www.cyclic.com
      Система управления исходным текстом программ для Unix и Windows NT, распространяемая бесплатно. Расширяет возможности Revision Control System, поддерживая модель «клиент-сервер» и параллельный доступ к файлам.
      [URL 35] Aegis Transaction-Based Configuration Management
      
      Инструментальное средство управления версиями (ориентированное на процесс), которое применяет к ним существующие стандарты проекта (например, проверку прохождения тестов для возвращаемых программных кодов).
      [URL 36] ClearCase
      www.rational.com
      Управление версиями программы, рабочей областью и полной сборкой программы, управление процессом.
      [URL 37] MKS Source Integrity
      
      Управление версиями и конфигурацией. Некоторые версии включают средства, позволяющие удаленным пользователям-разработчикам одновременно работать над одними и теми же файлами.
      [URL 38] PVCS Configuration Management
      
      Система управления исходным текстом программ, очень популярная при работе в Windows.
      [URL 39] Visual SourceSafe
      
      Система управления версиями, интегрируемая с инструментами визуальной разработки фирмы Microsoft.
      [URL 40] Perforce
      www.perforce.com
      Менеджер конфигурирования программного обеспечения "клиент-сервер".
      Прочие инструментальные средства
      [URL 41] Winzip – Archive Utility for Windows
      
      Фирма Nico Mak Computing, Inc., Mansfield, CT
      Утилита архивирования файлов, работающая в среде Windows. Поддерживает форматы zip и tar.
      [URL 42] The Z Shell
      
      Оболочка, предназначенная для интерактивной работы и содержащая мощный язык сценариев. В оболочку zsh было включено много полезных средств из оболочек bash, ksh и tcsh и добавлен ряд оригинальных элементов.
      [URL 43] A Free SMB Client for Unix Systems
      www.samba.anu.edu.au/pub/samba/
      Дает возможность совместного использования файлов и других ресурсов из операционных систем Unix и Windows. Samba включает в себя:
      • Сервер SMB, предоставляющий средства для работы с файлами и для печати (схожие со средствами, предоставляемыми Windows NT и LAN Manager) клиентам SMB, в роли которых могут выступать Windows 95, Warp Server, smbfs и др.
      • Сервер имен Netbios, обеспечивающий, кроме всего прочего, поддержку функций браузера. По желанию пользователя Samba может быть главным браузером в локальной сети.
      • Клиент SMB (схожий с клиентом ftp), позволяющий получать доступ к ресурсам ПК(дискам и принтерам) из Unix, Netware и других операционных систем.

Статьи и публикации

      [URL 44] The comp.object FAQ
      www.cyberdyne-object-sys.com/oofaq2
      Солидный, четко организованный список часто задаваемых вопросов по группе новостей comp.object.
      [URL 45] extreme Programming
      www.Xprogramming.com
      Цитата с интернет-сайта: "При создании команды, способной быстро создать исключительно надежное, эффективное, четко структурированное программное обеспечение, в ХР используется весьма легковесное сочетание методик. Многие из методик ХР создавались и опробовались в части проекта СЗ фирмы «Крайслер», представляющего собой весьма успешную систему расчета заработной платы, написанную на языке Smalltalk".
      [URL 46] Alistair Cockburn's Home Page
      
      Стоит посмотреть раздел "Structuring Use Cases with Goals" и так называемые шаблоны сценариев использования.
      [URL 47] Martin Fowler's Home Page
      
      Мартин Фаулер является автором книги "Analysis Patterns" и соавтором книг "UML Distilled" и "Refactoring: Improvingthe Design of Existing Code". На домашней странице автора обсуждаются его книги и работа с UML.
      [URL 48] Robert С. Martin's Home Page
      
      Неплохое собрание статей ознакомительного плана по объектно-ориентированным методам, включая анализ зависимости и метрики.
      [URL 49] Aspect-Oriented Programming
      
      Описывается методика придания функциональности программному коду с позиций ортогональности и описательности.
      [URL 50] JavaSpaces Specifications
      
      Linda-подобная система для Java, поддерживающая распределенное сохранение состояния объекта и распределенные алгоритмы.
      [URL 51] Netscape Source Code
      www.mozilla.org
      Исходный текст браузера Netscape.
      [URL 52] The Jargon File
      
      Eric S. Raymond
      Определения дня многих общих (и не очень общих) терминов, применяемых в компьютерной индустрии, сдобренные хорошей дозой соответствующего фольклора.
      [URL 53] Eric S. Raymond's Papers
      
      Статьи Эрика Раймона "The Cathedral and the Bazaar" и "HomesteadingNoosphere", в которых описаны психосоциальные основы и смысл движения Open Source.
      [URL 54] The К Desktop Environment
      
      Цитата с web-страницы: "KDE представляет собой мощную графическую настольную среду для рабочих станций Unix. KDE является интернет-проектом, открытым в полном смысле этого слова".
      [URL 55] The GNU Image Manipulation Program
      
      Gimp является бесплатной программой по созданию, композиции и ретушированию изображений.
      [URL 56] The Demeter Project
      
      Исследовательский проект, призванный упростить поддержку и развитие программного обеспечения с помощью адаптивного программирования.

Другие источники

      [URL 57] The GNU Project
      
      Фонд Free Software Foundation, Boston, MA
      Фонд "Free Software Foundation" – это некоммерческая благотворительная организация, осуществляющая сбор средств на проект GNU. Целью проекта GNU является создание завершенной, бесплатной UNIX-подобной операционной системы. Многие из попутно разработанных инструментальных средств уже стали отраслевыми стандартами.
      [URL 58] Web Server Information
      
      Ссылки на домашние страницы, находящиеся более чем на 50 web-серверах. Часть из них является коммерческими продуктами, другие же распространяются бесплатно.

Библиография

      [Bak72] F.T. Baker. Chief programmer team management of production programming. IBM Systems Journal, 1 1(1 ):56—73, 1972.
      [BBM96] V. Basili, L. Brand, and W.L. Melo. A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 22(10):751-761, October 1996.
      [Ber96] Albert J. Bernstein. Dinosaur Brains: Dealing with All Those Impossible People at Work. Ballantine Books, New York, NY, 1996.
      [Bra95] Marshall Brain. Win32 System Services. Prentice Hall, Englewood Cliffs, NJ, 1995.
      [Bro95] Frederick P. Brooks, Jr.. The Mythical Man Month: Essays on Software Engineering. Addison -Wesley, Reading, MA, anniversary edition, 1995.
      [CG90] N. Carriero and D. Gelenter. How to Write Parallel Programs: A First Course. MIT Press, Cambridge, MA, 1990.
      [CN91] Brad J. Cox and Andrex J. Novobilski. Object-Oriented Programming, An Evolutionary Approach. Addison-Wesley, Reading, MA, 1991.
      [Coc97a] Alistair Cockburn. Goals and use cases. Journal of Object Oriented Programming, 9(7):35-40, September 1997.
      [Coc97b] Alistair Cockburn. Surviving Object-Oriented Projects: A Manager's Guide. Addison Wesley Longman, Reading, MA, 1997.

  • Страницы:
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22