• Как составить рейтинг по результатам поединков?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Всем присваиваете стартовый Эло, например, 1200 (как это делает chess.com)
    Далее, начинаете просчитывать рейтинг игроков, выбирая партии в хронологическом порядке.
    Ответ написан
    4 комментария
  • Как структурировать проект на Symfony по принципу package-by-feature?

    myks92
    @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    Архитектура вообще не относится никак к фреймворку.

    Из примеров могу посоветовать пример проекта Дмитрия Елисеева на slim. И ещё есть доклад от Валентина Удальцова про архитектуру на Symfony.

    1. Kernel хранить в src, если он один.
    2. Миграции можно src/Data/Migration Или src/Migration
    3. Тесты, если общие (функциональные), то в /tests, а если unit, то в папку, где фича src/Feature/Test

    Из вашей структуры я бы вынес Console и Controllers в одну папку на уровне с Feature.

    Так же сервисы я бы тоже не делал всё в одном services.yaml, а выносил бы в config/services/feature.yaml Или в каждую фичу.
    Ответ написан
  • В каком хуке лучше всего подгружать данные с помощью axios?

    @AndrewRusinas
    Официальная документация говорит, что mounted(). Тоже все время использую там, никаких проблем)
    Пруф

    Что касается подгрузки инфы при переходе по маршрутам, но без смены компонента - используйте:
    watch: {
       '$route' (from, to) {
          if (from.path !== to.path) { // или любое другое условие
               axios.getSomethingFromBackend()
          }
       }
    }


    Код может быть неточен, но суть в том, чтобы следить за изменением роута и вызывать необходимые действия, так как при переходах вида from /blog/post_id to /blog/another_post_id хуки не срабатывают.
    Ответ написан
    Комментировать
  • Сложный и интересный проект для новичка?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    ## Анонимный чат с темами для обсуждения деликатных офисных проблем
    Иногда хочется обсудить что-то с коллегами в офисе, но не хочется смущать их или показывать лишнюю инициативу.
    Например кто-то не смывает в туалете или слишком громко орёт и сам того не замечает. Может быть кто-то слишком интенсивно пользуется парфюмом.
    - Анонимность
    - Постоянная ссылка на чат, тему или дерево чатов
    - ссылки в виде QR-кодов
    - голосовалка
    - закрепленные посты

    ## Сайт checklist
    Веб-сервис и мобильное приложение для краудсорсинга чеклистов для всего: зарегать ИП, получить визу, что делать при ДТП, как влезть в ипотеку, как вылезть из неё, чем заняться с ребенком на выходных (N-ле

    - Коллекция чек-листов снабженных тегами, доступная для краудсорсинга.
    - Краудфандинг составления и поддержки нового листа.
    - Фильтрация чек-листов.
    - Фильтрация пунктов.
    - Тегирование пунктов.
    - Графовые алгоритм обхода чек-листа.
    - Мастер обхода чек-листа.
    - Отчет по чек-листу.
    - Вложенные чеклисты, гиперссылки между разными листами.
    - Параметризация.
    - Экспертная система, логические связи (расширенный режим).

    Примеры:
    - Что делать при ДТП
    - Открыть ИП
    - Осмотр авто при покупке (подветки для разных конкретных моделей)
    - Первая помощь при...
    - Диагностика инсульта
    - Зомби-акопалипсис: как приготовиться
    - Атомный взрыв неподалёку - что делать
    - Планетарная катастрофа - как выживать
    - Поход выходного дня - что взять
    - Подготовка авто к поездке
    - Путешествие: Алжир (виза, прививки, документы, отели, транспорт)
    - Как влезть в ипотеку
    - Как вылезть из ипотеки
    - Как быстро заработать (во все тяжкие)
    - Покупка квартиры (на что обратить внимание)
    - Самостоятельное строительство дома (общий план)
    - Чем заняться с ребёнком N-лет
    - Как отметить новый год
    - Что интересного в районе <пос. Майский>
    - Номера телефонов и документы в автомобиле

    ## Эротический краудфандинг
    Интернет ресурс, где девушки могут делать крауд-фандинговые кампании

    - Крауд-фандинговая кампания по сбору средств на проект
    - оформление проекта (доказательство личности в виде фото с сигном, некое обещание, порог недовольных результатом, целевая сумма)
    - посетители анонимно финансируют проект в биткоинах
    - если кол-во лайков среди профинансировавших (в соответствии с весами) > порогового, учредитель получает сумму за вычетом комиссии
    - если кол-во лайков не превысило порог, сумма возвращается обратно инвесторам

    ## Простой открытый сервис для обмена сообщениями
    - HTTP API, Web-sockets
    - p2p rtsp
    - опциональное end-to-end шифрование
    - хранение истории на клиентах
    - возможность использования нескольких серверов
    - возможность использования альтруистичных клиентов для проксирования трафика p2p
    - поиск узлов на основе блокчейн технологий и DHT таблиц

    ## Онлайн-журнал путешествия
    - публикация трека в реальном времени
    - комментарии путешественника и фолловеров
    - стримы (аудио, видео, фото)
    - отложенная загрузка
    - журнал(расходы, чек-поинты, расписания, цены, погода)
    - FAQ
    - голосовалка

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

    DevMan
    @DevMan
    много чего не так: только в первой строке минимум две ошибки, дальше ковырять неохота.
    читайте про экранирование строк.

    """ – ошибка, должно быть "\"" или '"'
    "\" – ошибка, должно быть "\\"
    и все такое
    Ответ написан
    1 комментарий
  • Почему при считывании множественного свойства элемент дублируется?

    Tomio
    @Tomio
    backend developer (python, php)
    Если я правильно помню, то вам нужно изменить место хранения свойств, перенести их в отдельную таблицу. Тогда с множественными свойствами проблем не будет.

    5d8361af3ff1e870356202.png
    Ответ написан
    1 комментарий
  • Корректно ли так определять маршруты?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    Зачем отдельно его задавать если вы Route::resource используете который всё это внутри себя поддерживает?
    Реализуйте в рамках ресурса.

    Потому что роут будет ждать метод DELETE, а не GET.

    Поэтому я создал маршрут delete таким образом:

    Route::get('/admin/categories/{id}/delete'
    И где тут у вас метод delete?
    Постфикс /delete никакой не нужен, потому что метод другой будет, GET /admin/categories/{id} и DELETE /admin/categories/{id} это разные роуты и без дополнительных разделений.

    Route::delete('/admin/categories/{id}'
    вот метод delete
    Ответ написан
    2 комментария
  • Как правильно сделать живой поиск?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    Для работы с полями ввода есть набор событий:
    1. focus - пользователь поставил фокус на поле ввода.
    2. blur - пользователь убрал фокус с элемента вода.
    3. input - пользователь как-то что-то ввел. Это лучше, чем keyup, ибо не надо проверки keyCode, второе потому что пользователь может в поле вставить текст, что тогда будет с Вашим keyUp? Событие input срабатывает каждый раз, как пользователь сделал изменение в поле ввода.
    4. change - пользователь ввел данные и убрал фокус с поля ввода, то есть это input + blur. Событие происходит не так часто, как input, но и не заставляет проверять value на изменение, как это придется делать при blur.
    5. submit - срабатывает на всей форме, при попытке отправить данные, в данной задаче скорее не интересное событие.

    Для живого поиска логично использовать input, по которому надо отправить текущее value через ajax на сервер и далее ответ куда-то распечатать. Вопрос в другом, ведь событие срабатывает довольно часто, и кто-то печатает так быстро, что и запрос-ответ не успеет, поэтому логично сделать тут debounce с задержкой в приблизительно 300мс, чтобы отправка/получение сработало когда пользователь притормозил в наборе текста или вообще прекратил ввод.
    Ответ написан
    Комментировать
  • Как хранить атрибуты "товара" в laravel, если есть общие и уникальные атрибуты?

    @EvgeniiR
    https://github.com/EvgeniiR
    Вообще, то что вы сделали называется EAV(Entity, Attribute, Value), красивее и быстрее можно делать используя json - https://coussej.github.io/2016/01/14/Replacing-EAV...

    Из-за общих полей проблемы вряд ли возникнут, рано пока оптимизировать.
    Ответ написан
    2 комментария
  • Как проверить права пользователя в Laravel?

    fomvasss
    @fomvasss
    PHP developer
    Я для подобной задачи поступал следующим образом:
    создавал scope (можно даже глобальный) который можно подключить в методе boot класса модели. Например:
    //...
    class Order extends Model
    {
        protected static function boot()
        {
            parent::boot();
            static::addGlobalScope('owner', function (Builder $builder) {
                      $user = Auth::user();
                      if (! $user->isAdmin()) {
                            $builder->where('user_id', $user->id);
                      }
            });
        }
    }

    Теперь при каждом обращении к order-ам, будет проверятся условие является ли юзер админом, если нет то добавится к запросу условие $builder->where('user_id', $user->id) .
    Не совсем хорошо использовать такую логику в моделях, но мне было удобно, и задачу решало,+ работает при обновлении, удалении, просмотре одного, просмотре списка и нечего дополнительно писать не надо.
    Ответ написан
    8 комментариев
  • Почему routes путает контроллеры?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Порядок роутов поменяй, а потом почитай документацию и подумай.
    Ответ написан
    Комментировать
  • Как обновить записи в промежуточной таблице, если данные изменились?

    be_a_dancer
    @be_a_dancer
    Backend/Fullstack Developer
    У laravel есть отличный метод sync. Рекомендую внимательно ознакамливаться с документацией, прежде чем задавать подобные вопросы.

    Поиск (ctrl + f) по слову sync(
    Ответ написан
    3 комментария
  • Как сделать проверку, что а == 1 или 2 или 3 или 4 итд..?

    uDenX
    @uDenX
    PHP Developer
    $packageId = (int) $key["PackageId"];
    
    if ($packageId === 1 || $packageId === 2) {
    } else if ($packageId === 3 || $packageId === 4 ) {
    }

    По хорошему надо вынести эти магические числа в массив и назвать его так, что бы было понятно для чего они и использовать in_array, например:
    $goodList = [1, 2, 3];
    $badList = [4, 5, 6];
    
    if (in_array($key["PackageId"], $goodList)) {
    
    } else if (in_array($key["PackageId"], $badList)) {
    
    }
    Ответ написан
    Комментировать
  • Изучение golang[курсы]?

    Color
    @Color
    Golang SWE, Cloud & DevOps
    Как правильно отметили комментаторы выше, есть замечательный курс от МРГ, там две части и скоро должна появиться третья. Он условно-бесплатный (можно платить и пройти экзамен на сертификат). Очень годный, там рассматриваются прямо практические задачи и их решение. Подойдет для среднего уровня разработчика, хотя и новичку можно попробовать. По каждой теме есть задания, очень хорошие.
    Первая часть
    Вторая часть

    Также могу порекомендовать порешать задачки на hackerrank.com и codewars.com.

    Посмотрите тур по го - но там совсем базовые вещи. Есть и на русском, кажется.

    Также неплохо будет почитать про бест праксис - это хорошо изложено здесь, но много.
    Также сразу учитесь правильной организации файлов проекта здесь.

    Ну и в целом читайте и смотрите все, что попадется под руку, поможет понять Go-way
    Ответ написан
    Комментировать
  • Проектирование структуры приложений для начинающего?

    @EvgeniiR
    https://github.com/EvgeniiR
    Роберт Мартин, "Чистая Архитектура", "Чистый код", "Идеальный программист"
    Макконнелл, "Совершенный код".

    Далее по ситуации, Фаулер, Эванс, Кент Бек и т.п.

    Заменять чтение книг собиранием по крупицам информации в интернете ни в коем случае не советую.
    Ответ написан
    28 комментариев
  • Как правильно сделать выборку из БД и настроить отношения в Laravel?

    AnatolTh
    @AnatolTh
    Full Stack Developer
    Странное решение вы выбрали. Не лучше ли создать поле в image_region с порядковым номером?

    UPD
    ->orderBy('image_region.id', 'asc')
    что бы получилось
    select `images`.*, `image_region`.`region_id` as `pivot_region_id`, `image_region`.`image_id` as `pivot_image_id` from `images` inner join `image_region` on `images`.`id` = `image_region`.`image_id` where `image_region`.`region_id` = 1 order by `image_region`.`id` ASC
    Ответ написан
    5 комментариев
  • Как удалить невидимые пробелы из строки в php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В пресловутом BOM, конечно.

    При любых проблемах с "невидимыми" символами надо использовать urlencode()

    после того как на месте невидимых символов выведет что-то вроде %EF%BB%BF, тупо заменить проценты на слеши, и вырезать из начала строки

    if(substr($str, 0, 3) == "\xEF\xBB\xBF") {
        $str = substr($str, 3);
    }
    Ответ написан
    2 комментария
  • Где научиться алгоритмам?

    @asd111
    aliev.me/runestone тут на русском и для питона
    Ответ написан
    Комментировать
  • Где научиться алгоритмам?

    @zzzevaka
    Кнут - это, конечно, замечательно, но явно не "понятнее".

    Все зависит от того, какой уровень вам нужен.

    Я бы рекомендовал начать с этого
    aliev.me/runestone
    Ответ написан
    Комментировать