Tak najbardziej zdecydowanie ALE:
- Problemem będzie zgnilizna linków. Idealnie wygeneruj link dynamicznie ze znanego dokumentu docelowego, ale uzyskaj prefiks z jakiejś formy konfiguracji. Jeśli serwer się zmieni, możesz zachować starszy kod, aktualizując ten element konfiguracji. Możesz także udostępnić dokument lokalnie, zmieniając tę konfigurację prefiksu.
- Wersjonowanie : W tym samym duchu, jeśli możesz, włącz wersjonowanie do linku w pewnej pojemności, tak aby link zawsze wskazywał poprawną wersję dokumentacji.
- Udostępnij dokument jako edytowalny Coś w rodzaju strony typu wiki dla twojej dokumentacji, w której możesz dynamicznie poprawiać błędy, idealnie również pozwalając użytkownikom na komentowanie bezpośrednio na stronie. dzięki temu użytkownicy będą mogli łatwiej uczestniczyć i znaleźć to, czego potrzebują, a otrzymasz złote informacje, aby utrzymać dokument w dobrym stanie, ale upewnij się, że regularnie go monitorujesz, a przede wszystkim aktywnie uczestniczysz .
- W wygenerowanych szablonach system kompilacji generuje podstawowy szablon dokumentacji bezpośrednio z adnotacji w kodzie. Uprość to, ale zapewni to, że każdy link zawsze wskazuje na prawidłową dokumentację. Jeśli korzystasz z wiki, upewnij się, że możesz łatwo przesuwać te szablony i upewnij się, że możesz promować stronę z dokumentacją w taki sam sposób, jak robisz to dla swojego kodu (masz witrynę deweloperską inną niż strona producenta i promowanie kodu do prod będzie wykonaj wstawki w witrynie prod automatycznie).
Jeśli tworzysz w Javie lub .NET, dokument może być zawarty w pliku jar lub DLL, a zmieniając prefiks, kod może pobrać go lokalnie.
Jeśli wybierzesz podejście wiki, gorąco polecam DokuWiki ze względu na jego prostotę i fakt, że jest on oparty na płaskich plikach tekstowych, co czyni go bardzo przyjaznym do automatycznego wstrzykiwania z systemu kompilacji. To powiedziawszy, nie wiem wystarczająco dużo o twoim środowisku lub klientach, aby naprawdę wiedzieć, czy to będzie dobrze pasujące YMMV.
Niektóre z najbardziej udanych narzędzi, które stworzyłem, przyjęły podobne podejście, w którym komunikat o błędzie był skierowany do faktycznego użytkownika, który najprawdopodobniej wykonałby zadanie. Oznaczało to, że musiałem zrobić wiele wyjątków, łapiąc i owijając, aby upewnić się, że błąd jest na odpowiednim poziomie abstrakcji. Upewniłem się również, że każdy komunikat o błędzie będzie zawierał najbardziej prawdopodobne źródła błędów i wskazuje na potencjalne rozwiązania „Czy zapomniałeś ustawić wartość konfiguracji xxxx?”, „Upewnij się, że xxx i yyy nie powodują konfliktu, nadając im różne nazwy” itp. Gdzie XXX i tak dalej zostanie wygenerowany z kontekstu, w którym wystąpił błąd.
To podejście było nieco prostsze, ale także bardziej ograniczone. Miał jednak wadę, że dokumentacja będzie zawsze obecna, gdy zajdzie taka potrzeba, brak możliwości zepsucia łącza.
Twoje podejście jest następną ewolucją. Znacznie bardziej skomplikowany, ale ma również znacznie więcej potencjalnych zysków. Będzie to jednak kosztowne, ale jeśli zrobione dobrze, łatwo się zwróci.