5.10 Заключение

5.10 Заключение

Когда перед вами встает задача написать новую программу, возникает естественное желание сделать это на своем любимом языке программирования. Для нас таким языком чаще всего оказывается shell, хотя синтаксис его несколько необычен. Shell — удивительный язык программирования. Безусловно, это язык высокого уровня: операторами в нем являются целые программы. Поскольку он диалоговый, программы могут создаваться в диалоговом режиме и доводиться до рабочего состояния небольшими шагами. Далее, если они предназначены не только для личного пользования, их можно "вылизывать" и повышать надежность в расчете на широкий круг пользователей. В тех редких случаях, когда shell-программа оказывается неэффективной, часть ее или вся она может быть переписана на языке Си, но на основе уже проверенного алгоритма с работающей реализацией. (В следующей главе мы несколько раз пройдем этот путь.)

Такой подход вообще характерен для программного мира UNIX — начинать работу не с нуля, а на базе того, что сделали другие, идти от простого к сложному, использовать программные средства для проверки новых идей.

В настоящей главе мы привели много примеров, которые легко реализовать с помощью языка shell и существующих программ. Иногда достаточно лишь переопределить аргументы, как это было сделано в случае с командой cal. Иногда полезны циклы языка shell по последовательности имен файлов или наборам команд (см., например, watchfor или checkmail). Для более сложных вариантов все равно требуется меньше усилий, чем при программировании на Си. Так, наша версия команды news на языке shell заменяет программу на Си в 350 (!) строк.

Однако дело не только в том, чтобы иметь возможность программировать на командном языке. Недостаточно иметь и множество программ. Проблема состоит в том, что все компоненты должны работать согласованно и придерживаться соглашений о представлении и передаче данных. Каждый компонент предназначен для решения одной задачи, причем наилучшим образом. Язык shell позволяет всякий раз, когда перед вами встает новая задача, связать различные программы воедино простым и эффективным способом. Именно интеграция — причина высокой продуктивности программного мира UNIX.

Историческая и библиографическая справка

Идеей использования команд put и get мы обязаны системе управления исходными текстами (Source Code Control System — SCCS), созданной M. Рочкиндом (The Source Code Control System. — IEEE Trans, on Software Engineering, 1975). Эта система более мощная и гибкая, чем наши простые программы; она предназначена для поддержания процесса создания больших программ. Однако основу SCCS составляет все та же программа diff.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

15.5. Заключение

Из книги автора

15.5. Заключение В этой главе мы показали, как с помощью библиотеки REXML можно разбирать XML-документы, представленные в виде дерева DOM или потока. Познакомились мы и с интерфейсом REXML к языку XPath.Был продемонстрирован разбор информации из новостных каналов, представленных в


16.8. Заключение

Из книги автора

16.8. Заключение В этой главе мы рассмотрели некоторые подходы к тестированию (преимущественно, к автономному тестированию компонентов). Мы познакомились с библиотекой Test::Unit и комплектом инструментов ZenTest.Мы бросили беглый взгляд на отладчик Ruby, а также показали, как с


17.4. Заключение

Из книги автора

17.4. Заключение В этой главе мы изучили основы документирования проектов с помощью инструмента RDoc, а также познакомились с программой setup.rb и системой RubyGems — двумя наиболее популярными способами создания дистрибутивных пакетов.Наконец, мы бегло рассмотрели сайт RubyForge и


18.3. Заключение

Из книги автора

18.3. Заключение Эта глава представляет собой введение в сетевое программирование на низком уровне. В частности, приведены простые примеры серверов и клиентов. Мы видели, как написать клиент для существующего сервера, созданного не нами.Мы рассмотрели также протоколы


19.8. Заключение

Из книги автора

19.8. Заключение В этой главе мы рассмотрели низкоуровневые детали программирования CGI-приложений для Web. Мы видели, как в этом помогают такие инструменты, как модуль mod-ruby. Существует еще немало инструментов, помимо упомянутых в этой книге, например ruby-web, Amrita, Tofu и Cerise. Как


20.5. Заключение

Из книги автора

20.5. Заключение Эта глава содержит введение в распределенный Ruby. Мы познакомились с тем, как сервис запускается и взаимодействует с клиентами, а также рассмотрели вопросы безопасности.Мы выяснили, что система Rinda может выступать в роли простого распределенного хранилища


21.7. Заключение

Из книги автора

21.7. Заключение В этой главе мы рассмотрели ряд инструментов, облегчающих жизнь программисту на Ruby. К числу общеупотребительных относятся интерактивная оболочка для Ruby irb, инсталлятор RubyGems и утилита чтения документации ri. Мы также дали обзор модулей для поддержки Ruby,


22.8. Заключение

Из книги автора

22.8. Заключение Вы дошли до конца этого объемистого тома. В противовес моим ожиданиям, читатели говорили, что прочли первое издание от корки до корки, а некоторые даже выучили Ruby по этой книге (хотя я уделил очень мало времени изложению основ).Мне не важно, читали вы книгу


Заключение

Из книги автора

Заключение Хочется верить, что эта книга поможет читателям избежать попадания в мошеннические сети, хитроумно расставленные по всему Интернету. Теперь вы знаете, где и чего следует опасаться, как проверить заманчивое предложение о сотрудничестве, и почему ни в коем


Заключение

Из книги автора

Заключение С помощью данной книги и интерактивной обучающей системы вы научились работать с наиболее распространенными программами популярного пакета приложений Microsoft Office 2007.Теперь вы знаете, как создавать и редактировать текстовые документы в Word 2007; формировать и


Заключение

Из книги автора

Заключение В книге, конечно, освещены не все возможности и нюансы работы с программой Excel. Любое практическое руководство предназначено для того, чтобы дать представление об основных (базовых) приемах работы. Опыт и мастерство работы с большинством программ


ЗАКЛЮЧЕНИЕ

Из книги автора

ЗАКЛЮЧЕНИЕ      Мы прошли долгий путь от начала этого руководства. Теперь вы уже познакомились с большинством основных свойств языка Си. (Главное из того что, мы опустили,- операции с разрядами и расширения UNIX 7 - рассматриваются кратко в приложении Б). Вы узнали и


Заключение

Из книги автора

Заключение Вот и подошло к концу ваше знакомство с Photoshop. Почему знакомство? Потому что только с опытом вы сможете приобрести профессиональные навыки работы в программе.Этот видеосамоучитель – первая ступенька в освоении графического пакета Adobe Photoshop CS4. Когда вы


Заключение

Из книги автора

Заключение Формат книги не позволил рассказать еще многое из того, что хотелось бы рассказать. Например, о том, что eVB не имеет компонента для создания контекстных меню, но при помощи вызовов функций CE API его все же можно создать в вашем приложении. Ничего не было рассказано


2.4 Заключение

Из книги автора

2.4 Заключение Если рассматривать создание и развитие информационной системы (ИС) как исторический процесс, то оценка СУБД как базиса для создания или развития ИС может проводиться по трем направлениям: Каковы перспективы ее использования в будущем?Допускает ли СУБД


Заключение

Из книги автора

Заключение Хочется отметить, что рассмотренный нами пример реализации делегатов может служить иллюстрацией как сильных, так и слабых сторон языка C++. Слабая сторона C++ - это его сложность. Особенно хорошо она заметна при реализации библиотек на базе шаблонов. Их код