Форум программистов, компьютерный форум, киберфорум
Наши страницы
alexandr199612
Войти
Регистрация
Восстановить пароль
В данном блоге я хочу поделиться о том, как я начал изучать программирование, что меня заинтересовало в этом деле. Рассказать немного о себе, кто я такой. А также хочу написать несколько обучающих статей, которые помогут начинающим программистам освоить этот нелегкий путь. Хочу написать статьи, простым и понятным языком, используя, понятные всем жизненные ситуации, при этом не сильно вдаваясь в термины (но и термины немного подучим).
Оценить эту запись

Что такое объекты в программировании простым языком. И как они применяются в WordPress.

Запись от alexandr199612 размещена 06.08.2018 в 21:33
Обновил(-а) alexandr199612 06.08.2018 в 21:35 (Я случайно опубликовал запись не закончив редактировать ее.)

Мы хотели бы разобрать тему о том, что же такое объекты в программировании вообще, и как, и для чего они применяются в CMS WordPress.

Для чего это важно знать: Объекты – это одно из основных понятий в объектно-ориентированном программировании, которое, как сказал один мой товарищ «очеловечивает» программирование. Знания в области объектно-ориентированного (далее ООП) подхода позволяют строить архитектурно-сложные приложения, при этом не наваливая большущую «кучу» нечитаемого кода.

Что Вам дает знание этих понятий: при разработке сайта на современных движках или framework (фреймворках), без знаний в области ООП – никуда. Если Вы хотите делать качественные сайты, с хорошо продуманной и оптимизированной архитектурой, то нужно разобраться и хорошо понять эту тему. Сейчас ООП – это принятый, среди программистов стандарт, который помогает вести совместную разработку, понимать и ориентироваться в чужом коде. Также такие приложения потом можно легко расширять и дорабатывать.

Что такое объект, свойства и методы объекта? Что такое класс?

Итак, сначала я хочу дать определение данным понятиям.

Объект – это некая сущность в виртуальном пространстве, которая имеет свои свойства и методы. Как я уже говорил это основное понятие в философии объектно-ориентрованного программирования.

Класс: я пока не буду углубляться в дебри, а просто дам определение этому понятию, более подробно разберем это позже. Класс в ООП – это абстрактное представление данных, описывающее их поведение и свойства. В отличие от объекта, описывает не конкретную сущность, а абстрактное понятие. Если пока непонятно – ничего страшного, чуть ниже я более подробно объясню, что это, и как относится к объектам.
Любой человек, даже если он не программист, познает окружающий мир, представляя все объектами. Приведу простой пример: мы видим незнакомого нам человека (объект), и сразу, неосознанно, выделяем некоторые его свойства и методы.

Свойства: это, различные характеристики объекта. Например, мы можем сразу же определить расовую принадлежность этого человека, его пол, примерный рост, вес, дать оценку его телосложению и т.д. Подобных свойств у любого объекта, может быть бесконечно много.

Методы: это то, что человек может делать. Например, мы с Вами решили пойти посмотреть на боксерский поединок. Во время боя мы наблюдаем как один из боксеров очень хорошо владеет апперкотом. Так вот: этот удар можно назвать методом, то есть спортсмен, умеет выполнять определенную операцию. Это и будет один из методов этого объекта. Или взять к примеру такой метод человека, как чтение книги. Это тоже одна из операций, которая присуща человеку.

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

Начнем со свойств. Отметим что у человека есть: руки, ноги, голова и туловище. У котенка свойства немного отличаются: лапы, хвост, голова и туловище. Как видно, некоторые свойства у разных объектов могут быть одинаковыми, или похожими. То же самое и с методами. Человек может готовить еду, читать книги, спать и кушать. А котенок умеет охотиться на мышей, спать, кушать и выпрашивать еду у хозяина.

То есть как видно, объекты могут быть разными, естественно у них разные свойства и методы, что как раз их и отличает между собой, кроме названия. Разные объекты могут и применяться в разных сферах, в зависимости от их свойств и методов. Например, какой-нибудь бабуле может быть очень нужен в хозяйстве кот, который будет ловить мышей. Зачем ей нужен высокий, со спортивным телосложением, и умеющий бить апперкот боксер? Я думаю, это нерационально, ставить боксера, чтобы он своими апперкотами уничтожал мышей-вредителей  Ведь у боксера есть методы, «регулярные тренировки», «спортивное питание» и «профессиональные поединки», которые не будут задействованы в данной ситуации.

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

Объекты в WordPress.


В данной системе управления сайтами есть стандартные объекты, о которых я сейчас расскажу. Также там есть возможность создавать свои объекты, которых требует архитектура проекта.

По умолчанию, в только что установленном, без дополнительных плагинов, WordPress, есть основные пять объектов:

1. Page – страница.
2. Post – запись в блоге.
3. Attachment – медиа вложение, то есть картинка, прикрепленная к посту.
4. Revision – разные редакции одного и того же поста.
5. nav_menu_item – элемент меню.

Теперь пришло время обсудить, что такое класс и чем он отличается от объекта. Я приводил пример с боксером, у которого есть свойства и методы. Но боксер это, так сказать абстрактное понятие, которое просто дает определение данному виду объектов. И в программировании, боксер – это класс. А вот, именно тот боксер, которого мы видим в ринге, например, Майк Тайсон, является объектом класса боксер.

То есть сначала, всегда описывается класс, его свойства и методы. А потом уже можно увидеть объекты этого класса. Почему-то мне сейчас вспоминается один пример: давайте вспомним немного истории, а конкретно ту ее часть, когда изобрели порох. До этого момента сражения на поле боя велись либо в рукопашную, либо использовались примитивные стрелковые вооружения (арбалет, лук). Но вот какому-то «гению» приходит идея в голову, что для того чтобы эффективнее уничтожать других людей, можно использовать стрелковое вооружение на основе пороха, что дает большие преимущества в бою. Ведь, стрелять из такого оружия может практически любой человек. Вот таким образом зарождается новый класс, в обычной жизни, не связанной с программированием.

То есть сначала были придуманы, и спроектированы свойства и методы нового класса. Преимущества, то есть, свойства и методы данного класса можно описать так: воин с ружьем сможет стрелять с большого расстояния, ему не нужно больших усилий для стрельбы, как это, например, в ситуации с луком, и делать это может абсолютно любой человек, стоит только объяснить новую технологию. Ну а далее, когда класс создан, продуманы все его свойства и методы, можно создавать объекты этого класса. Например, командир вспомнил, что неделю назад ранили одного из его бойцов, и тот не сможет биться в рукопашную, и командир сделал его стрелком. И вот этот воин, скажем Иван, будет теперь являться объектом класса «стрелок».

Теперь вернемся к нашему движку WordPress. Как мы выяснили у него есть свои, определенные классы. В WordPress это называется post type.

Если сейчас внимательно посмотреть на список стандартных post type, которые по умолчанию создаются в WordPress, когда мы устанавливаем его, то можно сделать вывод, что WordPress – это движок для создания блогов, лендингов и простых сайтов-портфолио. По умолчанию, администратор сайта может создавать только объекты поста, то есть писать какие-то статьи, новости и т.д. Но к счастью, WordPress устроен так, что разработчик может сам создавать на своем сайте, нужные ему post type.

Для чего нужно умение создавать свой post type.


Допустим, мы с вами хотим создать интернет-магазин, через который будем продавать свои товары, а также вести блог. По умолчанию в WordPress уже есть возможность для ведения блога. Мы просто создаем из админ-панели новый пост, даем ему название, пишем основной контент, добавляем картинку для данного поста, и нажимаем кнопку «опубликовать». Вот и все, мы создали объект нашего post type, и можем развивать свой блог, создавая столько объектов класса post, сколько нам нужно.

Но как быть с товарами? Где мы сможем создать товар, ведь не получиться создать еще один объект нашего класса post, и просто назвать его товаром.

Во-первых, на сайте будет путаница. Когда Вы захотите, например, вывести все статьи на какой-то странице, то на этой странице будут и посты, и товары вперемешку.

И во-вторых, у стандартного класса WordPress нет нужных свойств для нужного нам класса – товары.

Главная идея post type: как я уже приводил в примерах, с боксером и котом, в разных ситуациях нужен свой объект, со своими свойствами. Я веду к тому, что у объектов блога – нет, к примеру, таких, нужных свойств как: цена, количество товара, размеры товара, брэнд, цвет, и т.д. С другой стороны, эти свойства не нужны для объектов блога.

Это лишь один из множества примеров использования своих post type, для решения индивидуальных задач. Создание своих post type в WordPress – это одно из базовых задач, которые должен уметь делать веб-разработчик. Ведь при построении архитектуры проекта, очень важно уметь определить: какие объекты нужны для данного проекта, и как эти объекты будут взаимодействовать с собой.

Пока на этом все, я постарался объяснить, что такое объекты и классы в программировании, как они реализованы в WordPress. Более углубленно на тему ООП я постараюсь написать в следующей статье.

Авторы статьи: Александр и Владимир Должиковы
Размещено в Без категории
Просмотров 240 Комментарии 4
Всего комментариев 4
Комментарии
  1. Старый комментарий
    Классно, что хоть кто-то ведёт блог по разработке на CMS... При желании можно расширить термины данной записи от одного конкретно взятого движка, вставив материал по модели MVC, которая лежит в основе любой современной CMS... С позиции MVC объяснять особенности движка, как и его объектную модель на мой взгляд проще...
    Запись от Fedor92 размещена 09.08.2018 в 13:24 Fedor92 на форуме
  2. Старый комментарий
    Аватар для alexandr199612
    Цитата:
    Сообщение от Fedor92 Просмотреть комментарий
    Классно, что хоть кто-то ведёт блог по разработке на CMS... При желании можно расширить термины данной записи от одного конкретно взятого движка, вставив материал по модели MVC, которая лежит в основе любой современной CMS... С позиции MVC объяснять особенности движка, как и его объектную модель на мой взгляд проще...
    Спасибо за Ваш отзыв! Мне приятно, что моя статья кому-то пригодилась и понравилась!

    Насчет MVC - да, у меня было в планах написать об этой модели программирования. Но мне нужно время, чтобы все обдумать... По поводу конкретно, CMS WordPress: там не используется модель MVC. Архитектура в WordPress написана в стиле функционального программирования. Но Вы можете писать плагины, применяя паттерн програмирования MVC.
    Запись от alexandr199612 размещена 09.08.2018 в 14:39 alexandr199612 вне форума
  3. Старый комментарий
    Цитата:
    По поводу конкретно, CMS WordPress: там не используется модель MVC.
    Я и не писал, что она используется в wordpress... Это заметка на будущие статьи, если они будут посвящены, к примеру Opencart, что было бы интересно, кстати...
    Запись от Fedor92 размещена 09.08.2018 в 14:48 Fedor92 на форуме
  4. Старый комментарий
    Аватар для alexandr199612
    Цитата:
    Сообщение от Fedor92 Просмотреть комментарий
    Я и не писал, что она используется в wordpress... Это заметка на будущие статьи, если они будут посвящены, к примеру Opencart, что было бы интересно, кстати...
    Да я Вас хорошо понял) Я написал это не как замечание для Ваc! Просто захотел расширить немного тему, и затронуть устройство WordPress. Возможно это натолкнет кого-то на мысли...

    Кстати, могу еще добавить, что хоть WordPress и не построен на модели MVC, все же он позволяет писать плагины для WordPress, применяя эту модель.
    Запись от alexandr199612 размещена 09.08.2018 в 21:50 alexandr199612 вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru