Каково золотое правило, когда нужно разбивать код на функции? - PullRequest
6 голосов
/ 24 июня 2010

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

Что такое золотойправило, когда разбивать код на функции?

Ответы [ 6 ]

5 голосов
/ 24 июня 2010

Это действительно зависит от размера и масштаба вашего проекта.

Я склонен разбивать вещи на функции каждый раз, когда что-то повторяется , и это повторение обобщается / обобщается, следуязолотое правило СУХОЙ ( Не повторяйся ).

Что касается разделения классов, я склонен следовать Объектно-ориентированнымПрограммирование мантры выделения того, что является тем же, от того, что отличается, и разделения классов, если один класс реализует более одну большую теоретическую «идею» или сущность.

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

2 голосов
/ 16 ноября 2010

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

1 голос
/ 31 августа 2010

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

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

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

1 голос
/ 24 июня 2010

Я думаю, что вы, как правило, должны думать о том, что часть кода может быть повторно использована. Это приходит с опытом, чтобы понять это и планировать заранее.

1 голос
/ 24 июня 2010

Вероятно, мое личное правило таково, если оно длиннее двух строк, и на него ссылаются более одного раза на одной странице (ASP.net) или несколько раз на пару страниц, чем я напишуфункция, чтобы сделать это.

0 голосов
/ 24 июня 2010

Меня учили, что все, что вы делаете более одного раза, должно быть функцией.У всего подобного должен быть родительский класс, и, прежде всего, обратитесь к "стандартам" вашего исходного кода в вашей организации.Последний в основном имеет дело с форматированием.

...