CursosEmpresasBlogLiveConfPrecios

Programación declarativa vs. imperativa

Clase 4 de 26 • Curso de Manejo de Datos en C# con LINQ

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    Bienvenida al curso

    Bienvenida al curso

    02:26
  • 2
    Prerrequisitos

    Prerrequisitos

    02:40
  • 3
    ¿Qué es LINQ?

    ¿Qué es LINQ?

    07:21
  • 4
    Programación declarativa vs. imperativa

    Programación declarativa vs. imperativa

    10:48
  • 5
    Utilizando LINQ por primera vez

    Utilizando LINQ por primera vez

    09:34
Configuración de proyecto
  • 6
    Creando el proyecto base

    Creando el proyecto base

    06:40
  • 7
    Configurando clases

    Configurando clases

    05:46
  • 8
    Importando datos

    Importando datos

    15:17
Operadores básicos
  • 9
    Usando el operador Where

    Usando el operador Where

    14:08
  • 10

    Ejercicio para aplicar el operador Where

    00:07
  • 11
    Operadores All y Any

    Operadores All y Any

    09:46
  • 12
    Operador Contains

    Operador Contains

    04:54
  • 13
    Operadores OrderBy y OrderByDescending

    Operadores OrderBy y OrderByDescending

    10:03
  • 14

    Ejercicio operador OrderBy

    00:00
  • 15
    Operadores Take y Skip

    Operadores Take y Skip

    14:52
  • 16
    Selección dinámica de datos

    Selección dinámica de datos

    09:33
Operadores de agregación
  • 17
    Operadores LongCount y Count

    Operadores LongCount y Count

    10:02
  • 18
    Operadores Min y Max

    Operadores Min y Max

    08:38
  • 19
    Operadores MinBy y MaxBy

    Operadores MinBy y MaxBy

    11:09
  • 20
    Operadores Sum y Aggregate

    Operadores Sum y Aggregate

    13:24
  • 21
    Operador Average

    Operador Average

    05:21
Agrupamiento de datos
  • 22
    Cláusula GroupBy

    Cláusula GroupBy

    07:33
  • 23

    Ejercicio cláusula GroupBy

    00:07
  • 24
    Cláusula Lookup

    Cláusula Lookup

    07:58
  • 25
    Cláusula Join

    Cláusula Join

    10:47
Cierre de curso
  • 26
    Recapitulación sobre LINQ

    Recapitulación sobre LINQ

    03:20
    Valeria Delgado

    Valeria Delgado

    student•
    hace 3 años

    ¡Los cursos con este profesor son geniales!, ojalá saquen más pronto

      Luis Antonio Preza Padilla

      Luis Antonio Preza Padilla

      student•
      hace 2 años

      Concuerdo contigo!

    José Ángel Soriano Soriano

    José Ángel Soriano Soriano

    student•
    hace 3 años

    EJEMPLO C# // Declarativo var listofNumbers = new int[] {1, 2,3 ,4, 5}; var item1 = listofNumbers.FirstOrDefault (p => p=1); Console.Writeln(item1);

    //Imperativo var listofNumbers = new int[] {1, 2,3 ,4, 5}; for (int i=0; i < listofNumbers.length; i++ ) { if (listOfNumbers[i] == 1) Console.Writeln(listOfNumbers[i]); }

      Aylen Adela Rodríguez

      Aylen Adela Rodríguez

      student•
      hace 3 años

      La diferencia de esto es que la imperativa te va a traer varios datos en los cuales listOfNumber[i] == 1, en cambio la declarativa te trae el primero que encuentre que cumpla la condicion. Lo que podes hacer es lisOfNumber.where(x=> x == 1).toArray(); entonces te traerá todos :')

      Fabián Albarracín

      Fabián Albarracín

      student•
      hace 3 años

      o en su defecto aun siendo declarativo para imprimir todos los numeros que son iguales a 1.

      var listofNumbers = new int[] {1, 2, 3, 4, 5}; var items = listofNumbers.Where(p => p == 1); foreach (var item in items) { Console.WriteLine(item); } //Aun sigue siendo un enfoque declarativo ya que estas indicando que condiciones deben cumplir los elementos en lugar de detallar como buscarlos.
    DANIS ABADIA BEJARANO

    DANIS ABADIA BEJARANO

    student•
    hace 3 años

    La programación declarativa podría ser una bomba de humo, por qué? y la respuesta es otra pregunta... todo eso y bajo que costo ? dentro de esos metodos probablemente ya hay mucha más programación imperativa, que en relación al costo beneficio en algunas ocasiones es optimo y en otras no tanto. Es bueno ser cuidadoso y estudiar los caso donde es practico usar la programación declarativa cuando se habla de metodos que no fueron creados por nosotros mismos.

    Miguel Angel Porras Villarreal

    Miguel Angel Porras Villarreal

    student•
    hace 2 años

    Comparativa

    **Programacion Declarativa **

    • Paradigama de programacion
    • instruciones donde especifico lo que quiero y no como lo quiero
    • contraciposion de a la programacion impertariva
    • fiable y simple

    Nota : la programacion declarativa son funciones o metodos ya definidos con una para realizar acciones espeficos, lo cuales no ahoran lineas de condigo. solo tenemos que saber que realiza cada funcion para utilizarla lo mas eficiente posible , poder enteder codigo otro desarrollado con programacion declarativa, por mi parte me gustar no me gusta usar tanto metodos al mismo tiempo porque de pone mas complejo saber que realiza el codigo

    **Programacion Imperativa **

    • Paradigama de programacion

    • Secuencia de paso a paso de intrucciones

    • Contraposicion a la programacion declarativa

    • Codigo mas extenso mas facil de interpretar

    Nota : la programacion imperativa debemos programar paso a paso lo que queremos hacer, tiene sus ventajas es mas facil de compreder al mometo debuguearlo, pero puede se mucho extenso.

    Ejemplos

    //declarativo var ListOfNumeber =new Int[] { 1, 2, 3, 4, 5 }; var item = ListOfNumeber.FirstOrDefault(p => p == 1) console.WriteLine(item ) //Imperativa var ListOfNumeber =new Int[] { 1, 2, 3, 4, 5 }; int[] ListOfNumbers =new int[] { 1, 2, 3, 4, 5 }; for (int i = 0; i < ListOfNumbers.Length; i++) { if (ListOfNumbers[i] == 1) { Console.WriteLine("El valor es igual a 1"); } }
    Leandro Cosme Tomassini

    Leandro Cosme Tomassini

    student•
    hace 2 años

    Programación declarativa vs. imperativa: una comparación

    Programación imperativa:

    • Se centra en cómo se ejecuta el programa, proporcionando instrucciones paso a paso para realizar una tarea.
    • El programador controla el flujo de ejecución y el estado del programa.
    • Ejemplos de lenguajes imperativos: C, Java, Python.

    Programación declarativa:

    • Se centra en qué se quiere obtener del programa, especificando el resultado deseado sin indicar cómo se debe alcanzar.
    • El programador define el problema y deja que el sistema determine cómo resolverlo.
    • Ejemplos de lenguajes declarativos: SQL, Prolog, Haskell.

    Ventajas de la programación declarativa:

    • Código más conciso y legible: El programador no necesita preocuparse por los detalles de la implementación.
    • Facilidad de mantenimiento: El código es más fácil de entender y modificar.
    • Corrección: El sistema se encarga de garantizar la corrección del resultado.

    Desventajas de la programación declarativa:

    • Menos control: El programador tiene menos control sobre el flujo de ejecución y el estado del programa.
    • Menos eficiente: En algunos casos, la programación declarativa puede ser menos eficiente que la imperativa.

    En resumen:

    • La programación imperativa es adecuada para tareas que requieren un control preciso del flujo de ejecución.
    • La programación declarativa es ideal para tareas en las que el resultado deseado es más importante que el proceso para llegar a él.

    La elección del paradigma de programación adecuado depende de las necesidades específicas del proyecto.

    Oscar Limbert Jemio Peñafiel

    Oscar Limbert Jemio Peñafiel

    student•
    hace 3 años

    Otra diferencia es que la programación Declarativa es más abstraida que la Imperativa. Debido a esta diferencia en la abstracción del código, en la Declarativa, se vé más simple pero un poco más dificil de entender, mientras que en la Imperativa ocurre lo contrario, se ve más extenso y no tan dificil de entender.

    Eduardo Garcia Mora

    Eduardo Garcia Mora

    student•
    hace 2 años

    Linq utiliza el paradigma de programacion Delcarativo

    Joan Alexander Valerio Rodríguez

    Joan Alexander Valerio Rodríguez

    student•
    hace un año

    Actualmente utilizo LINQ en la empresa de desarrollo de software donde trabajo. Digamos que pude aprender LINQ sobre la marcha y decidí tomar este curso para reforzar lo aprendido.

    Honestamente LINQ es super importante en el desarrollo de software y para nada que es un desperdicio.

    Altamente recomendado este curso y con este tremendo instructor. 10/10

    Ivan Fernando Bedoya Jaramillo

    Ivan Fernando Bedoya Jaramillo

    student•
    hace 2 años

    Soy solo yo o el video de esta clase se pausa demasiado y se queda cargando sin importar cual servidor (A, B, o C) este utilizando ? (ya revisé mi ancho de banda del internet y soporta videos en Full HD sin problemas )

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 2 años

      Por favor reporta el problema al equipo tecnico de platzi y esperemos una soluci[on rapida

    Carolina Patiño

    Carolina Patiño

    student•
    hace 3 años

    Hay diferencia en los tiempos de respuesta entre usar programación imperativa vs declarativa?

      Francisco Ponce

      Francisco Ponce

      student•
      hace 3 años

      En general, la elección entre programación imperativa y declarativa no afecta directamente los tiempos de respuesta de una aplicación. Tanto la programación imperativa como la declarativa se pueden utilizar para escribir código que resuelva un problema determinado, y ambas pueden producir soluciones eficientes y escalables.

      La diferencia entre programación imperativa y declarativa radica en cómo se enfoca el código y cómo se expresa la lógica de la solución. En programación imperativa, se describe cómo se debe hacer algo paso a paso, utilizando estructuras de control de flujo como bucles, condicionales y funciones. En programación declarativa, se describe qué se debe hacer sin especificar cómo se debe hacer, utilizando abstracciones como funciones de alto nivel, operaciones funcionales y consultas.

      En C#, la programación imperativa es el enfoque predominante, pero el lenguaje también admite un estilo de programación más declarativo mediante el uso de LINQ (Language Integrated Query), que proporciona una sintaxis más concisa y expresiva para trabajar con colecciones de datos.

      En términos de rendimiento, no es necesariamente el enfoque de programación en sí lo que afecta los tiempos de respuesta, sino más bien la calidad del código y la eficiencia de los algoritmos y estructuras de datos utilizados. El rendimiento de una aplicación puede verse afectado por factores como la complejidad del problema, la cantidad de datos que se manejan, la calidad del código y la eficiencia de los algoritmos y estructuras de datos utilizados.

    Oscar Fuentes Esteves

    Oscar Fuentes Esteves

    student•
    hace 2 años

    Acabo de descubrir que tiendo a codear de primeras imperativamente, siento que tengo más control, aunque muchas veces termino refactorizando a declarativo cuando compruebo que mi código funciona.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads