В последнее время я много думал об этом с выпуском Chat GPT. Вокруг него довольно много хайпа. Некоторые из них заслужены, в то время как некоторые из них кажутся немного надуманными.

Одно можно сказать наверняка, если вы еще не экспериментируете с ИИ в своем бизнесе, вы останетесь позади.

То, как я рассматриваю ИИ, — это просто еще один инструмент. И все сводится к тому, как этот инструмент используется для решения проблем.

Я подозреваю, что мы увидим злоупотребление Chat GPT в кругах SEO. И это может даже сделать Google излишним. После использования его для ответов на технические нюансы и создания контента для SEO-эксперимента это, безусловно, кажется возможным.

Вот что я имею в виду.

Я читал книгу под названием «Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения». И я наткнулся на принцип проектирования, с которым я не был знаком: «Предпочитайте композицию объектов наследованию классов».

Я предполагал, что в книге эта концепция будет более подробно описана. Однако, когда этого не произошло, я обратился к Google.

К сожалению, я получил кучу результатов, заполненных жаргоном, которые на самом деле не помогли.

Первым ответом был избранный сниппет с Medium:

Отдавая предпочтение композиции объектов, а не наследованию классов, вы можете сохранить каждый класс инкапсулированным и сфокусированным на одной задаче. Ваши классы и иерархия классов останутся небольшими и с меньшей вероятностью превратятся в неуправляемых монстров. Другие преимущества заключаются в том, что композиция гораздо более гибкая, чем наследование.

Итак, я решил спросить Chat GPT, что такое «Предпочитать композицию объектов наследованию классов»?

И вот что он вернул:

Отдавайте предпочтение композиции объектов, а не наследованию классов» — это принцип объектно-ориентированного программирования, который предполагает, что часто лучше проектировать систему с использованием композиции, когда объекты состоят из других объектов, а не с использованием наследования, когда один объект является производным от другого. Наследование — это способ создания нового класса, являющегося модифицированной версией существующего класса. Новый класс называется подклассом, а существующий класс — суперклассом. Подкласс наследует атрибуты и поведение от суперкласса, а также может иметь собственные дополнительные атрибуты и поведение. С другой стороны, композиция — это способ создания нового объекта путем объединения функций нескольких других объектов. Новый объект называется составным, а объекты, из которых он состоит, называются его компонентами. Составной объект делегирует часть своего поведения своим компонентам, а также может иметь собственное дополнительное поведение. Принцип предпочтения композиции перед наследованием предполагает, что композиция часто является лучшим выбором, поскольку она может обеспечить более гибкий и удобный дизайн. Наследование может быть негибким, потому что может быть трудно изменить суперкласс, не затрагивая подкласс, и это может привести к хрупким проектам, потому что изменение суперкласса может иметь непредвиденные последствия в подклассе. Композиция, с другой стороны, позволяет вам изменять поведение составного объекта, изменяя или заменяя его компоненты, не затрагивая другие объекты в системе. Например, рассмотрим систему для управления библиотекой. У вас может возникнуть соблазн смоделировать систему с использованием наследования с классом Book в качестве суперкласса и классами PaperbackBook, HardcoverBook и Ebook в качестве подклассов. Однако такой дизайн может быть негибким, потому что будет сложно добавлять новые типы книг без изменения суперкласса. Вместо этого вы можете смоделировать систему, используя композицию, с классом Book, имеющим такие атрибуты, как название и автор, и классом BookFormat, имеющим такой атрибут, как формат (мягкая обложка, твердая обложка или электронная книга). Этот дизайн позволяет добавлять новые типы форматов книг без изменения класса Book, а также позволяет одной книге иметь несколько форматов (например, в твердом переплете и в электронной книге).

Инструмент не только определил концепцию, но и доработал ее, а также предоставил пример, укрепляющий ее.

По моим наблюдениям из первых рук, я думаю, что этот инструмент превосходно справляется с масштабной переработкой информации централизованным способом, чего раньше не было.

Под централизованным я подразумеваю, что вам не нужно заходить на различные веб-сайты и расшифровывать кучу текста, чтобы понять тему.

Я также пытался заставить платформу завершить несколько небольших проектов разработки, над которыми я работаю, со смешанными результатами.

С одной стороны, это действительно хорошо с общими вопросами, такими как:

Создайте функцию на Python, которая перебирает массив из 10 значений и выводит его на экран.

Это результат:

Хотя это довольно удивительно, с более сложными запросами могут возникнуть проблемы, и он все еще нуждается в некотором контроле.

Но разумно предположить, что он продолжит прогрессировать.

Я верю, что в конечном итоге мы достигнем точки, когда любой, у кого есть идея, сможет раскрутить веб-сайт, приложение или часть программного обеспечения за выходные, если не за полдня.