Задать вопрос
  • Как не "изобретать велосипед", а использовать готовые решения?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    У js есть jquery, а у php что?

    HttpFoundation - это можно сказать стандарт для обработки запросов. Используется в Symfony, Laravel, Silex и еще куча где.
    Doctrine - по моему опыту это лучшая система для работы с БД. Если еще не смотрели - настоятельно рекомендую. А системы реализующие ActiveRecord (если у вас проект не на пару дней) - лучше не используйте, почему - см. тут.
    Monolog - это библиотека логгирования, практически не имеет аналогов по функциональности.
    Symfony Console Component - очень гибкий компонент для реализации консольных приложений.

    Например, такая банальность, как валидация форм: у меня есть собственные наработки и я могу их использовать, но ведь они далеки от идеала.

    Разные кейсы предполагают разные решения. В случае высоких требований к производительности, тестируемости и защищенности часто оптимален вариант типа этого:

    /**
     * @Route("/profile/{id}", name="getProfile")
     * @Method({"GET"})
     * @param Request $request
     * @return JsonResponse
     */
    public function getProfileAction(Request $request): JsonResponse
    {
        try {
            $id = $request->attributes->get('id');
            
            if (is_null($id)) {
                return new JsonResponse("Param 'id' is required", JsonResponse::HTTP_BAD_REQUEST);
            } elseif (!is_string($id)) {
                return new JsonResponse("Param 'id' must be string", JsonResponse::HTTP_BAD_REQUEST);
            } elseif (!ctype_digit($id)) {
                return new JsonResponse("Param 'id' must be digit", JsonResponse::HTTP_BAD_REQUEST);
            }
            
            // Business logic here
            return new JsonResponse();
        } catch (\Throwable $exception) {
            return new JsonResponse($exception->getMessage(), JsonResponse::HTTP_BAD_REQUEST);
        }
    }


    Да, кода получается МНОГО, но такой подход очень гибок и производителен. Есть альтернативный вариант с использованием библиотеки ko-ko-ko/php-assert

    try {
        $id = $request->attributes->get('id');
        Assert::assert($id, 'id')->notNull()->string()->digit();
    } catch (\Throwable $exception) {
        return new JsonResponse($exception->getMessage(), JsonResponse::HTTP_BAD_REQUEST);
    }
    try {
        // Business logic here
        return new JsonResponse();
    } catch (\Throwable $exception) {
        return new JsonResponse($exception->getMessage(), JsonResponse::HTTP_BAD_REQUEST);
    }


    Есть ли подобные отработанные решения в фреймворках, они дают что-то кроме "каркаса"?

    Есть, практически у каждого фреймворка свои решения со своими плюсами и минусами.

    И почему нет библиотек популярных для php?

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

    @An_cher89
    Фрилансер
    Компоненты symfony очень даже хороший набор библиотек. Он используется в таких фреймоврках как symfony =) , laravel, микрофреймворк silex, в cms drupal и много где еще. А подключать все это добро в проект, как сказали выше, можно при помощи composer
    Ответ написан
    1 комментарий
  • Как не "изобретать велосипед", а использовать готовые решения?

    Rou1997
    @Rou1997
    У js есть jquery, а у php что?

    Фреймворки - Yii2, Laravel - и микрофреймворки.

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

    Фреймворк - "комплекс" готовых решений, микрофреймворк - фреймворк для узкого круга задач, jQuery скорее микрофреймворк, и есть библиотеки, для еще более узкого круга.
    Ответ написан
    3 комментария
  • Как не "изобретать велосипед", а использовать готовые решения?

    Denormalization
    @Denormalization
    Собственно https://packagist.org/ как раз таки собрание "библиотек" для PHP.
    Читаем про Composer и как им пользоваться.

    Фреймворки дают каркас + базовый функционал (какой-то больше, какой-то меньше) и дальше уже на этой основе строишь своё приложение.
    Ответ написан
    1 комментарий
  • Почему не работает ajax?

    Denormalization
    @Denormalization
    У меня в холодильнике три банана, почему в нем не горит свет?
    PS
    Там еще помидор есть, но свет все равно не горит. С чем это может быть связанно?
    Ответ написан
    Комментировать
  • Какую литературу читать для изучения архитектуры компьютера и ОС?

    @Evsign
    Просто отлично, что вы к этому пришли.
    Как говорится, с начала освойте азбуку, а потом уже за c++ принимайтесь.

    1. Charles Petzold "C.O.D.E."
    Читать обязательно. Очень хорошо разжёвываются все эти битности, разрядности и .тд.
    В процессе чтения Вы, вместе с автором постепенно собираете компьютер и попутно осваиваете для этого необходимый бекграунд.
    С начала разбираются подходы в кодировании информации, не шифровка, а принципы представления информации в нулях и единицах. Потом разбираются системы счисления, потом немного химии и физики, что бы представлять как течёт ток по проводам. Потом разбираетесь как работают реле, далее идут первые логические элементы на реле. Потом вместе с автором собираете различные компоненты типо памяти, процессора на основе ранее сконструированных логических элементах. В общем это всё продолжается пока вы в конце не построите компьютер и изучите несколько основных ассемблерных команд, попутно изучив как считать в разных системах счисления, краткую историю развития комп техники и все логические элементы.

    2. Andrew Tannenbaum "Structured Computer Organization"
    По идее, можете даже сразу начать с этой книги, но все те фундаментальные вещи, которые разжёвывает Петцольд тут будут упомянуты вскользь, но тут пойдут уже более серьёзные вещи по поводу архитектуры. Будут рассматриваться уровни устройства современных процессоров, памяти, ассемблер, прерывания и т.д. т.д. т.д. Перечислять всё не имеет смысла, т.к. список будет оооочень большой. Это наиболее полная и подробная книга об архитектуре ЭВМ. В принципе, прочитая её от корки до корки вы будите достаточно хорошо разбираться в архитектуре самих компьютеров.

    3. Hennessy J., Patterson D. "Computer Architecture A Quantitative Approach"
    Эту пока ещё не читал, но судя по содержанию может быть отличным дополнением после танненбаума. Хотя, вполне может оказаться довольно самодостаточной книгой на ровне с вышеупомянутой книгой.
    Судя по предисловию и содержанию, в ней в дополнении к тому, что разбирает танненбаум, много уделяется внимание параллелизму, облакам, шарингу ресурсов и т.д.

    Можете взяться за это так:
    Если цените время, то начинайте сразу с Танненбаума, но если окажется сложным, то закрывайте и с начала читайте Петцольда.

    Если время хватает, то сразу читайте Петцольда, а потом Танненбаума :) И это лучший вариант. ИМХО)
    Петцольд читается очень легко и интересно. Я прочитал его на одном дыхании, а вот с Танненбаумом всё не так просто)

    UPD:
    По поводу актуальности. Актуально всё)
    2 и 3 разбирают современные ARM-Cortex A8 и i7 процессоры, Nvidia Fermi, CUDA и т.д.
    Ну а в первой книге этого и не надо)
    Ответ написан
    3 комментария
  • Насколько сейчас актуальна поддержка браузеров без поддержки Javascript

    CKOPOBAPKuH
    @CKOPOBAPKuH
    1) считаете количество пользователей без js
    2) считаете средний доход на одного пользователя и перемножаете его на результат пункта 1.
    3) считаете количество человеко-часов, необходимых для разработки no-js версии сайта
    4) считаете стоимость этих человеко-часов
    5) сравнить результат п. 4 с результатом п. 2. если в п. 2 цифра больше или они примерно равны, то делаете версию без js'а. если в п. 2 цифра меньше, чем в п. 4, то не делаете.
    Ответ написан
    Комментировать