Задать вопрос
  • Какие минусы в себе несли ваши автотесты?

    xez
    @xez
    TL Junior Roo
    Недостаток один - нужно выделить время для написании / поддержки.
    Остальное - только плюсы. В двух словах: если нет тестов - нет никакой гарантии работоспособности приложения. То что оно, кажется, работает - случайность.
    Ответ написан
    Комментировать
  • Почему svg анимация не работает в Firefox?

    YavaDev
    @YavaDev
    Девтулз Firefox говорит в чем проблема:
    6065bfe03c791934673668.jpeg
    Просто добавтье px в keyframes. Пример:
    @-webkit-keyframes circle1 {
        0% { r: 20px;}
        15% { r: 30px; cy: -30px;}
        30% { r: 20px; cy: 20px;}
        45% { cy: 10px; }
        60% { cy: 20px; }
    }
    Ответ написан
    1 комментарий
  • Как часто нужна модель MVC?

    Stalker_RED
    @Stalker_RED
    Да, это полезно - написать свой фреймворк и/или CMS.
    Потом полезно сравнить его с laravel или symfony, найти чем ваш фреймворк лучше.
    Если ничем не лучше - можете его смело забросить, и переходить на что-то общеизвестное, и вот почему:

    Представим, что у вас заказали лендинг по заказу насосов, например, и вы сделали его на своем фреймворке. Через 5 лет вы сменили род деятельности, и водите экскурсии по Тасмании. Или вас укусил радиоактивный паук, и теперь вы спасаете мир, а поддержкой сайтов не занимаетесь.

    Сервис с насосами за это время вырос, они теперь еще и бурят скважины, и фильтры устанавливают и колодцы копают, и у них филиалы в 20 городах. Им нужно доработать сайт. И при поиске разработчика выясняется, что сайт ваш доработать невозможно, т.к. документации по фреймворку нет, готовых модулей совместимых нет, интеграций с 1C, google docs, microsoft sharepoint нет, и никогда не будет. И проще переписать с нуля, чем разбираться как оно у вас там устроено.

    А если бы сайт был на общеизвестном фреймворке, то гораздо проще найти и специалистов и найти готовые интеграции.

    Никто не закажет сайт на самописном фреймворке если он планирует развитие своего бизнеса и понимает что он вообще делает. То есть ваши потенциальные клиенты - это только те, кто впервые заказывает себе сайт, и вы ему смогли впарить самоделку.
    Ответ написан
    4 комментария
  • Как такое сверстать?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Вот здесь, например, делал когда-то такую вещь (блок "Этапы создания корпоративного сайта").

    605df09f637c9864487824.jpeg

    Идея, вкратце:
    1. Элементы размещаете просто в сетку с помощью inline-block/float/flex/grid - как привычнее.
    2. Родителю задаёте относительное позиционирование, в него помещаете абсолютный элемент на всю ширину/высоту с небольшим запасом, на котором будете рисовать SVG.
    3. Как нарисуется - на js считаете ключевые точки (координаты), через которые нужно провести линии.
    4. Динамически рисуете SVG по вашим ключевым точкам.
      О том, какие варианты вообще есть, можно почитать на MDN, например.
      Выглядеть это будет примерно так:

      605df0b0256ca826129561.jpeg

      В вашем случае рекомендую использовать кривые Безье. Здесь мне нужно было сделать полукруг, поэтому я использовал дуги, у вас же просто статичная величина закругления.
    5. На ресайз окна считаете ключевые точки заново и перерисовываете SVG.
    6. Опционально заморачиваетесь и добавляете сверху ещё один путь, который по скроллу будет "заполняться"


    Это в целом чёрная магия, можно полдня убить, но красиво :)
    Если это всё очень сложно, то просто картинкой вставьте, высоту элементов фиксируйте, и меняйте картинку для адаптивных вариантов.

    Готовых вариантов тут в общем-то вы вряд ли найдёте, нужно взять и разработать.
    У меня была идея оформить это в какую-то библиотеку, но как и все остальные идеи - и ныне лежит в туду-листе на 60+ пунктов. :)
    Ответ написан
    12 комментариев
  • Как заглянуть "под капот" JavaScript?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    3 комментария
  • Кто знает как делать такие анимации?

    RAX7
    @RAX7
    Похоже что сделано на основе Perlin noise.
    Упрощенный вариант на canvas:
    Ответ написан
    Комментировать
  • Как редактировать большие файлы *.txt и *.lst?

    @ComodoHacker
    Для просмотра и поиска я пользуюсь Far Manager.

    Насчет редактирования нужно уточнить, что за редактирование. Редактировать такие файлы вручную несколько странно. Обычно для этого используются утилиты для пакетного редактирования, типа awk, sed и т.п.
    Ответ написан
    6 комментариев
  • Кто знает как делать такие анимации?

    @lolzqq
    HTML,CSS,JS,PHP
    Простые без затей на css

    Сложные уже на three.js
    Ответ написан
    4 комментария
  • Может ли кто-то проревьюить ООП код на PHP (тестовая задача, Symfony)?

    glaphire
    @glaphire
    PHP developer
    Мне кажется что тестовое сделано хорошо, но есть вещи которые немного некомфортны для потенциального проверяющего:
    1) Хорошо бы было все команды по поднятию проекта завернуть в Makefile или bash сценарий
    2) EmployeeScheduleController Аннотация Route на уровне класса это похоже на оверхед здесь, потому что только два эндпоинта и пустой роут над getWorkSchedule сразу пугает)) И private методы лучше сместить все вниз или вынести в базовый контроллер.
    3) Employee создание класса Time тоже больше похоже на оверхед, с одной стороны хорошо, что все ограничения инкапсулированы в одном классе, с другой стороны операции с DateTime как-то более интуитивны.
    4) EmployeeRepository Метод loadEmployeesFromFile() это точно не зона ответственности доктриновского репозитория, это отдельный класс, обычно сервис. Репозиторий это слой чтения из хранилища, а тут процесс записи.
    5) DayFactory, TimeFactory, TimeRangeFactory и их интерфейсы кажутся очень большим оверхедом, потому что на небольшую логику созданы три класса и три интерфейса, про которые надо помнить и проверять их содержимое для поддержания общей линии приложения.
    6) Обычно в симфони стараются придерживаться прямолинейной структуры папок, внутри Service есть Builder, ExternalApi, Factory и Validation - это разные группы задач и точно не сервисы, стоило бы оставить их в неймспейсе App (папке src) или выделить папку Module/Scheduler и создавать эти папки там.
    7) Calendar - у этого класса зона ответственности это быть апи клиентом, можно его переименовать в CalendarApiClient, чтобы однозначно понимать что он дергает внешнее апи, а не просто сущность, как-то связанная с другим апи.
    8) Validation - это необязательно, но обычно стараются по-максимуму использовать компонент Validator и логику дополнительных проверок строить вокруг него
    9) ScheduleDirector может я раньше не встречалась с такой группой классов, но Director звучит контринтуитивно, Service или Manager немного привычнее и предсказуемее.
    Тут есть противоречние - свойство scheduleBuilder не сеттится сразу, хотя оно необходимо для фунционирования, при этом его надо сеттить обязательно через сторонний метод. В симфони можно сконфигурировать класс заранее в services.yaml, задать ему алиас и уже готовый инжектить в нужный класс. Немного странно видеть исключения BadRequestHttpException, NotFoundHttpException в классе, зоной ответственности которого не является работа с http напрямую)
    10) EmployeeNonWorkScheduleControllerTest - зачем использовать в качестве названий переменных подчеркивания? Может это ошибка? Просто выглядит очень странно)
    11) В комментариях упоминали добавить коллекцию постмана, это было бы желательно
    Ответ написан
    9 комментариев
  • Как распознать криво порезанную строку?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    $isValidUTF8 = ! (false === mb_detect_encoding($string, 'UTF-8', true));


    Так же если json_encode() вернула false можно посмотреть json_last_error() и сравнить код ошибки с константой JSON_ERROR_UTF8
    Ответ написан
    3 комментария
  • Как задать и использовать переменную в конфигурации Symfony?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    Файл .env. Подробно в документации
    Ответ написан
    Комментировать
  • Почему composer устанавливает лишние пакеты?

    megakor
    @megakor
    Go/PHP developer | ВКонтакте
    composer.json содержит зависимости вашего проекта от данных библиотек.
    Но эти самые библиотеки могут содержать в себе другие зависимости, которые будут отражены в composer.lock (в composer.json, при этом, отражено не будет).
    Т.е. то что скачиваются у вас пакеты, которых нет в composer.json - это нормально и от этого никак не уйти, потому что это необходимость.
    Ответ написан
    Комментировать
  • Стоит ли начинать изучение программирования в 13 - 14 лет?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Те, кому действительно стоит изучать программирование, этим вопросом не задаются, они просто начинают изучать, как только им становится интересно.
    Ответ написан
    3 комментария
  • Wordpress. Возможно ли на плагине Elementor или подобное ему создать сайт по дизайну в Pixel Perfect?

    Sanes
    @Sanes
    Как чаще всего создаются сайты на wordpress ?
    На конструкторе ? или верстка и потом натяжка ?

    Тиражные многофункциональные темы и конструкторы это оверхед и +100 к тормозам.
    Ответ написан
    Комментировать
  • Wordpress. Возможно ли на плагине Elementor или подобное ему создать сайт по дизайну в Pixel Perfect?

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    Ну наверное заморочиться можно, но имхо ручная вёрстка будет лучшим вариантом.

    А делают вообще очень по-разному - кто на конструкторах, кто на основе других тем, кто руками. Вообще если сразу имеется ввиду разработка сайта на Wordpress, то всё сразу по месту делается.

    Т.н. «натяжка» осуществляется тогда, когда у вас уже был свёрстанный шаблон, но его вдруг решили адаптировать под Wordpress.
    Ответ написан
    Комментировать
  • Найдена опасная уязвимость в очень популярном мобильном приложении. Что делать?

    Есть ли законные способы получить вознаграждение за проделанный труд и помощь сервису

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

    Хотя некоторые компании без багбаунти могут и наградить чемнибудь.
    Например знаю 1 случай, когда клиент нашёл способ пользоваться платным сервисом без оплаты - он рассказал об этой уязвимости и ему дали промокоды на год пользования.
    Ответ написан
    2 комментария
  • Как сделать вклад в развитие PHP?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Все шаги подробно описаны: https://wiki.php.net/rfc/howto

    Однако, я бы не рекомендовал вам тратить своё и чужое время на это предложение.
    Во-первых:
    If you don't have the skills to fully implement your RFC and no-one volunteers to code it, there is little chance your RFC will be successful.

    А во-вторых, это настолько нишевое и малополезное предложение, что усложнять язык ради него никто не станет.
    Ответ написан
    6 комментариев
  • Как правильно внедрять БЭМ?

    profesor08
    @profesor08
    Ну вот, желание использовать БЭМ, породило кучу проблем. Нет БЭМ - нет проблем!

    Используй styled-components или модульные стили. Если нет возможности, то используй scss, там нет проблем, которые навязывает БЭМ и героически решает. Если используешь чистый CSS, то не используй, а используй scss.
    Ответ написан
  • Что с тостером?

    Nomad_77
    @Nomad_77 Куратор тега Тостер
    Product manager at habr.com
    Привет.

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

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