7.1.2. Важность ведения документации при создании программ
7.1.2. Важность ведения документации при создании программ
Во многих источниках сообщается, что для программистов важно подробно документировать машинный код, который они пишут. Для этого обычно приводятся две причины: во-первых, чтобы помочь понять программу при ее чтении (Knuth, 1992, с. 99), и, во-вторых, чтобы упростить адаптацию программы к новым условиям (Weinberg, 1971, с. 164). Обычно в программе рядом со строками кода можно встретить комментарии (чаще однострочные). Многие программы бывают почти полностью лишены комментариев.
Как отметил Кнут (Knuth), написание комментария до или во время создания кода может помочь процессу написания, улучшить структуру алгоритмов, снизить число ошибок и повторных написаний программы, необходимых для завершения проекта, а также дает другие преимущества, которые обычно упоминаются по поводу комментариев. По всей видимости, правильность выводов Кнута имеет основания с точки зрения когнетики.
Когда мы как опытные программисты разрабатываем алгоритмы и пишем код, этот процесс отчасти происходит на бессознательном уровне. Как уже было отмечено, эта ментальная область может быть подвержена противоречиям. Предполагаю, что причина некоторых программных ошибок заключается в том, что когнитивное бессознательное переживает противоречие между тем, что мы хотим сделать, и тем, что должен сделать компьютер в соответствии с нашим кодом.
Однако для того, чтобы ясно выразить свои намерения на естественном языке, нам следует сделать процесс мышления сознательным, и именно в когнитивном сознательном эти противоречия быстро становятся очевидными. Даже если эта гипотеза неправильна, написание комментариев вынуждает нас тщательнее обдумывать решаемую задачу для разных условий и с разных точек зрения.
К сожалению, среды программирования были разработаны таким образом, что вносить комментарии в создаваемые программы не просто. Например, комментарии во многих языках программирования ограничиваются одной строкой, а если многострочные комментарии допустимы, то в них часто не используется перенос текста или другие возможности, которые должны быть в простейших текстовых редакторах (исключения составляют UCSD Pascal и Oberon). Чтобы в языке Visual Basic, появившемся в 90-х годах, написать комментарий размером с абзац, вам приходится вручную делать перенос текста. По легендам, программисты не особенно грамотно умеют писать, поэтому проверка орфографии должна быть включена в каждую среду программирования, однако в программных средах эта служба почти никогда не встречается. В существующей версии Mathematica, которая является в общем превосходной программой для работы с математическими выражениями, комментарии были убраны из программ и помещены в специальное окно, что является совершенно неправильным шагом. Только некоторые системы (как, например, созданная Кнутом программа WEB (1992)) были разработаны таким образом, чтобы способствовать ведению документации. Другой, менее сложный, но достаточно эффективный метод, был использован автором этой книги (Lammers, 1986, с. 226).
Для сохранения работоспособности программы любым вносимым в нее изменениям должны предшествовать изменения в сопровождающих ее комментариях. Аналогично тому, как нет необходимости разделять разные формы использования компьютера в виде приложений, программирование не должно как-то особенно отличаться от других видов работы, которые пользователь выполняет с помощью компьютера. Опыт показывает, что большинство пользователей компьютеров с неохотой относятся даже к попыткам программирования. Наверное, некоторые преимущества программирования были бы более понятны, если бы процесс программирования был настолько интегрирован со средой, что отдельные программные структуры могли бы использоваться без необходимости учить весь язык или среду программирования. Было бы также полезно иметь возможность комбинировать функции из разных языков, однако это не должно быть смесью, подобной PL/I, но, скорее, должен использоваться метод слияния, предложенный в этой книге для приложений. Вероятно, весьма ценным был бы вариант, в котором комбинировались бы структуры LISP для обработки списков, структуры APL (или разновидности этого языка J) для обработки массивов, мощные методы обработки строк из языка SNOBOL, механизмы наследования и объекты из Smalltalk и т. д.
Разработчики языков программирования и эксперты по интерфейсам слишком редко работают вместе, и хотя когнетика позволяет усовершенствовать компьютерные интерфейсы, следует в максимальной степени использовать также сочетание современных методов разработки языков программирования с нашими знаниями о человеческих фактоpax. Этот вопрос, до сих пор сохраняющий свою актуальность, был рассмотрен в одной из самых ранних книг Вейнберга в области разработки интерфейсов человек-машина «Психология компьютерного программирования» (Weinberg, «Psychology of Computer Programming», опубликована в 1971 г.), которая намного опередила свое время и до сих пор остается для нас откровением.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Глава 96. Сравнение кораблестроительных программ Британии и Германии 1909-1911 гг.
Глава 96. Сравнение кораблестроительных программ Британии и Германии 1909-1911 гг. Британские и германские программы на 1909, 1910 и 1911 годы включали следующие броненосцы:1909Британия «Колоссус», «Геркулес», «Орион»,«Конкерор», «Монарх», «Тендерер», линейные крейсера «Лайон» и
Введение Важность основ
Введение Важность основ Один человек, один компьютер. Слоган компании Apple Computer Представьте себе, что вы поднялись на борт сияющего шикарной отделкой авиалайнера, оснащенного просторными, комфортабельными кожаными креслами с целым набором встроенной аудио- и
3.3. Запуск программ и окна
3.3. Запуск программ и окна Основными средствами при работе за компьютером, являются мышь и клавиатура. Также они носят наименования, как «Устройства ввода», потому что благодаря им, вы как бы «вводите» информацию в компьютер. Клавиатура, как понятно из ее кнопок,
5.4. Установка программ, без ведома пользователя
5.4. Установка программ, без ведома пользователя Сейчас, очень распространен метод рекламы, при котором, при установке различных программ, устанавливаются еще всякие разные сторонние приложения. Конечно, бывают такие, типа Яндекс Браузера, которые, ничего плохого
5.13. Необходимый набор программ, для полноценной работы на компьютере
5.13. Необходимый набор программ, для полноценной работы на компьютере Существует ряд программ, которые просто необходимы для полноценной работы всей системы Windows, точнее, они необходимы вам, чтобы у вас все работало и отображалось как надо. Программы эти в основном
5.21. Советы по настройке программ
5.21. Советы по настройке программ Огромное множество программ, существуют для персональных компьютеров, но не все из них приспособлены для каждого конкретного случая, а случаи эти могут быть самыми разными: разный интернет, разные комплектующие ПК, разные версии
6.5. Авто запуск программ, которые используются не часто
6.5. Авто запуск программ, которые используются не часто Очень часто, причиной того, что компьютер медленно запускается, а затем и притормаживает в процессе работы, служит то, что ненужные программы, а точнее, те, которые используются не так часто, как другие, постоянно
6.7. Использование portable версий программ
6.7. Использование portable версий программ Если вы думаете, что единственный способ, запустить программу на вашем компьютере, это сначала ее установить, а только потом запустить, то вы не все знаете о компьютерных технологиях. Существуют, так называемые portable версии
4.2.1. Важность закона Мура
4.2.1. Важность закона Мура Закон Мура долгое время связывали только с электронной промышленностью (чипы, коммуникационные системы, компьютеры), однако позднее оказалось, что им же определяется развитие и производство лекарственных препаратов, биоинформационных
5. ФОРМЫ РЕМОНТНОЙ ДОКУМЕНТАЦИИ
5. ФОРМЫ РЕМОНТНОЙ ДОКУМЕНТАЦИИ 5.1. Ремонтная документация настоящего Справочника максимально унифицирована с документацией отраслевых «Систем технического обслуживания и ремонта энергетического оборудования». Предусматривается ведение следующих форм ремонтной
8.1.5 Тестирование документации на практичность
8.1.5 Тестирование документации на практичность 8.1.5.1 Общие положения В плане документирования должен быть указан требуемый уровень тестирования документации на практичность.Минимально должно быть проведено одно тестирование на практичность документации, используемой
С.5 Проект содержания документации
С.5 Проект содержания документации Содержание включает в себя следующее:a) введение — концепция ABC и ее связь с системой (пять страниц);b) обзор — общие функции системы ABC (три страницы);c) установка ленты (пять страниц);d) снятие ленты (пять страниц);e) проблемы — руководство
5. ФОРМЫ РЕМОНТНОЙ ДОКУМЕНТАЦИИ
5. ФОРМЫ РЕМОНТНОЙ ДОКУМЕНТАЦИИ 5.1. Ремонтная документация настоящего Справочника максимально унифицирована с документацией отраслевых «Систем технического обслуживания и ремонта промышленного оборудования». Предусматривается ведение следующих форм ремонтной
Вопрос 3. Защита программ и ценных баз данных от несанкционированного копирования и распространения
Вопрос 3. Защита программ и ценных баз данных от несанкционированного копирования и распространения По оценкам экспертов в первом десятилетии XXI века только в США общая стоимость нелегально тиражируемых программных средств ежегодно составляла около 3 миллиардов
Важность метрологии
Важность метрологии Учебники метрологии обычно начинаются с указания на ее важность. Как и вообще многие учебники, да и не только учебники… Объясняя важность метрологии, упоминают улетевшие не туда космические корабли и водителей, неправомочно наказанных за вождение в
Раскин Джефф
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉