Задать вопрос
  • Почему не работает SCSS так, как ожидается?

    @FabiBoom
    Браузер не понимает SCSS. В конечном итоге ваш SCSS код "конвертируется" в CSS, в котором нет таких переменных как в SCSS.

    Вот что генерирует ваш код и он же будет применен к странице:
    5d87947a37a55623416026.png

    Переменная просто перезаписалась и все. Никакой логики нет и быть не может, так как SCSS не работает в браузере. Такой способ не сработает.

    Как решить?

    1. SCSS
    .item {
        $value_1: 50px;
        @media only screen and (max-width: 200px) {
           width: 100px;
        }
        
        width: $value_1;
        height: 50px;
        background-color: red;
    }


    2. CSS Variables (поддержку посмотреть на CanIUse) - если устраивает, то можете использовать.
    Они - часть СSS, а поэтому позволяют организовать более сложную логику.

    .item {
        --value-1: 50px;
       
        width: var(--value-1);
        height: 50px;
        background-color: red;
    }
    
     @media only screen and (max-width: 200px) {
       .item {
          --value-1: 100px;
       }
      }
    Ответ написан
    Комментировать
  • Какой PHP-микро-фреймворк взять для простенького REST API с авторизацией, и чтобы не из "большой тройки"?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Symfony 4 в стандартной поставке— это микрофреймворк, серьезно
    Ответ написан
    2 комментария
  • Имеет ли смысл начать изучение Symfony если более-менее знаком с Laravel?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Лара это НЕ модифицированная симфони.
    Именно Симфони и надо учить, есло не знаком паттернами, потому что Симфони заставляет им следовать
    А Лара следует изначальному подходу пхп "фигак-фигак" - и в продакшен, наплевав на все хорошие практики"
    Ответ написан
    3 комментария
  • Как это чище записать?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Специально для любителей заменять array_key_exists на isset
    isset() не возвращает TRUE для ключей массива, указывающих на NULL, а array_key_exists() возвращает.


    Линчно я бы не стал ничего менять. Код читается, выполняет свою функцию. Можно извратиться, и сделать цикл, или использовать неподходящую функцию. Вопрос - ЗАЧЕМ.

    Если сильно постараться, то можно записать этот же код короче. Но короче - не значит чище. В подавляющем большинстве случаев получается ровно наоброт. Короткая, но абсолютно нечитаемая абракадабра. или код с ошибками. или все вместе. Ответы в этом топике служат прекрасной иллюстрацией.

    Работает - ничего не трогай. Не на версисаж код пишешь
    Ответ написан
    3 комментария
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

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

    Можно ли себя называть миддлом, если твой код говно?

    Не пытайтесь себя оценить. В каждой компании свои понятия миддла. А если кто-то 35 лет на лиспе кодил, а потом прыгнет на Angular - кто он, джун или сеньор?
    И, да, все мы в какой-то степени пишем говнокод. Если кто-то Вам доказывает, что он пишет супер чистый код - не слушайте.

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев
  • Как в Symfony дебажить event?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Продебажить event или все же listener/subscriber?
    Если последнее, то напишите тест, в котором соберёте нужный евент, и передадите его в слушателя, попутно проверив, что все выполняется...

    Если нужно именно протестировать интеграционный характер работы, то собственно напишите интеграционный тест, подняв Kernel (в Симфони уже есть необходимые кейсы) и через контейнер дёрните листенер и передайте событие, результаты соберите уже реальные.

    Если без тестов — Запилите простенький контроллер, в котором киньте событие, и продебажьте результат, этот способ займёт 5 минут...

    UPD: С телефона нашёл пример: www.inanzzz.com/index.php/post/04ad/testing-event-...
    суть передает
    Ответ написан
    Комментировать
  • Что мешало консорциуму W3C и разработчикам браузеров сразу придумать css grid?

    Что мешало консорциуму W3C и разработчикам браузеров сразу придумать css grid?

    Ничего не мешало. Просто не было надобности.
    Когда создавался CSS, в интернете был только текст.
    И с оформлением текста таблицы стилей отлично справлялись.
    Спустя некоторое время стали появляться изображения.
    И только сейчас мы пришли к более сложным дизайнерским решениям в макетах с использованием изображений, декоративных элементов, анимации, адаптивности под разные устройства и т.д.
    Ответ написан
    3 комментария
  • На youtub есть канал где читают код PHP?

    hack504
    @hack504
    Изучаю PHP рекомендуют читать чужой код.

    Даже спецы не читают чужой код, если их не заставят. Но было бы прикольно, действительно, посмотреть на youtub как разрабы читают чужой код, особенно на PHP
    1387209829_1176468776.gif
    Ответ написан
    10 комментариев
  • Какие есть сервисы контроля удаленных сотрудников?

    Никогда не пользуйтесь этими рабскими системами, ни один вменяемый человек не поставит себе такое на свое устройство.
    Ответ написан
    19 комментариев
  • Зачем нужны абстрактные классы и интерфейсы в php?

    search
    @search
    мама говорит что я особенный
    Интерфейс - это контракт, который реализовывает класс, а пользователи класса знают как этот класс использовать. Это альтернатива множественному наследованию. Например у вас есть два типа коллекции: бинарное дерево и граф. Это довольно отличающиеся структуры данных. Но каждая из коллекций может реализовать интерфейс Iterator и в этом случае интерпретатор будет знать как перебрать коллекцию в цикле foreach.

    Абстрактные классы в основном используются в том случае, если какую-то часть кода можно описать в родительском классе, но для того чтоб эта часть приобрела смысл, нужна конкретика: дополнить общую картину подробностями в виде методов или полей. Если вы присмотритесь к абстрактным классам в современных фреймворках, то увидите что сам по себе абстрактный класс не имеет смысла. Например, если создать объект такого класса оператором new, то этому объекту всё равно будет чего-то не хватать и именно это что-то и добавляют дочерние классы.
    Ответ написан
    2 комментария
  • Какая база данных подойдет для триллионов записей с индексами?

    @p2rcoder
    если речь о каких-то таймсериях, то быстрее всего работает и занимает меньше места ClickHouse
    Ответ написан
    Комментировать
  • PHP: как сделать так, чтобы аргумент мог принять только одно из определённых значений?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Мне почему-то кажется, что должно существовать какое-то более грамотное решение.

    Возможно, вот такое:
    if(in_array($arg, ['foo', 'bar', 'baz'])) {
        // ...
    }
    Ответ написан
    2 комментария
  • Как организовать архитектуру проекта с 1000 api?

    Gomonov
    @Gomonov
    Используйте очереди. Консьюмеры, обрабатывающие сообщения из очереди, будут держать соединение с бд, чего Вы так боитесь. Продюсеры могут вызываться из крона (определённое время запуска), а могут и из отдельного воркера (запуски через малые промежутки времени)
    Ответ написан
    Комментировать
  • Для чего нужная такого вида запись создания экземпляра класса?

    Konata69lol
    @Konata69lol
    backend developer (php/go)
    Создать сервисный класс и тут же вызвать его метод.
    Иногда удобно, если он не используется по всему классу, а только в одном месте.
    В противном случае его инжектят в конструктор
    Ответ написан
    4 комментария
  • Как правильно сделать несколько параллельных циклических процесса на PHP?

    @2vtlk
    Задачу так и не понял, но для управления процессами отлично подходит пакет symfony/process

    https://symfony.com/doc/current/components/process.html

    разруливать параллельные/последовательные процессы с ним одно удовольствие
    Ответ написан
    Комментировать
  • Где посмотреть\почитать нормальные уроки по ООП в PHP?

    php666
    @php666
    PHP-макака
    Надо не уроки смотреть всяких идиотов, а читать книги людей, чье мнение признано сообществом и которые написали книги.
    Гради Буч - для освоение сути ООП
    Мартин Фаулер - про архитектуру, про CRUD, про доменные объекты. Одной этой книги достаточно, что бы прокачать себя так, что ни один видеокурс в жизни не сделает.

    Иначе твои познания будут соответствовать уровню этих уроков, которые создаются лишь с целью срубить с лохов бабла.
    Ответ написан
    13 комментариев
  • Где посмотреть\почитать нормальные уроки по ООП в PHP?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Основная проблема не изучить основные понятия ООП, а научиться объектно-ориентированному мышлению. Научиться видеть не совокупность функций, которые что то делают, а рассматривать приложение как взаимодействие объектов. ИМХО это может придти только с опытом. Я видел проекты, написанные с использованием классов, но в том же самом процедурном стиле, и это вообще не делало из программирования ООП.
    Ответ написан
    2 комментария
  • Как указать доктрине, какой неймспейс использовать?

    Melkij
    @Melkij
    PostgreSQL DBA
    Слово namespace здесь неверно.
    Ищите по schema name и конкретно search_path

    Странно что вы не знаете что такое search_path, но он у вас модифицирован. В дефолтную настройку схема public включена и потому оба ваших запроса обычно делают одно и то же.

    В доктрине начиная с 2.5 схема указывается так:
    /**
     * Clerk
     *
     * @Table(schema="schema")
     */
    class Clerk { }

    Не уверен что будет работать для public схемы если доктрина предполагает что оно в search_path есть и так.
    Ответ написан
    1 комментарий
  • Как быть хорошим junior?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    1. Адекватность и самостоятельность.
    Детальнее: Умение понять суть задачи, чтобы выполнить ее. Самостоятельно решать проблемы - в это слово входит не только то, что возникла проблема - порешал. А умение решить проблемы, которые ты решить не можешь. То есть организовать решение проблемы. Заблочили аккаунт? Выяснить, вызвонить, попинать, чтобы разлочили побыстрее. Не знаешь как решить какую-то техническую проблему - достучаться до куратора. Не сидеть и ждать три дня, пока он вспомнит про твою проблему, а регулярно уточнять. Занят куратор - подойти к другому. Не успеваешь решить в срок - прийти к куратору заранее, а не за час до конца срока.
    В общем, чтобы за тобой не бегали.

    2. Умение ставить правильные вопросы.
    Сперва загуглить, потом задать вопрос для уточнения. В идеале ставить вопросы, на которые ответ будет "да" или "нет", но это я утрирую. Не бояться спрашивать вещи, которые совсем не понимаешь, но тут не нужно ожидать что все будут разжевывать - следует задать вопрос, чтобы понять куда копать. Иногда достаточно знать пару ключевых слов, по которым можно загуглить.

    3. Желание учиться.
    Не бояться изучить лишнее, потому что "мне же это не пригодится". Умение гуглить по ключевым словам. Не лениться изучать как что-то работает, чтобы понимать почему это происходит. Понимание принципов работы очень сильно увеличивает интуицию.
    Ответ написан
    1 комментарий