Шаблоны разработки увеличивают или уменьшают сложность Приложения?

Если вы хотите очистить Reddit, возможно, самый простой путь:

  1. Создайте учетную запись API в Reddit [ https://www.reddit.com/dev/ api /]

  2. Поиск через API вместо прокрутки по селену. Используйте библиотеку, такую ​​как Praw [ https://praw.readthedocs.io/en/latest/] , если вы предпочитаете, или обращайтесь к API напрямую, согласно документам.

6
задан Robert Gould 17 April 2009 в 10:19
поделиться

11 ответов

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

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

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

11
ответ дан 8 December 2019 в 03:11
поделиться

Существует печально известное заболевание, известное как «Маленький мальчик с паттерном синдрома», которое обычно поражает того, кто недавно читал Книга GoF впервые и вдруг видит шаблоны повсюду. Это может добавить сложность и ненужную абстракцию.

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

5
ответ дан 8 December 2019 в 03:11
поделиться

Шаблоны проектирования часто приводят к дополнительным уровням абстракции вокруг проблемы, и если ее неправильно обработать, то слишком большая абстракция может привести к сложности.

Однако, поскольку шаблоны проектирования предоставляют общий словарь для передачи идей, они также уменьшают сложность и повышают удобство обслуживания.

В конце день это обоюдоострый меч,

5
ответ дан 8 December 2019 в 03:11
поделиться

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

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

Мне скорее нравится это юмористическое объяснение Дилана Битти .

1
ответ дан 8 December 2019 в 03:11
поделиться

Шаблоны проектирования работают как алгоритмы для объектно-ориентированного программирования. Показывает, как собрать объекты в значимые отношения, которые выполняют определенную задачу. Так что я бы сказал, что да, они уменьшают сложность, позволяя вам лучше понять структуру программного обеспечения. То же самое с алгоритмами в процедурных программах.

Если бы я сказал вам, что X использует Связанный список с Bubble Sort, было бы намного легче следовать за тем, что делал программист.

1
ответ дан 8 December 2019 в 03:11
поделиться

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

1
ответ дан 8 December 2019 в 03:11
поделиться

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

Проблема заключается в шаблонах проектирования в целом, но в их злоупотреблении

0
ответ дан 8 December 2019 в 03:11
поделиться

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

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

0
ответ дан 8 December 2019 в 03:11
поделиться

Они не должны ни ни увеличивать, ни уменьшать сложность.

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

Основными преимуществами шаблонов проектирования являются

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

Когда я преподаю шаблоны в Хопкинсе, я подчеркиваю две большие вещи:

  • Шаблоны - это все о Сообщение о намерениях
  • Не используйте какой-либо из определенных образцов в качестве Золотого Молота; заблокируйте их в своем наборе инструментов и извлеките их, только если это имеет смысл для вашего приложения.
0
ответ дан 8 December 2019 в 03:11
поделиться

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

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

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

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

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

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

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

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

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

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

Без шаблонов эти изменения были бы намного более навязчивыми, а сложность, вероятно, была бы намного выше.

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

Без шаблонов эти изменения были бы намного более навязчивыми, а сложность, вероятно, была бы намного выше.

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

Скорее всего, это можно сделать с помощью простого свойства и с помощью. Однако, когда вы получаете 5 или 20 декораций, сложность с декоратором намного меньше, чем со свойствами.

Скорее всего, это можно сделать с помощью простого свойства и с помощью. Однако, когда вы получаете 5 или 20 декораций, сложность с декоратором намного меньше, чем со свойствами.

0
ответ дан 8 December 2019 в 03:11
поделиться

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

1
ответ дан 8 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: