Работая над кодом, я сталкиваюсь со многими из тех же проблем, что и мои товарищи по команде, и я написал несколько полезных функций и классов, и они тоже. Если будет хорошее общение, я услышу о какой-то замечательной вещи, которую кто-то собрал, и через шесть месяцев, когда мне это понадобится, я могу вспомнить это и вызвать эту функцию, сэкономив себе время. Если я этого не помню или никогда не знал об этом, я, вероятно, заново изобрету колесо.
Есть ли особая практика документирования подобных вещей? Как вы делаете их легко найти?
Если у вашей команды нет такой документации, как вы узнаете, существует ли ваше колесо?
РЕДАКТИРОВАТЬ:
Все ответы, кроме одного, до сих пор касаются идеальной ситуации, поэтому позвольте мне обобщить эти решения: документация и связь; вики, регулярные встречи и т. д. Все это замечательные вещи, но они полагаются на то, что у программистов есть время (и навыки), чтобы написать документацию и посетить собрания, делать записи и помнить все.
Самый популярный ответ (Калеб) до сих пор - единственный, который мог бы использовать программист, который неспособен к документации и встречам, и делает только одно: программирование. Программирование - это то, что делает программист, и да, великий программист может писать документацию, модульные тесты и т. Д., Но давайте посмотрим правде в глаза - большинство из нас предпочитает программирование документированию. Его решение заключается в том, что программист распознает повторно используемый код и извлекает его в свой собственный класс или репозиторий или что-то еще, и благодаря тому, что он изолирован, он становится доступным для поиска и облегчает кривую обучения его использованию ... и это было достигнуто путем программирования.
В некотором смысле я вижу это так: я только что написал три функции, и мне приходит в голову, что о них должен знать кто-то другой. Я мог бы задокументировать их, записать их, объявить их на собрании и т. Д. - что я могу сделать, но это не моя сила - или ... Я могу выделить их в класс, назвать его хорошо, заставить их функционировать как черный ящик и вставьте его туда, куда идут другие файлы классов. Тогда короткое электронное письмо, объявляющее, что это легко. Другие разработчики могут сканировать код и понимать его лучше, чем отдельные функции, используемые в коде, который они не полностью понимают - этот контекст удаляется.
Мне это нравится, потому что это означает, что наличие набора файлов с именами классов с хорошо названными методами является хорошим решением, которое достигается хорошим программированием. Это не требует встреч, и это смягчает необходимость в подробной документации.
Есть ли еще какие-либо идеи в этом духе ... для изолированных и ограниченных по времени разработчиков?