Ответы пользователя по тегу Паттерны проектирования
  • Множество сущностей, связанных с одной таблицей. Хорошо ли это?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1.
    >> Все эти медиа хранятся в одной таблице и различаются по полю Type
    Вводя тип, различающий данные в таблице вы задаете условную логику. А это усложнение кода!

    2.
    Одна таблица одна сущность! Не экономьте на таблицах, если на это нет веских причин по performance.

    3.
    Есть объектно-ориентированные БД, которые позволяют вытащить общие части в аналог "базового класса". Посмотрите в эту сторону.

    Это IMHO. Основано на том, как бы мне проще было понимать как все устроено.
    Ответ написан
    Комментировать
  • Какие цели преследует Dependency Injection?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    DI это способ создать интерфейсы там, где их не было ранее, но они вдруг понадобились сейчас. Интерфейсы вводятся не просто так, а для решения какой-либо задачи. Отойдя от программирования и взяв в качестве примера ситуацию с аппаратным обеспеченим, то мы поймем, что люди очень сильно выиграли когда решили разделить вычислительные средства на материнская плата, ЦПУ, ОЗУ, Жесткий диск и др. Да, они усложнили введя интерфейсы, но при этом повысилось удобство эксплуатации и возрасла скорость разработки. Скорость изготовления частей возрасло за счет того что отдельный компонент изготовить проще, чем целую систему! Более того компонент может быть с разными характеристиками, ценою и изготавливаться многими компаниями на различных производственных мощностях. Возвращаясь к DI : программист выигрывает за счет того что теперь значительно легко установить новый компонент. К примеру дав интерфейс программисту на стороне, дав ему модульные тесты(в качестве "живого" ТЗ) вы получаете дополнительное время, т.к. пока пилится компонент стороним программером Вы можете пилить другую часть системы, а принять работу можно по прохождению модульных тестов и быть уверенным, что это то что Вы хотели, если конечно хорошо продумали модульные тесты ;)
    Ответ написан
    Комментировать