[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обсуждение варианта Volter9
Страницы: 1, 2, 3, 4
twin
Цитата
по моему мнению прозрачность это возможность удачно предугадать что изменится в контексте исполнения программы после выполнения каких-либо процедур.

Абсолютно верно. Только пример не в строчку. Вот так прозрачно:
var_dump($db); // db connection resource
setNull($db);
var_dump($db); // null
А вот так нет:
var_dump($db); // db connection resource
dosomething($db);
var_dump($db); // null
У меня в коде команды ясны и недвузначны. Можно спокойно пройтись по логической цепочке и всё увидеть. У вас именно do something. Потому что не ясно, какие зависимости участвуют в процессе. Нужно долго рыться, чтобы этот клубок распутать. Вы сами признали, что без доков это сложно.

И это уже не уровень вхождения. Это именно прозрачность кода. Для примера я похожую ошибку на своем скрипте изобразил.

Ошибка находится даже не заглядывая в исходники:

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

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

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

user posted image
twin
А что можно понять из этого?

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

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

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

user posted image
twin
Скрин мутный, потому что длинный. smile.gif Хотел всю глубину трагедии показать.

Вот это и есть прозрачность. Понятность с листа и предсказуемость поведения.

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

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

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

user posted image
chee
twin, я в вашем примере если честно вообще не понял, как вы определили что там, что-то не так. Я как человек реально не разбирающийся в регулярках, не понимаю что у вас там написано, как мне этот массив поможет ума не приложу.


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

Просто ты не понял, как бороться с дебаггером.

Массив, это текущая таблица переменных. Это дебаггер у меня из трассировки вытягивает.
Переменные, как положено, сверху вниз. Первая в массиве - первая в методе. Значит это переменная $routes. По логике скрипта видно, что она не может быть пустой. Потому что мы открываем конкретную страницу, а значит в роутер должен попасть GET параметр. Это очевидно.

Если переменная пуста, значит метод IRB_URL::iniGET() ничего не вернул. Можно пойти посмотреть, что там. Но если чуток знаешь код, то из таблицы переменных видно, что ожидается ключ "page", а мы запрашиваем "dummy". Вот и весь баг.

А вот из вашей трассировки вообще ничего не понять. Ну контейнер, ну диспетчер, ну роутер. Где что пропало...

Какой контейнер смотреть, куда что девалось... Конечно, порывшись в коде, можно разобраться. Но ведь нужно рыться. А доков нету. А зависимости не ясны. А значит прозрачность - 0.

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

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

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

user posted image
chee
Цитата (twin @ 26.02.2015 - 23:47)
Но если чуток знаешь код, то из таблицы переменных видно

А если я не знаю чуток код?

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

Цитата
Если переменная пуста, значит метод IRB_URL::iniGET() ничего не вернул. Можно пойти посмотреть, что там.

Если нет дебаггера, есть var_dump(). Ну или в IDE можно посмотреть, что в переменной. У вас это сделать почти невозможно, ибо в аргументах только объекты, а в них могут быть (и чаще всего так) совсем не те свойства, которые влияют на проблему. И откуда они появились - тоже совершенно не ясно.

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

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

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

user posted image
chee
twin, у волтера слишком намудрена маршрутизация, оно и понятно, он походу ёё писал сам. Возьму пример мою с использованием сторонего решения.

https://bitbucket.org/cheevauva/examplecms/...xamplecms#cl-50

Вот этот метод, не сложнее вашего. Устанавливаем массив правил, приходит исходящая строка, ищем соответствие по правилу, получаем результат.


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

UPD. А главное то, что вы оба соблюдаете принцип ООП, а вот разобраться в чужом коде - уже проблема. Уже считаете, что у него запутано. И ошибку так ни кто и не нашел. Ну кроме хозяина конечно.

А в моем не разобраться просто стыдно. Так что все же полгалочки за прозрачность я заработал, за второй полгалочкой приду, когда свою систему запустите. smile.gif

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

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

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

user posted image
Santehnick
Цитата (twin @ 26.02.2015 - 17:57)
chee
Цитата
Но если иходить из позиции понятности при первом просмотре кода, то любой DI уступает захардкоденым зависимостям, в силу понятных причин.
Это и есть прозрачность. Понятность при первом просмотре. Значит прозрачность я все же могу приплюсовать к преимуществам своего подхода?

У вас хард код и как следствие монолитное приложение. Нельзя ключевые компоненты заменить своими реализациями. А некоторые компоненты, могут иметь несколько вариантов реализации, между которыми нужно быстро переключаться, без необходимости править код. У вас так нельзя.

Вы против фреймворков, но сделали ядро, которым пользуется приложение, то есть фактически написали фреймворк.
Santehnick
Почему вы постоянно пишите, что ооп это какие-то рамки, почему нельзя отказаться от ORM ? Если приложение станет хайлоадом и если вдруг всё начнет тормозить из-за ORM его можно выкинуть и использовать чистый sql. Кто запрещает? Или где вы прочли, что это не ооп. Кому нужно ооп ради ооп? Могу делать, что хочу, могу в части приложения применять ооп подход, а в другой процедурный подход. Смысл в том, чтобы это всё легко расширялось. Если рассуждать как вы, то в php нет ни одного 100% объектно-ориентированного приложения или фреймворка, вот например в Yii 2 есть как вы это называете "просто удобный контейнер" и следуя вашей логике Yii 2 не является ООП-фреймворком, там же не "всё объект". В общем, у вас какое-то извращенное понятие ооп.
twin
Santehnick
Цитата
В общем, у вас какое-то извращенное понятие ооп.

А вот и нет.
Цитата
Могу делать, что хочу, могу в части приложения применять ооп подход, а в другой процедурный подход.
Это называется мультипарадигма, а не ООП. ООП как раз и накладывает рамки, что нельзя делать "что хочу".

А потому для чистоты эксперимента мы стараемся по максимуму придерживаться требований методологии.

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

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

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

user posted image
Быстрый ответ:

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