Я работаю в отделе, где люди создают (или выбирают) алгоритмы, которые они реализуют в программном обеспечении небольшого размера, чтобы оптимизировать некоторые связанные с полем задачи. Большинство моих коллег знают больше о математическом моделировании и решателях, чем о программировании.
У меня лично несколько лет опыта разработки шаблонов классов C ++. Я довольно хорошо знаю, как разрабатывать шаблоны классов, которые представляют алгоритмы, но я не могу разработать каждый программный продукт, который пишут мои коллеги (не хватает времени, недостаточно интереса).
Поэтому моя цель - попытаться научить моих коллег превращать функциональные возможности и алгоритмы, о которых они думают, в шаблоны классов. Аргументы шаблона могут быть типами структуры или классами политики. Я чувствую, что мне нужно придумать набор правил «делай / не делай», но я не могу их изобрести.
Для меня цель хорошего дизайна шаблона класса - максимизировать читаемость.
У вас лично есть правила для разработки хороших шаблонов классов?
Есть ли правильный процесс от описания функциональности до дизайна шаблона класса?
EDIT
Да, сложно заставить людей программировать с использованием шаблонов. Я работаю над этим и разрабатываю структуру, чтобы сделать создание шаблонов как можно более графическим, и рекомендации (и ежедневную помощь), чтобы сделать программирование шаблонов как можно более простым. Но здесь речь идет только о проектировании, которое я считаю совершенно другим вопросом.