Задать вопрос
  • Идеальная структура каталогов проекта?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Не существует.
    Ответ написан
    Комментировать
  • Отделение бизнес логики от фреймворка Symfony?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Генератор — просто инструмент для помощи, по итогу сущности чисты, не считая аннотаций/атрибутов для маппинга в ORM, но это просто мета-информации и завязка не существенна (не считая маленького компромисса с ArrayCollection). То есть если вы выберите др ORM, то эти аннотации вам не помешают никак, просто лишние заюзанные классы аннотаций

    Имея сущности доктрины — у нас не связанный от фреймворка код, пишите спокойно бизнесуху, не обращая внимания на то, как оно потом маппится. То есть практически все по каннонам

    Чтобы отделить репозиторий от домена — просто в домене делайте интерфейс, а вот реализация этого репозитория будет в Infrastrucure Layer, но это избыточно... риск минимальный, если сделаете не совсем по канону, а именно риск стоит как основной аргумент такового отделения (не просто же вы словам следуете, а причину понимаете?)
    Разработка строится на компромисах, если смените доктрину на др ORM — так и так писать новые репозиторий, вероятность низкая и многие например не делают такие интерфейсы — слишком усложнит код...
    Вам надо будет просто репозиторий в маппинге ORM\Repository заменить в таком случае

    Некоторые компании пишут интерфейсы и сильно усложняют код, но тк риск минимальный изменений, то такое усложнение приводит как правило к усложнению и не более. Следуйте здравому смыслу.
    Мой довод нельзя раскручивать "ну раз минимальный, то завяжусь по полной". Все же отделение логики надо делать

    чтобы все же соблюсти эту чистоту
    и не сильно усложнить, то можно систему разбить на модули/фичи
    и каждый модуль будет иметь такие слои
    почему лучше это сделать:
    - реализация репозиториев хоть и инфраструктурная, но правится часто при изменении домена, а значит сильно далеко прятать не вариант, иначе сильно все будет размазано... потому модуль делают трехслойным (инфра, домен и апликейшн слой)
    пример

    617588c41bdde421641847.png
    Ответ написан
    8 комментариев
  • В чём смысл передавать array_reverse в foreach без явной необходимости обратного порядка элементов?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для ответов на подобные вопросы всегда полезно использовать логику.
    Например:
    Если необходимости в обратном порядке элементов нет, то array_reverse не нужна.
    Если array_reverse используется - значит, скорее всего, необходимость есть, но вы её просто не видите.

    Это универсальный способ, который позволяет ответить на можество подобных вопросов.

    "оставить исходный массив нетронутым" причиной не является.
    Ответ написан
  • Когда применяем паттерн Стратегия, а когда Декоратор?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Стратегия = полиморфизм, то есть мы завязаны на некий интерфейс, а какая реализация — нам не важно. Это история про зависимости. Ну например почтальон отдает пенсию бабушкам (любым, какой бабушке именно — зависит от стратегии, КОТОРАЯ НЕ СВЯЗАНА с модификацией конкретной бабушки:)

    Декоратор, это про добавить функционал в рамках одного интерфейса, тут вообще не рассматривается вопрос каких-либо отношений (к примеру бабушки и почтальона), тут рассматривается — бабушка в шубе или бабушка с загаром или бабушка на коляске, все та же бабушка, но "обернутая" неким поведением :) Главное что бабушка всегда остается быть той самой для всех бабушкой. То есть это не противопоставление — ни в начале ни в середине мы не завязываемся на дополнительное поведение бабушки у почтальона. Бабушка и все, а какая именно — зависит от стратегии разноса (например по названию улицы). Если выйдет к нему "декорированная" бабушка-качок — пенсию он даст ей также, как и не качку, тк она для него всего лишь некий субъект/абстракция, главное чтобы возраст и ФИО сошлись.

    Соответственно это никак не похожие паттерны, один поведенческий, другой структурный... Они применяются всегда в любой этап разработки. Я в самом начале могу сделать декоратор обычной бабушки в виде поющей бабушки, а почтальона или внука в виде стратегии написать потом. А могу наоборот — сначала научить возить бабушек на трамвае (через стратегию), а бабушек с костылями (декоратор) добавить позже...

    Кое-где не корректные аналогии, и в аналогии стратегия есть бабушка, но в целом для понимания норм и не критично :)
    Ответ написан
    Комментировать
  • Следует ли использовать геттеры и сеттеры внутри самого класса?

    BorLaze
    @BorLaze
    Java developer
    Нет, нет и еще раз нет.

    Ну, представьте класс, работающий со временем. Геттер возвращает строку типа "01:23:45", сеттер оперирует с тем же юзер-френдли форматом. А внутри вы храните время в миллисекундах. Что, всякий раз конвертировать будете?

    Геттеры/сеттеры - это интерфейс для работы с объектами класса СНАРУЖИ. Что под капотом - это дело реализации, и операции ВНУТРИ класса должны идти с теми данными и в той форме, что определена архитектурой. А не тем, какая форма нужна потребителю класса.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    докер это контейнер для запуска конкретного приложения в определенной среде, а не для запуска операционной системы. Что система будет делать в контейнере? Какой конкретно процесс от системы вы хотите запустить в докере?

    Для запуска операционной системы есть виртуальные машины, а докер - в принципе суть заключается в том, что запускается конкретный процесс, в изолированной среде, в текущей ОС.
    Ответ написан
    Комментировать
  • Как подключиться к сокету с интернета?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Чтобы писать сетевые приложения надо понимать, как работают сети.
    Ответ написан
    Комментировать
  • Как сформировать команду Bash?

    @q2digger
    никого не трогаю, починяю примус
    find ./folder/ -name "*.log" -size +10M -mtime -2
    Ответ написан
    2 комментария
  • Какие части linux, нюансы надо знать, чтобы админить nginx?

    solotony
    @solotony
    покоряю пик Балмера
    что бы запустить сервер можно и systemctl не знать - в окошечках потыкать кнопочки.

    но когда произойдет что-то нештатное (а оно произойдет всенепременно) то для восстановления может потребоватья самые разные знания, начиная от сборки ядра, знание всех сетевых утилит, и т.д. и т.п
    Ответ написан
    Комментировать
  • Все говнокодеры?

    profesor08
    @profesor08
    да
    Ответ написан
    Комментировать
  • Все говнокодеры?

    @Sergey750il
    Бизнесу главное получить результат за короткий срок и желательно за меньший бюджет. А "красивый код" это вотчина задротов.
    Ответ написан
    Комментировать
  • Как можно упростить строку кода?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Никак (ну, скобки фигурные не нужны).
    Что вам в ней не нравится?

    Её можно только усложнить, потому что стрелочных функций и forEach в NodeList не было в старых браузерах.
    Ответ написан
    Комментировать
  • Прыгаю с языка на язык, с одной сферы в другую, как сфокусироваться на одном языке?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Клиповое мышление, недисциплинированность, безволие. Надо работать над собой.
    Ответ написан
    2 комментария
  • Как ограничить скорость канала для ngnix?

    @nApoBo3
    С такой утилизацией вам нужно расширять канал.
    Данная задача решается на сетевом уровне через qos.
    Ответ написан
    Комментировать
  • Что "научного почитать об ООП"?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    ООП это именно методология проектирования программ. Он был создан и развивается именно для этого - чтобы упростить разработку крупных проектов.

    Формальная логика там присутствует потольку поскольку. И никакой дополнительной логики в этом искать не нужно - это будет не практично. Реализация ООП подгоняется и меняется в соответствии с практическими требованиями, а не математикой. Собственно отсюда и идут постоянные споры.
    Ответ написан
    8 комментариев
  • Дебаг программы над которой работает целая команда?

    EreminD
    @EreminD
    Кое-что умею
    ну, если это изолированные модули, которые можно запускать по отдельности, то у разработчиков есть или заглушки, чтобы имитировать остальные сервисы или какая-то тестовая среда, где все сервисы доступны
    но первый вариант надежнее при разработке: и быстрее и стабильнее

    если это все же одно приложение, запускайте его и смотрите)
    Ответ написан
    1 комментарий
  • Что исполняет исполняемые файлы?

    Комментировать
  • Можно ли как то запрашивать у сервера сайта только html?

    @trofimovdev
    Python
    Для Chrome есть плагин disable-HTML. Можно удобно отключать JS, CSS, Images, Cookies, Popups.
    Ответ написан
    Комментировать
  • Клиент на Upwork угрожает международным судом, возможно ли это?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Блеф. Мой совет, меньше оскорблений и вообще общений с этим заказчиков. На все "а мы подадим в суд", отвечаем "это Ваше право, как раз готовлю встречный иск". Вы не отказываетесь от своих обязательств, они отказываются от своих и просто пугают. Возможно тактика разрыва отношений, что бв не заплатить остаток и не переживать, что Вы будете пакостить. Так как отсутствие иска уже будете считать победой. Гребаная психология.
    Ответ написан
    Комментировать