• В каком случае лучше использовать абстрактный класс, а в каком интерфейсы?

    Если необходимо задать тип объекта, то необходимо использовать абстрактный класс. А если необходимо задать поведение объекту, то следует использовать интерфейс.
    Ответ написан
    Комментировать
  • Как расширить существующую модель на PHP?

    serginhold
    @serginhold
    как бы сначала надо ответить на вопрос "где это нужно и зачем"

    Вариант 1
    Не надо делать ооп ради ооп, просто в класс Message добавь метод getUrl()

    Вариант 2
    Message это какой-то сторонний класс, и нет возможности его изменить, по этому делаем над ним декоратор.

    class MessageDecorator
    {
        private $message;
    
        public function __construct(Message $message)
        {
            $this->message = $message;
        }
    
        public function getTitle()
        {
            return $this->message->getTitle();
        }
        
        public function getText()
        {
            return $this->message->getText();
        }
    
        public function getUrl()
        {
            // create url
            return 'url';
        }
    }
    
    $message = new MessageDecorator(new Message($title, $text));
    $url = $message->getUrl();


    Вариант 3
    Выносим генерацию url в отдельный сервис

    class UrlService
    {
        public function getMessageUrl(Message $message)
        {
            // create url
            return 'url';
        }
    }
    
    $message = new Message($title, $text);
    $urlService = new UrlService();
    $url = $urlService->getMessageUrl($message);
    Ответ написан
    2 комментария
  • Как полностью написать сайт с нуля, если ты знаешь только frontend?

    Если вашему сайту не понадобится работа с БД, то вы можете просто закинуть статику на хостинг и ваш сайт будет нормально работать
    Ответ написан
  • Как считать данные с USB устройства в браузер?

    Насколько я знаю WebUSB работает только в хроме, если это ентерпрайз проект или песочница и вы можете завязаться на определенную версию браузера, тогда не проблема
    https://developer.mozilla.org/en-US/docs/Web/API/USB
    https://wicg.github.io/webusb/
    https://developers.google.com/web/updates/2016/03/...
    Ответ написан
    Комментировать
  • Как считать данные с USB устройства в браузер?

    NeiroNx
    @NeiroNx
    Программист
    Ну почему не читают описание по собственным ссылкам?
    Написано же в инструкции: Работает по интерфейсу USB клавиатуры
    главное фокус ввода на поле установить и все заполнится.
    Ответ написан
    Комментировать
  • Как считать данные с USB устройства в браузер?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Браузер не может напрямую обращаться к устройствам, это сделать в целях безопасности. Поэтому вам нужен посредник, например установленная на компьютере программа, которая откроет http сервер или вебсокеты, она будет следить за usb ридером, и отдавать всю инфу вашему скрипту в браузере.
    Ответ написан
    2 комментария
  • Sphinx vs ElasticSearch: что выбрать?

    un1t
    @un1t
    Примущества сфинкса - быстрая скорость индексации. Если надо быстро проиндексировать 10 млн документов, это плюс. Сфинкс также намного менее требователен к ресурсам. Это тоже плюс.
    Преимущество эластиксерча - очень удобное и богатое API.
    Ответ написан
    Комментировать
  • Как пользоваться миксинами (**модификаторами** - не то написал в задумчивости) БЭМ?

    werty1001
    @werty1001
    undefined
    Каскад от модификатора на элементы нормальная практика, БЭМ не призывает отказываться от каскада совсем, а просто советует его избегать при возможности, а самое главное думать головой.
    Ответ написан
    1 комментарий
  • Как понять БЭМ, и что мотивирует верстальщик в использовании его?

    space2pacman
    @space2pacman
    Просто царь.
    1) Тебе как back-end'еру какое дело до классов ?
    2) Ты знаешь в чем различие БЭМ и SASS ?
    БЭМ - это методология написание классов.
    SASS - это препроцессор.

    БЭМ - Это больше масштабируемость а уже потом лаконичность. Забудьте про селекторы (только если они действительно нужны).
    А когда просматривал код через панель разработчика то увидел настоящие MMO RPG PVP битву, зуб за зуб, стиль за стиль, по 3 раза все перебивается
    Это криворукость разработчика. БЭМ тут ни при чем.

    Так по мне БЭМ это вообще огромный костыль а не методология
    Ты просто не познал дзен БЭМа.

    А вообще в вопросе у тебя говнобём а не БЭМ.
    Ответ написан
    6 комментариев
  • Как понять БЭМ, и что мотивирует верстальщик в использовании его?

    dom1n1k
    @dom1n1k
    От БЭМ-а тут только двойные подчеркивания. Тут вообще всё неправильно.
    Ответ написан
    Комментировать
  • Как понять БЭМ, и что мотивирует верстальщик в использовании его?

    class="custom__button black__button login__forgot reg__button right__part mob-full__width"

    На вопрос верстальщику что это такое: "Это бэм"


    Вам нагло соврали. Это говнокод.

    Понять BEM
    Ответ написан
    5 комментариев
  • Есть ли АПИ для Яндекс Почты и Контактов?

    opium
    @opium
    Просто люблю качественно работать
    а смысл апи для обычного юзера, надо аппировать делайте через имап
    Ответ написан
    Комментировать
  • Какой фрэймворк выбрать Yii 2 или Symfony 2?

    IvanCher
    @IvanCher
    Мысли шире
    Симфонисты не работают с yii2 и не до конца понимают о чем пишут :)
    Я скажу так: оба фреймворка на высоте, по возможностям одинаковы, но подходы очень разные.
    Объективно скажу так: на yii2 не получится запускать отдельные модули без запуска всего приложения, тут у симфони2 огромный плюс. Так же у симфони более классные консольные команды для генерирования каркасов, мне больше нравится, чем gii(но дело вкуса). Но по факту большинство сильных сторон симфони не оправдывается в связи с высоким порогом вхождения. Найти хорошего симфони программиста намного сложнее, чем найти его на yii2. Поэтому взависимости от бюджета и масштаба проекта можете выбирать. Симфони2 - это больше уровень корпораций, yii2 более простой при практчески том же функционале.
    Если знаете симфони2, то лучше подтяните его. Yii2 изучить намного проще, намного всё прозрачнее внутри работает, там Вам хватит пару вечеров, чтобы пройтись по исходникам и всё для себя понять как изнутри как работает.
    Ответ написан
    7 комментариев
  • Хранить ли изображения в базе данных?

    petermzg
    @petermzg
    Самый лучший программист
    Файловая система, эта таже самая база данных. Так что храните спокойно все изображения в blob полях базы данных.
    Плюсы:
    - Удобнее будет делать бекапы (все в базе)
    - Контролируется целостность данных
    - Скорость доступа к данным сопоставима с файловой системой.
    Ответ написан
    Комментировать
  • Аналог компонентов 1C-Bitrix в Symfony?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    В Symfony обычно основной код работает в сервисах, а контроллер вызывает нужный сервис. Большой плюс - один раз создал код работы с сущностью, и можно использовать его в любом месте - в любом контроллере, в другом сервисе, в шаблоне. Весь год работы с сущностью - в одном месте (в одном сервисе).
    1) Сделать сервис, который строит список последних новостей (этот же сервис использует кэш).
    2) Создать Twig расширение, которое добавляет функцию получения списка последних новостей (получение из созданного сервиса). Например, создать функцию "lastNews". Ссылку на сервис новостей настроить через контейнер (в services.yml, или где там делаете сервисы). (ссылки для создания функций: 1, 2)
    3) В основном шаблоне (app/Resources/views/layout.html.twig) вызвать созданную функцию. Упрощённо примерно вот так:
    {# app/Resources/views/base.html.twig #}
    <!DOCTYPE html>
    <html lang="ru">
        <head>
        </head>
        <body>
            {% block body%}{% endblock %}
            {% block javascripts %}{% endblock %}
        </body>
    </html>


    {# app/Resources/views/layout.html.twig #}
    {% extends 'base.html.twig' %}
    
    {% block body %}
    <div class="container">
        <div class="sidebar">
            {% block sidebar %}
                <ul class="sidebar-menu">
                {% for item in lastNews() %}
                  <li><a href="{{ item.href }}">{{ item.title }}</a></li>
                {% endfor %}
                </ul>
            {% endblock %}
        </div>
        <div class="content">
            {% block content %}
            {% endblock %}
        </div>
    </div>
    {% endblock %}
    Ответ написан
    5 комментариев
  • Почему Yii/Yii2 не подходит для крупных проектов?

    qonand
    @qonand
    Software Engineer
    Хоть Yii и создан в первую очередь как фреймворк для быстрой разработки приложений, ничего не мешает сделать на нем крупный проект. Как сказал oxidmod Yii ничего не навязывает разработчику, в этом его плюс и минус одновременно. Если проект реализовывают профессионалы - они спокойно его сделают на Yii качественно, если новички - они спокойно заговнокодят проект. Т.е. тут вопрос только в радиусе кривизны рук. Yii реже выбирают для крупных проектов чем тот же Symfony, т.к. с точки зрения бизнеса он более оптимальный, например:
    - в стандартной реализации Yii нацелен в первую очередь на скорость разработки, симфони - на качество. Соответственно в крупном проекте дешевле использовать Symfony со всеми его инструментами, чем реализовывать эти инструменты с нуля. Например, yii-шный ActiveRecord - хорош на простых проектах, но в сложных проектах он приносить больше проблем чем пользы, а в стандартной реализации никаких альтернатив ему не предусмотрено ...
    - Symfony накладывает определенные правила разработки для программистов, соответственно из за этого проще внедрять на проект новых разработчиков, не боясь что они заговнокодят.
    - в Yii низкий порог входа, соответственно "качество" многих разработчиков желает лучшего ...
    Ответ написан
    5 комментариев
  • Yii2 или Symfony3?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Есть такое мнение, но скорее вопрос больше теоретический чем практический. В yii2 больше не красивых моментов чем в симфони. Но реально есть куча enterprise на yii2 и отлично все.
    Я бы выбирал между Yii2 или Symfony3 не с точки зрения "enterprise" или "не enterprise", а исходя из архитектуры проекта.
    И вот кстати уже обсуждали:
    Почему Yii/Yii2 не подходит для крупных проектов?
    Ответ написан
    2 комментария
  • Yii2 или Symfony3?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    yii не подходит для enterprise проектов. Конкретно из за синглтона и ActiveRecord

    смю Комментарии Попросили проверить код, на что смотреть нужно?
    Ответ написан
    7 комментариев
  • Yii2 или Symfony3?

    qonand
    @qonand
    Software Engineer
    Но пишут что symfony больше подходит для enterprise проектов. Что скажете?Чем он лучше yii2?

    Разница между этими двумя фреймворками кардинальная. Symfony - нацелен в первую очередь на качество кодовой базы, yii - на скорость разработки (т.к. yii - это RAD-фреймворк).
    Лучше конечно использовать симфони т.к. в нем из коробки реализован ряд подходов используемых для разработки enterprise, в отличии от yii2. Но так же нужно понимать что
    сам по себе фреймворк - это не панацея. В первую очередь разработчики создающие проект должны понимать как строятся enterprise-приложения, подходы к его разработке и т.п.
    Ответ написан
    Комментировать
  • Стоит ли в Symfony2 заменять Assetic на связку bower + grunt, или совместить их использование?

    @shoomyst
    dumb
    Разумеется стоит.
    Assetic это так, игрушка на первое время. Потом начинают бесить постоянные тормоза, начинает не хватать гибкости инструментов nodejs. Я сейчас уже не особо слежу за развитием ассетика, но насколько мне известно там в последнее время не самым активным образом это всё дело движется.
    У ассетика есть некоторые плюсы в плане интеграции в symfony/twig, но если проект претендует на какую-то серьезность, советую при старте проекта сразу закладывать nodejs + bower + grunt/gulp - в конечном счете эта связка перекроет все плюсы ассетика.
    Ответ написан
    1 комментарий