Сегодняшняя среда программирования меняется очень быстро. Особенно с развитием технологий ИИ, сам способ написания кода кардинально изменился. Модели ИИ, такие как ChatGPT или Copilot, могут создавать чистый код "вмиг", что делает существование полностью ручного написания кода в прошлом.
Эти изменения ставят перед разработчиками важный вопрос:
"В эпоху, когда ИИ может писать код, действительно ли разработчику необходимо глубоко понимать, как работает код?"
Я без колебаний отвечу на этот вопрос: "Да".
Почему нужно глубоко понимать? – Ответственность инженера и сотрудничество с ИИ
1. Управление рисками и ответственность
Хотя можно быстро завершить проект, копируя и вставляя код, созданный ИИ, это несет в себе долгосрочные риски.
-
Неизвестные ошибки: Код, предлагаемый ИИ, может выглядеть безупречно, но в определенных ситуациях он может вызывать неожиданные ошибки.
-
Проблемы с масштабируемостью: По мере увеличения проектом, код, который используется без понимания внутренней логики, может быть проблемным.
В конечном итоге, именно разработчик должен решать все эти проблемы. Разработчику необходимо понимать, как работают используемые инструменты и код, и быстро диагностировать и исправлять ошибки.
2. Настоящее развитие как 'инженера'
В эпоху ИИ, а наоборот, из-за того, что мы работаем с ИИ, необходимо глубоко понимать код.
-
Эффективная коммуникация: Когда вы задаете вопросы ИИ, вам нужно точно и конкретно описывать, в чем именно проблема, чтобы получить лучшие ответы.
-
Проактивный дизайн: Способность решать, как комбинировать фреймворки или библиотеки и какую структуру использовать, по-прежнему зависит от человека.
-
Увеличение технической проницательности: Понимание внутреннего механизма работы позволяет приходить к структурным и креативным идеям, такими как "Этот фреймворк работает так, значит, я могу расширить эту функцию таким образом".
Особенно важно это понимание в веб-фреймворках, таких как Django. Хотя множество функций, предлагаемых Django, особенно классовые представления (CBV), предоставляют значительные удобства и возможности расширения, поверхностное знание их внутренней структуры может привести к серьезным проблемам, когда проект становится больше.
Причины перехода с FBV на CBV
Простота FBV (представления на основе функций)
Большинство людей, начинающих с Django, делают это, работая с FBV (Function-Based View).
-
Интуитивно понятно: Структура, принимающая
request
и возвращающаяresponse
, хорошо воспринимается. -
Быстрое прототипирование: Можно легко собрать интерфейс с коротким кодом, что увеличивает скорость разработки.
Однако, когда проект расширяется и появляется множество URL и представлений, только FBV усложняет управление кодом, и повторяющаяся логика начинает появляться во многих местах. Это создает значительные проблемы с поддержкой и масштабируемостью.
CBV (представления на основе классов) и их повторное использование и масштабируемость
CBV применяется философия объектно-ориентированного программирования (OOP) к логике представления в Django.
-
Повторное использование: Логика представления может быть разделена на методы, что упрощает создание и расширение структуры наследования.
-
Ясная структура: В зависимости от запроса (GET, POST и т.д.) автоматически вызываются разные методы, благодаря чему код логически делится.
-
Удобство поддержки: Общие функции можно разместить в родительском классе, а в каждом представлении переопределить только необходимые части.
Например, если вам нужно создать несколько списков с одинаковой структурой. В FBV вам приходится постоянно повторять одинаковый (или похожий) код, в то время как в CBV можно использовать базовый класс, такой как ListView, и просто изменить модель или имя шаблона, что значительно упрощает задачу. Это истинная сила CBV.
Причины, почему полезно освоить CBV
-
Читаемость и поддерживаемость кода значительно улучшатся.
-
Расширение масштаба проекта станет проще; общие функции можно будет легко модульно организовать и расширить.
-
Быстрая реализация CRUD на основе разных классов CBV (ListView, DetailView, CreateView, UpdateView, DeleteView и т.д.) станет возможной с использованием стандартного функционала Django.
-
Разработчики смогут вести более проактивное сотрудничество. Это потому, что они могут точнее контролировать детали того, какие классы CBV наследовать и что бы сгенерировал ИИ.
Цель серии исследований CBV
В этой серии блогов мы будем поочередно рассматривать различные классовые представления Django. Мы подробно обсудим, в каких ситуациях каждое CBV наиболее эффективно, и как их можно кастомизировать для использования.
В ходе этого процесса мы ожидаем добиться следующих результатов:
-
Понимание принципа работы кода: Вы разовьете навыки объяснять "почему это нужно делать так", а не просто копировать и вставлять код, созданный ИИ.
-
Осознание ролей и методов работы разных CBV: Понимая характеристики различных классов CBV, вы сможете выбрать подходящее представление для ситуации, например: "для этой ситуации идеально подходит
FormView
". -
Эффективное и проактивное сотрудничество с ИИ: Получив инсайты о том, "что можно изменить", вы сможете эффективно направлять ИИ и максимизировать продуктивность.
Предварительный обзор будущих тем
-
Понимание основных классов View в Django
View
класс, а также как Django вызывает его в процессе обработки запросов и ответов.
-
Легкая обработка форм с FormView
-
Изучение того, как использовать
FormView
для обработки пользовательского ввода. -
Вы сможете освоить шаблоны для проверки корректности форм, обработки сообщений об ошибках и перенаправления при успехе.
-
-
Использование ListView и DetailView
-
Обсуждение того, как эффективно создавать страницы списков и подробностей с помощью
ListView
иDetailView
. -
С примерами настоящих проектов также будут даны советы по работе с контекстными данными шаблона.
-
-
Упрощенная обработка CRUD с CreateView, UpdateView, DeleteView
-
Изучение классов представлений, которые почти автоматизируют операции CRUD (создание, чтение, обновление, удаление).
-
Это будет полезно для тех, кто задается вопросом: "Должен ли я писать модельную форму самостоятельно, или могу воспользоваться функционалом CBV?".
-
-
Эффективная рендеринг шаблонов с TemplateView
-
Изучение того, как использовать
TemplateView
для простой рендеринга страниц. -
Будут даны советы, как структурировать свои шаблоны для быстрой рендеринга HTML.
-
В заключение: Наше будущее путешествие
В этой серии, обсуждая вместе, вы исследуете богатый мир CBV, предоставляемый Django. Если вы до сих пор использовали только FBV, вы откроете для себя новые перспективы, такие как "Вот как работает CBV!", а если вы уже имеете опыт работы с CBV, то сможем вместе подумать над более глубокими методами использования и стратегиями расширения.
В эпоху ИИ акцент разработчика должен быть не просто на написании кода, а на понимании принципов работы кода и способности разрабатывать лучшие структуры. CBV Django — это очень подходящая тема для изучения и практики этого.
В следующей статье мы начнем с основного класса View
в Django и рассмотрим его базовую структуру. Давайте потихоньку учиться и становиться "настоящими инженерами", пишущими более надежный и масштабируемый код.
Полезные материалы для справки
Анонс будущей серии "Изучение CBV"
-
Часть 2: “Принципы работы и жизненный цикл основных классов View в Django”
-
Часть 3: “FormView: аккуратная обработка форм”
-
Часть 4: “ListView & DetailView: реализация списков данных и детального просмотра”
-
... (продолжение)
Спасибо, что прочитали пост до конца. Ожидайте будущие выпуски серии, и если у вас есть вопросы или мысли, которыми вы хотите поделиться, не стесняйтесь оставлять комментарии!
"В эпоху кодов, создаваемых ИИ, наши инженерные чувства и проницательности будут сиять как никогда".
댓글이 없습니다.