• Почему в программировании используются моноширинные шрифты?

    В каких-то случаях для форматирования бывает важно, чтобы ширина всех символов была одинаковая:
    Например, некоторые выравнивают так (или типа того):
    void foo(
             int    x,
             double y)
    {
      int    quux = x;
      double bla  = y;
      float  t    = 0.0;
    }

    С немоноширинным так не получится. Возможно, есть ещё какие-то причины.
    Лично я пользуюсь немоноширинными - они удобнее для чтения, а такое форматирование я не использую и встречаю редко.
    Ответ написан
    Комментировать
  • Почему в программировании используются моноширинные шрифты?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    Когда-нибудь ты тоже будешь громко материться, когда " окажется двумя апострофами, а не кавычкой))
    Ответ написан
    Комментировать
  • Какую взять ORM для своего проекта?

    @D3lphi
    Возьмем ORM из двух популярных PHP-фреймворков. Первая будет Eloquent ("Родная" для фреймворка Laravel), а вторая - Doctrine (Одна из доступных ORM в фреймворке Symfony). Кардинальным отличием этих двух "систем" является то, что первая разработана на основе паттерна Active Record, а вторая - с использованием паттерна Data mapper. Чем же они отличаются? Приведу абстрактные примеры кода для первого и второго паттерна:

    Active Record:
    $user = new User(); // Создаем "сущность" нового пользователя.
    $user->login = 'D3lph1'; // Устанавливаем его логин равным 'D3lph1'.
    $user->password = '123456'; // Устанавливаем пароль этому пользователю.
    $user->save(); // Сохраняем пользователя.


    Все, новый пользователь создан и находится в базе данных. Теперь, Data mapper:
    $user = new User();
    $user->login = 'D3lph1'; // Устанавливаем его логин равным 'D3lph1'.
    $user->password = '123456'; // Устанавливаем пароль этому пользователю.
    
    $manager = ... // получаем объект менеджера (Например, из DI контейнера).
    $manager->persist($user); // "Скармливаем" новоиспеченного пользователя нашему менеджеру.
    // $manager->persis($user1); // Мы можем создать еще одного пользователя и уведомить менеджер об этом.
    // $manager->persis($user2); // И еще одного...
    $manager->flush(); // После выполнения этого метода данные отправятся в базу данных.


    Очевидно, первый способ куда проще. Но не все так просто. Дело в том, что паттерн Active Record нарушает принцип единственной ответственности (Single responsibility SOLID). И поэтому, в какой-то степени, может считаться антипаттерном. (Но это ни в коем случае не значит, что его не нужно использовать, для большинства проектов "хватит" за глаза). Наша сущность пользователя делает слишком много. Она не только представляет данные, но и еще работает с ними. В больших проектах это может усложнить поддержку кода. Data mapper, напротив же, разделяет представление данных в сущность (user) и работу с данными (manager, в данном примере. Также, за работу с данными отвечает репозиторий. Вы столкнетесь с ним, как только вам потребуется получить данные из БД (Doctrine)). В небольших проектах вы не заметите особой разницы. Разве что во втором случае увеличится количество классов. Так, в Eloquent вы создаете 1 модель, а в Doctrine - сущность и репозиторий.

    Все современные ORM включают в себя также, так называемые, query builder'ы. Они помогают отказаться от языка запросов, такого как SQL. Вы будете составлять запросы таким образом:
    $result = $qb
          ->select(['id', 'login'])
          ->where('id', '<>', 3)
          ->get();


    Собственно, query builder'ы помогают абстрагироваться от конкретной СУБД. То бишь, вы написали запрос 1 раз, а затем от того, какую СУБД вы используете будет зависеть выходной sql код. Генерация этого кода будет произведена абсолютно прозрачно для вас.

    Обе ORM имеют работать с отношениями. Вам нужно будет указать, как таблицы относятся друг к другу, а затем вы сможете удобно обращаться к связанным сущностям.

    Теперь конкретно. Так как вы только начинаете осваивать ORM, я бы порекомендовал начать с Eloquent. Она гораздо проще, чем Doctrine, да и более производительная, к тому же. Как освоите Eloquent, смело учитесь работать с Doctrine. Она обязательно должна быть "в копилке" ваших скиллов, так как является самой мощной в "мире" PHP.

    Успехов!
    Ответ написан
    2 комментария
  • Как устроены шрифты?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Читайте спецификации на файлы шрифтов, там всё написано. Вы же не надеетесь что вам кто-то опишет спецификации указанных шрифтов в комментарии?
    Ответ написан
    1 комментарий
  • Как сделать модульность в приложении Vue.js?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Так напрашивается разбить прям на три компонента -- профиль, юзеры и сообщения.
    Ну и vuex посмотрите.
    Ответ написан
    2 комментария
  • Как вставить знак $ в инпут?

    А может так https://jsfiddle.net/ttbdzpv0/1/
    Ответ написан
    Комментировать
  • Есть ли смысл чередовать рекламные площадки?

    Moon_Lobster
    @Moon_Lobster
    Инвестор
    Тестируйте, так вы выявите имеет смысл это под вашу аудиторию или нет. Естественно проанализируйте результаты по месяцу. Возможно одна площадка вообще выпадет по результатам статистики.
    Ответ написан
    2 комментария
  • Не перебор ли для тестового задания?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    Норм для джуниора. Поверьте мидлу или сеньору это сделать можно за час-два :)
    Тут по сути задача на умение гуглить и читать доки. Ничего сложного.
    Ответ написан
    1 комментарий
  • Почему ошибка выскакиевает "No such file or directory"?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    getimagesize работает с файловой системой. Путь, начинающийся с / для этой функции означает не "от корня сайта", а "от корня файловой системы".
    Ответ написан
    2 комментария
  • Как лучше передавать аргументы в функцию JS?

    profesor08
    @profesor08 Куратор тега JavaScript
    Если кол-во аргументов переменное и они вообще могут меняться, то тогда объект.
    func({
     mama: "vanea",
     papa: "vasea",
     ujas: true
    });


    Если кол-во фиксированное, тогда как обычно:
    func(mama, papa, ololo, trololo);
    Ответ написан
    Комментировать
  • Где найти "вдохновение" на дизайн?

    sergey_st
    @sergey_st
    Для вдохновения отличные сайты: https://www.awwwards.com/ и www.cssdesignawards.com
    Для второго пункта можно использовать, например, https://themeforest.net/ шаблоны там не бесплатные, но и не дорогие.
    Много различных элементов (кнопки/слайдеры/и др.) можно найти на https://codepen.io и https://github.com/ только там желательно ознакомиться с лицензией.
    Ответ написан
    2 комментария
  • Что нужно для устройства на работу пентестером?

    saintbyte
    @saintbyte
    Django developer
    Желательно иметь условный срок по статьям 272 и 273 УК РФ.
    Ответ написан
    Комментировать
  • Какие перспективы, состояние рынка ПО и как начать продавать своё ПО?

    Если бы существовал правильный алгоритм "разработать ПО -> много продать", все бы этим алгоритмом пользовались.

    Решение 1.
    Напишите хоть одну "ПО", продайте хоть сколько-то, оцените результаты (они могут как окрылить, так и приземлить). Лицензирование сделайте самое простейшее, о защите лучше не беспокоиться.

    Решение 2.
    Найдите партнёра, с которым сможете если не сделать , то хотя бы пойти в направлении того, что сделали Гейтс с Алленом.
    Ответ написан
    Комментировать
  • Какие перспективы, состояние рынка ПО и как начать продавать своё ПО?

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

    xpert13
    @xpert13
    Full Stack Developer
    Создать таблицу для хранения платежей (пополнения списания) и считать баланс путем сложения операций? Или просто создать колонку balance и все?

    И то и другое. Колонка balance для быстрого получение этой информации, чтобы, к примеру, выводить на странице профиля. Но при любой операции с балансом эту колонку пересчитываем путем сложения. Так же не стоит её использовать при определении того хватает ли пользователю на какую-то операцию или нет.
    Ответ написан
    Комментировать
  • Как засунуть tr в div?

    Stalker_RED
    @Stalker_RED
    Можно иметь более одного tbody.
    Ответ написан
    3 комментария
  • Как засунуть tr в div?

    sim3x
    @sim3x
    Никак

    Браузер или выкинет див или произведет операции по превращению говнокода в корректный хтмл
    Ответ написан
    3 комментария
  • Добавить универсальности к запросам БД из PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Следует понимать, что даже с использованием перечисленных выше инструментов, без "ручной" сборки запроса не обойтись.

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

    - куча времени, убитого на поиски, адаптацию, и допиливание означенного автопостроителя
    - эмоции вида "как эта №%;%:?У#$^№ вообще работает??!" когда через пол-года придется добавить какое-либо новое поле
    - апофеоз, когда потребуется добавить условие, не поддерживаемое автопострителем, какое-нибудь IF EXISTS

    Поверьте, затраты на написание запроса вручную (неважно, через убогое mysql_query или Доктрину) - ничто по сравнению с возможностью **прочитать и понять**, для чего, вообще, данный код нужен, и как он это делает.

    Поэтому излишняя автоматизация бывает очень вредна. И гоняться за ней не стоит.
    Ответ написан
    1 комментарий