Задать вопрос
  • Принцип DIP из SOLID и Autowiring из DI-контейнеров?

    syamskoy
    @syamskoy
    Dependency injection - это когда в класс A мы передаем класс B через конструктор или сеттер, что бы он с ним работал, а не создавал его в своих нутрях.
    Dependency Inversion - это когда мы в классе A работаем не с конкретной реализацией, а с интерфейсами: указываем интерфейсы в конструкторе, в методах, в возвращаемых типах и т.д.
    Это два разных понятия, которые иногда объединяют в одно, и иногда их путают.
    Так вот, autowiring - это про Dependency injection, а D в solid - это про Dependency Inversion. Одно другому не мешает и не нарушает.
    Ответ написан
    1 комментарий
  • Как стилизировать окно на разрешение 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)
    Ответ написан
    Комментировать