2008-09-26 4 views
2

У меня есть несколько модулей, содержащих функции, классы и шаблоны, которые хранятся в каталоге (hah!) 'Reuse'. Я знаю контент достаточно хорошо, поэтому найти определенный класс или бит кода не займет слишком много времени, но он медленно растет в размерах, и мне нужен разумный метод для их хранения для удобного поиска &.Многоразовый код/​​класс Репозитории

Как мне это сделать?


Смежный вопрос можно найти здесь: full text search for source code

+0

Возможный дубликат [Как индексировать и делать доступный многоразовый код?] (Http://stackoverflow.com/questions/237946/how-do-index-and-make-available-reusable-code) – kapa 2012-07-05 16:22:33

+0

@ bažmegakapa: согласен - я даже не осознавал этого, проголосовал за закрытие. – slashmais 2012-07-05 16:37:23

ответ

0

This вопрос охватывает почти одно и то же основание & Я закрою этот вопрос в его пользу.

3
  • Группа источники по области использования (сети, безопасность, обработка текста и т.д.); лучше всего в каталогах для удобства просмотра.
  • Метки функции, добавив ключевые слова в исходную документацию. Используйте соответствующую систему разметки комментариев (например, javadoc) и создайте какие-то индексируемые документы.
  • Поиск с использованием полнотекстового поиска (grep -r, google desktop) в ваших источниках.
+0

Я уже использую форму группировки с префиксами к именам файлов и более или менее ищу их, как вы предлагаете. Я не индексирую их (пока), но идея разметки кажется правдоподобной: своего рода гиперсвязанный документ, который позволяет мне открывать/просматривать модули? – slashmais 2008-09-26 16:09:15

+0

Это действительно зависит от языка, на котором вы пишете. Для создания CHM-файлов есть Sandcastle для C#, javadoc для java создает кучу HTML. На большинстве языков такие системы документов. – 2008-09-26 16:56:01

0

Вы можете разделить все классы в каталогах.

На каком языке? Потому что .Net у вас может быть librairy, как DLL, разделенная на пространство имен.

0
  1. Сгруппировать функции/классы/шаблоны в модули/каталоги по функциям. Представьте, что вы будете выпускать их как библиотеки с открытым исходным кодом; подумайте над тем, как вы хотите, чтобы кодекс другого человека был организован. В конце концов, это будет чужой код: вы, год или два назад.
  2. Используйте систему документации. Doxygen создаст удобный для вас HTML-браузер.
1

Обычно я группирую файлы в зависимости от общей цели файлов.

Ex: Повторное использование \ Database Повторное использование \ Graphics Многократное \ Math Многократное \ Etc ...

Вы можете затем Подгруппа ваши группы

Повторное использование \ Graphics \ 2D Многократное \ Graphics \ 3D

НТН

1

в зависимости от системы, но в тот момент количество многоразовые может достигает определенного порога Склоняюсь чтобы попытаться преобразовать логические фрагменты из него в «настоящие» библиотеки в том же смысле, что и вы, используя третьи стороны (с документацией и т. д.), и поместите их в соответствующий путь библиотеки, чтобы они стали действительно многоразовыми.

Если вы не против отдавать их под какую-либо лицензию OSS, вы можете даже дойти до CPAN/PyPI/PEAR-эквивалента любой среды, с которой работаете. Это добавляет еще большую возможность повторного использования.

Я полагаю, что важная часть заключается в том, что вы связываете свой код с реальными библиотеками. Затем часть поиска должна быть намного проще, поскольку в основном автоматическая.

0

Когда-то спорили об этом некоторое время назад. Стандартная папка вашего кода хороша для удобства чтения и организации, но когда вы хотите просто захватить вещи, один из способов - как-то использовать тегирование (например, добавив теги к именам файлов или другим метаданным). Теги работают хорошо в папках, потому что вы можете быстро вычислить конкретные или общие вещи, тогда как с папками вам нужно просканировать деревья, чтобы получить конкретные вещи.

Метки: O (n). Папки: O (n^2)

Возможно. : P

0

Папка в соответствии с языком (подразделяется на функцию), с тегами в каталоге VCS'd, с документацией Doxygen/Perldoc/* Pod/* -. У вас будет легко greppable архив повторно используемых модулей/документации, мгновенно переносимых в вашу работу./

Смежные вопросы