Іван Клімчук

Іван Клімчук

Был в сети 13 мая 2025, 17:35
Заказы не принимаю
Ох, докупать мощности сервера только из-за просадки на паре запросов? Это пушкой по воробьям, достаточно поставить любой кеширующий слой и настроить его. Если выборка не критичная для получения realtime данных (на большинстве сайтов так и есть), то ничего не мешает ее кешировать в тот же редис на 10-20-30 минут и драматически снизить нагрузку в случае большой посещаемости. Поиск тоже делать через специаильный поисковые движки, которые позволяют построить оптимальный индекс, адаптированный именно для поиска по ключевым словам/фразам. Подводя небольшой итог: возможностей для оптимизации – вагон, увеличивать мощности последняя задача, которую следует рассматривать только в комлексе оптимизации архитектуры, а не просто увеличить памяти и ресурсов процессора.
Я видел и на 1 млн товаров решения, но на деле особой разницы нет. Единственное, что придется сделать, это прикрутить вшений поиск к БД, так как голый запросы в базу данных при таких объемах будут существенно замедлять работу. Поможет или elasctics search или sphinx или любой другой поисковый движок, совместимый с mysql. Ну и различные оптимизации после создания сайта и нагрузочных тестов не помешают.
У OpenCart и других системах при таких объемах придется решать те же проблемы, так как БД все равно одна — mysql.
Имеется ввиду, когда сайт один, но разнесен на несколько серверов физически? Ибо gitify — это все же инструментр скорее для разработчик/разработчика, нежели для деплоя проектов. Он может, но это побочный эффект так сказать :) Но в теории да, может. Так как код в репозитории будет один на все инстансы.
Работа с ID на самом деле очень большая проблема. И для контента я gitify не использую, как и другие средства, так как содержимое как правило генерируется или пользователями или менеджерами сайта, поэтому content у меня просто исключен из выгрузки/загрузки, но для кода конфликты по ID не столь существенны и автоматическое разруливание вполне справляется.

По документации да, она не идеальна, над ней стоит поработать, я этим занимаюсь, но не всегда хватает времени сделать ее толково.
Я не в коем случае не отговариваю вас, любые начинания — это только в плюс и уверен, что ваше решение будет лучше. Хотелось бы на это надеятся. Но за почти 6 лет работы с MODX я уже набил шишек на теме синхронизации копий сайтов на MODX и знаю в этом толк, как говорится.

В вашем случае с ваших же слов все прекрасно, пока вы работаете над сайтом один, но стоит только подключиться еще одному разработчику и все встанет. Тот же конфликт ID. Если вы делаете ссылку на id ресурса в коде, это перестанет работать, когда сайт перейдет в живой режим и не важно, какой инструмент синхронизации вы используете.

Ирония по поводу умной фразы в описании проекта меня изумляет, потому что, прежде чем давать оценки, стоит хотя бы попробовать инструмент. Gitify уже 2 года как успешно справляется с этой задачей. Его использует команда modmore, все мои сайты тоже синхронизируются через него. Так что да, я уверен в его возможностях, а чего не хватает – дописываю. Ну а уповать на то, что в гугле этот инструмент не ищется по запросу на русском языке, когда основной разработчик пользуется английским, ну я даже не знаю. Вроде и не глупо, но не дальновидно.

Разруливание конфликтов ID тема сложная и объяснить одним абзацем действительно проблематично, тем не менее на сейчас это наверное пожалуй самый адекватный алгоритм из существующих. Но и он не идеален, я без проблем это признаю.

Воспринимайте мой ответ, как конструктивную критику, а не как нападки. Я очень хотел бы видеть удобный инструмент синхронизации между сайтами, но уже на начальном этапе вижу проблемы в вашем решении. Хорошо, если получится их решить сейчас, в начале пути, когда есть еще время переделать.
Вообще-то сохраняет :-P
clientconfig_groups:
        class: cgGroup
        primary: label
        package: clientconfig
    clientconfig_settings:
        class: cgSetting
        primary: key
Он умеет любую сущность, которая описана в schema дампить, нужно только package указать. C miniShop2 работает идеально. :)