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