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


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

Подождем других специалистов, которые утверждали, что с ООП работать одно удовольствие.

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

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

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

user posted image
kristall
Очевидно же, что не получается отмаршрутизировать полученный урл. Не лез в код, скорее всего просто не нашлось подходящего правила.

_____________
echo '<pre>',print_r($var, 1);die;

root@server# make love && war
twin
kristall
Очевидно. Но нужно найти ошибку с листа. Если запустить, будет проще конечно. В том и фишка - узнать, на сколько прозрачен ООП код.

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

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

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

user posted image
kristall
https://github.com/Volter9/Trial/blob/maste...figs/routes.php
Урл не соответствует правилам из этого файла. Да?

_____________
echo '<pre>',print_r($var, 1);die;

root@server# make love && war
volter9
chee
Они все инъекции лежат в сервисах в namespac'e Trial\Services.

kristall
Да верно, в файле App/Configs/routes.ph

Очень странно что только у меня все работает sad.gif

_____________
Мой блог
kristall
Ну, если роутинг в целом работает, но в конкретном случае вылетает эксепшн, то это не вопрос ООП/процедурки, а вопрос конфига и обработки ошибок.

_____________
echo '<pre>',print_r($var, 1);die;

root@server# make love && war
chee
Цитата (twin @ 26.02.2015 - 18:24)
chee
Ну вот, первая ласточка есть. Если не смог разобраться с листа, значит не так уж прозрачен код, не так ли?

возможно, но здесь просчёт volter9. Он использует Serive Locator но не документирует типы возращаемых инъекций, а это ухудшает читаемость.

Ваша система тоже не запускалась, и мне пришлось узучать код, что бы править её, я не смог сразу понять где ошибка. Так что rolleyes.gif

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
kristall
Цитата
Ну, если роутинг в целом работает, но в конкретном случае вылетает эксепшн, то это не вопрос ООП/процедурки, а вопрос конфига и обработки ошибок.
Не работает. И ошибку вы не нашли. Потому что конфиг задан правильно, ошибка в скрипте. Так что вопрос пока открыт.

Цитата
Он использует Serive Locator но не документирует типы возращаемых инъекций, а это ухудшает читаемость.

Документируемость тут не причем. Вы же игнорируете даже док-блоки, не говоря о документации. Код должен быть самопоясняющимся, я в этом на вашей стороне.

Цитата
Ваша система тоже не запускалась, и мне пришлось узучать код, что бы править её, я не смог сразу понять где ошибка. Так что
Вопрос не в том, запускалась или нет. Вопрос в том, сколько потребовалось труда найти ошибку в моем коде и в этом.

Я вот сейчас пытаюсь сэмулировать похожую ошибку у себя... и не могу. При равных прочих.




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

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

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

user posted image
chee
Цитата (twin @ 26.02.2015 - 20:06)
Документируемость тут не причем.

Еще как причём, у вас все зависимости жестоко забиты в код, когда же используется DI, то становится не очень то понятно, что за зависимость и откуда она пришла, поэтому нужны как минимум док-блоки.

Цитата (twin @ 26.02.2015 - 20:06)
Я вот сейчас пытаюсь сэмулировать похожую ошибку у себя... и не могу. При равных прочих.

Потому что у вас другой принцип роутинга, точнее отсутствие роутинга.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
chee
Цитата
DI, то становится не очень то понятно, что за зависимость и откуда она пришла, поэтому нужны как минимум док-блоки.
Вот. Уже ближе к теме. Значит можно признать факт, что код с DI малопрозрачен, раз его трудно понять без документации. Кстати, у вас тоже нет докблоков, и тоже есть DI. Получается, что и в вашем коде трудно найти баг.

Цитата
Потому что у вас другой принцип роутинга, точнее отсутствие роутинга.
В том и дело - другой принцип. Вот и пытаемся их сравнить.

А что такое роутинг в вашем понимании? Почему у меня "отсутствие"?



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

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

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

user posted image
twin
В википедии написано:
Цитата
Маршрутизация (англ. Routing) — процесс определения маршрута следования информации в сетях связи.

Маршруты могут задаваться административно (статические маршруты), либо вычисляться с помощью алгоритмов маршрутизации
Если применить понятие к нашему аспекту, то получается у вас статический роутинг, у меня автоматический. Почему это нету... Обидно даже... sad.gif

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

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

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

user posted image
chee
Цитата (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, подстановка через свойства, контейнер крайне редко используется для получения зависимостей. А зависимости устанавливаются в свойства объектов и эти свойства я заранее объявляю и помечаю док-блоками, указывая конкретный класс или интерфейс внедряемой иъекции в это свойство.

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

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

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

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

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

var_dump($db); // db connection resource
dosomething($db);
var_dump($db); // null

он не прозрачен, так как вообще не понятно почему $db стал null

var_dump($db); // db connection resource
dosomething($db);
var_dump($db); // db connection resource

а вот такой прозрачен, потому что мы увидели в $db то что и хотели.

Пример конечно так себе, но я лучше не смог придумать.

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

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