Программист - эссэист 60
Ключевыми особенностями LP являются организация исходников в маленькие секции и производство книжного качества распечатки программы. LP это прекрасный метод документирования внутренностей софтпродуктов особенно приложений сложно устроенных. LP пригодно для программ любого размера. LP поощряет полноценное документирование и включение деталей обычно опускаемых в исходниках как описание алгоритмов, решений дизайна, стратегии реализации.
LP увеличивает качество продукта требуя от программеров исследования и обьяснения их кода. Архитектура и дизайн разьясняются на концептуальном уровне. Диграммы моделирования включаются (UML). Длинные процедуры реструктурируются сворачиваемыми порциями кода в секции. Инновационные идеи, решающее техзнание, алгоритмические решения и необычные конструкции кода ясно документированы.
LP написаны для прочтения другими программерами. Понимание программы есть ключевая деятельность при исправлении и улучшении программ в рамках сопровождения. Высококачественная документация облегчает изменение программ уменьшая концептуальные ошибки и результирующие дефекты. Ясность LP позволяет команде повторно использовать код и давать конструктивные отзывы при пересмотре кода.
Организация исходников в маленькие секци. Стиль LP комбинирует код и документацию в один файл-исходник. LP использует секции позволяя разработчикам описывать блоки кода подходящим способом. Фунции раскладываются на несколько секций. Секции предьявляются в порядке лучшем для понимания программы. Секции кода выигрывают у многословных комментариев предоставляя возможность записать толковые параграфы с устранением мешанины в исходниках.
Производство листингов книжного качества. LP языки (CWEB) используют комбинации типографский языков (TeX) и языков программирования (C++). Типографский язык позволяет все доступные в книгах полезняшки вроде картинок, диаграмм, схем, таблиц, формул, ссылок, оглавлений, индексов. Типографская обработка LP выдает листинги с элегантно отформатированной документацией и исходным кодом. Листинги генерируемые в PDF формате включают гипертекстовые ссылки.
Помните основы. Есть много факторов вовлеченных в разработку превосходного софта. LP это только простая техника для использования вместе с всеми другими принятыми в софтинжиниринге практиками. Вот несколько практик связанных с документированием программ:
- * Прорабатывайте структуры, процессы и "выход" (см. Luke Holman).
- * Создавайте требования и описания дизайна (см. IEEE standards).
- * Практикуйте ОО дизайн.
- * Выбирайте имена классов, имена функций и имена переменный с умом.
- * Избегайте дублирования кода созданием общих функций.
- * Перерабатывайте код трудный для понимания.
- * Разрабатывайте малые классы и маленькие функции когда это возможно.
- * Стремитесь к простоте и целеустремленности по мере сил.
- * Организуйте большие файлы исходников используя редакторы с поддержкой оконтуривания (Leo).
- * Комментируйте исходники эффективно через хидеры и инлайн каменты.
- * Документируйте исходники используя стандарты API документирования (doxygen).
- * Выполняйте пост и пре проверки используя assertions.
- * Предоставляйте формальные или неформальные доказательства корректности кода.
- * Проводите практику обзоров (софта, документации, кода).
- * Внедряйте автоматизированное тестирование модулей как форму документации.
- * Проверяйте метрики кода (кол-во строк, сложность,etc).
- * Выполняйте статический анализ на общие ошибки кодирования.
Некоторые из моих любимых инструментов - CWEB и Leo для оконтуривания исходников, doxygen для API документирования, CCCC и LocMetrics для измерений кода, PC Lint для статического анализа ошибок, и cppunit для автоматизированного тестирования модулей.
..
literateprogramming.com
Daniel Mall. "Recommendation for Literate Programming"
А я вот думаю - где бы найти пару сотен тыщ уев, чтобы прикупить фазенду на Майорке?
Комментариев нет:
Отправить комментарий