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

    zavoloklom
    @zavoloklom
    Software Engineering Manager
    Стилизовать нативное окно подписки браузера невозможно.

    Однако вы можете сделать собственное окно подписки (свестав и стилизовав его по своему усмотрению) и затем, с помощью Notifications API вызывать нативное окно подписки.

    По такой схеме работают многие коммерческие сервисы пуш-уведомлений.
    Ответ написан
    2 комментария
  • Как найти ментора(наставника)?

    inavo
    @inavo
    Ментор нужен если вы уже что-то умеете, если только учите язык, то лучше читайте книги и походите на курсы.
    Ответ написан
    Комментировать
  • Как найти ментора(наставника)?

    notiv-nt
    @notiv-nt
    Как ваше ничего? Да, моё тоже
    найти человека который хорошо разбирается в php и работает где угодно лишь бы не на фрилансе, договориться с ним, возможно и за деньги
    Ответ написан
    Комментировать
  • Как сделать форму обратной связи на html сайте?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Протокол mailto: (линк) и параметры:
    • subject – тема письма;
    • body – текст письма;
    • cc – копия письма;
    • bcc – скрытая копия письма;

    2. Google Forms
    3. Свой/сторонний обработчик форм.
    Ответ написан
    6 комментариев
  • Как делать сложные запросы используя репозитории и объединение разных таблиц?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    решением этой несложной задачки.

    Уважаю такой оптимизм.

    Проблема эта не нова. Называется она object-relational impedance mismatch и очень многие считают её в принципе нерешаемой, сравнивая её с проигранной США войной во Вьетнаме.
    Так что можно надеяться на что угодно, только не на простое решение. Но сначала надо проблему осознать. Что отображение объектов на реляционную базу, которое называется object-relational mapping, сокращённо ORM, никогда не бывает простым.

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

    К примеру, "нерешаемость" проблемы с impedance mismatch относится к попыткам сделать универсальный ORM, который на вход получает имя любого класса, а на выходе коллекцию объектов. Про такой вариант можно действительно забыть (привет, элоквент-элоквент - и в продакшен!). Но вот полуавтоматическое решение вполне можно накостылить. Главное всегда помнить о проблеме, и как только автоматический маппинг перестаёт работать - тут же от него оказываться в пользу ручного колупания с запросами. Главное этого не бояться и не загонять себя в клетку словами "репозиторий", "один объект-одна таблица" и пр. У тебя есть задача - инстанцировать объект или коллекци объектов из БД. Окей, ты пишешь методы, которые это делают оптимальным способом, не важно - одна там таблица используется, 10 или еще плюс 2 кэша и носкл датабаза в придачу.
    Надо тебе сохранить объект или коллекци объектов в БД? Окей, пишешь метод, коорый делает это оптимальным способом. Да, это куча черной работы. Но зато у тебя будет чистая доменная логика (которая вообще никакого отношения к базе данных или "репозиториям" не имеет).

    Отдельно прекламирую Cycle ORM. Сам я ненастоящий сварщик, но взрослые дядьки говорят что она лучше всего подходит для нормально реализованного маппинга объектов на БД. Лучше чем Доктрина или прости-господи Элоквент. С нетерпением жду доклада автора на ПХПРаша.
    Ответ написан
    1 комментарий
  • Из-за чего может падать соединение MySQL с большим количеством одновременных подключений?

    2ord
    @2ord
    Для начала Оптимальная настройка Mysql
    Нужно знать какая нагрузка на сервер: кол-во операций чтения и записи в сек. Для Mysql может не хватать ресурсов машины.
    И далее https://ruhighload.com/mysql
    Вообще, соединения держать нужно как можно меньше времени и стоит проверить как использовать пул соединений в ORM. Стоит провести работу по оценке эффективности работы веб-приложения с СУБД.
    Ubuntu проверять последним вариантом.
    Ответ написан
    Комментировать
  • Как вывести на страницу 5000 строк безболезненно?

    profesor08
    @profesor08 Куратор тега PHP
    Единственное решение в данному случае это показывать на экране ограниченный список элементов, постепенно добавляя/убирая те которые видно/не видно. Придется программировать на js или искать готовое. Со стороны пхп передавать только голые данные без html оберток и тд.
    Ответ написан
    Комментировать
  • Как подключится к WSDL?

    freiman
    @freiman
    Тестировщик 12+
    WSDL - это документ, описывающий SOAP API.
    Ну а далее не очень понятно, что именно нужно сделать.. если разработчики написали сервис, то, наверно, они его и должны подключить к сайту?
    Ответ написан
    Комментировать
  • Как осуществить загрузку трек номера на сайте по API ключу?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    вначале читай описание протоколо soap, потом php библиотеки soap. Можно использовать её в чистом виде, но лучше через обертку вроде https://docs.laminas.dev/laminas-soap/
    Ответ написан
    Комментировать
  • Считается ли база, которая на продакшене мастер базой, если не настроена репликация?

    paran0id
    @paran0id
    Умный, но ленивый
    Понятия master и slave имеют смысл только в контексте репликации. Нет репликации - нет мастера.
    Ответ написан
    Комментировать
  • Как решить проблему?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Папка на диске Д названа русскими буквами? Вот и результат, я уже давно отвык держать проекты в папках с именами кириллицей, теперь ваша очередь.
    Ответ написан
    Комментировать
  • Что нужно для трудоустройства инженером по тестированию, если опыта 0?

    @AkaZLOY
    QA Engineer
    Если кратко, то:
    • хоть какое-то представление пайплайна разработки ПО;
    • понимание систем контроля версий;
    • технический бекграунд в знаниях (типа образования или работы в сфере IT);
    • хотя бы зачатки знания программирования, чтобы автоматизировать рутинные задачи.


    А также стоит начать с чтения литературы:
    Что почитать по тестированию ПО?
    Ответ написан
    Комментировать
  • Можно ли хранить данные в redis?

    @RidgeA
    Redis можно настроить сбрасывать данные на диск по определенным условиям (время, количество записей и т.п.)
    Теоретически данные нужные можно хранить там, но надо понимать что Redis это все-таки "горячее" хранилище.
    Можно там хранить данные но я бы все-таки использовал более надежное хранилище.
    Самый простой вариант - Redis + MySQL, при этом в Redis хранить только данные которые нужны сейчас, остальное - в MySQL

    Еще, как вариант, если это какие-то графики/метрики - можно использовать специализированную БД для временных данных, например InfluxDB и другие
    Ответ написан
    2 комментария
  • Какой аналог phpmailer для Open Server лучше??

    DevMan
    @DevMan
    PHPmailer никак не зависит от мамп/опенсервер/ etc.

    https://ospanel.io/docs/#smtp и указываете данные своего smtp (хоть любого сервиса, хоть локально поднимите).
    или укажите сохранять письма в папку, а в настойках PHPmailer не используйте smtp.
    Ответ написан
    Комментировать
  • В чем суть оператора минуса (-$hello) в начале переменной в PHP?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    $a = 1;
    echo -$a;


    Нельзя просто так взять и просто проверить, да?)
    Ответ написан
    4 комментария
  • В чем написать программу?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    "Человеку который не шарит ничего в написании какого то ни было софта" ни в чём. Надо нанять человека, который шарит, он сможет в чём угодно.
    Ответ написан
    7 комментариев
  • Как сделать склонения слов секунда, секунд, секунды?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    В современные браузеры встроена поддержка плюрализации (IE и Safari за бортом)

    https://developer.mozilla.org/en-US/docs/Web/JavaS...

    Выдает на выходе строку, означающую форму, на основе которых мы можем сделать ассоциативный массив

    let assoc = {
      one: 'Яблоко',
      few: 'Яблока',
      many: 'Яблок',
    }
    let number = 31;
    let form = new Intl.PluralRules('ru-RU').select(number);
    console.log(number, assoc[form]); // 31 Яблоко
    Ответ написан
    Комментировать
  • В чём суть паттерна мост(Bridge)?

    Xapu3ma-NN
    @Xapu3ma-NN
    Да, отделяем абстракцию от реализации.
    Ответ написан
    Комментировать
  • Существуют ли психотерапевты для программистов?

    @auoa16
    "Для программистов" вряд ли существуют, по крайней мере в том виде, в котором Вы себе представляете. Я говорю о
    например что его гложит в javascript'е, с чем затык, почему не получается

    Исходя из такой логики(если я правильно уловил ход Ваших мыслей), психотерапевт мало того что должен быть компетентен в психологии, так еще и быть высококлассным программистом во всех областях и во всех языках, чтобы понимать боли и "затыки" всех своих пациентов, но это, как понимаете, невозможно.

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

    Вопрос профессионального выгорания особо остро стоит у программистов - тут я соглашусь, специфика такая. Но это не значит, что для лечения нужно быть с головы до ног погруженным в IT. Высококвалифицированному психотерапевту изучить особенности профессионального выгорания программистов от а до я не составит труда за неделю-другую, и для этого ему совсем не нужно знать javascript)
    Ответ написан
    Комментировать
  • Как правильно организовать разработку с использованием docker?

    gecube
    @gecube
    системный администратор, программист... все дела..
    Черновой ответ, потому что у всех детали могут отличаться - делайте как Вам удобнее.

    1. Есть принципиально два подхода. Первый - один репозиторий - один артефакт. Он достаточно удобен, т.к. позволяет раздавать доступы на репозитории разным командам, если они пилят разные модули. Так же это в рамках гита позволяет удобно реализовать разные релизные циклы для разных модулей. С другой стороны - сразу получаете проблему интеграции всех этих репозиториев в единую систему. Обычно решается каким-то мета-репозиторием, который знает как собрать проект из кусочков. Или инклюдит все остальные репозитории как субмодули. Еще если маленьких репозиториев очень много и нужно вносить параллельные изменения в несколько сразу - это очень неудобно для разработчиков. Вторая крайность - это монорепозиторий. Когда ВЕСЬ проект состоит из одного репозитория. Это очень удобно в ситуации, когда у Вас только ОДНА, крайняя версия продукта. Т.к. всегда все собирается из одного коммита и либо все сразу срастается и есть гарантии совместимости всех модулей, либо надо исправлять код ) При этом зачастую приходится очень четко продумывать структуру проекта (например, раскладывать каждый отдельный модуль в отдельный каталог), теряете возможность работы с внешними подрядчиками (придется им заводить отдельные репки + настраивать синхронизацию), делать всякие обертки, чтобы не собирать весь проект, а только изменившиеся части, т.к. сборка всего может быть очень долгой. Но, да, этот подход тоже имеет право на жизнь. Тем более пока не попробуете сами - точно не сможете понять, что лучше
    docker-compose - это хорошо для разработки и моделирования кучки сервисов. Для продакшена не очень хорошо.

    2. Идеально - один контейнер - один сервис. Но для целей разработки можно использовать контейнеры как средство доставки чего бы то ни было и там рождаются кадавры с несколькими сервисами в одном контейнере. Но для продакшена это не очень.

    3. ansible, gitlab-ci

    4. все имеет значение. Зависит от ваших возможностей и задач. Точно стоит избегать всяких OpenVZ, лучше всего деплоится на настоящие виртуальные машины. Как правило они на KVM технологии. По операционной системе - лучше брать то, с чем умеете работать, либо можете привлечь специалистов. Т.е. популярные варианты - centos, ubuntu, debian. Все остальное можно рассмотреть только в случае каких-либо _особых_ требований. Например, очень крутая штука CoreOS, если запускать ТОЛЬКО лишь контейнеры - ничего лишнего, атомарные обновления, но хорошо это работать будет только на виртуалках, а если надо запускаться на железном сервере ? То тут уже нюансы

    5. никак. Она с докерами никак не дружит.

    6. Думать. Проектировать. Очень важно понимать как будет запускаться приложение, сколько будет реплик, как они будут взаимодействовать, делить общие ресурсы (файлы, записи в БД, очереди и пр). Касательно файлов - для докер-контейнеров - чтобы обеспечить их сохранность, все нужное нужно писать либо в bind mount, либо в volume - тогда данные не пропадут при удалении контейнера.

    > Насколько я понимаю, при разворачивании очередного релиза старые контейнеры сносятся и ставятся новые - это так?

    Совсем высокоуровнего - да, так.
    Ответ написан
    4 комментария