Pull to refresh
50
0
Kirill chEbba Chebunin @chEbba

User

Send message
Это скорее проблема языка, нет никаких проблем решить те же проблемы стандартными шаблонами, но скудность синтаксиса и малая выразительность ведут к громоздкости такого кода, отсюда все это программирование на аннотациях
Мы делали похожую вещь, но без использования экспаира. У нас были отложенные сообщения фиксированных интервалов, например, 10 мин, 20, 40, 2 часа и т.д. Под каждый интервал была очередь и консьюмер, который доставал сообщение, смотрел наступила ли пора и либо отправлял в нужную очередь, либо слипался до наступления времени. В целом те же яйца, но использование штатных средств, конечно забавнее.
Особой разницы для программиста в обработке ошибок через исключения или монадами(именно такой подход, имхо, уместен в случае swift) нет: вы либо разбираете значение монады в точке вызова (pattern matching против try), либо пробрасываете дальше преобразуя значение (map vs дальнейшего исполнения). Это нормальный функциональный подход.
С точки зрения скорости, не буду спорить, но чисто логически при одинаковости действий результирующий код должен быть схож.
У аудиомании можно что-то выбрать с неплохой скидкой. Они реально в полночь вывесили и работали.
Там вон ниже уже привели второй RFC из этой же темы wiki.php.net/rfc/argument_unpacking очень приятно в некоторых местах отказаться от call_user_func_array. Поэтому в паре достаточно неплохая функциональность.
Декларативная она по тому, что вы говорите как создать объект, когда он понадобится. Я не вижу принципиальной разницы между
$container['session'] = function ($c) {
  return new Session($c['sessionStorage']);
};

<component id="session" type="Session">
  <sessionStorage>${sessionStorage}</emailFormatter>
</component>

Есть у такой реализации через замыкания (они так в пхп называются) свои минусы, но в целом для легковесного контейнера вполне применимо.
Это легко решается «кэшированием», что, например, делает Symfony2 DI под названием «скомпилированный контейнер»
Вопрос не в том умеют или нет, вопрос в том, что эта фича не является фундаментальной для DI-контейнера. Его задача из декларативной конфигурации уметь создавать объект и инжектить разные типы зависимостей. Данный контейнер вполне в состоянии это делать.
А Spring я привел просто как самый классический пример реализации контейнера.
Проблема в том, что у вас не всегда 1 к 1 связь, поэтому в самом общем случае вам придется вводить уникальные айди. А вещи типа @Autowired делаются уже поверх для упрощения.
По вашим критериям даже спринговый контейнер не является «полноценным». То, что вы описываете — лишь доп фича контейнера, которую несложно реализовать, в том числе в php. Она не может являться базовой так как не покрывает всех вариантов связей (несколько реализаций интерфейса, коллекции и т.п.)
Имхо, цель не заменить врача, а дать крутого помощника, который поделится мнением на основе своих знаний". Т.е. это всего лишь одно из мнений.
Если я все правильно уловил на YAC, к ответу кроме вероятности цепляется и его вывод: из какой литературы, по каким критериям он был подобран.
Да и те же платиноиды
В настоящее время, почти 90 % всего объема производства металлов платиновой группы разделено между платиной и палладием, остальные добываются и продаются в небольших количествах. 95 % запасов и 90 % производства МПГ сосредоточены в двух крупных месторождениях — Бушвельдском комплексе, находящемся на территории Южно-Африканской Республики, и в Норильском рудном районе, расположенном в России. В рудах Бушвельда содержание платины втрое выше, чем палладия, в то время как в Норильске наблюдается обратное соотношение. Поэтому, ЮАР является крупнейшим мировым производителем платины, а Россия — палладия.
Неплохие предложения по переменному кол-ву аргументов и распаковке. Именованные аргументы тоже неплохо, но проблема с наследованием, описанная в рфц, имхо, намного серьезнее, чем в описании.
Вполне очевидное решение, так у type теперь немного больше возможностей. В итоге и обратную совместимость оставили и новые возможности привнесли. В phpDocumentor добавят быстро, останется только чтобы IDE поддержку добавили.
Большой вопрос еще какая доходность у накопительной части
Вы рфц точно читали? видимость задается, обратная совместимость не ломается

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity