Блог им. 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:
Облигации на пальцах: как устроен главный инструмент инвестора
Если у вас все еще нет облигаций в портфеле — вы либо неверно инвестируете, либо не совсем понимаете, зачем они нужны и по какому принципу...
Фото
Каждый инвестор желает знать, где сидит доходность? Взгляд Goldman Sachs на инвестиции до конца года
Если вы инвестируете свой капитал на фондовом рынке, то каждый год легко может принести вам как большие потери, так и несметные богатства....
Опыт Х5: Как меняются программы лояльности в ритейле
Наш управляющий директор «Х5 Клиентский опыт» Михаил Ярцев в интервью Ведомостям подробно рассказал, как в текущих реалиях меняется поведение...
Фото
Башнефть: есть шанс на переоценку, но нужно запастись терпением. Прогноз сошелся с фактом в высокой точностью, ищем инвест идею
Башнефть отчиталась по МСФО за 2025 год — внимание, квартальных отчетов в прошлом году не было вообще! Традицицинно сравниваем прогноз...

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

....все тэги



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