Ответ 1
Раньше я писал много грамотных программ.
Что вы пишете как комментарии Haddock и что вы пишете в грамотной части?
Документация внешнего API включена в комментарии Haddock. Все остальное идет в грамотную часть. "Все остальное" может включать:
- Внутренние инварианты структур данных
- Почему вы так поступаете?
- Что такое код кода
- Почему этот дизайн был выбран, какие другие проекты были опробованы и найдены желающими
Как вы масштабируете грамотное программирование для нескольких файлов?
Точно так же вы масштабируете большой документ LaTeX для нескольких файлов: один файл на модуль, а затем гигантский файл, который \include
их всех.
Может ли кто-нибудь указать мне пример, где грамотное программирование используется в пакете с несколькими модулями?
Это не Haskell, но Quick C-- compiler - это большая функциональная программа, написанная с использованием грамотного программирования.
Каков ваш опыт использования грамотного программирования в больших пакетах?
Грамотное программирование очень хорошо работает для документирования сложных, сложных или сложных модулей. Для большинства простых модулей достаточно документации внешнего API (например, Haddock). И ни одна грамотная программа действительно не даст вам большой картины дизайна, который содержит более десятка модулей. Для этого вам нужны другие инструменты и методы.
Какой вкус (уценка, латекс,...) грамотного Haskell предпочтительнее?
Если вы делаете такие крупные инвестиции, я бы определенно пошел с LaTeX только из-за математической способности и большей мощности инструмента.
Почему вы программируете в грамотном Haskell или простой ваниль Haskell? Вы программируете в обоих стилях, и если да, то почему?
Мои коды Haskell почти всегда имеют простую ваниль по двум причинам:
-
Я работаю со старшими людьми, у которых больше опыта в Haskell, и они отказались от грамотного Haskell. Только самые старые модули в их системе имеют шанс быть .lhs.
-
Для Haskell грамотное программирование является излишним. Одним из больших преимуществ программы грамотного программирования является то, что вы освобождаетесь от любых ограничений, которые могут быть установлены компилятором или языком, в том порядке, в котором отображается ваш код. Но у Haskell почти нет таких ограничений: нет определения перед использованием, и для типичного определения функции у меня есть выбор
let
-связывающих илиwhere
-связывающих вспомогательных имен (или обоих). Грамотное программирование никогда не было просто фантастическими комментариями, а с "грамотным" Haskell, что обо всем, что вы получаете. Это не стоит беспокоить.
Вы предпочитаете стиль блока (\ begin {code}) или Bird-style ( > )? Почему?
Я предпочитаю стиль блока:
-
Он примерно совместим со всеми другими программами грамотного программирования на планете. (Птицы являются уникальными для Haskell.)
-
Мой редактор лучше справляется с блочным стилем.