banny_name: Ну, абстракция это и хорошо и плохо одновременно. Она добавляет гибкости, но при этом это доп слой.
Вот утрированный пример: при отправке ответа вам в заголовке надо укзать, какого типа данные вы отправляете. Например вы можете отправлять html, json или бинарный файл. Вы можете либо раками каждый раз указывать заголовки, либо использовать методы response->sendJson(), response->sendHtml() и response->sendFile(). Таким образом вы в коде работаете с абстрактным ответом и вам не важно, какие заголовки он отдает. Вы просто используете нужный метод.
Если потом вам придется отдават ответ не только через http, а например, в файл. Вам нужно будет только поменять реализацию методов класса response. А те места, где вы используете эти методы, код трогать не придется.
Успокойтесь. Попейте чайку. Отвлекитесь. И объясните еще раз, только доходчиво. Что вам не понятно? Какой конкретно фреймворк? Где вы прочитали это (про абстракции http)? Когда это раньше и сейчас?
По поводу нормализации бд не факт. При хайлоаде наоборот часто прибегают к осознанной денормализации. И эта мера применяется не в самую последнюю очередь. ЗАчастую денормализовать бд выходит проще и выгоднее, чем оптимизировать алгоритмы.
Это слишком. Во первых сетевые задержки грубо говоря удваиваются. Во вторых зачем использовать сторонний сервис, если можно поставить ту же центрифуга. Плюс не пожходит для установки в закрыторй сети без доступа к интеренту.
DevMan: Я согласен с вами в этом вопросе. Я не согласен с мнением, что не надо учить язык. Эти 2-3 года до сеньоры вы как раз будете учить язык. Моя мысль была в том, что программирование - это важно, но не все. Язык тоже надо хнать, а на это тоже надо время.
DevMan: Это человек-оркестр. Сеньор должен иметь широкий кругозо, особенно в смежных областых, тут не спорю. Но без глубоких знаний он так и будет всю жизнь сайты клепать, потому что в проектах, где используется один-два языка его кргозор будет уже не востребован.
iegor: Ага. Посмотрю я как вы после питона плюсы или эрланг за пару недель выучите. Перейдя на другой язык я становлюсь в лучшем случае мидлом. Т.к. практики и знания всех тонкостей у меня не будет, а именно это отличает сеньора.
Andy: Там мне мейнстрим и не нужен. Я объяснил, почему я так упомянул эрланг.
Собственно, сейчас выбираю между erlang и php. Первый вариант интересней и стимулирует доучить язык. Второй не так интересен, но больше шанс получить поддержку со строны (те де коллеги).
Эрланг я знаю на уровне "немного ниже среднего". И не в коем случае не хотел его грязью поливать. Говоря упороться и писать на нем, я имел в виду, заюзать язык, который врядли кто-нибудь посоветовал бы. Вон все ноду впаривают. Эрланг замечателен, но не мейнстрим. Из-за этого так выделил.
И это не максимализм. Я говорил, что привык писать системы, которые не живут между запросами. А там даже для простого приложения нужен кэш, чтобы по каждому чиху в бд не бегать. В долгоживущий, я понимаю, что по другому, но на сколько, пока не знаю.
Сергей Протько: Да, вы правы. Это подход AR, а не Yii. Но т.к. Yii пропагандирует AR, у меня возникла именно такая ассоциация. Я пробовал использовать Yii вместе с Doctrine - то еще удовольствие.
Подход к работе с моделями - это все-таки часть идеалогии фреймврка. Раз создатели выбрали AR, то стоит использовать именно ее. В противном случае, проще сменить фреймворк. Хотя бы потому, что большинство комьюнити пользуется дефолтным средством и помошь по чему-то специфичному будет найти трудно.
Сергей Протько: Диспетчер событий тестируется отдельно т.к. относиться к ядру приложения. Что бы протестировать хендлер не надо бросать событие и диспетчер не нужен. Достаточно вызвать его на прямую, передав в него объект нужного события с заполнеными данными. Для юнит тестов этого достаточно.
Само взаимодействие модулей (реацию на события) мы тестируем приемочными тестами. Думаю. это логично, ведь тут уже рассматривается пользовательский сценарий.
Сергей Протько: я для этого с модели делаю метод create() в нем провожу валидацию, сохранение и бросаю событие. Сервисов в yii очень не хватает, призодится костылить.
Сергей Протько: нормально все тестируется. У нас в проекте болше 3000 юнит тестов. Не спорю, наладить их с первого раза не получилось. Но если все взаимодействие строиться на ивентах и фасадах, то замокать получается все что угодно.
Тестировать сложнее, но не сложно.