ХудоБедно: Разговор об онлайн-обучении

После нашего весьма успешного интервью Антон Морев пригласил меня на новый канал ХудоБедно поговорить о нюансах обучения в онлайне:

Видео удобнее смотреть на повышенной скорости.

Поговорили как определять, какой материал будет интересен аудитории, как его преподносить. По мотивам статей блога обсудили что нужно для записи скринкастов. Много ли на это тратится усилий и стоит ли вообще этим всем заниматься.

Просматривая после интервью чат и переслушивая свои ответы заметил, что некоторые интересные вопросы здесь и в предыдущем интервью остались без внимания или были раскрыты не полностью. Поэтому в нашей команде решено наверстать упущенное и в отдельных видео доответить на них отдельно. О месте, времени проведения сообщим отдельно в каналах @elisdnru и @deworkerpro

Можете дозадать свой вопрос здесь в комментариях. Тоже отвечу.

Комментарии

 

Сергей Рыжков

Здравствуйте уважаемый Дмитрий. Спасибо вам за ваши труды и т.д.
А подскажите плиз куда копать? Такое дело. На сайте есть - онлайн запись клиента. Клиент выбирает врача и время на фронте и делает запись. Есть табл. visits куда все и ложиться. В админке у менеджера такой себе календарь, где он видит все записи клиентов. Итак задача. Как только клиент сделает запись на фронте, у менеджера на беке должна обновиться страница календаря, вернее часть страницы уже с новой записью. Посоветуйте как реализовать. Может yii помочь или какую технологию использовать. Спасибо.

Ответить

 

Дмитрий Алексеевич

Есть два варианта:

  • Нужно с фронтенда админки менеджера с помощью ajax опрашивать сервер раз в несколько секунд на предмет изменений. Если они появились - обновлять часть страницы.
  • Реализовать это через веб-сокеты. После записи в таблицу visits слать в веб-сокет сообщение об этом. Во фронтенде админки менеджера нужно слушать этот же веб-сокет. При появлении сообщения в сокете нужно обновлять часть страницы. В этои случае всё будет работать моментально, без задержек и с минимальной нагрузкой на сервер (нет лишних запросов к нему для проверки изменений).

P.s. первый способ более простой, а второй - более правильный, но сложнее реализуется.

Ответить

 

Дмитрий Елисеев

Да, такое реализуется через WebSocket, как ответили выше.

Ответить

 

Роман Моисеенко

Не совсем в тему, но гдето у вас попадалась для Yii2 такая форма CompositeForm.
Работает отлично, но до одного момента, когда в композитной форме появляются 2 и более полей одного класса формы. Тогда ни form->load() ни form->validate() не работает. Т.к. Yii2 создает инпуты по имени класса формы, и в итоге с формы прилетают данные только первого поля.
Чтоб не быть голословным, вот такая форма:

/**
 * Class NoticeForm
 * @package booking\forms\admin
 * @property NoticeItemForm $review
 * @property NoticeItemForm $bookingNew
 * @property NoticeItemForm $bookingPay
 * @property NoticeItemForm $bookingCancel
 * @property NoticeItemForm $bookingCancelPay
 * @property NoticeItemForm $messageNew
 */
class NoticeForm extends CompositeForm
{
...
}

Как бороться с этим, я не нашел

Ответить

 

Дмитрий Елисеев

Имена берутся из метода formName(). Поэтому можно переопределить этот метод:

class NoticeItemForm extends Model
{
    private $_formName;

    public function __construct($formName, $config) {
        parent::__construct($config);
        $this->_formName = $formName;
    }

    public function formName() {
        return $this->_formName;
    }
}

чтобы передавать разные имена из NoticeForm:

$this->review = new NoticeItemForm('review');
$this->booking = new NoticeItemForm('booking');
Ответить

 

Роман Моисеенко

Спасибо, добавил в свой проект.

Ответить

 

Роман Моисеенко

Небольшое уточнение, если, например, для некоторых товаров нет вообще характеристик, то для этих товаров не проходит loadMultiple, приходится делать доп.проверку:

if (is_array($form)) {
    if (!empty($form)) {
        $success = Model::loadMultiple($form, $data, $formName === null ? null : $name) && $success;
    } else {
        $success = true && $success;
    }
}
Ответить

 

Artem Unix

Будет курс по ларавель где будет создаваться интернет магазин или соц сеть что то такое где можно было бы прокачатся?

Ответить

 

Дмитрий Елисеев

По Laravel есть только прошлый мастер-класс по доске объявлений здесь.

Только по самому Laravel прокачиваться будет не настолько полезно, как по программированию вообще. Полезнее будет разобраться в архитектуре и автоматизации разработки, что мы делаем в свежей серии скринкастов про разработку проекта на Deworker.

Ответить

 

Artem Unix

Так там старая версия

Ответить

Оставить комментарий

Войти | Завести аккаунт | Войти через


(никто не увидит)





Можно использовать теги <p> <ul> <li> <b> <i> <a> <pre>