Использование noweb в большом проекте Java

Кто-нибудь использовал грамотный инструмент программирования noweb в большом проекте Java, где несколько исходных файлы кода должны создаваться в разных подкаталогах? Как вы справились с этим с noeb? Существуют ли какие-либо ресурсы и/или лучшие практики?


person lindelof    schedule 30.09.2008    source источник


Ответы (2)


Noweb выгрузит файлы относительно текущего рабочего каталога или по указанному вами абсолютному пути. Просто не используйте * в конце имени вашего файла (чтобы не вставлять директивы препроцессора #). Я бы рекомендовал использовать %def с @, чтобы показать, где вы определяете и используете имена.

<</path/to/file.java>>=
  reallyImportantVariable += 1;
@ %def reallyImportantVariable

noweb позволяет вам переупорядочивать и (настоящая победа) повторно использовать фрагменты кода, которые я не думаю, что javac поймет.

Я согласен с тем, что, поскольку большинство людей ожидают, что вы будете использовать javadoc, вы, вероятно, плывете против течения, чтобы использовать noeb.

person Jason Catena    schedule 21.04.2009

Грамотное программирование работает лучше всего, если сгенерированный промежуточный код может указывать на исходный исходный файл, что позволяет выполнять отладку и анализировать ошибки компилятора. Обычно это означает поддержку препроцессора, которую не поддерживает Java.

Кроме того, грамотное программирование на самом деле не нужно для Java, поскольку исходная потребность в строгом последовательном порядке — что и побудило Кнута написать инструмент для объединения фрагментов в соответствующей последовательности — отсутствует. Последнее преимущество грамотного программирования, а именно возможность писать прозу о коде, также доступно в виде Javadoc, что позволяет вам помещать все в виде комментариев.

Для меня в грамотном программировании на Java нет никакой пользы, а одни неприятности (только представьте себе получение поддержки IDE).

Любая конкретная причина, по которой вы это рассматриваете?

person Thorbjørn Ravn Andersen    schedule 11.01.2009
comment
Для противников: я создал настоящие программы с помощью noweb. - person Thorbjørn Ravn Andersen; 25.01.2012
comment
Обратите внимание, однако, что noweb можно улучшить, чтобы использовать тот же механизм, что и JSP-компилятор (описанный в JSR-45 - jcp.org/en/jsr/detail?id=45), что даст то же поведение, что и препроцессор в C. Также может помочь процессор аннотаций, добавленный в Java 6. - person Thorbjørn Ravn Andersen; 12.04.2017