Вопросы с тегом «design-patterns»

21
Является ли функциональное программирование жизнеспособной альтернативой шаблонам внедрения зависимостей?

Недавно я читал книгу под названием « Функциональное программирование на C #», и мне пришло в голову, что неизменяемая и не имеющая состояния природа функционального программирования обеспечивает результаты, аналогичные шаблонам внедрения зависимостей, и, возможно, даже лучший подход, особенно в...

21
Как убедить моего босса (и других разработчиков) использовать / учитывать ненавязчивый JavaScript

Я довольно новичок в нашей команде develepors. Мне нужны веские аргументы и / или примеры «подводных камней», чтобы мой начальник наконец-то понял преимущества ненавязчивого JavaScript, чтобы он и остальная команда перестали делать такие вещи: <input type="button" class="bow-chicka-wow-wow"...

20
Является ли написание собственного уровня доступа к данным / отображения данных «хорошей» идеей?

В настоящее время мы находимся в ситуации, когда у нас есть выбор между использованием готового объектно-реляционного картографического модуля или развертыванием собственного У нас есть устаревшее приложение (ASP.NET + SQL Server), где, к сожалению, уровень данных и бизнес-уровень объединены....

20
Почему тип связан с его строителем?

Недавно я удалил свой Java- ответ на Code Review , который начался так: private Person(PersonBuilder builder) { Стоп. Красный флаг. PersonBuilder будет строить Person; это знает о Человеке. Класс Person не должен ничего знать о PersonBuilder - это просто неизменный тип. Вы создали круговую связь...

20
Заменяют ли именованные аргументы шаблон построителя?

При использовании языка, который поддерживает именованные и необязательные аргументы, шаблон компоновщика больше не имеет практического применения? Строитель: new Builder(requiredA, requiredB).setOptionalA("optional").Build(); Необязательные / именованные аргументы: new Object(requiredA, requiredB,...

20
Вложенные REST-URL и родительский идентификатор, какой дизайн лучше?

Хорошо, у нас есть два ресурса: Albumи Song. Вот API: GET,POST /albums GET,POST /albums/:albumId GET,POST /albums/:albumId/songs GET,POST /albums/:albumId/songs/:songId Мы знаем, что мы ненавидим какую-то песню, это называется Susy, например. Куда мы должны положить searchдействие? Другой вопрос....

20
Что такое «хорошее количество» исключений для моей библиотеки?

Мне всегда было интересно, сколько разных классов исключений я должен реализовать и выбросить для разных частей моего программного обеспечения. Моя конкретная разработка обычно связана с C ++ / C # / Java, но я считаю, что это вопрос для всех языков. Я хочу понять, что такое большое количество...

20
Когда использовать шаблон хранилища

Недавно я прочитал, что не рекомендуется использовать шаблон хранилища в сочетании с ORM. Насколько я понимаю, это потому, что абстракция, которую они предоставляют для базы данных SQL, слишком неплотна, чтобы сдерживать шаблон. У меня есть пара вопросов по этому поводу: Что вы делаете, если хотите...

20
Может / должен ли Принцип единой ответственности применяться к новому коду?

Принцип определяется как модули, имеющие одну причину для изменения . Мой вопрос, конечно, эти причины изменения не известны, пока код фактически не начинает меняться ?? Практически каждый фрагмент кода имеет множество причин, по которым он может измениться, но, безусловно, попытка предвидеть все...

20
Разница между паттерном и принципом

Чем отличаются объектно-ориентированные шаблоны проектирования и принципы? Это разные вещи? Насколько я понял, они оба пытаются достичь какой-то общей цели (например, гибкость). Так могу ли я сказать, что паттерн - это принцип, и наоборот? Принцип проектирования = SOLID (т.е. принцип инверсии...

20
Каковы преимущества внедрения зависимостей в тех случаях, когда почти всем нужен доступ к общей структуре данных?

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

20
Ориентируется ли объект архитектуры Entity Component System по определению?

Является ли архитектура Entity System Component ориентированный объект, по определению? Это кажется более процедурным или функциональным для меня. Мое мнение таково, что это не мешает вам реализовать его на языке ОО, но это не будет идиоматичным, если вы будете делать это абсолютно уверенно....

19
Шаблоны для передачи контекста через цепочку методов

Это дизайнерское решение, которое, кажется, приходит довольно много: как передать контекст через метод, который ему не нужен, в метод, который это делает. Есть ли правильный ответ или это зависит от контекста. Пример кода, который требует решения // needs the dependency function baz(session) {...

19
AntiPattern использует классы *** Helper или *** Util, содержащие только статические методы

Я часто сталкиваюсь с вспомогательными или утилитарными классами на Java или на любом другом языке. Поэтому я спрашивал себя, не является ли это своего рода Anti Pattern, а существование таких классов - просто отсутствие недостатков в дизайне и архитектуре программного обеспечения. Часто эти классы...

19
Насколько важны шаблоны проектирования в программировании?

Я студент университета, и я только начал изучать шаблоны проектирования, и я изо всех сил пытаюсь понять их назначение. Я пытался исследовать их, но все ресурсы, которые я нашел, похоже, говорят о них академическим, а не профессиональным способом. Какова их цель и важны ли они для...

19
Как слишком много переменных экземпляра приводит к дублированию кода?

Согласно рефакторингу по шаблонам : Когда класс пытается сделать слишком много, он часто отображается как слишком много переменных экземпляра. Когда у класса слишком много переменных экземпляра, дублированный код не может быть далеко позади. Как слишком много переменных экземпляра приводит к...

19
В чем разница между принципом единой ответственности и разделением интересов

а) В чем разница между SRP и SoC ? Возможно, что SRP применяется на уровне класса, в то время как SoC может применяться на уровне системы , подсистемы , модуля , класса или функции . б) Если ответ на а) положительный , то применяется ли SoC на уровне класса как синоним SRP ?...

19
Является ли регистрация рядом с реализацией нарушением SRP?

Размышляя о гибкой разработке программного обеспечения и всех принципах (SRP, OCP, ...), я спрашиваю себя, как относиться к ведению журнала. Является ли регистрация рядом с реализацией нарушением SRP? Я бы сказал, yesпотому что реализация должна быть в состоянии работать без регистрации. Итак, как...

18
Есть ли доказательства того, что использование внедрения зависимостей улучшает результаты в разработке программного обеспечения?

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