Что вы думаете об этом виде преобразования кода в файлы?
~/proj/MyClass.ext
~/proj/MyClass:constructors.ext
~/proj/MyClass:properties.ext
~/proj/MyClass:method-one.ext
~/proj/MyClass:method-two:int.ext
~/proj/MyClass:method-two:string.ext
На языке, который более функционально ориентирован:
~/proj/definitions.ext
~/proj/function-one.ext
~/proj/function-two:int.ext
~/proj/function-two:string.ext
...
Дело в том, что когда мы работаем над нашим проектом, мы не видим это множество файлов.
У нас может быть какой-нибудь демон-процесс, который синхронизирует зеркальный MyClass.ext
файл с этой группой файлов, или наш любимый редактор кода видит их все, но показывает их как их логическое объединение, или этот тип преобразования происходит только как набор хуков pre + post-commit.
Теперь, поскольку нас не будет интересовать реализация этой идеи, если она не будет хорошей, давайте не будем беспокоиться о деталях ее реализации (как); давайте предположим, что у нас есть идеальная реализация, которая позволила бы этой идее работать для нас.
Я хотел бы, чтобы мы вместе нашли хороший список плюсов и минусов этого подхода как на высоком уровне, так и на более низких уровнях вашей озабоченности.
Когда мы закончим мозговой штурм и увидим голоса каждого ответа, мы легко увидим, хорошая это идея или нет. Поэтому, пожалуйста, пишите один за / против за ответ.
EDIT
Из всех ответов, особенно Скотта, я пришел к выводу, что единственный реальный способ, которым моя идея может быть полезна, - это возможность автоматически вносить список измененных пар class:method
в подробную часть каждого коммита. to-vcs message. Этого гораздо проще достичь с помощью небольших скриптов, запускаемых перед фиксацией, чтобы соответствующим образом обновить шаблон сообщения.