Pracuję nad małą biblioteką, która zapewnia implementacje podstawowych, dobrze znanych metryk ciągu. Głównie dla mojej własnej edukacji. Rozwój odbywa się za każdym razem, gdy mam trochę wolnego czasu.
Z tego powodu zautomatyzowałem większość procesów, dzięki czemu mogę wypuszczać wersję tak często, jak pracuję nad nią bez większego wysiłku. Jednak utrzymanie dokumentu Java jest nadal dużym obciążeniem, ponieważ zawiera przykłady.
Gdy API ewoluuje, muszę ręcznie sprawdzać każdy przykład w kółko. Czy jest na to lepszy sposób?
Zastanawiałem się nad przeniesieniem dokumentacji i przykładów do osobnego projektu (np. Samouczek Calipera ), aby można je było ponownie przefakturować i skompilować wraz ze zwykłym kodem. To jednak odsuwa dokumentację od klasy, której dotyczy.
Więc tak. Chciałbym mieć ciasto i też je zjeść. :RE
* <h2>Tokenization</h2>
*
* Tokenization cuts up a string into tokens e.g.
* <code>chilperic ii son of childeric ii</code> is tokenized into
* <code>[chilperic, ii, son, of,
* childeric, ii]</code>. Tokenization can also be done repeatedly by tokenizing
* the individual tokens e.g.
* <code>[ch,hi,il,il,lp,pe,er,ri,ic, ii, so,on, of, ch,hi,il,ld,de,er,ri,ic, ii]</code>
* <p>
*
* <pre>
* <code>
* {@code
* return new StringMetricBuilder()
* .with(new SimonWhite<String>())
* .tokenize(new Whitespace())
* .tokenize(new QGram(2))
* .build();
* }
* </code>
* </pre>
*
* <p>
Jeśli powyższe to zbyt abstrakcyjne. To jest próbka dokumentacji. Obecnie dodaję konstruktory statyczne zgodnie z zaleceniami Effective Java, np. Tokenizers.createQGram(2)
Podczas amortyzacji metody konstruktora. Za każdym razem, gdy robię coś takiego, musiałbym zaktualizować powyższy przykładowy kod i sprawdzić, czy nadal działa.
źródło