Hoy en día, el entorno de codificación está cambiando muy rápidamente. Especialmente debido al desarrollo de la tecnología de IA, la forma en que escribimos código ha cambiado fundamentalmente. Modelos de IA como ChatGPT o Copilot pueden generar código limpio en poco tiempo, creando un mundo completamente diferente al de la era en la que las personas escribían todo el código de principio a fin.

Este cambio plantea preguntas importantes para los desarrolladores:

"En la era en que la IA escribe código por nosotros, ¿es realmente necesario que los desarrolladores entiendan a fondo cómo funciona el código?"

Me gustaría responder a esta pregunta sin dudar: .


¿Por qué es necesario entender a fondo? - La responsabilidad del ingeniero y la colaboración con la IA

1. Gestión de riesgos y responsabilidad

Puedes completar un proyecto rápidamente copiando y pegando código generado por IA, pero esto conlleva riesgos significativos a largo plazo.

  • Errores desconocidos: El código sugerido por la IA puede parecer correcto superficialmente, pero existe la posibilidad de que cause errores inesperados en ciertas circunstancias.

  • Problemas de escalabilidad: A medida que el proyecto crece, el uso de código sin conocer la lógica interna puede ser un obstáculo.

Al final, la persona responsable de resolver todos estos problemas es el desarrollador mismo. Como desarrollador, debes entender cómo funcionan las herramientas y el código que utilizas y ser capaz de diagnosticar y resolver problemas rápidamente cuando ocurren.

2. Crecimiento como un auténtico ‘ingeniero’

Aún en la era de la IA, o más bien debido a la colaboración con la IA, es necesario entender el código en profundidad.

  • Comunicación eficiente: Al preguntar a la IA, debes ser capaz de describir con claridad y precisión qué parte está causando problemas para obtener mejores respuestas.

  • Diseño proactivo: La capacidad de decidir cómo combinar frameworks y bibliotecas, y qué estructura seguir, sigue dependiendo del ser humano.

  • Aumento de la percepción técnica: Entender el funcionamiento interno puede generar ideas estructurales y creativas como “si este framework funciona de esta manera, puedo extender esta funcionalidad de esta forma”.

Particularmente, en frameworks web como Django, esta comprensión es aún más importante. Diversas funcionalidades que ofrece Django, especialmente las vistas basadas en clases (CBV), brindan una gran conveniencia y escalabilidad, pero si solo tienes un conocimiento superficial de su estructura interna, podrías enfrentar grandes dificultades cuando tu proyecto crezca.

Colaboración entre IA y desarrollador


Razones para pasar de FBV a CBV

Simplicidad de FBV (vistas basadas en funciones)

La mayoría de las personas que empiezan con Django dan su primer paso utilizando FBV (Vista Basada en Funciones).

  • Intuitivo: La estructura de recibir request y retornar response es fácilmente comprensible.

  • Prototipado rápido: Con poco código, es fácil construir la pantalla, lo que acelera el inicio del desarrollo.

Sin embargo, a medida que el proyecto crece y se deben gestionar múltiples URLs y vistas, solo usar FBV puede complicar la gestión del código y comenzar a aparecer lógicas repetitivas. Esto se convierte en una carga considerable en términos de mantenimiento y escalabilidad.

Reutilización y escalabilidad de CBV (vistas basadas en clases)

CBV es un concepto que aplica la filosofía de la programación orientada a objetos (OOP) a la lógica de vistas de Django.

  • Reutilización: Es fácil separar la lógica de vista en métodos para crear estructuras de herencia o extenderlas.

  • Estructura clara: Diferentes métodos se invocan automáticamente dependiendo de la solicitud (GET, POST, etc.), por lo que el código se divide lógicamente.

  • Facilidad de mantenimiento: Puedes colocar funcionalidades comunes en una clase base y sobreescribir solo las partes necesarias en cada pantalla (o vista).

Por ejemplo, supongamos que necesitas crear varias páginas de listado del mismo tipo. En FBV, repetirás el mismo (o similar) código cada vez, pero en CBV, al heredar de clases base como ListView, solo debes cambiar el modelo o el nombre de la plantilla, lo que simplifica enormemente la aplicación. Esta es la verdadera fortaleza de CBV.

Diagrama de flujo FBV vs CBV


Razones para dominar CBV

  1. La legibilidad y mantenibilidad del código mejorarán significativamente.

  2. El escenario de tu proyecto puede expandirse, lo que permite modularizar y escalar fácilmente las funcionalidades comunes.

  3. Aprovechando las diversas clases CBV (ListView, DetailView, CreateView, UpdateView, DeleteView, etc.) que Django proporciona por defecto, puedes configurar rápidamente CRUD.

  4. Los desarrolladores podrán colaborar de manera más proactiva. La IA que genera código también permite controlar en detalle qué CBV debe ser heredada y cómo.


Objetivo de la serie de exploración de CBV

En esta serie de blog, exploraremos diferentes CBV de Django una por una. Abordaremos en detalle en qué situaciones cada CBV es más eficaz y cómo puedes personalizarlas para utilizarlas.

A través de este proceso, esperamos lograr los siguientes objetivos:

  • Entender los principios de funcionamiento del código: No solo copiar y pegar código generado por IA, sino desarrollar la habilidad de explicar “por qué debe escribirse de esta manera”.

  • Aprender las funciones y el uso de las CBV: Si identificas las características de varias CBV que Django ofrece, podrás elegir la vista apropiada para cada situación, como “en esta situación, FormView es la ideal”.

  • Colaboración eficiente y proactiva con IA: Si obtienes perspectivas sobre “dónde deberían mejorarse” en el código sugerido por IA, podrás guiar a la IA de manera efectiva para maximizar la productividad.


Avance de los temas futuros

  1. Entendiendo la clase View básica de Django

    • Nos familiarizaremos con la estructura de la clase View y cómo Django la invoca en el proceso de solicitud-respuesta.
  2. Facilitando el procesamiento de formularios con FormView

    • Exploraremos cómo utilizar FormView para gestionar la entrada del usuario (formularios).

    • Podemos aprender sobre patrones de validación de formularios, gestión de mensajes de error y redirección al éxito.

  3. Uso de ListView y DetailView

    • Abordaremos cómo construir páginas de listado y detalle de manera eficiente con ListView y DetailView.

    • Compartiremos ejemplos de proyectos reales y consejos para gestionar datos del contexto de las plantillas.

  4. Gestión de CRUD de manera simple con CreateView, UpdateView, DeleteView

    • Examinaremos las clases de vista que casi automatizan las operaciones CRUD (Crear, Leer, Actualizar, Eliminar).

    • Esto será útil para quienes se cuestionan: “¿debo escribir el formulario de modelo yo mismo o puedo usar las funcionalidades de CBV?”.

  5. Renderización eficiente de plantillas con TemplateView

    • Veremos cómo se puede utilizar TemplateView para la renderización de páginas simples.

    • Ofreceremos consejos sobre cómo estructurar situaciones donde solo necesitas renderizar rápidamente una plantilla HTML.


Conclusión: El viaje hacia adelante

Al compartir historias en esta serie, explorarás el rico mundo de las CBV que Django ofrece. Si hasta ahora solo has estado usando FBV, verás que “¡Así es como funcionan las CBV!” y si ya tienes experiencia con CBV, podrás reflexionar sobre métodos de uso más profundos y estrategias de expansión.

En la era de la IA, creo que lo que los desarrolladores deben centrarse no es solo en escribir código, sino en comprender cómo funciona el código y la capacidad de diseñar mejores estructuras. Las CBV de Django son un tema muy adecuado para aprender y poner en práctica esto.

En el próximo artículo, comenzaremos con la clase View básica de Django y exploraremos su esqueleto básico. Aprendamos juntos para convertirnos en “auténticos ingenieros” que escriben un código más robusto y escalable.


Recursos recomendados

Avance de la ‘Serie de exploración de CBV’

  • Parte 2: “Comprendiendo el principio de funcionamiento y el ciclo de vida de la clase View en Django”

  • Parte 3: “FormView: procesamiento de formularios de forma limpia”

  • Parte 4: “ListView & DetailView: implementación de listas de datos y vistas detalladas”

  • ... (continuará)

Gracias por leer este post hasta el final. Esperamos que también estés emocionado por la serie que se desarrollará y si tienes alguna pregunta o pensamiento que quieras compartir, ¡déjanos un comentario en cualquier momento!

“Incluso en la era de los códigos generados por IA, nuestro sentido de ingeniería y percepción brillará más que nunca.”