На эту тему вспомнился случай. Пришлось изучать один старый алгоритм классификации данных, который был реализован, судя по коду, биологом. Человек не зная того, сам заново открыл логистическую регрессию.
Я вот до сих пор не уверен насколько корректно использовать слово etalon. Более правильное pattern, standard. но pattern уже занято, а использовать standard мне очень не удобно. Ethanol хорошая альтернатива =).
Про статическую типизацию не понял, все равно аргументы все строковые, а значит lexical_cast будет плеваться динамически. функция as статически типизирована
Привязать переменные можно: в примере так обрабатывается task_type. В таком подходе я вижу следующую проблему, так как я описываю все возможные интерфейсы в одном месте, то прямо там нужно инициализировать все переменные. Если групп больше двух, то получается месиво из переменных, большая часть из которых остается не инициализированной.
Я воспринимаю аргументы командной строки как внешний интерфейс: переименовывание/удаление/добавление аргументов означает изменение контракта на интерфейс со всеми вытекающими.
Насчёт, как это сделать DRY и можно ли это — надо подумать.
Я полностью согласен, что это очень полезная опция и и возможность создания скрытых опции неявно следует из следующего кода. Никто ведь не обязан передавать все группы в --help. Например, так:
desc.add(train_desc).add(recognize_desc);//.add(score_desc);
std::cout << desc << std::endl;
Я долго думал, что включить: custom parsers, config files. Решил остановится на том, что качует из проекта в проект и только это. Библиотека не очень большая, и самое тяжёлая задача убедить себя. что её использовать проще, чем написать очередной парсер самому.
Мне было проще было читать код, чем доки, поэтому не очень хорошего о них мнения.
Есть слишком много вещей, которые хочется взять и переписать с нуля, но времени на всё не хватит и значит с чем-то приходётся мириться. Если говорить о Qt, то мне гараздо больше не хватает вменяемых chart-ов.
Каким образом можно прикрутить свою библиографическую библиотеку (.bib, jabref)?
Насчёт перевода в облако научных документов стоит упомянуть: R markdown.
А так удачи, полезное дело.
Про статическую типизацию не понял, все равно аргументы все строковые, а значит lexical_cast будет плеваться динамически. функция as статически типизирована
Привязать переменные можно: в примере так обрабатывается task_type. В таком подходе я вижу следующую проблему, так как я описываю все возможные интерфейсы в одном месте, то прямо там нужно инициализировать все переменные. Если групп больше двух, то получается месиво из переменных, большая часть из которых остается не инициализированной.
Я воспринимаю аргументы командной строки как внешний интерфейс: переименовывание/удаление/добавление аргументов означает изменение контракта на интерфейс со всеми вытекающими.
Насчёт, как это сделать DRY и можно ли это — надо подумать.
desc.add(train_desc).add(recognize_desc);//.add(score_desc); std::cout << desc << std::endl;
Мне было проще было читать код, чем доки, поэтому не очень хорошего о них мнения.