Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Объем класса в строках кода


Автор: ZZZkoderZZZ 16.3.2013, 23:47
Есть общепринятое мнение, что размер метода должен быть не более 100 строк. А есть ли подобное ограничение для объема класса?
Подразумевается объем заголовка класса (объявление переменных и методов без их реализации). Файл реализации следовательно может быть в 100 раз больше.

Автор: bsa 17.3.2013, 00:16
Есть - разумное проектирование. Класс который не делает все на свете в принципе не может быть очень большим. А если он таковым становится, то это повод задуматься о его делении и инкапсуляции.

Автор: VSB 17.3.2013, 00:23
Но если класс - обертка над API (привет, MFC) то ничего не поделаешь...

Автор: bsa 17.3.2013, 00:25
VSB, ты считаешь, что 100 методов - это нормально?

Автор: borisbn 17.3.2013, 10:46
Человек, ответивший >100000, выйди из сумрака! Кто ты?

Автор: feodorv 17.3.2013, 14:05
Цитата(borisbn @  17.3.2013,  11:46 Найти цитируемый пост)
Человек, ответивший >100000, выйди из сумрака! Кто ты?

Я!
А что Вы хотите? Какой вопрос, такой и ответ:
Цитата(ZZZkoderZZZ @  17.3.2013,  00:47 Найти цитируемый пост)
Сколько строк как максимум должен занимать класс?

Насколько я знаю, никаких ограничений на данный момент не существует.
Другое дело, если бы вопрос формулировался так:
Цитата

Как вы считаете, каким разумным количеством строк стоит ограничиться при проектировании класса?

И то, сам класс может занимать 10% от объёма кода, остальное - подробное описание: комментарии учитывать? Пустые строки? Оформление кода? Где пункт: "зависит от задачи"?
10000 строк кода на один класс - не так уж и много для некоторых задач. При этом описание класса вполне может занимать < 500 строк. И как отвечать при этом: 100-500 или 5000-10000?

Цитата(VSB @  17.3.2013,  01:23 Найти цитируемый пост)
Но если класс - обертка над API (привет, MFC) то ничего не поделаешь... 

Я вот себе представил стартовый код какой-нибудь новой суперобъектной версии MS Windows 2050:
Код

#include <mswindows>

int main( void )
{
  MSWindows win;
  return win.run();
}

Будут там себя ограничивать разработчики или нет, никто не знает... 

Автор: ZZZkoderZZZ 17.3.2013, 16:47
Цитата(feodorv @ 17.3.2013,  14:05)
Цитата(borisbn @  17.3.2013,  11:46 Найти цитируемый пост)
Человек, ответивший >100000, выйди из сумрака! Кто ты?

Я!
10000 строк кода на один класс - не так уж и много для некоторых задач.

Цитата

Подразумевается объем заголовка класса

10 тыс. может и не много, но вы же выбрали вариант 100 тысяч. Тогда реализация займет 10 млн. строк!

Автор: feodorv 17.3.2013, 17:08
Цитата(ZZZkoderZZZ @  17.3.2013,  17:47 Найти цитируемый пост)
Подразумевается объем заголовка класса

Ок))) Прошу прощения, не заметил. Но всё равно, ограничений нет.

Добавлено через 2 минуты и 6 секунд
Кстати, последний ответ набирает обороты, что говорит о неправильном вопросе...

Автор: ZZZkoderZZZ 17.3.2013, 18:16
Цитата
Ок))) Прошу прощения, не заметил.

это не ты не заметил, а я сегодня добавил, чтобы всем понятнее было smile 

Автор: volatile 17.3.2013, 23:39
feodorv,  smile 
Цитата(ZZZkoderZZZ @  16.3.2013,  23:47 Найти цитируемый пост)
Сколько строк как максимум должен занимать класс?

добавте пункт "ограничено свободным местом на жестком диске"

И ваще хватит идиотских вопросов.
можно делать всё. Единственное ограничение - здравый смысл, который должен быть.
А если его нет, то никакие запреты не помогут.

Автор: NoviceF 18.3.2013, 20:35
Цитата(volatile @  18.3.2013,  00:39 Найти цитируемый пост)
добавте пункт "ограничено свободным местом на жестком диске"


вот сейчас могу не угадать, но вроде бы же должно быть ограничение на сегмент кода в ia-32 (ну или там x86-64)? В ia-16 точно было, причём сегмент кода был довольно небольшим и особо талантливым программистам давалось его переполнить smile

Это я к тому, что если данная проблема существует на относительно современных архитектурах, мы упрёмся в неё раньше, чем в объём жёсткого диска.

Автор: borisbn 18.3.2013, 21:35
> мы упрёмся в неё раньше, чем в объём жёсткого диска
Жёсткого диска может не быть вовсе

А вообще - согласен с отписАвшимися, что вопрос не корректен в принципе

Автор: mes 18.3.2013, 22:43
Цитата(NoviceF @  18.3.2013,  19:35 Найти цитируемый пост)
 вроде бы же должно быть ограничение на сегмент кода в ia-32

хм.. а какая разница в классе будут строки или вне его ?!

Автор: baldina 18.3.2013, 23:24
ответил >100000. искал вариант 10e7, не нашел :-(
ведь это же 
Цитата(ZZZkoderZZZ @  16.3.2013,  23:47 Найти цитируемый пост)
общепринятое мнение


Автор: NoviceF 19.3.2013, 07:56
Цитата(mes @  18.3.2013,  23:43 Найти цитируемый пост)
хм.. а какая разница в классе будут строки или вне его ?! 


да, впринципе, никакой. Мой вопрос просто про ограничения архитектуры, может кто в курсе smile

Автор: ZZZkoderZZZ 19.3.2013, 08:24
Цитата(baldina @ 18.3.2013,  23:24)
ответил >100000. искал вариант 10e7, не нашел :-(

Сколько времени уйдет у программиста только чтобы прочитать заголовок класса из 10 млн. строк, и чтобы понять, как пользоваться этим классом? Есть ли вообще программисты, котрые на это способны?
Даже 100 000 строк уже очень много.

Автор: baldina 19.3.2013, 09:51
ZZZkoderZZZ, займитесь уже полезным

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)