vvp писал(а):
Меня очень заинтересовал текст Драконографа. Я выше говорил о "может быть четвертой книге" ядра. Так вот то о чем вы говорите скорее к этой может быть четвертой. Но тут у меня есть некоторые непонятки. Есть большой пласт проблем которые я условно для себя называю инженерией программирования. Но что этот термин несет и нужна ли отдельная книга неясно, может быть эти вопросы должны сквозной темой проходить через весь курс, может быть это будут вопросы за пределами ядра. В общем не знаю. Во всяком случае вы подтолкнули мой мыслительный процесс в этом направлении.
Программная инженерия - важнейшая весчь...
К сожалению, мне не удалось пока найти книжку, в которой бы программирование для начинающих было бы подано с позиций программной инженерии.
А схема подачи относительно проста:
1. Цель. Зачем писать программу? Или, может быть, просто формулировка задачи.
2. Требования к будущей программе - этого никто не пишет для простых программ. А НАДО. Мы в лабах пытаемся формулировать явным образом.
3. Проект - если прога объемом 100 строк и более. Либо она разбивается на функции. Опять в совершенно явной формуклировке и с объяснениями, почему именно такие функции.
4. Соответственно программа - разработка.
5. Тестирование!!! Это - один из важнейших вопросов, с которым начинающие ну НИКАК не знакомятся... А ведь это - важнейший навык программиста! Я вот сейчас первачкам пытаюсь внедрить самостоятельность в разработке тестов. А то они в школе привыкают, что учитель проверит. А должны - САМИ!
6. Рефакторинг. Процесс улучшения кода без изменения функциональности. И тут мечтаю, чтобы были описана простая систему управления версиями и простейшие приемы работы с ней. Этого же тоже нигде практически не пишут. А надо. Здесь же - приемы и навыки профилирования. Хотя бы простейшие приемы измерения времени выполнения.
Конечно, схема - это схема. Но она, по крайней мере, дает ориентир, чего надо