• Что такое фикстуры и миграции?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Фикстуры - это по сути тестовые данные. Они нужны для unit-тестирования. Это могут быть как данные в базе, так и обычные файлы (обычно 2 варианта, до и после обработки так скажем). Каждый раз когда запускаются тесты, эти данные используются для установления начального состояния системы, что бы тесты всегда выполнялись предсказуемо.

    Для функционального тестирования (тестрирование контроллеров, интаграционных тестов) фикстуры не применяются, хотя суть там так же сходна. Если честно, то тут мнение расходится. Одни говорят что при функциональных тестах нельзя использовать даже моки, то есть система в процессе выполнения тестов полностью создает то состояние которое необходимо для других тестов. Например последовательное выполнение тестов на добавление статьи и ее просмотр. Другие же предпочитают для каждого тесткейса выставлять состояние с нуля. По сути это схоже с использованием фикстур, но реализация различается. У вас есть некое api для заполнения данными (скажем метод добавляющий пользователя), и перед выполнением тест-кейса происходит ресет данных и заполнение их новыми. Плюсы так же есть - можно распаралелить выполнение тестов. (но не верьте мне на слово)

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Написать письмо. Представиться, объяснить, что ничего плохого в виду не имеешь, попросить разрешения либо парсить как есть, либо доступ к цивилизованному API.
    Ответ написан
    2 комментария
  • Стоит ли изучать symfony 1.4 для трудоустройства?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Сказал, что они делают сайты на symfony 1.4.
    После этого дальше можно не читать...
    Он сам себя дурит: вместо того, чтобы перевести проект на актуальную версию, он ищет тех, кто готов учить старьё ради того, чтобы не потерять клиента.

    От подобных предложений - сразу БЕГИТЕ.
    Ответ написан
    Комментировать
  • Как решить ошибку InvalidArgumentException?

    @D3lphi
    Вам же черным по белому написано: View [structure.edit_contactspage] not found. Что значит: файл шаблона structure.edit_contactspage не найден. Идите в директорию resources/view/structure и смотрите, что там с файлом edit_contactspage.blade.php. Как следует из описания исключения, его вообще не существует.
    Ответ написан
    Комментировать
  • PHP: автозагрузка классов. Объясните на пальцах на простом примере?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Все свои классы располагаете в папке app/ (к примеру)
    Всем классам задаете namespace Fogersp\SuperProject
    В composer.json пишете в секции autoload

    ...
    "autoload": {
      "psr-4": {
        "Fogersp\\SuperProject\\": "app"
      }
    },
    ...


    Это значит, что классы с нэймспейсом Fogersp\SuperProject автозагрузчик будет искать в папке app/
    Например, класс Fogersp\SuperProject\DB\Entry должен располагаться в файле app/DB/Entry.php

    Далее в корне проекта выполняете команду
    composer dumpautoload
    и композер создаст вам автозагрузчик.

    Теперь в точке входа подключаете этот загрузчик и не паритесь о подключении файлов
    include '../vendor/autoload.php';

    Вот и всё =)
    Ответ написан
    10 комментариев
  • Какой CMS движок учить начинающему?

    yudinikita
    @yudinikita
    Инженер-программист из России
    Учи WORDPESS. Заказов на фрилансе куча, да и учится легко.
    Ответ написан
    Комментировать
  • Для чего react server side rendering?

    @petelinmn
    Программист
    SSR нужен SPA приложениям для корректной работы поисковых роботов, чтобы они не упирались в пустую страничку шаблон. Кроме того это улучшает интерфейс. когда страничка подгружается одномоментно а не сначала отрисовывается макет а потом подгружаются данные и.т.д.
    SSR нужен только для начальной загрузки приложения, затем оно ведет себя как обычное SPA приложение
    Ответ написан
    Комментировать
  • Для чего react server side rendering?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. SSR нужен в проектах для которых важна индексация поисковиками.
    2. Такие приложения называют не SPA, а изоморфными.
    3. SSR в изоморфных приложениях используется с REST API, так что проблем с мобильным клиентом у вас не возникнет.
    4. Рендерится все тоже самое, что и в SPA только на стороне сервера, после передачи клиенту приложение работает как обычное SPA и взамодействует с сервером по REST API.
    Ответ написан
    Комментировать
  • Что означает ошибка "NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)'"?

    @vasilek-nik
    Твой TextView name_home не нашелся в файле с разметкой. Ему присвоили null, вот иошибка. Проверь, что в файле с разметкой activity_home.xml есть TextView и ему назначен id как "@+id/name_home"
    Ответ написан
    Комментировать
  • Как установить длительность сессии на сайте на Phalcon?

    @VisualIdeas
    Коллега, 300 меньше установленного в php.ini 1400)))))
    По этому вы и можете его устанавливать.

    А переопределять настройки php.ini
    php.net/manual/ru/session.configuration.php
    Посмотрите в сторону настроек session.save_path для сессий этих файлов
    Ответ написан
    Комментировать
  • Base64 - для чего знаки "равно"?

    Base64 конвертирует блоками по 3 байта (создавая коды по 4 байта) :
    - если длина исходного блока была кратна 3, то он закодируется нацело и знаков "=" не будет
    - если длина исходного блока имела остаток 1 от деления на 3, то он закодируется в 2 байта (6 бит + 2 бита), и чтобы итоговый код был длиной кратен 4, будет в конце дописано "=="
    - если длина исходного блока имела остаток 2 от деления на 3, то он закодируется в 3 байта (6 бит + 6 бит + 4 бита), и чтобы итоговый код был длиной кратен 4, будет в конце дописано "=".

    Отбрасывать хвосты нежелательно, т.к. Вы не можете быть уверены, что декодирующий алгоритм примет последний не кратный 4 блок.
    Ответ написан
    Комментировать
  • Base64 - для чего знаки "равно"?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Это суффиксы.
    Используются только символы латинского алфавита в верхнем и нижнем регистре — символы (A—Z, a—z), цифры (0—9), и символы «+» и «/», с символом «=» в качестве специального кода суффикса.
    Можно ли их чистить? Зачем? Сэкономить пару Кб?)
    Ответ написан
    5 комментариев
  • Паттерн фабрика PHP, в чем суть?

    jakulov
    @jakulov
    Фабрика позволят избавиться в коде от прямой зависимости от конкретного класса – это её основная суть. Иногда это удобно, приведу такой пример:
    Есть некий класс, отвечающий за процессинг платежей PaymentManager. Вы используете фабрику, получая его и сразу передавая ему заказ:
    $manager = PaymentFactory::getManager($order)
    Тут ваш заказчик говорит, что теперь заказы суммой меньше 10 тыс руб должны направляться на другой платежный сервис. Можно, конечно переписать старый менеджер платежей, а можно добавить новый AlternatePaymentManager. при этом весь код, работающий с платежами остается неизменным, только в фабрике добавлям:
    public static function getManager($order)
    {
       if($order['total'] >= 10000) {
        return new PaymentManager($order); 
      }
      else {
        return new AlternatePaymentManager($order);
      }
    }


    Такие примеры часто возникают в реальных приложениях, их можно прочувствовать заранее при написании кода. Плюс еще можно добиться выгоды и при написании тестов.
    Ответ написан
    6 комментариев
  • В каких случаях вы использовали Redis?

    @chronic86
    Ruby on Rails junior
    1. Хранилище сессий и профилей пользователей;
    2. Сервер очередей, плюс держим в уме механизм publish/subscribe;
    3. Полноценная замена Memcached, притом в случае с Redis мы получим репликацию, более длинные ключи и значения, возможность восстановления кэша с диска и тп;
    4. Место для хранения количества пользователей онлайн, кодов капч, различных флагов, саджестов поисковых запросов;
    5. СУБД для небольших приложений — сокращалок ссылок, имиджбордов, возможно даже блогов;
    6. Роль «словаря» в шардинге, то есть сервер, который знает, какие шарды на каких серверах искать;
    7. Хранилище промежуточных результатов вычислений при обработке больших объемов данных;


    eax.me/redis
    Ответ написан
    Комментировать
  • Как отследить состояние светофора?

    @suhuxa1
    Если все так просто, то зачем заморачиваться на вебки, ИИ и прочее. Сделайте мини-программку - таймер. Которая будет считать по принципу - 5 мин прошло - пишет "зеленый", 20 сек прошло - пишет "красный". Раз Вам калибровка не важна, то это идеальный вариант. Главное самый первый раз нажать на кнопку "старт" в момент, когда красный загорится (ну или зеленый) и все, таймер готов. Заодно и выведите "осталось Х:ХХ до смены цвета"
    Ответ написан
    Комментировать
  • Какой стиль подходит больше для однострокового выражения в php?

    JorryGo
    @JorryGo
    Backend разработчик
    Вообще все варианты так себе :)
    В мире пхп принят такой стиль
    if ($expr1) {
        // if body
    } elseif ($expr2) {
        // elseif body
    } else {
        // else body;
    }

    Независимо от количества строк в теле.

    Подробнее можно почитать здесь, а конкретно насчет if здесь

    Большая часть разработчиков старается придерживаться именно рекомендаций в PSR
    Ответ написан
    2 комментария
  • Какие есть почти готовые админки для сайтов-визиток?

    Возможно, Вам подойдёт Textolite CMS
    Как раз для редактирования статических сайтов, можно редактировать текст и добавлять картинки.
    Для маленького сайта подойдёт, но я бы на Вашем месте использовал бы ModX/Joomla/WordPress.
    Ответ написан
    Комментировать
  • Для чего нужен php модуль php7.0-dev?

    @PapaStifflera
    Родился, вырос...
    Этот пакет содержит заголовочные файлы и утилиты, необходимые для компиляции и сборки сторонних расширений, например. На производительность не влияет совсем.
    Список файлов пакета для Ubuntu: https://packages.ubuntu.com/xenial-updates/amd64/p...
    Ответ написан
    Комментировать
  • На каком движке делают крутые лендинги?

    @kulaeff
    Front-end developer
    А что значит крутой лендинг? Дизайн или какие-то красивые анимации, переходы, эффекты? Для первого есть масса ресурсов, где можно почерпнуть идеи - dribbble.com, behance.net, pinterest.com. deviantart.com и еще куча всего. Для второго - каких-то специальных движков нет и быть, в принципе, не может. Ибо крутой лендинг - вещь довольно эксклюзивная, творческая, ручной работы так сказать. Нужно знать стандартный набор html/css/js, а также все, что касается анимаций: transition, transform, canvas, webgl, tween. Для каких-то совсем крутых эффектов, нужно знать математику, геометрию, и даже физику.
    Ответ написан
    5 комментариев
  • На каком движке делают крутые лендинги?

    @skeevy
    Frontend WebDev
    Крутые лендинги делаются руками. Нет ничего сложного в освоении html5+css3+js. А применяя flexbox и/или grid намного облегчают расположение элементов и экономят время, но до этого нужно сперва дойти
    А крупные агенства наверняка используют собственные движки.
    Топ ошибок?
    1) Использовал Adobe Muse
    2) Спешка и невнимательность
    Ответ написан
    Комментировать