Хорошо разделить код на функции и классы для модульного принципа / отделение, но если Вы делаете это слишком много, Вы получаете действительно фрагментированный код, который также не хорош.
Каково золотое правило для того, когда разделить код на функции?
Это действительно зависит от размера и масштаба вашего проекта.
Я склонен разбивать вещи на функции каждый раз, когда что-то повторяется , и это повторение обобщается / абстрагируется, следуя золотому правилу DRY ( Не повторяйтесь ).
Что касается разделения классов, я склонен следовать мантре объектно-ориентированного программирования: изолировать то, что является одинаковым, от того, что отличается, и разделять классы, если один класс реализует более одной большой теоретической «идеи» или сущности.
Но, честно говоря, если ваш код слишком фрагментирован и непрозрачен, вам следует попробовать рассмотреть возможность рефакторинга в соответствии с другим подходом / парадигмой.
Я думаю, вы обычно должны думать о том, что кусок кода может быть повторно использован. Он приходит с опытом, чтобы понять это и спланировать наперед.
Меня учили, что все, что вы делаете более одного раза, должно быть функцией. Все подобное должно иметь родительский класс и, прежде всего, обращаться к «стандартам» исходного кода в вашей организации. Последний в основном занимается форматированием.
Вероятно, мой собственное личное правило: если он состоит более чем из 2 строк и упоминается более одного раза на одной и той же странице (ASP.net) или несколько раз разбросан по нескольким страницам, то я напишу функцию для этого.