Задать вопрос
  • Как перенести стили в футер в новом WordPress 5.8?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    // Move jQuery to the footer
    function theme_move_jquery_to_footer() {
    	wp_scripts()->add_data( 'jquery', 'group', 1 );
    	wp_scripts()->add_data( 'jquery-core', 'group', 1 );
    	wp_scripts()->add_data( 'jquery-migrate', 'group', 1 );
    }
    add_action( 'wp_enqueue_scripts', 'theme_move_jquery_to_footer' );

    это перенесет в футер все скрипты, если указать их зависимыми от джейквери.

    Альтернативное решение
    // Enqueue scripts and styles.
    function theme_scripts() {
    	wp_deregister_script( 'jquery' );
    	wp_register_script( 'jquery', includes_url( '/js/jquery/jquery.min.js' ), false, NULL, true );
    	wp_enqueue_script( 'jquery' );
    }
    add_action( 'wp_enqueue_scripts', 'theme_scripts' );
    Ответ написан
    2 комментария
  • Как часто нужна модель MVC?

    Stalker_RED
    @Stalker_RED
    Да, это полезно - написать свой фреймворк и/или CMS.
    Потом полезно сравнить его с laravel или symfony, найти чем ваш фреймворк лучше.
    Если ничем не лучше - можете его смело забросить, и переходить на что-то общеизвестное, и вот почему:

    Представим, что у вас заказали лендинг по заказу насосов, например, и вы сделали его на своем фреймворке. Через 5 лет вы сменили род деятельности, и водите экскурсии по Тасмании. Или вас укусил радиоактивный паук, и теперь вы спасаете мир, а поддержкой сайтов не занимаетесь.

    Сервис с насосами за это время вырос, они теперь еще и бурят скважины, и фильтры устанавливают и колодцы копают, и у них филиалы в 20 городах. Им нужно доработать сайт. И при поиске разработчика выясняется, что сайт ваш доработать невозможно, т.к. документации по фреймворку нет, готовых модулей совместимых нет, интеграций с 1C, google docs, microsoft sharepoint нет, и никогда не будет. И проще переписать с нуля, чем разбираться как оно у вас там устроено.

    А если бы сайт был на общеизвестном фреймворке, то гораздо проще найти и специалистов и найти готовые интеграции.

    Никто не закажет сайт на самописном фреймворке если он планирует развитие своего бизнеса и понимает что он вообще делает. То есть ваши потенциальные клиенты - это только те, кто впервые заказывает себе сайт, и вы ему смогли впарить самоделку.
    Ответ написан
    4 комментария
  • Зачем вообще использовать брокеры очередей?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    В первую очередь брокеры нужны для балансировки нагрузки и увеличения надежности и скорости работы системы в целом.

    В вашем приведенном примере приведен способ уведомления клиента о каком-то событии. Например о том, что его заказ обработан, отправлен, доставлен и т.д. Событий может быть много и их источники могут быть различными.
    Например у вас может быть интеграция со сторонней системой логистики. А еще с 10 разными системами оплаты.
    Еще есть маркетинг, который тоже хочет отправлять массовые рассылки.
    Получается, что под каждый случай вам прийдется хранить информацию о письмах и статусах. Но даже проблема не в этом, проблема в том, что каждое событие имеет разный приоритет и разную ценность.

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

    Очереди решают, т.к. можно сделать их несколько и на для каждой настроить определенное количество абсолютно одинаковых воркеров. Пример с поллингом отвратителен и сейчас никто так не делает, а с очередями делают так.
    У вас может быть цепочка из нескольких воркеров, когда результат работы одного помещается в очередь.
    Например, когда надо сначала достать данные из нескольких разных медленных систем, отрендерить в шаблон, а потом отправить письмо. Сборка, рендеринг и отправка - три разные компонента, последние два из которых, можно активно переиспользовать для других целей изменяя лишь конфигурацию времени исполнения.
    При таком подходе проще развивать кодовую базу, исправлять ошибки, т.к. они изолированы в одном месте, а не разбросаны по всей системе. И да, косяк в "горячем" модуле вы заметите немедленно. А самое прикольное то, что ваш косяк, пользователи и не заметят, для них это будет выглядеть как простая задержка, а у вас будет время на то, чтобы исправить ошибку. Сообщения посидят в очереди и все.
    Но это еще не все, ваши воркеры могут быть написаны на разных языках программирования. Например пользователь может загружать фото на сайт на PHP, объекты распознаваться на Python, видео рендериться на Rust, а отправка писем может быть на Go. И такой подход может подойти для сложных систем с распределенными командами и различным уровнем компетенция в применяемых технологиях. Специалистов превосходно владеющих всеми приведенными технологиями просто единицы, и поверьте, они решают задачи совершенно другого уровня.
    Ответ написан
    Комментировать
  • Зачем вообще использовать брокеры очередей?

    Очередь это буфер, куда задачи попадают с разной скоростью, а из него сливаются равномерно, по мере готовности «рабочих» их принять.

    В вопросе описана так-себе реализация с поллингом очереди. Различие без-очереди и с-очередью — в направлении инициативы:
    • без очередей «рабочий» опрашивает базу снова и снова: «есть чё?». Это как из браузера ajax'ом пинговать сервер раз в секунду в поиске сообщений. Работает, но такое себе..
    • с очередью инициатор процесса – брокер. Это брокер передаёт очередную задачу на исполнение первому освободившемуся «рабочему».

    spoiler
    Про потерю данных при падении — че-т страшилка, далёкая от продакшена. Драйвером очереди может быть и Redis (со своей персистентностью) и MySQL какой-нибудь, и другие. Имхо костыльно пихать в очередь всего лишь id записи в БД, которую надо обработать – чтобы рабочий, взявший задачу, заново собирал данные. Это не кошерно и калорийно.

    Лучше класть в очередь самодостаточную задачу. Например, сериализовать модель. Чтобы рабочий, получивший задачу, уже не обращался к базе – а только наполнял темплейт письма данными из полученной модели и отправлял послание. И в БД проставлял статус «отправлено»
    Ответ написан
    Комментировать
  • В каких реальных практических задачах применяются алгоритмы сортировки?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Любые сущности, у которых есть характеристики, которые можно ранжировать по принципу "больше/меньше", "до/после" и т.п.

    Товары в магазине (сортировка по цене, году выпуска, габаритам, весу, срокам поставки)
    Студенты в вузе (сортировка по среднему балу, кол-ву прогулов, уровню IQ, числу хвостов, ФИО)
    Города/страны (сортировка по населению, рождаемости, ВВП, ВВП на душу населения, заболеваемость ковидом, гриппом, раком мозга)
    Астрономические объекты (масса, размеры, плотность, альбедо, параметры орбит)
    Телефонный справочник (не знаю чем вам не нравится этот пример)
    Да все что угодно.

    Берите любые открытые данные (гуглите Public dataset) любого рода и делайте с ними сортировку по любому критерию, который вам нравится.
    Ответ написан
    5 комментариев
  • Какое состояние у современного фриланса на конец 2020?

    opium
    @opium
    Просто люблю качественно работать
    Все так же
    Говнокодеры в жопе, профи в шоколаде
    Ответ написан
    4 комментария
  • Если активировать, деактивировать кучу плагинов, менять имена их папок, это засоряет базу, они оставляют следы?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Смена имени папки если плагин не использует абсолютных путей не влияет ни на что
    Активация/деактивация, если плагин имеет настройки - естественно оставляет следы в базе, вплоть до собственных таблиц

    Когда плагин удаляется, по хорошему он должен чистить все свои хвосты, но сейчас очень мало какие из плагинов так делают.
    Ответ написан
    2 комментария
  • Как ускорить скорость загрузки сайта, метрика и движовосайт тянут вниз?

    svistiboshka
    @svistiboshka
    живые веб интерфейсы
    Мой вариант:
    window.onReadyState = (e, t) => {
      const a = ["loading", "interactive", "complete"],
        o = a.slice(a.indexOf(e)),
        n = () => o.includes(document.readyState);
      n() ? t() : document.addEventListener("readystatechange", (() => n() && t()))
    }
    window.onReadyState("complete",function(){(function(m,e,t,r,i,k,a)..... })
    Ответ написан
  • Почему упала производительность базы MySQL при переносе на новый сервер?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Самый тупой вариант: в "самой последней версии mysql" query cache отключен по умолчанию. Но если речь о конкретном запросе с воспроизводимым результатом, то наверное дело не в этом.

    Поэтому надo задавать не вопрос "почему упала в два раза после переезда", а надо разбираться с конкретным запросом.
    Вообще, вопрос конечно из серии "Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит". Неужели так трудно задать конкретный вопрос?
    • создали два LXC контейнера... С какими характеристиками?
    • поставили последнюю версию MySQL... Какую?
    • на некоторых запросах... Каких?
    • меняли настройки базы... Какие?
    • перерыли рекомендации... Какие?


    Всё-таки, вера советского человека в волшебную палочку или там цветик-семицветик нестребима. Что ламер в соседнем вопросе, что владелец прошаренного сервера, могут осилить только один сакраментальный вопрос, "Подскажите, в чем может быть проблема?". С наивной верой в то что решение проблемы - это не сложный и многоступенчатый процесс, для которого нужно предоставить как можно больше информации, а где-то просто есть заветный гвоздик по которому надо просто ударить волшебным молоточком, и всё сразу заработает как надо.

    Ну так-то в принципе такой гвоздик есть, называется innodb_buffer_pool_size. Но вы ведь по нему тоже пробовали стукнуть, когда "пробовали настройки"? Это же тоже важно в вопросе писать, чтобы не превращать отвечающих в гадалок на базаре
    Ответ написан
    Комментировать
  • Php 7+ умеет без библиотек открывать excel и гугл таблицы?

    Stalker_RED
    @Stalker_RED
    Нет конечно.
    у гуглотаблиц есть api, а для экселя есть PHPOffce

    Если не нужны навороты вроде формул и графиков, то и то и другое сохраняется как CSV, а для него уже есть встроенная функция fgetcsv().
    Ответ написан
    6 комментариев
  • При выборе PHP фреймворка стоит ли обращать внимания на тесты скорости?

    Sanes
    @Sanes
    Соберите проект на 2х фреймворках и сравните. Кроме скорости еще надо принять во внимание удобство и затраченное время.


    Думаю перейти на Symfony или Laravel (ибо делаю сайты для клиентов и поддерживать сайты иногда приходится уже другим людям и разбираться в чуом коде для них не самое простое дело - хотябы по затратам времени)

    Laravel. Без вариантов.
    Ответ написан
    Комментировать
  • При выборе PHP фреймворка стоит ли обращать внимания на тесты скорости?

    @balberbro
    Глупый вопрос на самом деле:

    Сейчас в пхп-мире среди фреймворков есть да выбора (Symfony/Laravel) - первый выбирают ребята покрупнее, второй выбират ребята поменьше. Есть еще Zend Framework но так в качестве поддержке легаси систем.

    Так вот: скорость работы фреймворка - бессмысленный показатель. Ибо пока идет малая нагрузка - всем плевать. Когда нагрузка подрастает - докупают железо. Если железа получается уже очень много - то делают перфоманс анализ и правки. Если уже совсем все плохо, переписывают на Go. Смотри доклады ребят на php-конференциях от Баду, Авито и так далее.

    Но все эти шаги делает максимум 1% от всех компаний, что юзает эти фреймворки, ибо 99% никогда не столкнется с такими нагрузками.

    __

    Ты лучше смотри так:

    Symfony - Москва - зп мидла 140к плюс.
    Laravel - Москва - зп мидла 120к плюс.
    1С-Битрикс - Москва - зп мидла 80к плюс.

    Собственно, как в фильме "Невероятное приключение Итальянцев в России" - Андрюша, ты хочешь заработать миллион?

    Есть есть возможность выучить Symfony и лутать 140к, зачем учить условный phalconPhp и лутать 60-80к?
    Ответ написан
    Комментировать
  • При выборе PHP фреймворка стоит ли обращать внимания на тесты скорости?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    В текущий момент поддерживаю достаточно большой проект на фалконе, который был написан до меня. Так вот, всем кто там дрочил на сишные либы фалкона, мое вам имхо, основаное на годе поддержки этого проекта:

    1) Оно мегахреново переносится и очень криво становится на свежие системы. Корме того что половина гайдов по установке устарела, но все еще лежит на оф. сайте, гайды сообщества противоречат друг-другу, 90% из них не работает, а про некоторые дистрибутивы можете просто забыть, там они работать просто не будут.

    2) Оно все работает as is и хрен ты посмотришь как работает родная вьюшка/конторллер "внутри", а доки не сказать чтобы хорошо описаны, комьюнити слабенькое, многие вещи сделаны спорно, а поправить или что-то подкрутить дело неблагодарное.

    3) Теперь про самое интересное - скорость работы. Так вот, вся это мутотень про память и прочие плюшки на нормальном сервере не ощущается вообще, то есть переходя определенный предел мощности/вооруженности сервера скорость практически сравнялась с нативом (использовался ларавел и Уии на том же сервере, по замерам - плюс-минус то же по скорости, и чуть больше по памяти (центос, 64гб оперативы, 4 проца, нжинкс, пхп 7.2). Короче выгода была на ветке пхп 5.+, сейчас его актуальность практически равна нулю.

    4) В моем случае по приходу сервер регулярно падал при "серьезной" нагрузке (20-30рпс), в чем я изначально предположил вину старых модулей фалкона, но по факту оказалось что 99% нагрузки вносили ожидания запросов к бд, некоторые из которых были по 7-15 минут, а некоторые куски кода создавали по 80+ запросов с 1 страницы, просто дозапрашивая какие-то данные для вьюшки в цикле. Предыдущий "кудесник" кормил руководство отмазками типа - "мало памяти, железо слабое, все плохо, а то бы летало...". "Магия плохого железа" закончилась после оптимизации запросов и доведения самых тяжелых до 0,5 секунды, а так же выборки всех данных в 1-2 запроса с нормальными джоинами.

    5) Основной вопрос всегда сводится к жадности - взять что-то побыстрее из софта, сэкономив на хостинге/оборудовании. И оно всегда не работает так, по ряду факторов, которые достаточно очевидны.
    Ответ написан
    5 комментариев
  • При выборе PHP фреймворка стоит ли обращать внимания на тесты скорости?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    Имхо, бесполезная метрика. Давайте разберёмся почему.
    Что нам даст данная метрика? Ничего. Бизнес-логика и сетевые издержки съедают куда больше и на их фоне производительность движка даже не заметна. А если вспомнить что проект состоит не только из кода так вообще смешно становится
    Ответ написан
    Комментировать
  • Какие есть средства мониторинга соединений nginx?

    @Sat0shi
    ИБ
    https://amplify.nginx.com/login там все что нужно 5f225bd4264d3370173548.png
    Ответ написан
    Комментировать
  • Payoneer больше не будет работать за пределами США на UpWork?

    Alex_Payoneer
    @Alex_Payoneer
    Только хочу уточнить, что вопрос решился, у всех пользователей есть доступ к их средствам.
    Ответ написан
    Комментировать
  • Как на Laravel делать приложения с формочками и CRUD операциями?

    @jazzus
    Т.е. все это размазывается по разным файлам, классам.

    Если данная концепция не устраивает нет смысла использовать Ларавел.

    Самое сложное, это то, что при любом изменении набора полей все это постоянно приходится править в разных местах.

    В IDE должна быть навигация по файлам, когда пишешь часть пути и тебе открывается список. Чтобы это работало наименования должны быть понятными и простыми.

    если для каждой модели это делать вручную, то это будет занимать кучу времени

    Кучу времени занимает поддержка велосипедов. В Ларавел новое поле добавляется за 5 минут. Миграция на добавление поля, добавить валидацию в реквест файл. Добавить инпут на фронт. Всё. Какой свой велосипед спасет от данных действий? Никакой. Везде нужно писать валидацию, добавлять поле в бд и на фронт.

    и приводить к постоянным ошибкам

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

    А какой правильный путь стоит использовать в Laravel?

    Правильный путь указан самим Ларавел. См доки. Нужно использовать Ларавел и не писать велосипеды или писать велосипеды, а Ларавел оставить в покое)
    Ответ написан
    Комментировать
  • Как на Laravel делать приложения с формочками и CRUD операциями?

    glaphire
    @glaphire
    PHP developer
    Правильный путь не завязан на фреймворк, стоит создать какое-то логическое ядро (core модуль) и на его основе создавать модули-реализацию. Можно запилить приватный ларавелевский пакет, который объединит всю логику генерации и конфигурации кода в стандартизированном виде
    Ответ написан
    Комментировать
  • Как резолвить урл?

    @andreysuha Автор вопроса
    Что то знаю
    add_action('init', 'do_rewrite');
    function do_rewrite(){
        add_rewrite_rule( '^test/(.*)/?', 'index.php?page_id=5&sell_query_string=$matches[1]', 'top' );
        add_rewrite_tag( '%sell_query_string%', '([^&]+)' );
    }
    Ответ написан
    Комментировать