<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

ООП в JavaScript. Полиморфизм

ООП в JavaScript. Полиморфизм

Вокруг ООП (объектно-ориентированное программирование) слагается огромное количество мифов и легенд. Сложилась ситуация, при которой опытные программисты сильно критикуют этот подход в программировании. В то время, как неопытные новички возлагают большие надежды на ООП, как на способ защиты от написания плохого кода. Так на чьей стороне правда? Будем разбираться.

Причина появления ООП - это постоянное усложнение программ. Чем больше пользователь хочет от программы, тем сложнее она становится. Соответственно в какой-то момент программа становится очень сложной. Когда количество кода разрастается до несколько тысяч строк, то ориентироваться в таком коде становится почти невозможно. Разросшийся код - потребовал от ведущих программистов какого-то решения. А решение здесь может быть только одно - разбить одну большую задачу на несколько маленьких подзадач. В программировании это называется - разбивкой на модули.

Каким способом разбить код на модули, особенно новичку без опыта? Любой программист вам скажет, что правильно разбить программу на модули очень тяжело. Поскольку программист должен иметь четкое представление о том, как эти задачи между собой связаны. Какую бизнес задачу решает отдельно взятый модуль? Плохая новость заключается в том, что никто до конца на 100% не знает, что ещё потребуется в конечном продукте. Даже при самом тщательном планировании и огромном бюджете, заказчик обязательно произнесет свою коронную фразу: "А давайте добавим сюда еще это..". Поэтому программа должна писаться таким образом, чтобы при внесении изменений в уже готовый модуль, не сломалась логика всей программы. Как это работает?

Мы выявляем в программе те модули, которые могут работать абстрактно (без привязки к специфическим характеристикам, например: отпечатки пальцев, цвет глаз). Смоделируем абстрактную модель для формы авторизации, оставляя только важные параметры, которые потом станут свойствами. Главная модель формы авторизации - это user. Давайте определим самые важные параметры для user, это username, password и email. Теперь мы можем построить объект с этими тремя свойствами. Помимо свойств, у объекта user есть и методы (действия), например user регистрируется (register()) на сайте, затем входит (login()) в свой акаунт и выходит (logout()) из аккаунта.

Вот так происходит процесс моделирования модуля:

  • определяется главная модель (сущность)
  • вычисляется круг присущих только ей свойств
  • продумываем с чем будет она взаимодействовать

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


Полиморфизм

Полиморфизм в программировании - это возможность переменной принимать разные типы данных, а методам работать с разными действиями.


Пример полиморфизма

На многих сайтах часть информации доступна только авторизованным пользователям. В свою очередь авторизованные пользователи могут делится на пользователей с разными ролями: админов (admin), модераторов (moderator), читателей (reader). Есть общие свойства и методы, присущие всем ролям, но также есть и уникальные методы, привязанные только к одной конкретной роли.

У объекта user есть метод getLessons() с какой-то базовой функциональностью. Но у разных групп пользователей могут быть свои уникальные функции (описываем их в условиях). То что позволено админу, не доступно читателю и.т.д. Поэтому один метод getLessons() у разных групп будет и работать по разному.

// Здесь схематичный синтаксис
user {
// getLessons()
if (admin) // если ты админ, то получи весь список уроков
if (moderator) // если ты модератор, то получи все ID пользователей
if (reader) // если ты читатель, то получи доступ к оплаченному уроку
}

admin.user {
// getLessons()
}

reader.user {
// getLessons()
}

Полиморфизм, это когда один и тот же метод будет меняться в зависимости от того, что за сущность (с какой ролью) авторизировалась на сайте.

Заключение

ООП всего лишь инструмент и надо научиться правильно его применять. Если мы применим его правильно, то получим хороший результат. Если мы применим ООП там, где это неоправданно, то и результат будет так себе. В моем видеокурсе по JavaScript, вы увидите, как на практике применять ООП подход при создании простого хранилища данных.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.