Там нет права или неправильно подхода к этому, есть только вкус, что такое простой способ для вас, чтобы иметь дело с проектом вы владеете и требованиями, не принадлежащий проекту.
Иногда руководящие принципы применяются в отношении какого-либо проекта, к которому вы вносите свой вклад, поэтому у вас нет выбора. Ради вопроса, давайте предположим, что вы работаете над своим собственным проектом.
Давайте пройдемся по каждому из ваших заявлений, и давайте, если ваш выбор дизайна является лучшим или не имеет недостатков, и т.д.
Я пришел к выводу, что разделение одной функции для каждого файла лучше, чем группировки, связанные функции только в одном файле.
Какое определение лучше в этом случае?
Вы испытали это, написав и прочитав проекты в обоих направлениях (проекты состояли из нескольких функций, сгруппированных в один файл, а проекты - у вас была только одна функция для каждого файла).
Я не могу поверить, что программисты на основе python считают, что проще 10 файлов вместо 10 файлов с 1 функцией.
Почему бы и нет? Всё зависит от меня. Зависит, например, от количества функций, от того, насколько они велики (с точки зрения количества строк кода) и как они каким-то образом связаны с функциональными возможностями, которые они предоставляют.
Лично, к примеру, я предпочел бы смотреть на файлов друг с 10 функций в нем тогда держать около различных файлов. И обратите внимание на использование слова «лично».
Если у вас нет хорошей IDE, которая действительно звездная, эта модель функции для каждого файла не масштабируется. Кроме того, для очень больших проектов я не думаю, что файловая система вашего компьютера была бы слишком счастлива.
Плюсы этой конструкции:
Если я просто одну функцию на каждый файл, это более ясно, какие зависимостями функции нужно запустить.
Легче читать, если у вас нет всего этого кода.
Я могу четко мыслить, когда создаю функцию, так как у меня нет отвлечения внимания на другие функции.
Кроме того, с этим типом конструкции я могу разобрать файлы и наплевать графику, показывающую, как функции соотносятся друг с другом и с каждой зависимой функцией, необходимой каждой функции.
Все это правда, но подходит для небольших проектов; например, для анализа зависимостей, которые вы бы не делали вручную, в любом случае вы бы использовали очень хороший анализатор, чтобы получить все зависимости между функциями.
Эта конструкция является очень распространенным явлением в Node.js и C/C++ программисты
Я не могу говорить за node.js, но я могу вам сказать, что это не верно для C/C++ проектов C, как вы сказать.
Например, тон проектов в C/C++, даже если они не используют классы, они определяют несколько функций в одном файле (см., Например, Boost или многие другие, чтобы иметь идею).
Возможно, вы смешиваете функции с классами: это правда, что во многих проектах на C++ у вас будет один класс для каждого файла, но внутри этого файла вы, вероятно, будете иметь множество методов (функций) класса, а не только одного!
И как вы упомянули, я не думаю, что это вопрос скорости, вероятно.
Я закрываю с аналогией, что немного так, как я себе представить, чтобы быть для такого рода вещь:
, если у вас есть элементы 300 Мебельных (функция), вы бы разместить их одну за ящик (файл), для которого вам понадобится 300 ящиков, или вы бы попытались сгруппировать их в соответствии с их использованием (все штаны, все футболки и т. д.), используя меньший набор ящиков?
Не было бы легче искать их и думать о них в соответствии с их функциональными возможностями?
I думаю, большую роль играют размер или масштаб проектов, которые вы разрабатываете/вносите, ваш вкус и в конечном итоге требования к дизайну, установленные внешним проектом.
Опять же, вы можете сделать это в своем коде, и никто не говорит, что НЕ МОЖЕТ быть сделано таким образом.
Сделайте это, поскольку вам легче разобраться с вашим кодом!
Это было опасно, но как указано здесь: http://stackoverflow.com/questions/10501724/how-does-python-importing-exactly-work, это не так. –
Ну, если у меня есть класс, то все методы этого класса должны находиться внутри одного и того же файла. – tburrows13
@Gloin True, в этом случае у меня будет один класс для каждого файла. –