Как писать программы
Как обычно, создание программы, весь процесс, делится на несколько
этапов.
Первый из них - это проблема. Проблема не в самом прямом смысле этого
слова, просто иногда возникает необходимость произвести какие-то
действия, а для этого нет инструмента или существующий не
удовлетворяет по каким-то причинам. На этом этапе рождается ответ на
вопрос "Зачем?"
Дальше уже обмозговывается решение проблемы - второй этап.
Выделяются требования к программе, продумывается интерфейс и средства.
Примерно. Получаем ответ на вопрос "Что?"
Третий этап - самый большой (по времени). Здесь продумывается (иногда
даже расписывается) алгоритм, вчерновую набрасываются участки кода
программы (они редко в конечном итоге выглядят так же, как
первоначально задумывались). Непосредственно пишется программа.
Заполняется форма (накладываются все нужные объекты), потом уже
пишется исполняемый код. Еще в процессе написания не будет лишним
проводить проверочные прогоны программы, чтобы освободить себя от
написания в корне неверного кода, то есть желательно писать
программу так, чтобы она всегда была работоспособной (по крайней
мере стараться) - писать пустые процедуры и функции, участки кода,
которые позже заполнятся. Иными словами - писать программу блоками, а
не целиком, и проверять ее по мере готовности каждого из блоков.
Например, если программа работает с каким-то файлом, и вы написали
процедуру открытия файла, нелишне будет проверить, открывает ли
программа нужный файл до того, как начнете писать процедуру
обработки файла, а не после. Тем более еще на этапе набора можно найти
какие-нибудь ошибки, как мелкие, так и крупные. Здесь получаем ответ на
последний вопрос "Как?"
Тестирование - очень важный этап, которым многие пренебрегают, и
совершенно напрасно. Программа написана и работоспособна, казалось бы,
зачем еще и тестировать ее? Я раньше тоже не особо занимал себя
тестированием, за что и поплатился несколько раз, когда программа
вдруг ни с того, ни с сего "умирала" в самый неподходящий момент.
Лучший вариант - отдать продукт постороннему человеку, не
участвовавшему в процессе программирования, который объективно потом
расскажет вам о сильных и слабых сторонах программы, ее удобстве или
наоборот, ткнет пальцем в мелкие баги или покажет случаи отказа
программы. При самостоятельном тестировании важно проверить
программу на защиту "от дурака" - хорошо и грамотно написанная
программа должна работать всегда, чем бы ее ни загружали, или выдавать
пользователю сообщение о невозможности выполнения заложенной задачи (об
этом должен позаботиться программист, так как предупреждения ОС
далеко не так изящны). Простейший пример: пользователь вводит в поле
ввода чисел буквы, и программа разражается праведным гневом за столь
гнусный подвох. Выход: заложить еще на этапе приема информации
процедуру отсеивания "лишних" символов или перед выполнением
операций над числом проверить, является ли введенная информация
числом и, в ином случае, корректно предложить пользователю попытаться
еще раз ввести данные. Вариантов множество. Поэтому десятком
контрольных прогонов вряд ли удастся отделаться.
Эти рекомендации получены мною не из книг и учебников, а составлены
самостоятельно за время практического программирования. У меня нет
педагогического образования, поэтому не стоит считать написанное выше
правилами, скорее рекомендациями, не полными, но вполне рабочими.
Я пишу программу на Delphi и Turbo Pascal, но приведенные выше
рекомендации являются общими для всех языков программирования.