Задать вопрос
  • Что лучше использовать веб-разработчику: Linux Mint или Ubuntu?

    Денис Плюс, можно, только нормальных аналогов Фотошопа для Линукс нет. Есть Gimp, но он несколько своеобразный.
  • Как лучше сделать модель истории в Django?

    Вообще фильтрация, как я понимаю, это get-запросы, поэтому, по идее, все они есть в access.log Nginx. Можно его распарсить его, по идее, и получить нужную информацию оттуда - и анализировать.
  • Как правильно делать оптимизацию чтобы сайт моментально загружался?

    Василий, конкретных статей не найду, но, думаю, тебе стоит гуглить в сторону "отложенная загрузка js", "асинхронная загрузка css" и т.п. То есть при загрузке страницы у тебя изначально должны подгружаться те js и css файлы, которые минимальны для отображения страницы (чтобы она быстро открылась). А дальше уже все остальные (см. атрибут defer). То есть, грубо говоря:
    <script src="main.js"></script> - пока не загрузится main.js, юзер не может взаимодействовать с сайтом
    <script defer src="extra.js"></script> - браузер скачает extra.js, не блокируя обработку страницы, потому что указан defer.
  • Как получить часть ссылки?

    user49981, поправил - глянь (scheme надо перед vk.com, а path у тебя отсутствует сам по себе):
    <?php
    
    $url = 'https://vk.com';
    $parsedUrl = parse_url($url);
    print_r($parsedUrl);
    echo $parsedUrl['host'] . $parsedUrl['path']; 
    echo "\n";
    echo $parsedUrl['host'] . $parsedUrl['path'] . '?' . $parsedUrl['query'];
  • Как написать функцию выделения правильного ответа?

    N7EIght, ну, лично мне не нравится, например, портянка из ифаков. Если вопросов будет больше - еще добавишь нужное количество проверок? Да, я понимаю, что у тебя у элементов разные классы: trueTwoQuest, trueThreeQuest и т.д., но можно им сделать общий класс, добавить каждому какой-то data-атрибут (это чисто пример) и циклом пройтись, выбрав все эти элементы по общему классу. Если значение дата-атрибута равно чему-то там, то добавлять элементу класс, у которого background-color: red (например). А не проверять какие-то пути к картинкам с "../" причем, что как бы уже "попахивает" дурно.

    Добавление каких-то кусков html в виде строк - тоже такой себе подход. Я понимаю, что многие так делают, но лично на мой взгляд, это уродство. Есть шаблонизаторы, например, позволяющие это дело как-то более приятно реализовать.

    br делать для отступа можно, но я бы сделал лучше css-класс с нужным margin-bottom.

    $('.checkAnswer' + i).val() ты можешь сделать один раз где-то перед всеми проверками и добавить это значение в переменную, а потом ссылаться на нее. Это будет выглядеть приятнее, чем в каждый ифак пихать $('.checkAnswer' + i).val().
  • Почему когда ввожу r = requests.get(f'{BASE_URL}getMe') вылетает ошибка?

    MikhailShum, тогда советую с помощью Postman подергать это апи, а потом то же самое повторить в коде.
  • Как использовать schema.org в React+Typescript?

    miliko mikoyan, я не фронтенд-разработчик вообще, поэтому могу ошибаться, но, мне кажется, дело в том, что h1 в react - это компонент, а не готовый html-тег с одноименным названием. А у этого компонента пропсы называются именно так. Это решили те разработчики, которые эти компоненты делали, следуя определенным соглашениям в именовании пропсов.
  • Как получить доступ к веб приложению которое я развернул в Docker?

    driverx18, в одном из них (rabbitmq:3-management) включен плагин management, который тебе предоставляет гуй, а в rabbitmq:3 его нет. Rabbitmq сам по себе - это ж просто брокер-сообщений, а гуй - это просто примочка к нему. Он может и без гуя нормально работать - интерфейс нужен просто для удобства. Кому-то он нужен, а кому-то нет - поэтому и две версии: с management и без.
  • Как получить доступ к веб приложению которое я развернул в Docker?

    Но вообще, если ты решил на проде Докер юзать, то хочу тебя от этого предостеречь. Пусть меня камнями закидают, но это мое личное мнение. Он не стабилен, я считаю. Он может самопроизвольно класть тебе сеть (я с этим сталкивался), сам он жрет достаточно много оперативки. Цена за удобство, я считаю, слишком высока.
  • Как получить доступ к веб приложению которое я развернул в Docker?

    driverx18, именно так. Ты в docker-compose.yml прямо в свойстве ports указываешь соответствие порта снаружи и внутри контейнера.

    Да, одной командой запустишь. sudo docker-compose up -d или sudo docker-compose -f ./custom-docker-compose-name.yml up -d, если у тебя этот файл конфигурации лежит либо в другом месте, либо по-другому называется. Ключ -d - это как бы в режиме демона. Если тебе внутри контейнера надо обращаться к другому контейнеру, то его хостом является имя сервиса. А порт указываешь внутренний (не тот, который ты через ports снаружи задал, грубо говоря)
  • Сортировка html блоков JS?

    Сергей, смотря на чем ты запилишь этот скрипт. Если Питон - бери beautiful soup, если php, попробуй самую простую (на мой взгляд) старую библиотеку phpquery. Это ж тебе надо один раз сделать только - перегонишь в отсортированный вид, пересохранишь свой шаблон и все. Я так понял, что эти 500 элементов у тебя статичны, не добавляются, не меняются - и хранятся просто в шаблоне.

    P.s. делать эту сортировку на фронтенде средствами js после загрузки страницы, на мой взгляд, костыль, потому что юзер может замечать, как блок моргает (сортируется и перезаписывается) - нафиг это надо.
  • SEO оптимизация изображений?

    Это ж все равно не руками делается, а автоматически. Поэтому на работе контентщиков это вообще никак не отражается. Ничего не мешает при сохранении брать реальное имя загружаемого файла и дописывать к нему некую уникальную последовательность символов перед расширением (или нумерацию, не руками же).
  • Какой js фреймворк лучше выбрать для большого проекта?

    Павел, ssr (server side rendering). Для React для этих целей есть NextJS (для других фреймворков - не знаю). Но можно и самостоятельно реализовать это, хотя я больше склоняюсь к готовым решениям.
  • Ошибка в конечном теге шаблона?

    Он походу туда (на 22 строку) указывает при любой ошибке в шаблонах. Выше вижу у тебя {% endblock main_sections%} - попробуй тоже на {% endblock %} поменять.
  • Ошибка в конечном теге шаблона?

    Дмитрий, попробуй вместо {% endblock aside_news_sections%} просто {% endblock %}
  • Flask or Django & React\Redux - хорошая практика?

    sim3x,
    Я скорее скажу, что из-за такого оверинжиниринга и замедление написания кода проект прикроют сегодня, потому как вчера не было написано и строчки кода для решения бизнесс-задач


    Следуя такой логике, можно и тесты не писать, потому что это отнимает время и не решает бизнес-задачи. Тесты - это технический долг, как и продуманная архитектура. Использование шаблонов проектирования не является никаким образом оверинжинирингом и не является какой-либо преждевременной оптимизацией или чем-то в том духе. Следуя Вашей логике, введение уровней абстракции придумали для дураков, которые занимаются разработкой ради разработки. В данном случае использование слоя сервисов решает вполне конкретную задачу: избавиться от толстых моделей.

    Потом в отдельный файл с функциями


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

    мускул не используется никогда. Редис не используется для перманентного хранения чего-либо


    Я ж это написал в качестве примера, что специально подчеркнул. Можно заменить "Редис" в этом высказывании на любое хранилище любого вида.
  • Flask or Django & React\Redux - хорошая практика?

    sim3x,
    Когда начинают добавлять паттерны поверх MVT

    я не предлагал это (entity - repository - service - controller) делать поверх джанговского шаблона проектирования. В случае с Django я предложил лишь добавить слой сервисов, чтобы избежать в проектах на ней разрастания моделей, в которых хранить бизнес-логику, на мой взгляд не логично. От "толстых моделей" во многих проектах стремятся уходить - и возникает логичный вопрос, куда в таком случае переносить бизнес-логику. Потому что со временем модели меньше не становятся - и копаться в файлах с тысячами строк занятие не из приятных. Одно дело, когда какие-то геттеры типа __str__ в модель пихают - еще понятно, но бизнес-логику, которая может взаимодействовать с другими моделями, выполнять обращения к сторонним сервисам, работать с кешем и т.п. - это странно. Потому что в таком случае "простота" сомнительна. Тем более, что в случае с тестированием сервисов мокать придется явно меньше, чем в случае со здоровенными методами модели (где в одном методе нередко и sql-запросы, и http-отстуки куда-либо намешаны). Да, можно и модели большие методы дробить на более мелкие и тестить их отдельно, но так ли уж имеет смысл их тогда в модели держать?

    А зачем нам отвязываться от ОРМ, если неизбежно произойдет построение параллельного апи к ОРМ, которое будет дублировать ОРМ


    Я так понял, речь о репозиториях? Если да, то это шаблон проектирования, нужный для того, чтобы скрыть источник получения данных. Нужно, чтобы была возможность легко при необходимости переключиться на другой источник данных (не только база данных SQL, а совершенно любой). Сегодня у тебя mysql используется для хранения списка товаров интернет магаза, а завтра приперло redis для этих же целей использовать (ну, чисто для примера). В случае, когда у тебя есть репозитории, достаточно запилить новый класс, реализующий те же методы, что и старый репозиторий, покрыть тестами - и все. В случае без репозиториев потребуются гораздо более серьезные правки. Завтра скажут - а давай обратно на MySQL, грубо говоря - и ты легко переключился на прошлый репозиторий. Если без репозиториев, то будет тяжело. Да и просто наличие репозиториев тебе позволяет поменять одну ORM-ку на другую. Хотя конкретно в случае с Django это вообще не имеет смысла, потому что ORM-ка там вколочена намертво.
  • Flask or Django & React\Redux - хорошая практика?

    sim3x, KISS - так а где ненужная сложность? Точнее, где лежит граница между нормальной архитектурой и излишней сложностью? Кто-то сайты вообще в одном файле лепит на пхп, смешивая php, html, запросы к базе и верстку и утверждает, что главное - простота.

    "а зачем?" - чтобы проект можно было поддерживать, развивать, покрывать тестами и чтобы из глаз не текла кровь))