Нашел недавно замечательную статью о том, как писать математические тексты. Автор (Пауль Халмош, Paul Richard Halmos) предлагает писать статьи (а также книги и любые другие математические тексты) применяя спиральный подход. А именно, после написания очередной главы переписывать все предыдущие (ну или хотя-бы просматривать их и корректировать).

Мне этот подход очень напомнил о рефакторинге, как мы, программисты, его понимаем по отношению к програмному коду. Ощущение дежа-вю усилилось после того, как Халмош дал прямой совет не повторять доказательства, отличающиеся в нюансах, а стараться выделить общую лемму и использовать ее в обоих (трех, четырех и т.д.) доказательствах. Очень похоже на один из известных методов рефакторинга, не так ли?

Все правильно, когда объем текста растет (и тут неважно книга это или программный код) нужно время от времени изменять давно написанные части, чтобы связать их с тем, что написано только что. А теперь представьте себе книгу, которая написана по водопадному сценарию.

Самое интересное, что статья была написана в 1970 году! Задолго, до появления всем известной книги. Я не удивлюсь, если этими секретами (подходами, методами) пользовались писатели задолго до Халмоша. Но почему только в 1999 выходит книга, посвященная применению давно (как оказывается) известных истин к написанию программного кода? Я поражен до глубины души.

А как вы думаете, нет ли чего-нибудь, что Фаулер и Ко проглядели, составляя свой список рефакторингов? Я говорю о приёмах, используемых профессиональными писателями, учеными.

Advertisements