Блог им. mirus3000

Вопрос программистам.

Начинаю плавать в классе  если он больше 100 строк кода.
Это я такой тупой или это нормально?

★2
13 комментариев
Чем меньше (проще) класс — тем лучше программист.
При грамотном подходе к архитектуре можно делать классы по 50-60 строк, 2-3 метода.

Основное ограничение у человека в голове — способность видеть одновременно до 7 (чаще даже меньше) объектов с их зависимостями. В большом классе видишь только зависимости внутри класса и упускаешь из вида внешние.

Но как писать код — искусство требующее практики, нарабатываемой годами.
avatar

dnmsk, 11 методов в классе+ внутренний класс с парой методов. Начал путаться. 

Невербальный паровоз, класс в классе уже зашквар))
avatar
100 строк для класса это немного. 1000 — это уже можно сказать много.
Пишите веськласс на одной строке, все будет понятно
avatar
Кол-во строк ни о чем не говорит.
Хорошая программа — это программа, которую легко поддерживать и расширять в течение долгого времени.

Почитайте принципы SOLID
Потом займитесь Гаммой , Dependency injection и Inversion of control
И тогда, наверняка, вдруг запляшут облака Вы будете писать лучшие в мире программы.

Желаю успехов.
avatar
_sg_, нельзя тут Spring воткнуть.
100 строк нормального кода должны восприниматься легко
если покажете проблемный код, то можно будет порекомендовать что-то конкретное
avatar

Основная «читаемость» идет от архитектуры, думаю — т.е. про то, какие сущности, как они разбиты по классам, как классы взаимодействуют.

 

Если на время инкапсулироваться в одном классе и взять его содержимое как данное — можно использовать всякие приемчики чтобы уменьшить время на «эээ, где тут чё?» и «чёт я потерялся тут». Я например использую такие:

 

— система следования элементов внутри класса — сначала поля, потом конструкторы, потом открытые методы, потом приватные. Например.

— юзаю регионы ("#region"(C#)) чтобы сгруппировать опять-таки отдельно поля и свойства, отдельно конструкторы, отдельно открытые методы, отдельно приватные и т.д.

— на горячих клавишах у меня навешены операции свернуть/развернуть все и свернуть в определения.

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

avatar

Как и писали выше, 100 строк — это не так много.

Если оно не засунуто в один метод.

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

Он смотрит на всё как бы сверху.

Не вдаваясь без необходимости в детали.

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

Пишите небольшие комментарии к методам.

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

Архитектура, выделение сущностей, декомпозиция, связанность, сцепленность и пр. конечно важны, но всё это несколько дальше.

Пока не парьтесь по этому поводу.

Учитесь смотреть на вещи абстрактно.

С высоты птичьего полёта.

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

ps. пример с boost, там алгоритмов на все случаи жизни написали, но мне удобнее использовать stl, alglib, qt и немного своего, хотя иногда и boost цепляю
сейчас вот стандарт с++17 осваиваю и постепенно отказываюсь от boost
Поставь нормальный редактор кода, аля Sublime Text или Notepad++ и юзай горячие клавиши сворачивания кода. И все проходит на ура
avatar
знаете зачем нужны классы? чтобы как в том смешном ролике — пропихнуть в форточку, и закрыть. т.е. забыть.

не зря придуманы библиотеки/проекты/пекиджи/классы/методы/переменные.

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

вообще же, если в классе >200 строк, обычно это значит что он уже разросся.
но это всё зависит. бывает у класса много интерфейсов, которые надо реализовывать. 

у меня классы 50-200 строк обычно.
большие 250-350, и совсем немного тех что больше 500.

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

ещё наверное помогает план. когда вы заранее расписываете какой класс за что отвечает на бумаге. и заполняете шапку комментария.

ну и рефакторинг никто не отменял.

итого: план, осмысленные имена методов и классов, фасад, рефакторинг, 250 строк — много.
ну и про 7 объектов уже сказали. 
ну плюс нормальный редактор, с окном outline view и тп.
avatar

теги блога Dancing Orange Hyena

....все тэги



UPDONW