В данном блоге я хочу поделиться о том, как я начал изучать программирование, что меня заинтересовало в этом деле. Рассказать немного о себе, кто я такой. А также хочу написать несколько обучающих статей, которые помогут начинающим программистам освоить этот нелегкий путь. Хочу написать статьи, простым и понятным языком, используя, понятные всем жизненные ситуации, при этом не сильно вдаваясь в термины (но и термины немного подучим).
Что такое объекты в программировании простым языком. И как они применяются в WordPress.
Запись от alexandr199612 размещена 06.08.2018 в 21:33
Обновил(-а) alexandr199612 06.08.2018 в 21:35 (Я случайно опубликовал запись не закончив редактировать ее.)
Обновил(-а) 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. Более углубленно на тему ООП я постараюсь написать в следующей статье. Авторы статьи: Александр и Владимир Должиковы |
Всего комментариев 4
Комментарии
-
Классно, что хоть кто-то ведёт блог по разработке на CMS... При желании можно расширить термины данной записи от одного конкретно взятого движка, вставив материал по модели MVC, которая лежит в основе любой современной CMS... С позиции MVC объяснять особенности движка, как и его объектную модель на мой взгляд проще...
Запись от Fedor92 размещена 09.08.2018 в 13:24 -
Цитата:Классно, что хоть кто-то ведёт блог по разработке на CMS... При желании можно расширить термины данной записи от одного конкретно взятого движка, вставив материал по модели MVC, которая лежит в основе любой современной CMS... С позиции MVC объяснять особенности движка, как и его объектную модель на мой взгляд проще...
Насчет MVC - да, у меня было в планах написать об этой модели программирования. Но мне нужно время, чтобы все обдумать... По поводу конкретно, CMS WordPress: там не используется модель MVC. Архитектура в WordPress написана в стиле функционального программирования. Но Вы можете писать плагины, применяя паттерн програмирования MVC.Запись от alexandr199612 размещена 09.08.2018 в 14:39 -
Запись от Fedor92 размещена 09.08.2018 в 14:48 -
Цитата:
Кстати, могу еще добавить, что хоть WordPress и не построен на модели MVC, все же он позволяет писать плагины для WordPress, применяя эту модель.Запись от alexandr199612 размещена 09.08.2018 в 21:50