Ответы пользователя по тегу Веб-разработка
  • Как эффективно проверять новые данные в БД?

    @melnikov_m
    Можно реализовать примерно так
    1) создать для задачи колонку isRead(0/1 не прочитано/прочитано)
    2) при создании записи добавлять в кеш с привязкой к пользователю, что у него есть непрочитанная задача
    Yii::$app->cache->set('newTask-user-'. $userId, 1);

    конечно нужно сначала проверять счетчик на существование и инкриментировать его. Например, это умеет редис
    https://yiigist.com/package/drsdre/yii2-redis-coun...
    В общем, если счетчика нет, то он создается, если есть, то берется его старое значение и делается +1
    3) Когда пользователь зашел в список задач, то идет обращение не в БД, а к этому счетчику и пользователь видит (+1, +2 и т.д).
    Когда заходит в конкретную задачу, то если колонка isRead = 0, то записываем 1, а счетчик делаем -1.
    4) Наверное, еще придется предусмотреть "разогрев кеша", если он упал(на случай если вы предполагаете, что нагрузка будет реально большая)
    Для этого пишем задачу, которая запускается при запуске сервера кеширования, в которой берем count всех непрочитанных задач, сгруппированных по пользователям и записываем эти значения в счетчики.
    Ответ написан
    1 комментарий
  • Как удалить контент из начала файла, при работате с fopen()?

    @melnikov_m
    Нет, рассчитывать, что файлы будут маленькие - это плохое решение. Большие файлы нужно обрабатывать с помощью генераторов (если конечно версия php позволяет )
    Ответ написан
    Комментировать
  • Перспективное направление (язык, платформа, cms для изучения абсолютному новичку)?

    @melnikov_m
    Как я понял у вас web направление. Поэтому без хорошего знания HTML и CSS никуда - это основа и ее нужно знать. Это для начала.
    Из CMS в России очень популярен 1c-Битрикс. Из бесплатных WordPress и Joomla!
    Изучите их хотя бы на уровне администратора, а не прогера.
    На фрилансе периодически появляются задачи по верстке всяких страничек и сайтов визиток, вот с этого и начните как изучите вышеперечисленное.
    Ответ написан
    Комментировать