[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Колупаем DI Container
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
twin
Цитата (chee @ 29.01.2021 - 22:26)
Даже они используют foo bar. Не вижу разницы между exampleA и foo bar.

Я про фикстуры говорил и про переменные в тесте, а не про общепринятые метапеременные (как я про них забыл то((( ). Это нормально использовать foo bar baz для заполнения, это хорошая практика. А у тебя что? Ты вообще не слушаешь, или это ниже твоего достоинства, вникать в то что я говорю?

Я вот твои полезные (не все полезные были) советы услышал и подправил тесты. А ты можешь дальше надувать щеки.

Цитата (chee @ 29.01.2021 - 22:43)
Жаль я не увижу этого извращения.

Не ссать, я покажу. biggrin.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
twin, я же закрывал тему с тестами, ты сам ее форсишь. Сам непонятно кому что-то доказываешь, я просто подметил, а тебе видимо этой искры хватило, что заполыхать. Остановись, я понимаю, что это твой конек спорить в субъективном поле, но мне эти твои субъективные переживания не интересны, как и тебе мои. Так что смысла в споре о оформлении тестов нет. Написал, молодец, я их читать не буду. В итоге если запускаются тесты и тестируют нормально, то уже не низкосортная поделка, а просто поделка.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Ну вот, уже прогресс. Не низкосортная, это радует, а то, что поделка, на большее я и не претендую. rolleyes.gif smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Вот инструмент с помощью, которого можно оценить качество кода https://packagist.org/packages/phpmetrics/phpmetrics, он однозначно говорит что у тебя все плохо. Он рассчитал вероятность бага в твоем контейнере практически в 2, когда у моего контейнера 0.5. Короче посмотри, и свой фреймворк можешь тоже пощупать

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Не могу понять, где ты нашел такой показатель, как вероятность бага. Вот это что ли?
Цитата
Average bugs by class

Или это
Цитата
Average instability
?

Скорее всего второе. Дело в том, что ты сунул туда мой неотдебаженый контейнер, там даже тестов не было на карту. А когда ты написал этот пост, у меня уже были тесты и были исправлены некоторые баги, и по цифрам я сориентироваться не могу. Если ты имел ввиду показатель Average instability, то у меня сейчас 0.59 против 0.54 твоего. Учитывая несоизмеримую разницу в функционале, это очень даже неплохой результат.

А инструмент хороший, спасибо)

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
twin, ты html отчет генерировал?


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
PDIC

Complexity
Average Cyclomatic complexity by class 13.25
Average Weighted method count by class 13.75
Average Relative system complexity 9.3
Average Difficulty 6.73

Bugs
Average bugs by class 0.16
Average defects by class (Kan) 1.14


ABCDIC

Complexity
Average Cyclomatic complexity by class 18.63
Average Weighted method count by class 27.88
Average Relative system complexity 334.75
Average Difficulty 15.15

Bugs
Average bugs by class 0.31
Average defects by class (Kan) 1.5



_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 1.02.2021 - 19:04)
twin, ты html отчет генерировал?
Конечно.

И это я видел. Что тут криминального? Где баги то, про которые ты писал?
Ну сложность выше, это и понятно. Я не гнался за дешевизною, плевав на потенциальные дырки. Там функциональности в 10 раз больше чем у тебя, чего сравнивать.

А остальное что не так? Средневзвешенную они считают по количеству функционала. Так ясен перец, выше будет. Где
Цитата (chee @ 31.01.2021 - 19:51)
он однозначно говорит что у тебя все плохо.
?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
twin,
Цитата (chee @ 31.01.2021 - 23:51)
вероятность бага
в html отчете эта цифра фигурирует.

Цитата (twin @ 1.02.2021 - 23:29)
Я не гнался за дешевизною, плевав на потенциальные дырки

Дырку с ленивой загрузкой ты не закрыл, проверка по интерфейсу как не проходила так и не проходит. Это объективно.

Цитата (twin @ 1.02.2021 - 23:29)
Там функциональности в 10 раз больше чем у тебя, чего сравнивать.

Например?

Дефолтные блоки - мусор, ленивая загрузка в текущем варианте - мусор, создание сервис-локатора - мусор, синтетический сервис - мусор, глобальные сервисы в текущем варианте - мусор

Часть функционала реализована как мусор, другая часть ненужна вообще.

Я ума не приложу где мне может понадобиться дефолтные блоки, когда есть наследование.
Я не смогу использовать твою ленивую загрузку, потому что она не имплеменитирует интерфейсы.
Создавать сервис локатор, когда у тебя есть контейнер, который может быть сервис локатором, тоже бесполезная фича.
Глобальные сервисы, вообще жопа, не стал бы принципиально использовать в таком виде в котором они сейчас у тебя. Это нужно реализовать по другому.

Я вот выкинул из своего контейнера создание сервис-локатора и внедрение в свойства через рефлексию, потому что никому не нужный мусор.

Вот по дефолтным блокам

// Устанавливаем общие зависимости
$container->addDefault([
'example' => Example::class,
'std' => \stdClass::class
]);

// Создаем сервис
$container->add('Recepient', Recepient::class);

// Смотрим
$obj = $container->get('Recepient');
$obj->run(); // Я Example!

// Очищаем дефолтный блок

$container->clearDefault();

// Создаем другой сервис в котором уже нет дефолтных зависимостей
$container->add('OtherRecepient', Recepient::class);

// Смотрим
$obj = $container->get('OtherRecepient');
$obj->run(); // Too few arguments to function Recepient::__construct()

Такие вещи меня забавляют. То есть ты даешь возможность прям сбрасывать поведение контейнера и предполагаешь очередность объявления зависимостей сверху-вниз? То есть одно и тоже объявление может работать по разному в зависимости от того что ты перед ним объявил?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.