Руководства по кодированию: как вы разделяете свои большие исходные файлы? - PullRequest
7 голосов
/ 04 марта 2009

Проект, над которым я работаю, только что набрал 4200 строк в основном файле C #, что заставляет IntelliSense реагировать в течение нескольких секунд (иногда до 6 или около того), в течение которых Visual Studio блокируется. Мне интересно, как все остальные делят свои файлы и есть ли консенсус.

Я попытался найти несколько руководств и нашел Руководство по Google C ++ , но я ничего не увидел в семантике, такой как размеры функций и размеры файлов; может быть, это там - я давно не смотрел на это.

Так как же вы разделяете файлы? Вы группируете свои методы по функциям, которые они выполняют? По типам (обработчики событий, частные / публичные)? И при каком размере вы разделяете функции?

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

Ответы [ 14 ]

0 голосов
/ 04 марта 2009

Синтаксический анализатор Intellisense в Visual Studio 2008, по-видимому, работает значительно быстрее, чем 2005 (я знаю, что они специально проделали большую работу в этой области), поэтому, хотя вы должны определенно разбить файл в какой-то момент, как другие Как уже упоминалось, Visual Studio 2008 может решить вашу непосредственную проблему с производительностью. Я использовал его, чтобы без особых проблем открыть файл Linq to SQL длиной более 100 КБ.

0 голосов
/ 04 марта 2009

Возможно, ОП может ответить: использует ли ваш проект объектно-ориентированное программирование? Тот факт, что вы используете слово «файл», предполагает, что это не так.

Пока вы не поймете ориентацию объекта, нет надежды на улучшение вашего кода каким-либо важным способом. Лучше вообще не разбивать файл, подождать, пока он станет невыносимо медленным и глючным, и вместо того, чтобы терпеть его, перейти к изучению ОО.

0 голосов
/ 04 марта 2009

Если у вас есть области кода внутри класса, простой метод - использовать ключевое слово partial и вставить это определение класса в этот файл. Обычно я делаю это для больших классов.

Соглашение, которое я использую, заключается в том, чтобы иметь ClassName_RegionName.cs. Например, если я хочу выделить класс, который управляет схемой для соединения с базой данных, и я вызвал класс DatabaseConnection, я бы создал файл DatabaseConnection.cs для основного класса, а затем DatabaseConnection_Schema.cs для функциональности схемы. 1004 *

Некоторые классы просто должны быть большими. Это не плохой дизайн; они просто тяжелы для реализации.

0 голосов
/ 04 марта 2009

Использовать частичные классы. Вы можете разбить один класс на несколько файлов.

...