2008-09-30 15 views
5

Czy ktoś użył narzędzia do pisania piśmiennictwa noweb w dużym projekcie Java, gdzie kilka plików kodu źródłowego musi być generowanych w różnych podkatalogach? Jak sobie z tym poradziłeś z nowymi? Czy są tam jakieś zasoby i/lub najlepsze praktyki?Używanie nowychb w dużym projekcie Java

Odpowiedz

4

Programowanie literackie działa najlepiej, jeśli wygenerowany kod pośredni może wskazywać na oryginalny plik źródłowy, aby umożliwić debugowanie i analizowanie błędów kompilatora. Zwykle oznacza to wsparcie dla procesora, którego Java nie obsługuje.

Dodatkowo programowanie literackie naprawdę nie jest konieczne dla Javy, ponieważ pierwotna potrzeba ścisłego porządku sekwencyjnego - co skłoniło Knutha do napisania narzędzia do umieszczania fragmentów w odpowiedniej kolejności - nie jest obecne. Końcowa korzyść z pisania programów, czyli możliwość pisania prozy o kodzie, jest również dostępna jako Javadoc, która pozwala ci umieścić wszystko jako komentarze.

Dla mnie nie ma żadnej korzyści w pisaniu programowania dla Javy i tylko kłopotach (wystarczy wyobrazić sobie wsparcie IDE).

Jakieś szczególne powody, dla których rozważasz to?

+0

Dla downwoterów: Ja faktycznie stworzyłem prawdziwe programy z nowb. –

+0

Należy jednak zauważyć, że noweb można ulepszyć tak, aby wykorzystywał ten sam mechanizm, jakiego używa kompilator JSP (opisany w JSR-45 - https://jcp.org/en/jsr/detail?id=45), który dałby taki sam zachowanie jak preprocesor daje w C. Również procesor adnotacji dodany w Javie 6 może również pomóc. –

5

Noweb będzie zrzucać pliki względem bieżącego katalogu roboczego lub w określonej przez ciebie ścieżce bezwzględnej. Po prostu nie używaj * na końcu nazwy pliku (aby uniknąć wstawiania # dyrektyw preprocesora). Polecam użycie% def przy pomocy @, aby pokazać, gdzie definiujesz i używasz nazw.

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

temat Noweb pozwala uporządkować i (rzeczywista wygrana) ponowne wykorzystanie fragmentów kodu, które nie sądzę javac zrozumie.

Zgadzam się, że skoro większość ludzi oczekuje, że użyjesz javadoc, prawdopodobnie pływasz pod strumieniem, aby użyć nowychb.

Powiązane problemy