Разница между парадигмой программирования, шаблоном проектирования и архитектурой приложения? - PullRequest
16 голосов
/ 25 января 2011

Я не имею опыта программирования и часто сталкивался с такими терминами, как парадигма программирования, шаблон проектирования и архитектура приложения. Хотя я думаю, что у меня есть смутное понимание того, что означают эти термины, я был бы признателен, если бы кто-то смог уточнить, что это за понятия, чем они отличаются от других и как эти понятия применимы к Задаче С.

Ответы [ 6 ]

16 голосов
/ 25 января 2011

Парадигма программирования: что-то вроде « Функциональное программирование », « Процедурное программирование » и « Объектно-ориентированное программирование ».Парадигма программирования и языки, на которых они используются, сообщают, как пишется код.Например, в объектно-ориентированном программировании код делится на классы (иногда это особенность языка, иногда нет (например, javascript)), и обычно поддерживает наследование и некоторый тип полиморфизма.Программист создает классы, а затем экземпляры классов (то есть объекты) для выполнения операций программы.В функциональных языках изменения состояния на компьютере очень сильно контролируются самим языком.Функции являются объектами первого класса, хотя не все языки, где функции являются объектами первого класса, являются функциональным языком программирования (эта тема является одной из хороших дискуссий).Код, написанный на функциональных языках, включает множество вложенных функций, почти каждый шаг программы - это вызов новой функции.Для процедурного программирования хорошими примерами являются программы на C и bash-скрипты, вы просто говорите, что делаете шаг 1, делаете шаг 2 и т. Д., без создания классов и прочего.

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

Архитектура приложения: учитывает, как вы строите систему, чтобы делать что-то.Таким образом, для веб-приложения архитектура может включать x количество шлюзов за балансировщиком нагрузки, которые асинхронно подают очереди.Сообщения обрабатываются y процессами, работающими на z машинах, с 1 первичным дБ и резервным ведомым устройством.Архитектура приложения включает в себя выбор платформы, языков, используемых каркасов.Это отличается от архитектуры программного обеспечения, которая больше говорит о том, как на самом деле реализовать программу с учетом программного стека.

5 голосов
/ 25 января 2011

Некоторые быстрые определения,

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

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

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

Objective-C в основном является объектно-ориентированным расширением C, шаблоны проектирования и архитектура не являются языковыми конструкциями.

2 голосов
/ 25 января 2011
  • Парадигма программирования - это фундаментальный стиль компьютерного программирования.

  • Шаблон проектирования программного обеспечения - это лучшие практические решения для общей проблемы разработки программного обеспечения. Есть много шаблонов дизайна для общих проблем. Чтобы узнать больше о шаблонах проектирования, вы можете прочитать некоторые книги из этого списка 5 лучших книг для изучения шаблонов проектирования

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

Полагаю, любой из этих терминов применим ко всем языкам программирования. Шаблоны проектирования существуют на всех языках программирования.

Это логические термины, определенные для создания более высокого уровня абстракции.

Надеюсь, это поможет

2 голосов
/ 25 января 2011

Подумайте о народной интерпретации этих терминов (т. Е. Вне поля информатики).

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

Objective-C главным образом добавляет элементы парадигмы ОО к императивному языку C. Шаблоны и архитектура в значительной степени ортогональны языку.

0 голосов
/ 28 июля 2018

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

Шаблоны проектирования: проверенное или проверенное решение, более того, многократно используемые решения, для проблемы, с которой мы сталкиваемся при повседневном программировании.Например, если мы подходим к ООП-парадигме, их нет.шаблонов, которые помогут нам решить конкретную проблему.

0 голосов
/ 16 декабря 2012

Простые английские слова. Парадигма - это способ мышления при программировании, когда для организации программного обеспечения используются первоклассные концепции.Классы ex oop используют в качестве граждан первого класса, функции функционального или лямбда-исчисления и их составы, аспекты используют аспекты системы .... И так далее.Когда вы думаете о решении, первое, что приходит вам в голову, это граждане первого сорта.Цель состоит в том, чтобы организовать решение в программные компоненты.

Шаблон проектирования - это общее успешное использование программных компонентов.

Архитектура приложения - это набор шаблонов проектирования, составленных для реализациисценарий использования scdnarios.

...