Здравствуйте, Pyro Sun, Вы писали:
PS>Спасибо за ссылку почитал... Как видно собрались там любители смолтолка... Я тоже себя к ним отношу... PS>но чтобы на нем какие то проекты писать... бр....
Оффтопик — а что мешает проекты писать?
Здравствуйте, Pyro Sun, Вы писали:
PS>вот я и хочу сказать что класс за 1000 строчек это пример плохого дизайна архитектуры, либо отсутствие постоянного рефакторинга кода...
Либо генератор кода.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Сергей Губанов, Вы писали:
PS>>Из своих наблюдений пришел к выводу что класс должен быть меньше 1000 строчек.
СГ>А на каком языке? СГ>Вот одна строка на одном языке: IF a THEN b ELSIF c THEN d ELSE e END
Здравствуйте, Pyro Sun, Вы писали:
PS>вот я и хочу сказать что класс за 1000 строчек это пример плохого дизайна архитектуры, либо отсутствие постоянного рефакторинга кода...
Либо отсутствие в языке таких средств как #region.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, klapaucius, Вы писали:
K>Здравствуйте, pagid, Вы писали:
P>>А в обероне есть классы?
K>Конечно же нет! Там есть так называемые "пастухи умозрительных протоколов": K>
K>pointer of abstract record
K>
pointer of — это Вы мощно придумали!
Типы данных языка Component Pascal имеющие отношение к "class":
Object = RECORD ... END;
Нерасширяемый value-тип — аналог struct в C# или в C.
Варианты с указателями:
PtrObject = POINTER TO Object;
RefObject = POINTER TO RECORD ... END;
ExtensibleObject = EXTENSIBLE RECORD ... END;
Расширяемый value-тип — аналог class/struct в C++.
Варианты с указателями:
PtrExtensibleObject = POINTER TO ExtensibleObject;
RefExtensibleObject = POINTER TO EXTENSIBLE RECORD ... END;
AbstractObject = ABSTRACT RECORD ... END;
Расширяемый абстрактный value-тип. Тоже что EXTENSIBLE, но размещать переменные этого типа нельзя.
Варианты с указателями:
PtrAbstractObject = POINTER TO AbstractObject;
RefAbstractObject = POINTER TO ABSTRACT RECORD ... END;
LimitedObject = LIMITED RECORD ... END;
Переменные этого value-типа можно (расширять и) размещать только в его собственном модуле, в других модулях размещать переменные этого типа нельзя.
Варианты с указателями:
PtrLimitedObject = POINTER TO LimitedObject;
RefLimitedObject = POINTER TO LIMITED RECORD ... END;
Здравствуйте, Pyro Sun, Вы писали:
PS>Кто как считает? Какой размер класса в строках оптимален для понимания того что там происходит?
PS>Из своих наблюдений пришел к выводу что класс должен быть меньше 1000 строчек. PS>Да и 1000 это пожалуй великовато.
Для меня больше 500 строк уже много, размер метода не должен вообще не должен быть больше одного экрана в идеале.
Не совсем по теме, но можно найти некоторые ответы по оценке качества кода и сложности проекта
Здравствуйте, Pyro Sun, Вы писали:
PS>Кто как считает? Какой размер класса в строках оптимален для понимания того что там происходит?
PS>Из своих наблюдений пришел к выводу что класс должен быть меньше 1000 строчек. PS>Да и 1000 это пожалуй великовато.
Ну а если функциональность класса действительно большая, из-за сложности объекта который он описывает? Что тогда, делать что-то вроде: MyClass_volume1, MyClass_volume2...
Здравствуйте, WinterMute, Вы писали:
WM>Ну а если функциональность класса действительно большая, из-за сложности объекта который он описывает? Что тогда, делать что-то вроде: MyClass_volume1, MyClass_volume2...
Здравствуйте, WinterMute, Вы писали:
WM>Здравствуйте, Pyro Sun, Вы писали:
PS>>Кто как считает? Какой размер класса в строках оптимален для понимания того что там происходит?
PS>>Из своих наблюдений пришел к выводу что класс должен быть меньше 1000 строчек. PS>>Да и 1000 это пожалуй великовато.
WM>Ну а если функциональность класса действительно большая, из-за сложности объекта который он описывает? Что тогда, делать что-то вроде: MyClass_volume1, MyClass_volume2...
Имхо, следует поступать согласно здравому смыслу, не обращая внимания на догмы: класс должен... бла-бла-бла подставить нужное по вкусу.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Kluev, Вы писали:
K>>З.Ы. Авторитетов для программиста быть не должно.
VD>А как же Страуструп?
А Страуструп, кстати в авторитеты и не лезет. Просто и неневязчиво излагает свои мысли: "тут сделали так, тут наступили на грабли — переделали, это хотели сделать красиво получилось как всегда, а вот эта вещь действительно удалась". При этом он не страдает навязчивой идеей по продвижению тараканов в головы программистов. В отличии от некоторых деятелей типа Вирта-состоварищи и министерства пропаганды из m$
Здравствуйте, Kluev, Вы писали:
K>>>З.Ы. Авторитетов для программиста быть не должно.
VD>>А как же Страуструп?
K>А Страуструп, кстати в авторитеты и не лезет.
А что можно влезть в аторитеты?
K> Просто и неневязчиво излагает свои мысли: "тут сделали так, тут наступили на грабли — переделали, это хотели сделать красиво получилось как всегда, а вот эта вещь действительно удалась". При этом он не страдает навязчивой идеей по продвижению тараканов в головы программистов. В отличии от некоторых деятелей типа Вирта-состоварищи и министерства пропаганды из m$
У него у самого тараканов море и другим он их распространяет. Хотя надо признать, что он намного более разумен нежели многие фанаты С++.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Kluev, Вы писали:
K>>>>З.Ы. Авторитетов для программиста быть не должно.
VD>>>А как же Страуструп?
K>>А Страуструп, кстати в авторитеты и не лезет.
VD>А что можно влезть в аторитеты?
K>> Просто и неневязчиво излагает свои мысли: "тут сделали так, тут наступили на грабли — переделали, это хотели сделать красиво получилось как всегда, а вот эта вещь действительно удалась". При этом он не страдает навязчивой идеей по продвижению тараканов в головы программистов. В отличии от некоторых деятелей типа Вирта-состоварищи и министерства пропаганды из m$
VD>У него у самого тараканов море и другим он их распространяет. Хотя надо признать, что он намного более разумен нежели многие фанаты С++.
Насчет тараканов, все в мире относительно. Верх знамени (cockroach free)