Задать вопрос
  • Нужен совет опытных WEB разработчиков?

    @rPman
    Самый неправильный способ обучения - с конца. Это очень неэффективно если не бессмысленно, изучать программирование непоследовательно.

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

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

    Советую изучать с низов, самостоятельно, чтобы было понимание каждого шага, всего что происходит.
    * операционные системы, процессор и многопоточность, сети,...
    глубоко изучать это не требуется но базовые понимания нужны чтобы не получать медленное приложение только потому что не знал что каждый твой запрос в tcp это 'туда-сюда', и это медленно (десятки миллисекунд), что одновременно два человека пытающиеся что то изменить на сайте нужно разруливать чтобы не было конфликтов и т.п.
    * бакэнд и фронтэнд
    буквально что значит запрос и генерация ответа, какие бывают способы организации этого бакэнда (http rest и к примеру websocket), не понимание разницы между бакэндом и фронтэндом у новичков рождает абсурдные вопросы как из javascript изменить переменную php (и наоборот)... в чем разница между генерацией страницы на сервере и в браузере.
    * html, css,..
    верстка и дизайн, отдельный мир браузерных стандартов, исторических наслоений,. когда стоит применять фреймы, почему шрифты по разному выглядят, разные устройства и размеры экранов, разные способы взаимодействия (сенсорный экран, мышь, клавиатура)...
    * базы данных
    еще более огромный мир атомарных транзакций, индексов, нормальных форм и прочего
    * девопс
    без умения выбрать инструмент, настроить тулчейны, среду разработки, среду исполнения (веб сервер), настроить бакапы и прочее пытаться что то разрабатывать это как в слепую гулять по лесу, будешь постоянно на ветки натыкаться
    ...
    это я еще про системную аналитику не сказал, обычно прежде чем что то создавать, нужно продумать как это все делать, что такое технический долг и т.п., а еще есть тестирование, обслуживание, работа с отказами (сервер сдох, база упала, как все восстановить), обновление на живую и прочие веселья

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

    @Drno
    Это вопрос из области психологии и самомотивации.
    В первую очередь тебе должно быть это ИНТЕРЕСНО. Если этого нет - любая работа даже за овердохера денег будет каторгой.

    Вариант два. Ты понимаешь отсутствие перспектив, понимаешь что тебе надо содержать себя, жену, кошку, может жену-кошку, и кидаешься это изучать и искать вакансию.

    Про самозванца. Начни. поднимать тестовое задание на ubuntu server.
    Ответ написан
    3 комментария
  • Генератор случайного числа с отправкой на почту?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    У вас вопрос буквально уровня
    "Надо в понедельник пойти на алгебру, во вторник на литературу, а по пятницам на обж. Может кто сталкивался с таким???"
    Никаких "вариантов" тут встречать не надо. Если человек в принципе умеет ходить, и знает что такое алгебра с литературой.

    Вы вообще в состоянии понять, что это три разных действия, а не одно?
    Сгенерировать число, отправить письмо, и наладить регулярный запуск. Все три совершенно примитивные, и по каждому есть миллиарды примеров в интернете.
    Какая проблема взять пример для каждого и соединить?
    Ответ написан
    Комментировать
  • Как лучше аутентифициоровать пользователя в React js?

    @onekrugoikov
    Как лучше понятие растяжимое =)

    Рекомендую использовать все таки JWT авторизацию:
    1) Отправляем на сервер email и пароль.
    2) На сервере идентифицируем пользователя и генерируем токен в который зашиваем id пользака.
    3) В Response возвращаем какие то данные и токен и сохраняем его в куки (ВНИМАНИЕ! Не в localstorage, а именно в куки - так безопасней).
    4) На клиенте зашиваем токен в заголовок: Authorization: Bearer <TOKEN>

    В случае логаута:
    1) Удаляем токен из куки
    2) Редиректим пользака на страницу авторизации

    Я в большинстве своих приложений вообще использую Kerberos.
    Ответ написан
    1 комментарий
  • Как лучше работать в postgresql и php с временными зонами?

    @tukreb
    Лучше работать через DateTimeImmutable. А от DateTimeизбавляться где возможно.
    Для PostgreSQL DateTimeImmutable это - TIMESTAMP(0) WITHOUT TIME ZONE
    https://stackoverflow.com/questions/67536245/datet...
    https://github.com/symfony/symfony/issues/47580

    Вы всегда сможете прибавить к времени часовой пояс, там где вам нужно.
    Ответ написан
    Комментировать
  • Как происходит аутентификация в Symfony на примере из документации?

    @tukreb
    Под капотом всё происходит, перехватываются события и симофни в своих компонентах всё это делает.
    Но многие предпочитают реализовать свои проверки, чтобы иметь больше контроля. И у симфони есть для этого инструкция.
    https://symfony.com/doc/current/security/custom_au...
    https://symfony.com/doc/current/security/user_chec...
    Вы вообще можете реализовать всё сами, просто прочитай документацию там всё расписано.
    Ответ написан
    4 комментария
  • Сделать Entity по имеющейся уже таблице?

    @tukreb
    Это делает депрекейтет команда:
    php bin/console doctrine:mapping:import "App\EntityFromDB" annotation --path=src/EntityFromDB

    https://symfony.com/doc/current/doctrine/reverse_e...

    Почему депрекейтет? Да, потому что она не может покрыть все случае, а поддерживать никто её не хочет.
    Даже если вы создадите по ней сущности, вам придётся всё равно перепахать их все, особенно если у вас всё на атрибутах, т.к она поддерживает только аннотации.

    Запускать миграции нужно всегда. Все изменения БД в современном мире идут ТОЛЬКО через миграции.

    П.С Почему люди предпочитаю сначала код, потом бд, можете почитать здесь :) https://elisdn.ru/blog/104/domain-entities-modelling
    Ответ написан
    4 комментария
  • Сделать Entity по имеющейся уже таблице?

    doctrine:mapping:import, но допиливать вручную все равно придется
    Ответ написан
    Комментировать
  • Почему в Битрикс так себя ведет блок Услуги?

    Liatano
    @Liatano
    1. Что значит дублируется? где?
    2. Скорее всего используются включаемые области/файлы в подвале или шапке. В зависимости от ленивости и прямоты рук может быть реализовано по-разному. Например может просто проверяться,что страница "главная" и вставляться файл, может использоваться компонент bitrix:main.include, тогда поиск кода зависит от параметра "AREA_FILE_SHOW"(file,page,section). Еще стоит проверить php файлы,которые валяются рядом с index.php, может натолкнетесь на что-то интересное
    3.Скорее всего используются компоненты аспро,а они знают,какие настройки стоят в модуле. если реакции нет - значит компоненты разработчик пихнул сам либо что-то сломал.
    Ответ написан
    3 комментария
  • По какому принципу работает SSO и распределения прав (на примере keycloak)?

    rukbrook
    @rukbrook
    1. да, вам нужно отправить запрос, содержащий реалм, идентификатор клиента в этом реалме и данные достаточные для получения токена (к примеру grant_type="password", username, password, client_secret)
    2. да, он получает access_token и refresh_token. Вы можете декодировать токен и посмотреть что в нем храниться и вытащить данные которые вам нужны к примеру в нем хранятся роли и username, при этом можно положить туда дополнительную инфу
    3. проверка разрешений на беке, для простоты ищете что-то на подобии spring-security, но для php, который будет проверять ваш токен и роли в нем, и в зависимости от роли будете отдавать либо 200 либо 401 на запрос к которому у пользователя нет доступа
    4. если вам не нужно связать какие-то данные вашего приложения с идентификатором пользователя в кейклоке, то не нужно
    Ответ написан
    6 комментариев
  • Можно ли текстовую переменную хранить в таблице Mysql?

    @galaxy
    Пожалуйста, не нужно меня посылать читать мануалы PHP
    похоже, что нужно, но ок, не буду.
    Вам знакома конструкция var_dump? Попробуйте сделать var_dump($date);
    может, появятся идеи.
    spoiler
    Если нет, все-таки почитайте мануал, там есть примеры
    Ответ написан
    3 комментария
  • Как работает timezone в php и postgres?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    У браузера есть доступ к локальной таймзоне. Следовательно, все даты, находящиеся на сайте, он способен прозрачно отобразить с нужным часовым поясом.

    А давать пользователям рулить тем, что они записывают в базу, не стоит - всегда лучше подпереть самостоятельно.
    Ответ написан
    Комментировать
  • Как работает timezone в php и postgres?

    @galaxy
    Ну для начала пользователь из Владивостока должен как-то сообщить серверу о своей зоне (например, выставив ее в настройках своего профиля).
    Далее, PHP должно распарсить строку с датой (например, с помощью DateTime::createFromFormat), причем использовать зону, настроенную пользователем. Полученную дату (объект DateTime) можно вывести пользователю дату/время в любой временной зоне, сделав DateTime::setTimezone() и DateTime::format().

    БД работает похожим образом: если используется тип TIMESTAMP WITH TIMEZONE, то физически в колонке хранится время в UTC. Клиент (в данном случае приложение PHP) при подключении к БД задает желаемую зону (или не задает, тогда используется зона по умолчанию из настроек сервера БД). В этой зоне клиенту выдаются даты. При желании поле с меткой времени можно перевести в другую зону через констукцию datetime_value AT TIME ZONE zone.

    По идее, БД и PHP у вас используют одну, общую для сервера, зону, и менять это обычно смысла нет. Ваша задача - правильно распарсить даты, присылаемые пользователем (подставив его предпочитаемую зону), а также выводить даты пользователю в его зоне. Проще всего один раз выставить эту зону через date_default_timezone_set()
    Ответ написан
    1 комментарий
  • Как правильно устанавливать linux с двумя жёсткими дисками?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    как люди любят себе усложнять жизнь )
    lvm, btrfs, zfs, рейды, 100500 разделов ... брр
    ставьте на nvme одни(/) раздел (или два[+ /boot] если у вас UEFI), не отделяя хомяк в отдельный раздел
    а на ssd можно будет скидывать тяжелые файлы - фильмы, музыка, виртуальные машины и др., а также бекап важных данных с nvme
    По поводу рут и Хоум на nvme - это же очень много для системы и кофигов. 90% будет пустовать на этом диске.

    не страшно, во первых, хомяк со временем растёт, во вторых чем больше свободного места тем дольше прослужит ваш nvme, так как данные не перезаписываются сразу по месту как в hdd, а "равномерно дописываются" на свободное место.
    В общем если кратко, как лучше спроектировать дисковое пространство с точки зрения перспективы безгеморойной переустановки в будущем?

    легко, копируете папку с вашим пользователем(что в хомяке) на ssd, накатываете на nvme новую систему по тому же принципу, копируете папку пользователя обратно, создаёте пользователя указав эту папку как его хом попутно при необходимости рекурсивно меняем права(chown -R ...) в данной папке на нужные.
    ну и вроде всё.

    п.с.
    вместе с диском докупил ещё планку памяти

    раз ОЗУ у вас с избытком то чтобы меньше мучать диск можно в fstab добавить параметр commit=60 что позволит системе производить запись на диск раз в минуту держа эти данные в памяти, в принципе можно и больше, у себя например довел до двух минут и вроде пока нормально.
    Ответ написан
    5 комментариев
  • Как правильно устанавливать linux с двумя жёсткими дисками?

    vaut
    @vaut
    Я бы поставил и рут и хоум на NVME, а SSD использовал для отдельных тяжелых вещей.
    Реализовал бы это так: Не переустанавливал систему, а просто перенес все на NVME. (грузимся с LIVE дистра, размечаем разделы, копируем, правим fstab)
    Проверив что все у нас заработало на NVME форматируем SSD и монтирую его куда нибудь в /mnt/
    На SSD создаем каталог storage и этот каталог байндом замонтировал в /home/user/storage/
    Добавляем эти два монтирования в fstab.
    ВСЕ. Теперь в хоуме у нас каталог storage в который можно сохранять всякий хлам. При необходимости добавить еще другие каталоги и замонтировать их в другие места.

    Второй вариант собрать их в первый рейд с помощью LVM. Но, скорость доступа будет непредсказуемая и выход из строя одного диска убьет все данные.

    Третий вариант рейд с помощью btrfs или zfs. Имхо чуть лучше чем LVM, но проблемы от рейда те же самые.
    Ответ написан
    5 комментариев
  • Стоит ли учить Jquery в 2021?

    SagePtr
    @SagePtr
    Еда - это святое
    Учить - нет, просто ознакомиться вкратце, чтобы понимать, если попадётся на глаза код с использованием этой библиотеки
    Ответ написан
    Комментировать
  • Где найти готовый каталог товаров?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    У prestashop есть сэмпвые базы есть ещё база adventureworks
    Ответ написан
    3 комментария
  • Где найти готовый каталог товаров?

    alexyarik
    @alexyarik
    Битрикс разработчик
    Каталоги лучше искать в формате XML, но у многих они закрыты для партнёров
    www.bbk.ru/about_us/partners/xml_catalog
    Автоматический перевод для локализации на нужные языки это уже через АПИ сервисов Яндекс или Гугл
    Ответ написан
    3 комментария