• Как еще можно подставить вызов метода?

    hack504
    @hack504
    $this->{$method['name']}($parser_name);
    //можно и через рефлексию: 
    $reflectionMethod = new ReflectionMethod($this, $method['name']);
    $reflectionMethod->invoke($this, $parser_name);
    Ответ написан
    Комментировать
  • Разработка посредника/агрегатора?

    hack504
    @hack504
    Обычно для таких проектов сначала делается пилот (на коленке собирают сайт с минимальным функционалам и отрабатывают кейсы). Потом с этим пилотом носятся по клиентам и собирают требования рынка. А вот уже потом, когда все цифры и кейсы определены, можно уже приступать к Архитектуре и пилить продакшен.

    Но меня волнует не это, а то откуда я буду брать инфу о кол-ве уже реализованного товара, его наименовании и прочего.

    Этот же вопрос и будет интересовать клиентов.
    Ответ написан
    Комментировать
  • Angular: как переключить язык?

    hack504
    @hack504
    надо настраивать сервер, так как локализация подхватывается Angular'ом по урлу (типа /ru/, /fr/, и т.д.). Тут гайд по настройкам:
    https://dev.to/angular/deploying-an-i18n-angular-a...
    Ответ написан
  • Как вызвать метод родителя в php?

    hack504
    @hack504
    parent::foo()
    Ответ написан
    Комментировать
  • Как лучше спроектировать базу данных?

    hack504
    @hack504
    Нужно хранить информацию о посещении пар учениками.

    Можно хранить информацию о НЕ посещении пар учениками. Сколько тогда будет записей в месяц?
    Ответ написан
  • На youtub есть канал где читают код PHP?

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

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

    hack504
    @hack504
    Востребован ли верстальщик в 2019, или это я дурак и он действительно сейчас никому не нужен?

    Абсолютно верно, верстальщик в 2019 никому не нужен.

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

    hack504
    @hack504
    Среди готовых не знаю, но раз вопрос стоит так, то предложу то, что знаю.
    В гугл-календаре можно выставлять доступ для просмотра/редактирования календаря, а также выводить несколько календарей сразу. Если клиентов немного и они представляют из себя четкую иерархию важности, то можно следовать следующему принципу - каждый клиент выставляет диапазон возможной даты созвона, а вы, уже ориентируясь на важность, каждому календарю(клиенту) задаёте четкое время созвона и его длительность.

    Неудобно, много вопросов по этой теме, но кое-как работало в моей схеме, не в ущерб производительности.
    Ответ написан
    2 комментария
  • Возможно ли создать не большой скрипт?

    hack504
    @hack504
    есть сайт компании на котором есть страница статусов различных сервисов и если какой то падает он меняет статус,

    Если он меняет статус на странице без перезагрузки, то тогда это относительно просто реализовать:
    1. Определить что за технология отвечает за обновление инфы на том сайте (Ajax, WebSocket или иное)
    2. Реализовать на php клиента со всеми вытекающими.
    3. Задействовать телеграмм-бота

    Если же страница статична, то там уже зависит от DOM, можно и упороться
    Ответ написан
    3 комментария
  • Как реализуют инкапсуляцию в python?

    hack504
    @hack504
    Правильнее говорить "Модификаторы доступа", т.к. Инкапсуляция это своего рода механизм, который имеет более обширное понятие, чем модификаторы доступа - protected, private, public.

    По теме: реализуются через декораторы https://habr.com/ru/post/443192/
    Ответ написан
    4 комментария
  • Постигаю MVC, для начала обучения так сойдет?

    hack504
    @hack504
    Сойдёт, но лучше раскидать сразу на отдельные блоки (даже без ООП) - вы хоть будете видеть что есть Модели, Вьюшки, Контроллеры и роутинг:
    <?php
    
    function response($view, $model) {include $view;include $model;}
    
    $models = array(
        'default' => '../model/model_default.php',
        'some' => '../model/model_1.php'
    );
    
    $views = array(
        'default' =>  '../view/view_default.php',
        'some' => '../view/view_1.php'
    );
    
    function controller($page) {
        GLOBAL $models, $views;
        switch ($page) {
            case 'firstPage':
                response($models['some'], $views['some']);
                break;
            case 'contacts':
                response($models['default'], $views['some']);
                break;
            case 'default':
                response($models['default'], $views['default']);
                break;
        }
    }
    
    function router(){
        if (isset($_GET['value']) && $_GET['value'] == 1) {
            controller('firstPage');
        } else {
            controller('default');
        }
    }
    
    router();
    Ответ написан
    Комментировать
  • Книги, советы, курсы по архитектуре приложений?

    hack504
    @hack504
    Вроде все работает, все более менее оптимизировано, но мне все равно кажется, что мой код ужасен. ПРОСТО УЖАСЕН.

    В принципе, не существует идеального кода, просто банально потому, что насчет этого существуют как минимум два разных мнения.
    Что бы проверить, насколько код ужасен - внедрите новую фичу в ваш проект - если это сделать сложно, без изменения нынешней структуры, тогда вам нужен Рефакторинг, что как бы и подразумевает, что вы будете улучшать именно архитектуру. Рефакторинг можно применять до бесконечности, наделяя архитектуру новыми плюсами и новыми минусами.

    Практический опыт важнее теории. По крайней мере изучение архитектуры уже предполагает наличие опыта
    Ответ написан
    2 комментария
  • Поиск best practice Laravel. Размещение всех классов в силгентон хорошо или плохо?

    hack504
    @hack504
    нет никакого смысла описывать все синглетоны в контейнере. Если же этот контейнер умеет инжектить зависимости, то тогда появляется смысл для переопределение зависимости: изменяя свойство public $singletons для определенных классов мы можем получать другую реализацию на лету, Но опять же не вижу смысла описывать их все - это же синглетоны, можно было бы просто реализовать через метод:
    $AppServiceProvider->delegate('\App\Services\Account\Company\CreateCompany',  '\App\Services\Account\Company\MyCreateCompany');
    Ответ написан
  • Зачем нужны абстрактные классы и интерфейсы в php?

    hack504
    @hack504
    Да, носят чисто декларативный характер. Но в проектировании и при разработке в команде разработчиков очень сильно нужОн. Например, у нас есть некая сущность Тариф, от которой порождены конкретные реализации (Акционный, лимитный, безлимитный, специальный - не суть ) - их может что-то объединять/разделять. Поэтому, когда я пишу некий класс который как-то взаимодействует с Тарифом с определенным признаком, то я явно могу указать это создав специальный Интерфейс и запросить именно экземпляр класса конкретно этого интерфейса, а не родительского класса:
    public function __construct(IDiscountByDay $Tariff){}

    Далее уже сделать имплементацию этого интерфейса на всех наследниках класса Tariff где нужно, и не парится, что через какое-то время другой разработчик создаст новую реализацию тарифа и с твоего кода посыпятся баги
    Ответ написан
    1 комментарий
  • SQL выборка по дате?

    Комментировать
  • Нужен ли класс в этом случае? Или можно держать функцию особняком?

    hack504
    @hack504
    Моделью в данном случае должна выступать ORM, а автор просто сделал жалкое подобие для наглядности (видимо в следующих уроках разжует это).
    Судя по всему тут всё для наглядности - во View эта модель не прокидывается никак, вьюшка тупо в её области видимости инклудится. Для примера ОК, можешь попутно трогать Yii2, например.
    Ответ написан
    Комментировать
  • Почему данные не передаются в формате json?

    hack504
    @hack504
    В Google Chrome Ctrl+Shift+I вкладка Network - тут увидишь какие данные отсылает php-скрипт
    Ответ написан
  • Что такое навыки программирования, "программистские скиллы", и почему они утрачиваются?

    hack504
    @hack504
    «Программистские скиллы» - это что-то типа спорта, ежедневные тренировки. Если бросаешь, то теряешь форму, если возобновляешь, то опять приходишь в форму. Но честно сказать, никаких скиллов, к сожалению, не существует в прикладном программировании - ты просто плывешь по тому курсу, что задаёт рынок и он диктует какие твои «программистские скиллы» сейчас актуальны, а какие с пометкой «deprecated». Согласись, утратить то, что в последствие не будет актуальным - не такая уже и страшная потеря)
    Ответ написан
    Комментировать
  • Какому языку, в какой среде начинать учить ребенка программированию 10 лет?

    hack504
    @hack504
    Он увлекается Minecraft, там java, как бы мы посмотрели, как моды пишут, но там не просто, уже надо классы, объекты знать. Это абстракции уже.

    Это надо всё знать, чтобы писать самому мод, но он может пока просто редактировать чужие моды и смотреть чё получилось. Я сам с Delphi начинал и писал даже коммерческий продукт, и только очень после узнал что такое ООП и что я оказывается в этом ООП ухитрялся что-то делать без знания оного.
    Ответ написан
    Комментировать
  • Что такое основы ООП?

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