Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
Метрика MMC(макрометрика сложности) введена B.Харрисоном и К.Куком и вычисляется по следующей формуле: MMC = сумма i=1 до n( SC(i) *V(G)(i)) где n- число подпрограмм, SC(i) – макрометрика подпрограммы i, определяемая по следующей формуле SC(i) = G(i) *(n-1) + P(i)* (1-DI(i)) Здесь G(i) и P(i) показывают, сколько раз глобальные переменные или параметры используются в подпрограмме i; DI(i) – индекс документированности для пподпрограммы i,который находится по формуле DI(i) = число строк комментариев (i) /общее число строк в (i) .V(G)(i) - мера Мак-Гейна. ВОПРОС: Покритикуйте данную меру. 1)Чем больше глобальных переменных использует подпрограмма тем выходит хуже. 2) Если использует одну глобальную переменную, то срузу почему-то V(G)(i) умножается аж на (n-1) может надо избавится от (n-1): SC'(i) = G(i)+ P(i)* (1-DI(i)) 3) Чем больше параметров использует продпрограмма тем выходит хуже 4) Почему-то индекс документированности влияет на коэффицент при параметрах, а не например при числе вхождений глобальных переменных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:25 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
1)Чем больше глобальных переменных использует подпрограмма тем выходит хуже. Это очень плохо, когда используются глоб. переменные - от них надо вообще избавляться 2) Если использует одну глобальную переменную, то срузу почему-то V(G)(i) умножается аж на (n-1) может надо избавится от (n-1): SC'(i) = G(i)+ P(i)* (1-DI(i)) Это потому что ошибок может быть больше, т.е. не зная того что глобальная перемен. используется ее можно юзать в n-1 попдпрограммам. 3) Чем больше параметров использует продпрограмма тем выходит хуже Это не хуже, просто их надо документировать. 4) Почему-то индекс документированности влияет на коэффицент при параметрах, а не например при числе вхождений глобальных переменных потому что нет смысла в док-ции глобальных переменных, т.к. док-ий или нет, все равно не зная того, ты можешь использовать эту глоб. перемен. в нескольких подпрограммами. Чем лучше документированна вся программа, тем легче в ней разобраться и чем больше параметров, тем тчательнее надо ее документировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 17:15 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
--Это очень плохо, когда используются глоб. переменные - от них надо вообще избавляться ты в курсе про понятие сиглетон? фактически эта таже глобальная переменная. И любая серьезная программа имеет из десятки и сотни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 19:15 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
ты в курсе про понятие сиглетон? фактически эта таже глобальная переменная. И любая серьезная программа имеет из десятки и сотни синглетон - это всего лишь детали реализации фабрики класса для клиента не должно быть никакого различия с чем он работает: с синглетоном или нет синглетон не всегда реализуется путем создания глобальной переменной (например синглетон в пределах нескольких процессов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 09:39 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
авторЧем больше параметров использует продпрограмма тем выходит хуже Не "Хуже", а "сложнее"! Это ведь метрика для оценки сложности. а не "плохости" программы ;) Имхо. могут появиться какие-нибудь коэффициенты, выявленные эмпирическим путем. Т.е. вместо простой зависимости больше-меньше типа "Чем больше я пью кофе и крепкого чая, тем меньше мне хочется спать", будет "5/8 * кол-во кружек кофе + 3/8 * кол-во кружек чая".... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 12:26 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
Хотелось бы классифицировать модули по этому критерию сложности: 1) простой 2) нормальной сложности 3) сложный Видится мне это так. Число подпрограмм должно быть 7 +-2. Мера V(G) если > 10 то считается сложной. Параметров -1. Поэтому 1) Простой: < 10*5 = 50 2) Нормальной сложности < 10* 9 = 90 3) Сложный > 10*9 = 90 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 15:00 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
Хотя нет. простой сложности - это когда до 5 функций в модуле в каждой до 5 параметров. И сложность функции по Мак-Гейну до 10 путей. Итого 5*10* 5 = 250 Нормальной сложности - это когда до 9 функций в каждой до 9 параметров. и сложность до 10 путей Итого 9 * 9* 10 = 810 Cложный - это когда добле > 810 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 16:12 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
--для клиента не должно быть никакого различия с чем он работает: с синглетоном или нет тогда и глобальная переменная не должна вызывать сложностей. А уж сколько глобальных переменных, типа окружения среды и параметров Windows, то и разумное использование внутренних глобальных переменных не так уж и плохо. У например есть несколько глобальных переменных, типа ссылка на xml документ, один - глобальные справочники, другой документ проекта. Есть например переменная - обьект данных, который в себе и коннект к базе держит и ряд компонент внутри и в любом месте программы есть доступ к этом. А тянуть через интерфейсы все это хозяйство - только необоснованно усложнить код. Выйгрыша точно нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 20:56 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
тогда и глобальная переменная не должна вызывать сложностей. согласен, это вопрос скорее эстетический :) вспоминаются некоторые java-приложения которые просто не запускаются пока им не выставишь с десяток переменных окружения а еще вспоминается библиотека MFC которая кушает солидный такой кусок памяти независимо от того сколько функций из неё было использовано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 10:03 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
тогда и глобальная переменная не должна вызывать сложностей. согласен, это вопрос скорее эстетический :) А я не соглашусь, вот например у вас есть модуль, в кот. есть глоб. переменная А, и есть локальная переменная А, присвая в процедуре А=10, вы присваиваете значение локальной переменной и вы об этой засаде хотя бы догадываетесь. Но вот Вы заболели и другому человеку говорят, поправь что бы глобальной переменной присваивалось значение 5 в этой процедуре и он смело в процедуре пишете А=5 и в другой вызвает ее, но вот не задача глобальная переменная не равна 5, а равно хрен знает чему и с потом на лбу он ищит проблему в логике, и хорошо если Вы быстро выздроровите и получите в нос за использование глоб. переменных... А бывают и случаи посложнения, когда сам разработчик все забывает. Так что использование глоб. переменных это плохой тон, как и использование goto. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 15:37 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
и он смело в процедуре пишете А=5 А ты прежде чем писать нажми shift-f2 ... И действительно свойства класса - это теже глобальные переменные, только название другое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 16:30 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
А это уже к вопросу о соглашениях по именованию переменных - по префиксу или суффиксу или по строчным/прописным буквам в имени должно быть понятно - локальная это переменная, член класса, или глобальная переменная И действительно свойства класса - это теже глобальные переменные, только название другое лучше использовать термин "область видимости переменной" и стараться эту область видимости минимизировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 16:36 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
и он смело в процедуре пишете А=5 А ты прежде чем писать нажми shift-f2 ... А ты сначала изучи в каких ИДЕ, есть shift-f2, а в каких нет... И действительно свойства класса - это теже глобальные переменные, только название другое Ну приехали, матчасть сначала выучи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 16:41 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
автор лучше использовать термин "область видимости переменной" и стараться эту область видимости минимизировать во-во, хоть кто-то поддержал.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 16:42 |
|
||
|
Метрика MMC введена B.Харрисоном и К.Куком
|
|||
|---|---|---|---|
|
#18+
2 bas А ты сначала изучи в каких ИДЕ, есть shift-f2, а в каких нет... Вообще-то я надеялся, что ты догадаешься заглянуть в хелп, а не будешь слепо давить shft-f2 Перед теми, кто не догадался - извиняюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 17:02 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32436477&tid=1546579]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
178ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 309ms |

| 0 / 0 |
