Как организовать большие файлы кода? - PullRequest
7 голосов
/ 23 сентября 2010

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

Я понимаю, что бывают ситуации, когда много кода необходимо, но как лучше всего все это организовать?

Я думал о том, чтобы отделить переменные от методов, private s от public s и internals, но я не хочу этого, потому что не могу не думать, что компоненты одного класса принадлежат одному файлу .

Все это усложняется, когда я работаю с кодом позади окна WPF, которое, кажется, всегда экспоненциально растет очень быстро в один огромный беспорядок.

Также: в C # есть ключевое слово partial, которое позволяет разделить класс на любое количество файлов без ущерба для функциональности. Однако я заметил, что Microsoft, похоже, использует partial только для того, чтобы скрыть сгенерированный код от вас (Winforms / WPF.), Что приводит меня к вопросу о том, является ли разделение класса просто потому, что в нем много строк, является законным использованием partial - это?

Спасибо

Ответы [ 7 ]

13 голосов
/ 23 сентября 2010

Разделите ваш код на обязанности. Для каждой ответственности определите один тип. То есть следуйте принципу Единственная ответственность . Это приведет к меньшим единицам кода, каждый из которых выполняет очень специфическую функцию. Это приводит не только к уменьшению размера файлов, но и к лучшему дизайну и удобству обслуживания.

9 голосов
/ 23 сентября 2010

Если ваши файлы большие, потому что они содержат один большой класс / структуру, то это обычно (но не всегда) намек на то, что ваш класс имеет дело с несколькими проблемами и может быть реорганизован в несколько меньших, более специализированные классы.

5 голосов
/ 23 сентября 2010

Если я вас понимаю, ваша главная проблема в том, что ваши формы оказываются слишком большими, что приводит к тому, что классы для этих форм содержат слишком много кода, что вполне нормально, если ваши формы не очень просты.Чтобы попытаться минимизировать это, используйте Пользовательские элементы управления , поскольку, если вы перемещаете элементы управления в другие классы, вы также перемещаете код в другие классы.

Иногда может быть немного сложнее общаться между элементами управления, но обычно это более чем компенсируется тем фактом, что код в каждом классе будет намного легче понять.

2 голосов
/ 23 сентября 2010

Я склонен группировать свойства, конструкторы, методы и вспомогательные методы (частные методы) вместе с регионами.Если у меня много методов, я создаю больше регионов на основе того, что они делают (особенно хорошо для перегрузок).А если говорить о перегрузках, попробуйте минимизировать ваш код с необязательными параметрами.

Насколько я понимаю, частичное означает, что класс существует в двух отдельных файлах.Веб-формы и элементы управления являются частичными, потому что другая «часть» файла - это файл [p | c] x, который идет вместе с ним.

1 голос
/ 23 сентября 2010

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

0 голосов
/ 22 января 2016

Для улучшения читабельности кода: вы можете использовать блок региона: https://msdn.microsoft.com/en-us/library/9a1ybwek.aspx. Что касается улучшения структуры и дизайна вашего кода - обратитесь к некоторым специализированным книгам.

0 голосов
/ 23 сентября 2010

Мы используем stylecop. Это немного помогает, потому что навязывает структуру в вашем коде и порядок того, что и где должно появляться. Следовательно, вы можете найти более крупные файлы более интуитивно.

...