• Зачем используют Django и Python, разве не удобнее сразу все сделать через Node.js и javascript фреймворки?

    Hivemaster
    @Hivemaster
    Админ, который хочет программировать
    JavaScript - очень плохой язык, который выжил только благодаря его безальтернативности на фронте, а Node.js была создана только для того, чтобы открыть доступ в мир взрослого программирования несчастным засранцам, вкатившимся через фронт. Причём сам создатель Node.js считает её ошибкой. Лучше уж тогда развернуть ситуацию и писать фронтовый код на чём-нибудь вроде Brython. Только остаётся ещё html и css, а использовать настоящего программиста для вёрстки - это глупый расход ресурсов, проще нанять верстальщика/фронта.
    Ответ написан
    2 комментария
  • ООП: Правильно ли архитектурно так делать?

    Vamp
    @Vamp
    Возможно, это нормально, так и должно быть ? или как архитектурно правильно решать подобное?

    Это нормально. Безликие массивы становятся осмысленными сущностями. Такой код становится проще понимать и поддерживать.

    Используемый вами подход называется data transfer object (DTO). Широко распространенная практика. DTO отлично сочетается с иммутабельностью, которая присутствует в ваших классах.

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

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

    Называется ORM. Находится в ответственности ORM слоя/фреймворка.
    Ответ написан
    4 комментария
  • Зачем используют Django и Python, разве не удобнее сразу все сделать через Node.js и javascript фреймворки?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Бекенд - это не язык. Это понимание соответствующих технологий работы с базами данных, кешированием, работы со структурами данных, протоколами, технологиями, алгоритмами, построением архитектуры и связыванием с внешними сервисами и прочее...
    А поскольку это охватывает очень большой пласт проблем - и произошла специализация.

    А Python разработчики имеют дело в основном только с бэкенд - и понятия про фронтенд у них будут на уровне dummy html, css, bootstrap.

    Угу... При таком подходе - с чего вы взяли тогда что у фронта будут достаточные знания о работе бекенда? Раз по-вашему бекендер только в dummy html может, - а фронтендер сразу с ходу сможет оптимизированные запросы к БД к примеру писать? )))) Если ваш фронтендер настолько крут - то в принципе незнание языка не помеха, поскольку язык - только инструмент.
    Ответ написан
    3 комментария
  • Почему декодирование JSON возвращает null?

    Не правильный json, множественные корневые элементы.

    [
       {
          "login":"igor",
          "password":"qwerty"
       },
       {
          "login":"igor",
          "password":"qwerty"
       },
       {
          "login":"igor",
          "password":"qwerty"
       }
    ]
    Ответ написан
    1 комментарий
  • Как с помощью javascript отправить комментарий в instagram?

    @hokid
    Сюдя по всему инстаграм написан на React. Вы изменяете параметры напрямую в DOM, что не отражается на стейте компонента React, который отрисовывает форму комментария и кнопку, потому и нет никакого эффекта, грубо говоря, изменяя напрямую DOM вы не добьетесь желанного. Попробуйте диспатчить события ввода на форме комментария.
    Ответ написан
    Комментировать
  • Как обрабатывает множество одновременных запросов серверная часть сайта на php?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    зависит от настроек nginx/apache - он может асинхронно направить пользователей с учётом доступного пула у сервера или по очереди.
    d85c864ff8f54a4fad70cfe103137ed5.png
    также в зависимости от настроек кэша nginx/apache/framework'a будет либо 1000 запросов к бд (у бд тоже может быть кэш), либо 1, а остальное отдастся из кэша.
    Ответ написан
    Комментировать
  • Какое направление выбрать, если не хочешь до конца жизни пилить формочки и гонять json?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    За свою жизнь мне довелось поработать в веб-разработке, автоматизации газопроводов, бухгалтерии, автоматизации бизнеса и даже дизайнером рекламы и журналистом. И останавливаться пробуя новое пока не собираюсь) При этом образование у меня - радиотехника.

    Образование не ограничивает круг возможных профессий, а жизнь иногда складывается так, что приходится заниматься совершенно неожиданными вещами. Выбирайте ту специальность, которая ближе Вам в данный момент, интернет здесь вряд ли подскажет оптимальный выбор, тем более что у каждого здесь свой собственный путь и своя правда - кто-то оканчивает ВУЗ и всю жизнь работает по специальности, а кто-то ищет себя в самых неожиданных областях.
    Ответ написан
    1 комментарий
  • Vuex. как правильнее использовать getters?

    Fzero0
    @Fzero0
    Вечный студент
    Геттеры используются в тех случаях, когда нужно вывести модифицированную информацию из хранилища
    Ответ написан
    1 комментарий
  • Почему не работает код в задаче гостевая книга на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    По порядку:
    Браузер выдает следующую ошибку:
    Во первых не браузер, а сервер, а браузер ее только отображает. Во вторых это уведомление и предупреждение, а не ошибка.
    Далее, если ваш $view->assign('persons', $data); работает верно - значит в индексе ДО этого места в дата ничего нет. Что легко проверить с помощью вар_дамп. И если там не пусто - что-то в вашем вью работает криво, или не так как вы предполагаете, читайте документацию к данному методу.
    Ответ написан
    4 комментария
  • Как сделать микроразметку на сайте?

    1) Пройти курсы битрикса и сделать самому
    2) Нанять исполнителя за денежку
    Ответ написан
    Комментировать
  • В чем практический смысл использования интерфейсов в PHP?

    gscraft
    @gscraft
    Программист, философ
    Вам нужно смотреть в сторону принципов SOLID, разобраться, почему эти подходы оправданы. Интерфейсы же выполняют несколько задач, в связи с этими принципами.

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

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

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

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

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

    Добавлю, к слову, о внедрении зависимостей. Действительно, этот подход может использоваться и без интерфейсов, тот факт, что инверсия управления и внедрение зависимостей используются чаще всего с интерфейсами — своего рода совпадение. Хороший пример: фреймворк Yii 2 или библиотека Pimple, там в качестве маркеров для внедрения зависимостей часто используются произвольные (или основанные на иных соглашениях) строки. Это к тому, что DI — необязательно самый яркий пример использования интерфейсов (хотя и более ценный, чем другие варианты).
    Ответ написан
    Комментировать
  • Как установить PHP 5.4 CentOS 7?

    SagePtr
    @SagePtr
    Еда - это святое
    Через докер, например, запускать её в контейнере, пробрасывать туда нужные папки со скриптами.
    В итоге даже если сломают это старьё через уязвимость - дальше проброшенных папок не пролезут.
    Ответ написан
    Комментировать
  • Как в 1 файл php из js передать несколько массивов с помощью AJAX?

    @alekcena
    Нелинейный наставник
    Сделать обёртку?
    let a = { 
    mas1:[1,2,4,5,6,],
    mas2:['asd','as2']
    }
    Ответ написан
    4 комментария
  • Как в SQL делать фантомную запись данных?

    @full_stack_newbie
    Запрос в транзакцию поместите.
    Ответ написан
    3 комментария
  • Почему такая запись выдаёт фатальную ошибку?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Потому что $count это не ограничение на количество замен, а туда записывается сколько раз сработала замена.

    Потому туда надо передавать переменную, а не цифру.

    sandbox.onlinephpfunctions.com/code/87f0105ff5614c...

    str_replace(
        array|string $search,
        array|string $replace,
        string|array $subject,
        int &$count = null
    ): string|array

    https://www.php.net/manual/ru/function.str-replace.php
    Ответ написан
    Комментировать
  • Как получить ошибки с php, если работаешь не через браузер?

    @Barmunk
    try {
       tlgrm('sendMessage', ['text' => 'Само сообщение']);
    } catch (Throwable $t) {
        tlgrm('sendMessage', ['text' => $t->getMessage()]);
    }
    
    try {
        // Code that may throw an Exception or Error.
    } catch (Throwable $t) {
        // Executed only in PHP 7, will not match in PHP 5.x
    } catch (Exception $e) {
        // Executed only in PHP 5.x, will not be reached in PHP 7
    }


    https://habr.com/ru/post/261451/
    Ответ написан
    Комментировать
  • Почему базовый класс ловит исключение?

    @galaxy
    А почему catch (Exception $e) ловит все остальные исключения, вы не задумывались? Ведь он не знает все особенности всех своих производных классов.

    Блок catch обрабатывает исключение подходящего типа в порядке объявления этих блоков. Объект класса FileNotFoundException является также и объектом класса FilesystemException (как и объектом класса Exception).

    Хотите обрабатывать отдельно FileNotFoundException, вставьте соответствующий catch-блок до catch (FilesystemException $e).
    Ответ написан
    Комментировать
  • В чем разница между внедрения зависимостей и наследованием?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Если честно, то это принципиально разные вещи.
    Есть принципы ООП - наследование, абстракция, инкапсуляция, полиморфизм.
    Наследование (inheritance):
    {class} extends {superClass} это способность класса или объекта базироваться на другом классе или объекте.
    Например, Dog -> Animal Cat -> Animal

    Внедрение зависимостей (dependency injection) является разновидностью IoC (inversion of control - инверсия управления). Например, есть класс, внутри которого есть объект для подключения к БД. Притом connection является интерфейсом. То какая реализация в зависимости от используемой БД будет внедрена во время рантайма на данный момент не определена.
    UserService {
    Connection connection;
    }


    Т.е. если разработчик хочет подключить БД MySQL, то будет внедрена реализация connection для работы с MySQL. Например, MySqlConnection
    Т.е. класс UserService не решает какая именно зависимость должна быть внедрена туда. За него это делает отдельный механизм согласно конфигурации.

    Я привел абстрактные примеры, чтобы лучше была видна разница между DI & inheritance
    Ответ написан
    Комментировать
  • Существуют ли в природе реализации блокчейн на PHP от и до?

    PQR
    @PQR
    Один человек уже написал боокчейн на PHP: https://habrahabr.ru/company/dcoin/blog/272695/ - посмотрите, может там где-то ссылка на исходники есть или спросите у автора. Правда, потом его бросила девушка и он переписал всё на Go.
    Ответ написан
    1 комментарий