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

95
Что такое шаблон «Свободная монада + переводчик»?

Я видел людей, говорящих о Free Monad с Interpreter , особенно в контексте доступа к данным. Что это за образец? Когда я мог бы хотеть использовать это? Как это работает, и как бы я это реализовал? Я понимаю (из сообщений , таких как это ) , что речь идет о отделяя модели от данных доступа. Чем он...

86
ООП сложно, потому что это не естественно?

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

79
Существуют ли какие-либо ОО-принципы, которые практически применимы для Javascript?

Javascript - это объектно-ориентированный язык на основе прототипов, но он может быть основан на классах различными способами: Написание функций для самостоятельного использования в качестве классов Используйте изящную систему классов в фреймворке (например, mootools Class.Class ) Создайте его из...

76
Что должно иметь приоритет: YAGNI или Good Design?

В какой момент YAGNI должен иметь преимущество перед хорошими методами кодирования и наоборот? Я работаю над проектом на работе и хочу постепенно внедрить хорошие стандарты кода для моих коллег (в настоящее время их нет, и все просто взломано без всякой рифмы или причины), но после создания серии...

75
Где все шаблоны проектирования функционального программирования? [закрыто]

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

74
Что такое шаблон проектирования «Все исправить»?

В этой статье Стивена Фиггинса, написанной в 2003 году на linuxdevcenter.com , BitTorrent Брэма Коэна описывается как использование шаблона проектирования «Исправить все». Менее распространенный подход, который затрудняет понимание BitTorrent, но заслуживает изучения, - это использование...

74
Почему я должен использовать шаблон MVC?

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

70
Не-ООП Шаблоны проектирования? [закрыто]

Я только слышал, как термин «шаблон проектирования» используется для объектно-ориентированного кода, и шаблоны GoF включают только шаблоны проектирования ООП, но шаблоны проектирования - это элегантные решения для часто возникающих проблем программирования, верно? Там нет ничего, что говорит, что...

69
«Все это карта», я делаю это правильно?

Я смотрел выступление Стюарта Сьерры « Мышление в данных » и использовал одну из идей в качестве принципа дизайна в этой игре, которую я делаю. Разница в том, что он работает в Clojure, а я работаю в JavaScript. Я вижу некоторые основные различия между нашими языками в этом: Clojure - идиоматически...

68
Насколько важно сделать уровень обслуживания?

Я начал создавать приложение в 3 слоя (DAL, BL, UI) [оно в основном обрабатывает CRM, некоторые отчеты о продажах и инвентарь]. Коллега сказал мне, что я должен перейти к шаблону сервисного уровня, что разработчики пришли к сервисному шаблону из своего опыта, и это лучший подход для разработки...

65
Что такое инверсия управления, и когда я должен ее использовать?

Я проектирую новую систему и хочу знать, что такое инверсия управления (IOC) и, что более важно, когда ее использовать. Это должно быть реализовано с помощью интерфейсов или может быть сделано с помощью...

62
Является ли объединение объектов устаревшей техникой?

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

62
Каковы преимущества использования Dependency Injection и IoC Containers?

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

61
Связь между вложенными директивами

Кажется, существует довольно много способов связи между директивами. Скажем, у вас есть вложенные директивы, где внутренние директивы должны сообщать что-то внешнему (например, это было выбрано пользователем). <outer> <inner></inner> <inner></inner> </outer> Пока...

59
Это достойный вариант использования Goto в C?

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

58
Что классифицируется как СУХОЙ, ПОЦЕЛУЙ, ТВЕРДЫЙ и т. Д.?

Является ли что-то вроде DRY шаблоном дизайна, методологией или чем-то промежуточным? Они не имеют конкретных реализаций, которые могут быть обязательно продемонстрированы (даже если вы можете легко продемонстрировать случай, НЕ используя что-то вроде KISS ... см. The Daily WTF для множества...

58
ORM - это анти-паттерн? [закрыто]

У меня была очень стимулирующая и интересная дискуссия с коллегой об ORM и его плюсах и минусах. На мой взгляд, ORM полезен только в самых редких случаях. По крайней мере, по моему опыту. Но я не хочу перечислять свои собственные аргументы в настоящее время. Поэтому я спрашиваю вас, что вы думаете...

56
Инъекция зависимостей необходима для модульного тестирования?

Является ли использование внедрения зависимостей (DI) необходимым для модульного тестирования? Я не могу придумать другой альтернативы для изоляции кода, чтобы его можно было проверить. Кроме того, все примеры, которые я когда-либо видел, используют этот шаблон. Это потому, что это единственный...

55
Является ли цикл обработки событий циклом for / while с оптимизированным опросом?

Я пытаюсь понять, что такое цикл событий. Часто объяснение заключается в том, что в цикле событий вы что-то делаете, пока не получите уведомление о том, что произошло событие. Затем вы обрабатываете событие и продолжаете делать то, что делали раньше. Для сопоставления приведенного выше определения...