Задать вопрос
  • Нужно ли делать кеширование запросов и как?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я думаю здесь подмена понятий. Автор пишет "кэширует ли БД запросы", а имеет в виду "может ли в принципе эта страшная и непонятная громадина которая называется базой данных в принципе хоть когда-нибудь рабтотать быстро?"
    Все, разумеется, кидаются отвечать на первый вопрос.
    А на самом деле надо отвечать на второй. Да, почти всегда БД работает гораздо быстрее чем ты можешь вообразить и ничего кэшировать не нужно. Если вдруг стало работать медленно... впрочем, об этом ниже.

    Нужно ли делать кеширование запросов
    Вот в такой формулировке, взятой с потолка, "а не закэшировать ли мне запросы к базе данных*" - Нет, не нужно.

    и как?
    Очень просто.
    Три простых шага:
    1. Понять, устраивает ли тебя производительность приложения. Если устраивает, то все оставить как есть.
    2. Если не устраивает, освоить профайлинг. Если это слово не упоминается в вопросе про производительность или кэширование, то вопрос можно сразу удалять. потому что он заведомо взят с потолка и не имеет смысла. По сути, профайлинг - это замер скорости выполнения отдельных участков кода для поиска узких мест - т.е. таких участков кода, которые тормозят всю программу. Это можно делать и вручную, и с помощью различных готовых инструментов. Только по результатам профайлинга, который показал конкретную причину тормозов, то самое узкое место (его еще называют bottleneck, "бутылочное горлышко"), можно приступать к оптимизации. Не кэшированию!
    3. Если профайлинг показал, что проблема в конкретном запросе к БД, приступаем к его оптимизации. Чаще всего достаточно добавить индекс или донастроить сервер.
    4. Только если все другие способы не помогли - занимаемся кэшированием. Но перед этим сначала решаем Вторую Важнейшую Проблему Информационных Технологий - инвалидации кэша. Поскольку закэшировать - это ерунда, каждый дурак сможет. Самая главная проблема не в том, как данные положить в кэш, а как и когда их оттуда удалять.
    Ответ написан
    Комментировать
  • Почему пропадает место на Linux Mint?

    @pfg21
    ex-турист
    поставь утилиту ncdu.
    удобное средство смотреть какой директорий перегружен.
    посоветую использовать опцию -x чтобы не залезало в примонтированные фс.
    Ответ написан
    Комментировать
  • На каком фреймворке проще всего написать фронтенд для работы с rest api?

    Swartex
    @Swartex
    Многорукий могоног
    Если react монстр, то берите Vue. Он простой в освоении и прекрасная документация
    Ответ написан
    Комментировать
  • Где вести вики по проекту?

    Самые удобные и топовые вики ВСЕГДА идут там же, где размещен репозиторий. То есть, гитхаб \ гитлаб вики. Лично я всегда ожидаю увидеть вики по проекту там же, где и репо, и сильно расстраиваюсь, если ничего там не нахожу. Всякие левые сервисы проигрывают по причине заведомой неявности.
    Ответ написан
    Комментировать
  • CMS для интернет-магазина с более чем 50 000 товаров?

    Jump
    @Jump
    Системный администратор со стажем.
    Любая.
    В том числе и текущая.
    Подвисает это проблема не CMS, а проблема ее грамотной настройки и тюнинга.
    Ну и особой разницы нет - 100 у вас товаров или 100тыс товаров.
    Ответ написан
    3 комментария
  • CMS для интернет-магазина с более чем 50 000 товаров?

    @stilic
    Количество товаров, тем более такое смешное, никаких таких особых требований к интернет-магазину не выдвигает.

    Для современных СУБД - это смешное число.

    Единственное, что будет критично:

    1) Развитые механизмы фильтрации. Чтобы облегчить поиск по такому количеству для покупателя.
    2) Какие-то автоматизированные процедуры загрузки, обновления данных о товарах (описаний, цен, фильтров).

    Годится любой движок интернет-магазина. Кроме самых наипримитивнейших.

    Дело не в движке - дело в умении ваших технических специалистов им пользоваться.
    Скажем, автоматическое обновление данных наладить откуда-то - из файлов? Из 1С?

    Упомянутая технология Woocomerce легко держит и 500 000 товаров.
    Все дело в вашем умении ей пользоваться.

    На любом другом движке - будет та же жопка.

    Проблема тут не в движке.
    Проблема в людях, кто его обслуживают.

    Имхо, просто обратиться к компетентным людям и что они скажут то и ставить.
    Для начала - обратиться к компетентным специалистам по Woocomerce.
    Ответ написан
    Комментировать
  • Как сделать нагрузочное тестирование веб-сервера для сравнения PHP+Nginx vs Node.js?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    В плане отдачи статики - врядли Ваш код хоть на php хоть на node сможет тягаться по скорости с Nginx, иначе Вы не задавали бы подобные вопросы. В любом случае стоит ставить nginx перед любым бэкендом, хоть php хоть node. Помимо раздачи статики еще получите и нормальную работу с tls и балансировку.
    По динамике:
    php - работает только в режиме 1 запрос = 1 процесс, соответственно процессов в памяти будет больше, а значит и больше памяти потребуется и больше процессорного времени будет уходить на switch-context. Так же и очередь ожидающих запросов будет больше ибо php работает синхронно, а это значит что при ожидании io (файлы/бд) Ваш процесс в idle. Самый быстрый вариант сейчас с php-fpm, который работает по протоколу fastcgi и держит пул предзапущенных потоков php. Так же возможна работа по http с apache, но этот вариант явно медленнее и тяжелее чем php-fpm.
    node - может обрабатывать много запросов в 1 процессе засчет асинхронной модели выполнения, соответственно Вам может хватить небольшого количества процессов для очень большой нагрузки. Можно работать с nginx как по протоколу http (есть из коробки) так и fastcgi (при этом по прежнему имея 1 процесс)

    Теперь по нагрузочному тестированию, нужно хорошо разбираться в обоих тестируемых технологиях, знать о возможных оптимизациях и как их обойти. И даже при всем этом Вы не получите адекватных результатов на синтетических примерах... Можно сравнить решение конкретной задачи, но для этого придется разработать решение на обоих технологиях, а оно Вам надо? БольшАя часть задержек в большинстве веб-сервисов падает на базу данных, которая особо не зависит от выбранного ЯП, хотя асинхронная модель тут предпочтительнее...
    Так что пишите на чем умеете
    Ответ написан
    1 комментарий
  • Как еще ускорить верстку?

    @jamtuson
    Все фигня. Ускорить верстку можно на порядок, если не смотришь на экран после каждого изменения.

    Учитесь верстать определяя на глаз цвета, отступы, размер шрифтов и большинство вещей.
    Когда верстаете, то у вас в голове должна быть картинка того, что вы пишите в css и чем больше профессионализм, тем меньше расхождения между реальностью и картинкой в голове.
    Остальные вещи не так ускоряют верстку, как такой навык
    Ответ написан
    7 комментариев
  • Почему гугл не индексирует компоненты VUE?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    А чего вы, собственно, хотели? Боты - они же простые как три рубля. Их задача быстренько индексировать страницу. Представьте сколько нужно ресурсов, чтобы исполнять JS на каждой странице... Да и зачем? Если разработчику нужно индексировать Vue, то он потратит на это свои ресурсы.
    То, о чем вы пишите, называется SSR. Не знаю в каких таких "статьях" вы читали про гугл, но есть официальная дока про SSR на сайте Vue:
    https://ssr.vuejs.org/ru/
    Ответ написан
    Комментировать
  • Как записать в Local Storage?

    tuychin
    @tuychin
    Frontend dev
    localStorage.setItem('ключ', 'значение') - запись
    localStorage.getItem('ключ') - получить значение по ключу
    localStorage.removeItem("ключ") - удалить значение по ключу
    localStorage.clear() - очистить весь localStorage

    Подробнее
    Ответ написан
    Комментировать
  • Как сделать быстрый редирект?

    @Zolg
    Обычные методы Location ... медленные, то есть успевает прогрузиться страница, частично

    Ну что поделать, жизнь такая.
    Правда location nginx обрабатывает не то что до отдачи страницы, а ещё до решения как и откуда ее отдавать. Но кого это волнует ?
    Ответ написан
    Комментировать
  • Какой язык программирования для Back-end производительнее?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    80-90% времени ваш мегасуперязык будет простаивать в ожидании внешних сервисов: бд, кеша, рсс сторонних сайтов, ответа апи сервисов и т.д. Бэк чаще всего выполняет задачи прослойки а-ля принеси-подай-унеси. По этому вопрос производительности языка скорее вопрос удобства и опыта использования.
    Ответ написан
    Комментировать
  • Какой язык программирования для Back-end производительнее?

    DevMan
    @DevMan
    вы любитель сравнивать теплое с мягким?
    мне кажется, что писать что-то крупное на PHP сегодня "зашквар", и дело даже не в моде, а в производительности.
    среди интерпретируемых языков у пыха, сюрпиз-сюрпиз, скорость на высоте.
    а теперь или трусы оденьте, или крестик снимите определитесь что вам нужно: скорость выполнения или скорость разработки.
    кстати, открою вам секрет: на многих проектах используют несколько языков.
    Ответ написан
    Комментировать
  • Какой язык программирование выбрать первым для Web'a?

    Zoominger
    @Zoominger Куратор тега Веб-разработка
    System Integrator
    Javascript

    Вот жеж.
    Классика для "войти в айти".
    Порога вообще нет (правда, работы тоже), дерзайте.

    Для бэка PHP берите.
    Ответ написан
    6 комментариев
  • Как максимально автоматизированно настраивать чистые VPS?

    @Tabletko
    никого не трогаю, починяю примус
    Если VPSки свои - ansible, если не свои - скриптовать. Для автоматической установки есть kickstart (RHEL-based) и unattended-install (DEB-based)
    Ответ написан
    Комментировать
  • Как перевести изображение в канвасе в черно белое?

    dom1n1k
    @dom1n1k
    Ключевые слова в сообщении об ошибке - "cross-origin data".
    Это стандартная и многократно описанная проблема. На тостере тоже была неоднократно.
    Просто погуглите "canvas cross-origin".
    Ответ написан
    Комментировать
  • Сверстать такой шаблон?

    @archelon
    Открываете сайт foundation, изучаете документацию; при необходимости, смотрите уроки и туториалы; верстаете.
    Ответ написан
    Комментировать
  • Почему bcrypt не считает число числовым значением?

    @bpGusar
    *spoiler*
    переменные окружения это всегда строки, если нужно число необходимо преобразовать, например const saltRounds = Number(process.env.COMPLAXITY)
    Ответ написан
    1 комментарий