Блог им. mirus3000

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

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

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

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

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

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

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

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

Желаю успехов.
avatar
_sg_, нельзя тут Spring воткнуть.
avatar
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

Читайте на SMART-LAB:
Фото
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой...
Фото
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на...
Фото
Как заработать на росте цен на удобрения
Дарья Фёдорова Конфликт на Ближнем Востоке и перекрытие Ормузского пролива вызвали ралли не только цен на нефть и газ, но также алюминий и...
Фото
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем...

теги блога Himno a la paz

....все тэги



UPDONW
Новый дизайн