twin, я пытался разобраться не запуская код и не смог. Не потому что сложно, а потому что не указано типы инъекции возращаемых из контейнера. И я попросту не нашел где задаются инъекции для контейнера. Подозреваю что какая-та хрень с объектом Request, строка для парсинга передается как то криво, наверное.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
cheeНу вот, первая ласточка есть. Если не смог разобраться с листа, значит не так уж прозрачен код, не так ли?
Подождем других специалистов, которые утверждали, что с ООП работать одно удовольствие.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
kristall
26.02.2015 - 19:04
Очевидно же, что не получается отмаршрутизировать полученный урл. Не лез в код, скорее всего просто не нашлось подходящего правила.
_____________
echo '<pre>',print_r($var, 1);die;
root@server# make love && war
kristallОчевидно. Но нужно найти ошибку с листа. Если запустить, будет проще конечно. В том и фишка - узнать, на сколько прозрачен ООП код.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
kristall
26.02.2015 - 19:12
https://github.com/Volter9/Trial/blob/maste...figs/routes.phpУрл не соответствует правилам из этого файла. Да?
_____________
echo '<pre>',print_r($var, 1);die;
root@server# make love && war
volter9
26.02.2015 - 19:20
cheeОни все инъекции лежат в сервисах в namespac'e Trial\Services.
kristallДа верно, в файле App/Configs/routes.ph
Очень странно что только у меня все работает
_____________
Мой блог
kristall
26.02.2015 - 19:26
Ну, если роутинг в целом работает, но в конкретном случае вылетает эксепшн, то это не вопрос ООП/процедурки, а вопрос конфига и обработки ошибок.
_____________
echo '<pre>',print_r($var, 1);die;
root@server# make love && war
Цитата (twin @ 26.02.2015 - 18:24) |
chee Ну вот, первая ласточка есть. Если не смог разобраться с листа, значит не так уж прозрачен код, не так ли? |
возможно, но здесь просчёт
volter9. Он использует Serive Locator но не документирует типы возращаемых инъекций, а это ухудшает читаемость.
Ваша система тоже не запускалась, и мне пришлось узучать код, что бы править её, я не смог сразу понять где ошибка. Так что
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
kristall
Цитата |
Ну, если роутинг в целом работает, но в конкретном случае вылетает эксепшн, то это не вопрос ООП/процедурки, а вопрос конфига и обработки ошибок. |
Не работает. И ошибку вы не нашли. Потому что конфиг задан правильно, ошибка в скрипте. Так что вопрос пока открыт.
Цитата |
Он использует Serive Locator но не документирует типы возращаемых инъекций, а это ухудшает читаемость. |
Документируемость тут не причем. Вы же игнорируете даже док-блоки, не говоря о документации. Код должен быть самопоясняющимся, я в этом на вашей стороне.
Цитата |
Ваша система тоже не запускалась, и мне пришлось узучать код, что бы править её, я не смог сразу понять где ошибка. Так что |
Вопрос не в том, запускалась или нет. Вопрос в том, сколько потребовалось труда найти ошибку в моем коде и в этом.
Я вот сейчас пытаюсь сэмулировать похожую ошибку у себя... и не могу. При равных прочих.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 26.02.2015 - 20:06) |
Документируемость тут не причем. |
Еще как причём, у вас все зависимости жестоко забиты в код, когда же используется DI, то становится не очень то понятно, что за зависимость и откуда она пришла, поэтому нужны как минимум док-блоки.
Цитата (twin @ 26.02.2015 - 20:06) |
Я вот сейчас пытаюсь сэмулировать похожую ошибку у себя... и не могу. При равных прочих. |
Потому что у вас другой принцип роутинга, точнее отсутствие роутинга.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата |
DI, то становится не очень то понятно, что за зависимость и откуда она пришла, поэтому нужны как минимум док-блоки. |
Вот. Уже ближе к теме. Значит можно признать факт, что код с DI малопрозрачен, раз его трудно понять без документации. Кстати, у вас тоже нет докблоков, и тоже есть DI. Получается, что и в вашем коде трудно найти баг.
Цитата |
Потому что у вас другой принцип роутинга, точнее отсутствие роутинга. |
В том и дело - другой принцип. Вот и пытаемся их сравнить.
А что такое роутинг в вашем понимании? Почему у меня "отсутствие"?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата |
Маршрутизация (англ. Routing) — процесс определения маршрута следования информации в сетях связи.
Маршруты могут задаваться административно (статические маршруты), либо вычисляться с помощью алгоритмов маршрутизации |
Если применить понятие к нашему аспекту, то получается у вас статический роутинг, у меня автоматический. Почему это нету... Обидно даже...
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 26.02.2015 - 20:47) |
Кстати, у вас тоже нет докблоков, и тоже есть DI. |
Как это нет, вот смотрите сюда
https://bitbucket.org/cheevauva/examplecms/...p?at=examplecms . Всё описано, а методы описаны в интерфейсе. А там где их нет(докблоков), значит еще не дошли руки.
Цитата (twin @ 26.02.2015 - 20:47) |
что код с DI малопрозрачен, |
Малопрозрачен это не то определение. DI понятен если узучить его работу в конкретной реализации. Но если иходить из позиции понятности при первом просмотре кода, то любой DI уступает захардкоденым зависимостям, в силу понятных причин.
Цитата (twin @ 26.02.2015 - 20:47) |
Получается, что и в вашем коде трудно найти баг. |
У меня другой принцип работу DI, подстановка через свойства, контейнер крайне редко используется для получения зависимостей. А зависимости устанавливаются в свойства объектов и эти свойства я заранее объявляю и помечаю док-блоками, указывая конкретный класс или интерфейс внедряемой иъекции в это свойство.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата |
Но если иходить из позиции понятности при первом просмотре кода, то любой DI уступает захардкоденым зависимостям, в силу понятных причин. |
Это и есть прозрачность. Понятность при первом просмотре. Значит прозрачность я все же могу приплюсовать к преимуществам своего подхода?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, я не думаю что прозрачность в этом случае подходит, по моему мнению прозрачность это возможность удачно предугадать что изменится в контексте исполнения программы после выполнения каких-либо процедур. Допустим есть такой кода.
var_dump($db);
dosomething($db);
var_dump($db);
он не прозрачен, так как вообще не понятно почему $db стал null
var_dump($db);
dosomething($db);
var_dump($db);
а вот такой прозрачен, потому что мы увидели в $db то что и хотели.
Пример конечно так себе, но я лучше не смог придумать.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.