Как вы организовываете свой код? - PullRequest
0 голосов
/ 12 сентября 2010

Я имею в виду не отступ или структуру каталогов, а сам файл.

Вы распределяете членов и методы по алфавиту? Может быть, в порядке их использования или в порядке сложной логики (восходящей или нисходящей)? Есть ли в вашем безумии рифма?

Я думаю о переходе на алфавитный порядок, но некоторые ситуации меня просто взбесили:

var _height
var _properties
var _width

ширина и высота, безусловно, должны быть сгруппированы вместе ... но иногда найти правильный метод в файле большего размера может быть довольно уныло.

Что ты делаешь?

Ответы [ 6 ]

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

Методы: сначала публичный, потом приватный.Связанные методы (например, getHeight(), getWidth(), getArea()) располагаются рядом друг с другом.Если существует иерархическая связь между методами, то высокий уровень перед низким уровнем (например, getArea() использует getWidth(), поэтому он помещается перед ним)

переменные: аналогично функциям, сначала public, затем privateСгруппированы по контексту.

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

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

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

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

Я склонен быть дезорганизованным. Я, конечно, не располагаю свои переменные в алфавитном порядке. А с C # я еще менее организован, потому что некоторые переменные я использую stuff_like_this, а со свойствами я мог бы DoItLikeThis. Иногда это сводит меня с ума, но в конце концов мне нравится , позволяя функциям IDE работать на меня . Visual Studio невероятно хорош, и возможность просто щелкнуть правой кнопкой мыши переменную, чтобы перейти к ее определению, или увидеть всюду в используемом коде, это просто потрясающе. Я не знаю, какую IDE вы используете, но, надеюсь, у нее есть похожие функции. В конце концов, меня меньше заботит организация, и мне действительно нужно беспокоиться, если мой дизайн в принципе надежен (и эта часть, как правило, требует от меня нескольких попыток, чтобы понять все правильно).

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

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

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

Функции топологически отсортированы с «корнем» в нижней части файла.

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

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

Обычно упорядочивают элементы по их природе (константы, поля, конструкторы, методы), а затем по их видимости (частной, защищенной, публичной).

Для нахождения нужной вещи я очень полагаюсь на возможности современной IDE (например, Visual Studio + Resharper)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...