Разница между парадигмой программирования, шаблоном проектирования и архитектурой приложения?
Я из не-программирующего фона и часто сталкиваюсь с такими понятиями, как программирование парадигмы, шаблон проектирования и архитектура приложений. Хотя я думаю, что у меня есть смутное понимание того, что означают эти термины, я был бы признателен, если бы кто-то мог уточнить, что это такое, как он отличается от другого и как эти понятия применимы к Objective C.
Ответы
Ответ 1
Парадигма программирования: что-то вроде " Функциональное программирование", " Процедурное программирование" и " Объектно-ориентированное программирование". Парадигма программирования и используемые им языки информируют о том, как писать код. Например, в объектно-ориентированном программировании код делится на классы (иногда языковая функция, иногда нет (например, javascript)) и обычно поддерживает наследование и некоторый тип полиморфизма. Программист создает классы, а затем экземпляры классов (т.е. Объекты) для выполнения операции программы. В функциональных языках изменения состояния на компьютере очень сильно контролируются самим языком. Функции являются объектами первого класса, хотя не все языки, где функции являются объектами первого класса, являются функциональным языком программирования (эта тема является хорошей дискуссией). Код, написанный на функциональных языках, включает множество вложенных функций, почти каждый шаг программы - это новый вызов функции. Для процедурного программирования C-программы и сценарии bash являются хорошими примерами, вы просто говорите, что делайте шаг 1, делайте шаг 2 и т.д., Не создавая классы и еще что-то.
Шаблон проектирования: шаблон проектирования - полезная абстракция, которая может быть реализована на любом языке. Это "образец" для выполнения вещей. Например, если у вас есть несколько шагов, которые вы хотите реализовать, вы можете использовать шаблоны "композитный" и "командный", чтобы сделать вашу реализацию более общей. Подумайте о шаблоне как установленном шаблоне для решения общей задачи кодирования общим способом.
Архитектура приложения: учитывайте, как вы создаете систему для создания приложений. Таким образом, для веб-приложения архитектура может включать в себя x количество шлюзов за балансировщиком нагрузки, которые асинхронно загружают очереди. Сообщения обрабатываются y процессами, запущенными на z-машинах, с 1 первичной db и резервным ведомым. Архитектура приложения включает в себя выбор платформы, языков, используемых фреймворков. Это отличается от архитектуры программного обеспечения, что говорит о том, как реально реализовать программу, учитывая программный стек.
Ответ 2
Некоторые быстрые определения,
Архитектура приложения описывает общую архитектуру программного обеспечения. Например, сетевые программы обычно используют многоуровневую архитектуру, где функциональность разделена на несколько уровней, таких как пользовательский интерфейс (генерация html, обработка команд от пользователей), бизнес-логика (правила, как выполняются функции программного обеспечения) и база данных ( для постоянных данных). Напротив, приложение обработки данных может использовать так называемую архитектуру труб и фильтров, где часть данных проходит через конвейер, где действуют разные модули данных.
Шаблоны проектирования - это инструмент с более низким уровнем, предоставляющий проверенные модели о том, как организовать код для получения конкретных функций, не ставя под угрозу общую структуру. Легкие примеры могут включать Singleton (как гарантировать существование одного экземпляра кода) или Facade (как обеспечить простой внешний вид для более сложной системы).
С другой стороны, парадигмы - это другая крайность, определяющая принципы того, как на самом деле выложен код, и каждый из них требует применения совершенно разных менталитетов. Например, процедурное программирование в основном касается деления логики программы на функции и объединения этих функций в модули. Объектно-ориентированное программирование нацелено на инкапсуляцию данных и операций, которые манипулируют данными в объекты. Функциональное программирование подчеркивает использование функций вместо отдельных операторов, следующих друг за другом, избегая побочных эффектов и изменений состояния.
Objective-C - это в основном объектно-ориентированное расширение C, шаблоны проектирования и архитектура не являются специфическими для языка конструкциями.
Ответ 3
Подумайте о народной интерпретации этих терминов (т.е. вне полевой компьютерной науки).
- Парадигмы - всеохватывающие представления вычислений, которые влияют не только на то, что вы можете делать, но даже на то, какие мысли вы можете иметь; функциональное программирование является примером парадигмы программирования.
- Шаблоны - это просто устоявшиеся программные трюки, кодифицированные некоторым полуформальным способом.
- Архитектура приложения - это широкий термин, описывающий, как организованы сложные приложения.
Objective-C в первую очередь добавляет элементы парадигмы ОО к императивному языку, C. Шаблоны и архитектура в значительной степени ортогональны языку.
Ответ 4
-
Парадигма программирования - это фундаментальный стиль компьютерного программирования.
-
Шаблон разработки программного обеспечения - это лучшие решения для решения проблем, связанных с общим программным обеспечением. Существует множество шаблонов проектирования для общих проблем. Чтобы узнать больше о шаблонах проектирования, вы можете прочитать некоторые книги из этого списка 5 лучших книг для обучения шаблонам дизайна
-
Архитектура приложений - Приложения Архитектура - это наука и искусство обеспечения того, чтобы набор приложений, используемых организацией для создания составного приложения, был масштабируемым, надежным, доступным и управляемым.
Я предполагаю, что любое из этих условий применимо ко всем языкам программирования. Шаблоны проектирования существуют на всех языках программирования.
Это логические термины, определенные для создания более высокого уровня абстракции.
Надеюсь, что это поможет
Ответ 5
Простые английские слова
Парадигма - это способ мышления при программировании, где для организации программного обеспечения используются концепции первого класса. Примеры использования классов как граждан первого класса, функциональные функции или функции исчисления лямбда-исчисления и их составы, аспект использует аспекты системы... И так далее. Когда вы думаете о решении, первое, что приходит на ум, - это люди первого класса. Цель состоит в том, чтобы организовать решение в программные компоненты.
Шаблон проектирования - это общее успешное использование программных компонентов.
Архитектура приложения представляет собой набор шаблонов проектирования, скомпонованных для реализации сценариев использования case.