2011-01-24 37 views
14

No soy un experto en programación y con frecuencia me he topado con términos como Paradigma de programación, Diseño de patrón y Arquitectura de aplicación. Aunque creo que tengo una comprensión vaga de lo que significan estos términos, apreciaría que alguien pudiera aclarar qué es cada uno, cómo es diferente del otro y cómo se aplican estos conceptos al Objetivo C.¿Diferencia entre el paradigma de programación, el patrón de diseño y la arquitectura de la aplicación?

Respuesta

14

Paradigma de programación: Algo como "Functional Programming", "Procedural Programming" y "Object Oriented Programming". El paradigma de programación y los lenguajes que los usan informan cómo se escribe el código. Por ejemplo, en la programación orientada a objetos, el código se divide en clases (a veces una función de idioma, a veces no (por ejemplo, javascript)), y normalmente admite herencia y algún tipo de polimorfismo. El programador crea las clases, y luego las instancias de las clases (es decir, los objetos) para llevar a cabo la operación del programa. En los lenguajes funcionales, los cambios de estado en la computadora están muy controlados por el lenguaje en sí. Las funciones son objetos de primera clase, aunque no todos los idiomas en los que las funciones son objetos de primera clase son el lenguaje de programación funcional (este tema es de buen debate). El código escrito con un lenguaje funcional implica muchas funciones anidadas, casi cada paso del programa es una nueva invocación de función. Para la programación de procedimientos, los programas C y los scripts bash son buenos ejemplos, simplemente diga "haga el paso 1, haga el paso 2", etc., sin creando clases y otras cosas.

Patrón de diseño: Un patrón de diseño es una abstracción útil que se puede implementar en cualquier idioma. Es un "patrón" para hacer cosas. Como si tuviera varios pasos que desea implementar, puede usar los patrones 'compuesto' y 'comando', por lo que su implementación será más genérica. Piense en un patrón como una plantilla establecida para resolver una tarea de codificación común de una manera genérica.

Arquitectura de aplicación: tiene en cuenta cómo se construye un sistema para hacer cosas. Por lo tanto, para una aplicación web, la arquitectura podría involucrar x número de puertas de acceso detrás de un equilibrador de carga, que asincrónicamente alimentan colas. Los mensajes son recogidos por los procesos y que se ejecutan en máquinas z, con 1 base de datos primaria y un esclavo de respaldo. La arquitectura de la aplicación implica elegir la plataforma, los lenguajes y los marcos utilizados. Esto es diferente a la arquitectura de software, que habla más sobre cómo implementar realmente el programa dada la pila de software.

2

Piense en la interpretación vernácula de esos términos (es decir, fuera de la informática de campo).

  • Los paradigmas son vistas integrales de la computación que afectan no solo qué tipo de cosas puedes hacer, sino incluso qué tipo de pensamientos puedes tener; la programación funcional es un ejemplo de un paradigma de programación.
  • Los patrones son simplemente trucos de programación bien establecidos, codificados de manera semiformal.
  • La arquitectura de aplicaciones es un término amplio que describe cómo se organizan las aplicaciones complejas.

Objective-C principalmente agrega elementos del paradigma de OO al lenguaje imperativo, C. Los patrones y la arquitectura son en gran medida ortogonales al lenguaje.

2
  • Un paradigma de programación es un estilo fundamental de programación de la computadora.

  • Patrón de diseño de software: son las mejores prácticas para el problema de diseño de software común. Hay muchos patrones de diseño para problemas comunes.Para obtener más información sobre los patrones de diseño, puede leer algunos libros de esta lista 5 Best Books for Learning Design Patterns

  • Arquitectura de aplicaciones - Aplicaciones La arquitectura es la ciencia y el arte de garantizar que el conjunto de aplicaciones utilizadas por una organización para crear aplicaciones compuestas sea escalable y confiable , disponible y manejable.

Supongo que cualquiera de estos términos se aplicaría a todos los lenguajes de programación. Los patrones de diseño existen en todos los lenguajes de programación.

Estos son términos lógicos definidos para crear un mayor nivel de abstracción.

Esperanza esto ayuda

5

Algunas definiciones rápidas,

arquitectura de aplicaciones describe la arquitectura general del software. Por ejemplo, los programas basados ​​en web suelen utilizar una arquitectura estratificada donde la funcionalidad se divide en varias capas, como la interfaz de usuario (generación html, manejo de comandos de los usuarios), lógica comercial (reglas sobre cómo se ejecutan las funciones del software) y base de datos (para datos persistentes). Por el contrario, una aplicación de procesamiento de datos podría usar una arquitectura denominada de tuberías y filtros, donde una parte de los datos pasa a través de una tubería donde diferentes módulos actúan sobre los datos.

Los patrones de diseño son una herramienta de nivel mucho más bajo, ya que proporcionan modelos probados sobre cómo organizar el código para obtener una funcionalidad específica sin comprometer la estructura general. Los ejemplos fáciles pueden incluir un Singleton (cómo garantizar la existencia de una sola instancia de un código) o una Fachada (cómo proporcionar una vista externa simple a un sistema más complejo).

Por otro lado, los paradigmas son el otro extremo, que guían los principios sobre cómo se establece realmente el código, y cada uno requiere una mentalidad bastante diferente para aplicar. Por ejemplo, la programación de procedimientos se ocupa principalmente de dividir la lógica del programa en funciones y agrupar esas funciones en módulos. La programación orientada a objetos tiene como objetivo encapsular los datos y las operaciones que manipulan los datos en objetos. La programación funcional enfatiza el uso de funciones en lugar de declaraciones separadas, una a la vez, evitando los efectos secundarios y los cambios de estado.

Objective-C es principalmente una extensión orientada a objetos para C, los patrones de diseño y la arquitectura no son construcciones específicas del lenguaje.

0

Palabras en inglés simples Un paradigma es una forma de pensar al programar, donde se utilizan conceptos de primera clase para organizar el software. Ex oop usa clases como ciudadanos de primera clase, funcionales o funciones de uso del cálculo lambda y sus composiciones, el aspecto utiliza aspectos de un sistema ... Y así sucesivamente. Al pensar en una solución, lo primero que se le viene a la mente son los ciudadanos de primera clase. El objetivo es organizar la solución en componentes de software.

Un patrón de diseño es un uso exitoso común de los componentes de software.

Una arquitectura de aplicación es un conjunto de patrones de diseño unidos para realizar casos de uso scdnarios.

Cuestiones relacionadas