Задать вопрос
  • Переписать грамотнее и с помощью Laravel реально ли и каким лучше образом?

    EpIvIaK,
    Я тоже перешёл на Go. Но... Если вы уже начали учить PHP - это вам не повредит. Программист - это не язык программирования. Программист - это адепт секты формальной логики. Если вы научитесь воплощать бизнес-логику заказчиков в код, помогать бизнесу решать его проблемы, то язык тут совершенно не важен. А ещё программист - это существо творческое, что бы там кто ни говорил. А творческому человек необходимо хотя бы немножко получать удовольствие от того, что он делает. Поэтому, можете попробовать немного и то, и другое. И выбирайте то, что вам больше нравится.
    Go сейчас на подъёме, и вы не ошибётесь, если выберете его. Но... PHP - далеко не умирающий язык, на нём работает большая половина интернета (WordPress). И вы ещё очень долгое время сможете обеспечить себе хлеб с икоркой...
    У Go великолепная стандартная библиотека, просто восхитительные инструменты по отладке, форматированию когда, тестам и т.д. и т.п. Я наслаждаюсь этим языком, хотя многие его считают скучным и многословным.
    На PHP написаны два устоявшихся фреймворка (Laravel и Symfony), которые невероятно облегчат вам жизнь. Они умеют всё, что касается веба. На них можно, например, в прямом смысле за полчаса собрать CRUD API с интерактивной документацией.
    Если решите идти в PHP, обязательно изучайте WordPress. Потому что установщиков плагинов много, а написать плагин самостоятельно умеют не только лишь все. И такие специалисты ценятся.
    При любом выборе самое главное - это английский язык. Без него просто никуда. Потому что на русском языке толковой информации крайне мало.
  • Как маппить результат запроса бд в структуры со вложенностями Golang?

    shurshur, Почему современные разработчики не очень любят ORM?
    Потому что в самом начале разработки ORM тебе помогает. Но на поздних этапах, а особенно, при рефакторинге, при серьезных изменениях бизнес-логики, ты начинаешь сражаться не только с самими задачами, но и с ORM, которая диктует, навязывает проекту свои строгие правила.

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

    sqlc - к сожалению не могу использовать

    Так используйте оба!
    Например, можно использовать паттерн Repository и общаться с базой на более абстрактном уровне. А внутри репозитория в каждой конкретной функции использовать тот инструмент, который подходит для данного конкретного случая
  • Переход с MD5 на SHA256 что нужно сделать чтобы работало)?

    Adamos,
    1. Новое поле - это наглядность. Посмотреть старых пользователей можно будет хоть прямо в базе мгновенно, без лишних проверок.
    2. Возможность вернуться назад - это redundancy на случай проблем, которые могут потенциально возникнуть в процессе перехода. По окончании перехода это всё, конечно же, надо начисто удалить
  • Возникла поломка файлов для установки пакетов в редакторе Atom, есть ли решение данной проблемы?

    Kolja Pluhin, К большому сожалению, на Винде и Линуксе альтернатива, наиболее похожая на Atom - это VSCode. Редактор отличный и полностью заменяет Atom. Тем более, несколько мне известно, там есть расширения, в которых есть и темы Атома, и иконки из Атома. Почему, к сожалению, потому что это тоже Electron.
    На Маке же совсем недавно появился отличный нативный редактор Zed. Расширений там пока мало, но я в восторге от него
  • Как устранить утечку памяти при множественных соединениях в net/http Golang?

    videxerion, Может быть, мне ещё и проект за вас дописать? ))
    Понятно, что ошибки надо обрабатывать, и хорошая IDE вам непрозрачно на это намекнет. Тем более, что и я вам намекнул на это комментарием сразу после cient.Get. Что именно делать с ошибкой - это уже только вы знаете. Логгировать, падать, возвращать? Я-то откуда знаю?

    Главное - это defer, который отрабатывает в любом случае, что бы у нас там ни случилось уже после соединения при чтении данных и т.д. Эта конструкция языка Go (и некоторых других языков) - одно из гениальнейших решений в программировании, когда исключается целый класс багов, возникающих из-за невнимательности программистов.
  • Запросы soap в инфоклинику на php?

    mayton2019,
    Банки - это воплощение legacy; так они устроены
    Банки - это Java (по большому счету)
    SOAP напрямую ассоциируется с Java с самого начала своего существования
    Банки, legacy, Java, SOAP
  • Запросы soap в инфоклинику на php?

    mayton2019, GraphQL пишут средствами языка, а не расширений. Поэтому, поддерживается, если поддерживаете у себя в коде.  Есть библиотеки для этого.
  • Запросы soap в инфоклинику на php?

    mayton2019, Просто сам SOAP мало кому нужен сейчас, и древний extension для PHP просто как legacy тащат.
    Я очень давно этот SoapClient не использую, и могу наврать, но, если я верно помню, то перешёл на curl из-за того, что эти горе-кодеры переопределили у себя в расширении стандартный обработчик ошибок, из-за чего я не мог обработать ошибку с помощью try-catch, и заполучил много новых седых волос, прежде чем плюнул и перешёл на curl+XML.
  • Запросы soap в инфоклинику на php?

    AlexProWeb, Я взял первый попавшийся пример со стека, так что там может что-то не работать, но принцип, надеюсь, понятен
  • Каково критическое количество HTTP (ajax) запросов на сервер, как его расчитать?

    Нет никаких магических расчётов. Есть лишь тестирование на нагрузку.

    Попробуйте SSE вместо вебсокетов. Это гораздо проще, и не надо сервер бомбить.
  • Как поменять свойство одного ребенка через другого?

    szQocks, Почему-то вспомнились хаки из нулевых. Всплакнул от ностальгии)
  • Как убрать отступ?

    Это решение прекрасно сработает в данном конкретном случае, когда человек ничего не уточнял.
    Однако, нам, наверняка, придётся делать какой-то внутренний отступ у самого серого блока при помощи padding, либо задавать padding для этого самого last-child. Ведь будет некрасиво, если текст будет без отступа прилегать к нижнему краю.
    Но это не универсальное решение, потому что нам могут понадобиться разные размеры этого отступа в зависимости от контента. Например, мы захотим последним элементом сделать изображение либо таблицу, и как раз сделать так, чтобы этот элемент прилегал книзу без отступов, либо отступы сделать специфическими для данного конкретного элемента. И в этом случае нам придётся уточнять стили :last-child вместо уточнения стилей конкретного элемента. Т.е. мы связываем родителя с дочкой. Это не всегда лучшее решение.

    А вот, что будет если сделать при помощи. :before и :after. Нам больше ничего не нужно уточнять у контейнера, а всю стилизацию изображения делать только для этого самого изображения

  • Как убрать отступ?

    Ankhena, Если мы внутри самогО серого блока сделаем флексы, и заменим margin на gap для параграфов, то мы не сможем позже вставить в этот текст внутри серого блока изображение, которое будет обтекаться текстом. Это ненужное ограничение, которое мы зачем-то вводим.

    Если же мы сделаем флекс для внешнего контейнера, содержащего уже сами эти серые блоки, то мы жёстко привязываем эту внешнюю обёртку к дочерним серым блокам. И если этот серый блок будет использоваться где-то ещё, в другом месте, то мы снова увидим вылезающие марджины.
  • Как убрать отступ?

    Ankhena, Перебором как раз являются гриды и флексы. Молодёжь пихает их куда надо и не надо. Попробуйте, например, сделать обтекаемую текстом картинку на гридах и флексах...
  • На каком движке сделать музыкальный сайт?

    Первым ответом на подобный вопрос всегда должен быть WordPress. Потому что это безусловный лидер, и под этот движок написано столько плагинов, сколько другим и не снилось. Наверняка, там уже есть что-то подходящее, потому что подобная идея явно не уникальная.

    Если по каким-то причинам WordPress вас не устроит, то я бы посоветовал написать что-то своё, а если и такой вариант не устраивает, то можете попробовать Drupal. Там очень хорошо сделана категоризация контента при помощи таксономии, есть уникальный модуль Views, с помощью которого легко выводить списки контента, тоже довольно много разных модулей, и сама по себе CMS более гибкая и мощная из коробки.
  • Не работают горячие клавиши PHPStorm Client в Remote Development?

    Если вы заметили, то Jetbrains Gateway - это beta продукт. И там могут быть подобные глюки. Советую сразу им тикет писать в поддержку. Этого и ждут от вас, когда дают вам бету...
    https://youtrack.jetbrains.com/issues/GTW
  • Переписать грамотнее и с помощью Laravel реально ли и каким лучше образом?


    какую лучше версию Laravel использовать?


    Меняются детали, но не меняется общий подход и принципы. Все изменения в новых версиях можно будет легко изучить уже по документации
  • Переписать грамотнее и с помощью Laravel реально ли и каким лучше образом?

    EpIvIaK,
    Я тут подумал, и если вы тренируетесь, то, можно не лезть сразу во фреймворк, а научиться базе.
    Советы.

    1. Однозначно держать всё в разных файлах. Фронтенд и бэкенд надо чётко разделять. Идеал PHP файла - это <?php в самом начале и больше нигде, даже не закрывать ?> в конце. Кстати, это поможет избежать некоторых багов. Т.е. мы фактически забываем о том, что PHP умеет сам быть шаблонизатором.
    Для фронтенда выделяем папочку public, там держим все файлы CSS, JS, картинки и т.д. В этой же папочке держим файл index.php, который является входом в приложение, и в котором будет буквально несколько строчек, которые будут вызывать основной код. А основной код PHP хранить в папке src. Использовать шаблонизатор twig и все шаблоны хранить в папке templates Кстати, пример организации папок и файлов можно посмотреть в том же Laravel или Symfony. Там не дураки это создавали.

    2. Научитесь в безопасность. Изучите все основные типы атак, которые используются для взлома бэкенда, и научитесь как с ними бороться. А именно, как предотвращать SQL-иньекции, XSS-инъекции, CSRF атаки. Как правильно организовать сессии, как защищать cookie, как использовать CSRF-токены и т.д. и т.п. Это очень важно, потому что это самая настоящая база, и это вам пригодится вообще всегда и в любом языке.

    3. Научитесь создавать правильные API, которые не возвращают всё подряд, и не используют только POST-запросы, а используют GET, POST, PUT, PATCH, DELETE http методы для каждой операции, которые соответсствуют назначению этой операции. Научитесь возвращать правильные HTTP статус-коды ответов и ошибок в зависимости от того, какая ошибка произошла, была ли запись создана либо просто возвращена имеющаяся.

    3. Везде прописывайте типы переменных, аргументов функций и возвращаемых функциями значений. Используйте в начале каждого PHP файла директиву declare(strict_types=1); Это очень поможет писать более безопасные программы, избавит вас от целого класса багов.

    <?php
    declare(strict_types=1);
    function speak(string $name): string 
    {
        return "Hello {$name}!";
    }
    speak(1); // Это выдаст ошибку "Uncaught TypeError". Нельзя передавать int, когда функция ждет string
    speak("World"); // Это правильно сработает "Hello World!"


    4. Изучите принципы SOLID, но не используйте их, как догму, а просто как подсказку. Принцип DRY также можно держать в голове, но не быть его фанатиком. Принцип KISS - должен вообще стать вашим девизом. Посмотрите в сторону "Clean Architecture" и "Domain Driven Design": они помогут вам организовать структуру кода.

    5. ПИШИТЕ ТЕСТЫ!!! Вам не нужно 100% покрытие тестами, но на самые важные функции и классы обязательно нужно писать тесты, и тогда вы не будете бояться вносить изменения в большую кодовую базу, потому что. если вы где-то напишете фигню, тесты упадут и покажут вам, где вы накосячили.

    6. Когда более-менее реализуете первые 5 пунктов, можете уже более глубоко изучить фреймворки. И вам тогда станет понятно, что у них там происходит, зачем они всё это ваще наворотили, и почему это хорошо.