Версия для печати
Советы программисту по книге Д. Ван Тассела
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=528Александр Малыгин
дата публикации 14-02-2002 18:22Советы программисту по книге Д. Ван Тассела Данный материал представляет собой выписку из одной известной книги по методологии программирования. Несмотря на то, что она была написана в 1978 году (в переводе вышла в 1985), ее ценность бесспорна и по сей день. Это классика. Следование советам из этой книги облегчает жизнь программисту.
Здесь приведены названия и эпиграфы всех глав книги и основные мысли, перечисленные в краткой форме в конце каждой из них. К авторскому тексту ничего не добавлено и не изменено.
СТИЛЬ, РАЗРАБОТКА, ЭФФЕКТИВНОСТЬ, ОТЛАДКА И ИСПЫТАНИЕ ПРОГРАММ СОВЕТЫ ПРОГРАММИСТУ (выдержка из книги)Денни Ван Тассел.
1. Стиль программирования
Цель программирования - не создание программы, а получение результатов вычисления.
Кодирование, увы, само по себе ничего не стоит - существенны результаты!
- Помните: программы читаются людьми.
- Делайте комментариев больше, чем это кажется необходимым.
- Используйте вводные комментарии.
- Делайте оглавление в больших программах.
- Комментарии должны содержать дополнительную информацию, а не перефразировать программу.
- Располагайте комментарии таким образом, чтобы это не делало программу менее наглядной.
- Неправильные комментарии хуже, чем их отсутствие.
- Делайте пробелы для улучшения читаемости программы.
- Используйте имена с подходящей мнемоникой.
- При наименовании файлов используйте определенный префикс или суффикс.
- Одного оператора в строке достаточно.
- Упорядочивайте списки по алфавиту.
- Скобки обходятся дешевле, чем ошибки.
- Для выявления структуры программы используйте отступы.
- Для выявления структуры данных используйте отступы.
2. Проектирование программ.
Большие программы подобны спагетти на тарелке: тянешь с одной стороны - что-то движется с другой.
Хорошее правило - ожидать всегда наихудшего; это относится и к программам.
Я не программирую и наполовину своих возможностей.
- Стремитесь к простоте.
- Добивайтесь точности при определении задачи.
- Выбирайте алгоритм задачи самым тщательным образом.
- Выбирайте представление данных, соответствующее задаче.
- Используйте в качестве параметров переменные, а не константы.
- Создавайте универсальные программы.
- Не перепрограммируйте функцию квадратного корня.
- Устанавливайте цели проекта заблаговременно и точно.
- Сначала напишите программу на естественном языке.
- Разрабатывайте тестовые данные заранее.
- Прежде, чем начать программировать, разработайте проект.
- Исключайте ошибки с самого начала.
- Короткие модули предпочтительнее длинных.
- Стремитесь к минмиальному использованию операторов GOTO.
- Прежде, чем программировать, запишите программу в псевдокодах.
- Планируйте возможные изменения в программе.
- Начинайте документирование на стадии разработки программы.
- Не бойтесь начинать программирование сначала.
3. Эффективность программ.
Отчего у нас никогда нет времени сделать что-либо хорошо, но всегда находится время на переделку.
Высокая эффективность программ снижает расходы по эксплуатации и делает возможным то, что нельзя сделать, если программы неэффективны.
- Если программа неправильна, не имеет значения, какова ее эффективность.
- Определяйте требования к эффективности программы на стадии проектирования.
- Удобочитаемость программы обычно более важна, чем эффективность.
- Используйте оптимизирующий компилятор.
- Профилируйте ваши программы.
- Инициируйте переменные во время компилирования.
- Избегайте смешанных типов данных.
- Оптимизируйте сначала внутренние циклы.
- Используйте для индексации наиболее предпочтительный тип данных.
- Группируйте записи в эффективные блоки для ввода-вывода.
- Используйте загрузочные модули.
4. Отладка программ.
...Возмездье
Рукой бесстрастной чашу с нашим ядом
Подносит нам же...
Шекспир. МакбетОдно из затруднений, связанных со скрытыми дефектами программ, заключается в том, что вероятность их проявления возрастает со временем и с расширением масштабов использования программы.
Программа, свободная от ошибок, есть абстрактное теоретическое понятие.
- Применяйте отладочный компилятор.
- Первым делом проверяйте программу за столом.
- Выполняйте эхо-проверку вводимых данных.
- Вводите средства отладки как можно раньше.
- Контролируйте правдоподобность вводимых данных.
- Используйте доступные для вас средства отладки.
- Делайте программу правильной с самого начала.
5. Тестирование (испытание) программ.
Тестирование призвано указывать на наличие, а не на отсутствие ошибок.
Дейкстра.О тестировании необходимо думать на протяжении всего периода разработки программы.
- Обходитесь минимальным количеством контрольных примеров.
- Учитывая, что исчерпывающее тестирование невозможно, испытывайте программу разумно.
- Начинайте тестирование как можно раньше.
- Прежде всего проводите ручную проверку.
- Старайтесь проверять правильность принципов построения системы на ее простом варианте.
- Старайтесь применять тестирование по методу сверху вниз.
- В каждом следующем тесте должен использоваться класс данных, отличный от предыдущего.
- Испытывайте программу в нормальных, экстремальных и исключительных условиях.
- Подготавливайте тестовые данные для проверки каждой ветви алгоритма.
- Повторяйте тестирование после каждого случая внесения изменений в программу.
Александр Малыгин,
Специально для Королевства Delphi