Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Перемещайте деревянные блоки и направляйте их в ворота, соответствующие их цвету! Это спокойная и расслабляющая головоломка без таймеров и ограничений — играйте в комфортном темпе.

Деревянные цветные блоки

Головоломки, Казуальные, Логическая

Играть

Топ прошлой недели

  • Animalrescueed Animalrescueed 43 поста
  • XCVmind XCVmind 7 постов
  • tablepedia tablepedia 43 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
2
user11260161

Всем привет! Ищу идеи для диплома по графическому дизайну. Помогите, пожалуйста⁠⁠

25 дней назад

Нужна очень срочная помощь с выбором темы для дипломного проекта по графическому дизайну. Но! игры сразу исключаются, потому что уже два человека взяли что-то типа этого. Айдентика/брендинг и упаковка тоже нежелательны, потому что много кто делал это до нас. Главное что бы было две части Анализ (Теория) и Мой собственный дизайн (Практика). Буду очень благодарна за помощь!

Разработка Проект Обучение Текст
16
it.forkids
it.forkids

Курсы программирования для детей: рейтинг 2025–2026⁠⁠

25 дней назад

Обучение на курсах программирования для детей – верная дорога к уверенному старту в IT. Но стоит понимать, что никто не дает гарантий профессионального будущего: дополнительные уроки в детские годы или в подростковом возрасте станут лишь основой формирования полезного хобби и ряда ценных навыков, которые при условии дальнейшего развития и более углубленного обучения могут стать базисом выбора профессии. Но лишь в случае неподдельного интереса ребенка: навязывать ему информационные технологии из-за их распространенности не стоит.

Если же реальная заинтересованность в написании кода имеет место, учеба однозначно заслуживает внимания.


Содержание

  • Топовые курсы программирования для детей, заслуживающие внимания

  • Курс программирования для подростков в формате образовательной траектории по Frontend-разработке

  • Курс веб-разработки и создания сайтов

  • Курс веб-программирования для детей

  • Курс web-программирования

  • Онлайн-курс веб-разработки для детей

  • FAQ

  • Какие направления курсов программирования для детей есть кроме веб-разработки?

  • Какие языки можно изучить на курсах программирования для подростков старше 12 лет?


Топовые курсы программирования для детей, заслуживающие внимания

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

А еще подчеркнем, что акцент поставили на веб-программировании, потому как это дополнительный аргумент в пользу комплексности: ребенку удастся понять, как писать код, а также применять дополнительные инструменты вроде HTML и CSS.


Курс программирования для подростков в формате образовательной траектории по Frontend-разработке

Курс программирования для подростков в формате образовательной траектории по Frontend-разработке

Курс программирования для подростков в формате образовательной траектории по Frontend-разработке

Ссылка

Что входит в образовательную программу курса: траектория посвящена таким темам, как создание сайтов с нуля, прототипирование и разработка макетов веб-проектов, применение инструментов для гипертекстовой разметки страниц, их стилизации и программирования.

Если более конкретно, то образовательная траектория включает в себя курс программирования для детей на JavaScript с использованием HTML и CSS, а также обособленный блок занятий по Figma. Чтобы лучше понять, что именно удастся освоить ребенку, изучите детализацию в перечне далее.

Так, на занятиях дети разберутся в использовании:

  • HTML. Это язык гипертекстовой разметки веб-документов, полезный с точки зрения придания корректной структуры определенным страницам и сайтам;

  • CSS. Это каскадные таблицы стилей, а вместе с тем и инструмент, предназначенный для стилизации сайтов, управления их визуалом;

  • JavaScript. Это условная технология, способствующая программированию решений, реализованных посредством двух предыдущих инструментов;

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

Так, ребенку удастся вникнуть в Frontend-разработку и обрести ценные соответствующие навыки.

На детей какого возраста рассчитаны онлайн-занятия: комплексный курс программирования для подростков в формате траектории ориентирован на детей от 14 до 17 лет.

Какие форматы предлагаются организатором на выбор учащихся: онлайн-занятия проводятся в группах и индивидуально.

Сколько стоит пройти обучение в рамках направления: цена одного часа онлайн-уроков установлена на уровне 600 рублей без учета скидки для новичков.


Курс веб-разработки и создания сайтов

Курс веб-разработки и создания сайтов

Курс веб-разработки и создания сайтов

Что входит в образовательную программу курса: на занятиях ребята смогут разобраться в уже обозначенных инструментах – HTML и CSS, а также в использовании языка JavaScript. Дополнительно предстоит освоить особенности применения библиотек Bootstrap 5, Swiper и Animate.CSS.

На детей какого возраста рассчитаны онлайн-занятия: уроки подойдут младшим школьникам и подросткам от 10 до 15 лет.

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

Сколько стоит пройти обучение в рамках направления: от 3 000 рублей за один дистанционный урок без учета скидки 30 %, предоставляемой на неуточненных условиях.


Курс веб-программирования для детей

Курс веб-программирования для детей

Курс веб-программирования для детей

Что входит в образовательную программу курса: помимо уже неоднократно обозначенных инструментов учащиеся смогут вникнуть в аспекты применения дополнительных библиотек – Node.JS и React.

На детей какого возраста рассчитаны онлайн-занятия: начать учиться на курсе программирования для детей можно с 10 лет.

Какие форматы предлагаются организатором на выбор учащихся: организатор занятий предлагает индивидуально-групповое и полностью индивидуальное онлайн-обучение.

Сколько стоит пройти обучение в рамках направления: минимальная цена занятия установлена на уровне 790 рублей или 8 долларов США.


Курс web-программирования

Курс web-программирования

Курс web-программирования

Что входит в образовательную программу курса: освоение содержательной стороны направления поможет ребенку использовать HTML, CSS и JavaScript, а также PHP.

На детей какого возраста рассчитаны онлайн-занятия: курс программирования для подростков подойдет ребятам от 12 до 17 лет.

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

Сколько стоит пройти обучение в рамках направления: базовая цена установлена на уровне от 1 700 рублей за урок.


Онлайн-курс веб-разработки для детей

Онлайн-курс веб-разработки для детей

Онлайн-курс веб-разработки для детей

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

На детей какого возраста рассчитаны онлайн-занятия: уроки доступны ребятам 10 лет и старше.

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

Сколько стоит пройти обучение в рамках направления: минимальная цена одного онлайн-занятия установлена на уровне 900 рублей.


FAQ

Какие направления курсов программирования для детей есть кроме веб-разработки?

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

Разработка игр – еще одно захватывающее направление, которое привлекает многих детей. Здесь они осваивают создание игровых механик, работу с графикой и звуком, а также основы искусственного интеллекта для неигровых персонажей. Такой подход делает обучение увлекательным и мотивирующим.

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

Программирование на Python – дополнительное и вместе с тем универсальное направление, которое подходит для решения самых разных задач: от создания ботов и игр до анализа данных. Этот язык программирования отличается простотой синтаксиса и широкими возможностями, что делает его идеальным для начинающих.

Создание чат-ботов – еще одно современное направление, которое учит детей работать с искусственным интеллектом и автоматизировать различные задачи. Это направление особенно актуально в эпоху цифровизации и развития мессенджеров.

Здесь же и для примера отметим кибербезопасность – перспективное направление, знакомящее детей с основами защиты информации и принципами безопасного поведения в интернете. Это помогает формировать ответственное отношение к цифровой гигиене с раннего возраста.

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

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

Для подростков старше 12 лет открывается широкий выбор языков программирования, каждый из которых имеет свои особенности и перспективы применения.

Python считается одним из самых универсальных и простых для освоения языков. Он позволяет создавать самые разные проекты – от простых чат-ботов до сложных программ с использованием искусственного интеллекта и машинного обучения. Компании вроде YouTube, Spotify и Netflix активно используют Python в своей работе.

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

Java – мощный язык, на котором создаются мобильные приложения и игры. Многие популярные приложения написаны именно на Java. Этот язык особенно хорош для тех, кто интересуется разработкой мобильных приложений.

C# является одним из самых востребованных языков в игровой индустрии. Он используется для создания игр на популярном движке Unity, а также десктопных приложений.

Lua может быть интересен подросткам, увлекающимся играми, особенно платформой Roblox. На этом языке можно создавать игровые механики и управлять поведением объектов в играх.

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

Реклама ООО «ПИКСЕЛЬ.СТАДИ», ИНН: 5074078988

Показать полностью 6
Программирование Обучение IT Образование Блоги компаний Длиннопост
273
MorozovOpera
MorozovOpera
Постановка разговорного и певческого голоса. Без боли.
Серия Петь, как Кипелов

Как учить песни?⁠⁠

25 дней назад

А так же более сложные произведения.

Много кто поёт песни, даже если просто бубнит их себе под нос на ходу. И ведь частенько возникает желание спеть песню как следует, чтоб для души. Некоторым же желается иногда спеть что-то на мероприятии, посиделках каких. Что-то из любимого.

Разумеется, это желание часто упирается в вокальные возможности и отсутствие слуха. Но мы уже неоднократно говорили на эти темы. Вокал и слух - дело практики, в подавляющем количестве случаев. Однако грамотное запоминание музыкального материала - вторая, не менее важная препона, отделяющая от "Куклы колдуна" на застолье тех, у кого остался ещё хоть какой то стыд.

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

Тема крайне свежая, ибо мне самому необходимо за ближайшие две недели выучить заглавные басовые партии в операх Трубадур и Аида. Там материала певческого минимум на два больших концерта сольных в общей сложности...

Лучший способ - это знать ноты и учить по ним, разумеется

Лучший способ - это знать ноты и учить по ним, разумеется

  1. Намечаем фронт работ

    А именно - скачиваем песню в самой лучшей по вашему мнению версии. С чётким вокалом и в хорошем качестве. А так же копируем текст и сохраняем его в блокнотике на ПК или телефон. Далее вы грузите трек в Телеграм в "Избранное", туда же отправляете и текст. Почему Телеграмм - расскажу далее.

    Кстати, в ТГ вы можете найти и меня, если интересуетесь качественной информацией по поводу постановки голоса и пению. Гуглите MorozovOpera. И в ВК тоже.

    .

  2. Слушаем до дыр

    Самый секретный способ быстрого выучивания песни, если она вызывает трудности - слушать её днями и ночами на репите. Самое плодотворное для этого время - после пробуждения и перед сном. Слушать нужно как следует, минимум час в день, если хотите более быстрого усвоения материала. Для ещё более быстрого изучения стоит слушать ТОЛЬКО эту песню и ничего более, никакой другой музыки. Если нужно несколько песен сразу - чередуйте их прослушивание.

    .

  3. Подводные камни

    Часто в песнях бывают куски, которые совершенно непонятны из-за высокой скорости на участках или невнятного произношения слов. Для этого нам и пригодится Телеграмчик. Вы включаете песню на скорости (х0.5) и медленно усваиваете то, что там внутри. Кайф в том, что вы можете это делать где и когда угодно, достаточно лишь наушника в ухе и телефона с этой песенкой в телеге.

    .

  4. Мурлыканье

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

    .

  5. Белые пятна

    Разумеется, в песне будут и те куски, которые никак не "мурлыкаются". Вы выделяете в сохранённом в "избранное" сообщении эти кусочки в тексте, который сохранили. Выделяете жирным, или подчёркиванием, или ещё кому как удобно. Затем вы откручиваете песню ровно к этим сложным моментам, ставите на 0.5 или 0.8 и медленно слушаете, глядя в текст. После 5-10 прослушиваний максимум вы сможете начать мурлыкать данные кусочки. Нужно сосредоточиться именно на них, и не петь пока остальное. Как только сможете напеть их на низкой скорости, пробуйте спеть на скорости нормальной. Пропеваются на нормальной? Тогда начинайте снова петь песню целиком, всё вместе.

    .

  6. Ритм и темп

    Частенько у начинающих певцов большие проблемы с попаданием в ритм. Для этого мурлыкайте песню, хлопая себя ладошкой или постукивая в такт ногой, например. Только делайте это твердо и чётко. Лучшем решением в этом плане будет хлопанье в ладоши и раскачивание в ритм песни, как делают в церквях христианского толка в Америке, как на картинке:

Are you ready for miracle??

Are you ready for miracle??

7. Текст

Финальной препоной, по обыкновению, выступает запоминание текста, ибо музыка ложится на память гораздо быстрее. Чтож, теперь пойте песню не отрывая глаз от текста, повторяя его твердо и чётко. Пропели так несколько раз - потом без текста, даже, если не выходит повторить всё по памяти. Потихоньку материал уляжется, главное пропевать так почаще. Можете наклеить стикеры с написанными недостающими кусками текстового пазла в тех местах, где вы чаще всего бываете или поёте (в душе, например, я серьезно. Только заранее заламинируйте бумагу скотчем, как вариант, чтобы не промокла)

.

8. ВАЖНО!

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

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

Вероятно, я в ближайшее время запущу подобную помощь для любителей попеть. Последний раз подобный аттракцион щедрости был 7 месяцев назад. Люди присылают мне своё пение на разбор и задают вопросы, а я даю ответы и детально разбираю то, как грамотно можно спеть присланное. А так же домашнее задание даю на месяц и кучу дополнительной крайне полезной информации. Увы, данные мероприятия в рамках Пикабу провести невозможно, поэтому желающих прошу загуглить MorozovOpera в телеге или ВК. Набор будет именно там.

.

А что же касаемо тех, кому нужно выучить целый концерт, оперу, или что то похожее? Для таких гиков я сделаю отдельный пост в ТГ (уж извините, на Пикабу такие сложности набирают 40 лайков и никому нафиг не сдались). Если вы серьезно занимаетесь вокалом - вам точно пригодится, милости прошу.

.

Вопросы - в комменты,

обнял/приподнял,

ваш MorozovOpera

Показать полностью 2
[моё] Вокал Пение Голос Музыка Обучение Мелодия Песня Длиннопост
24
1
user4650942
user4650942
Лига математиков

Попробуйте найти детский способ решения задачи!⁠⁠

25 дней назад

Расставьте в вершинах семиугольника числа так, чтобы суммы трёх идущих подряд чисел соответственно равнялись бы числам 9, 7, 10, 13, 12, 10, 5.

Старшеклассники, разумеется, станут решать эту задачу через икс. Но задачка-то для 4-го класса! Попробуйте найти детский способ её решения.

Урок Математика Преподаватель Образование Учеба Дети Занимательная арифметика Экзамен Задача Школьники Школа Бесплатное обучение Обучение Многоугольник Учитель Воспитание детей Занимательная математика Предметная олимпиада Нестандартный подход Кружок Текст
2
14
songwritting
songwritting

Как год назад я запустил бесплатную онлайн школу музыки и она помогла 5 тысячам человек⁠⁠

25 дней назад

Всем привет!
Ровно год назад я запустил бесплатную онлайн-школу музыки. Без регистрации, без рекламы, без оплаты или самопиара.

За это время я создал четыре полноценных курса, каждый — по 20–25 уроков:

  • Основы игры на гитаре

  • Написание песен (на любых инструментах)

  • Музыкальный маркетинг и продвижение песен

  • Музыка как средство психотерапии — новый прикладной курс, вышедший в январе. Его цель — помочь людям с помощью написания песен улучшить психическое состояние.

Что получилось за год

По данным Яндекс.Метрики, сайт школы посетили 247 000 раз.

Данные по посещениям за год

Данные по посещениям за год

Вот что показала статистика по курсам:

  • 45 000 человек начали обучение игре на гитаре,
    из них ≈ 11 900 прошли 4 и более урока.

  • 4 300 человек занимались написанием песен.

  • 3 500 изучали музыкальный маркетинг.

  • 509 — начали курс «Исцеление музыкой».

Данные взяты из раздела «Популярное» Яндекс.Метрики, цифры округлены для удобства.

Данные взяты из раздела «Популярное» Яндекс.Метрики, цифры округлены для удобства.

Если смотреть в целом:

  • около 40 000 человек прошли минимум два урока,

  • 10 900 — дошли до четвёртого и дальше,

  • примерно 2 000 — завершили целый курс.

Среднее время на сайте — около минуты,
а показатель отказов — всего 17 % (в два раза лучше среднего по онлайн-школам).
Около 5–7 тысяч человек возвращались регулярно — неделями занимались и действительно учились, а не просто «заглядывали из любопытства».

Немного о расходах

Больше всего посетителей приходит из поиска и по внешним ссылкам — значит, школу находят и советуют.
Хостинг — Tilda, домен — Reg.ru.
Расходы минимальные: примерно 1300 руб в месяц (1250 руб тариф Tilda + 1190 руб домен в год).

Что дальше?

Мне не нужны ни донаты, ни признание — я просто хочу понять,
что делать дальше со школой.
Свободного времени у меня немного (полчаса в день),
но если мой труд кому-то действительно помогает —
я хочу продолжить. Думаю о нескольких направлениях:

  1. Развивать музыкальные курсы до уровня Pro.
    Например, после «Гитары с нуля» сделать курс «Гитара уровня Pro».

  2. Добавить немузыкальные, «человеческие» курсы.
    Например:

    • «Уроки доброты»,

    • «Как найти друзей»,

    • «Как полюбить и принять себя»,

    • «Как преуспеть в эпоху ИИ».
      У меня есть высшее образование в политологии и дополнительное в психологии и методике преподавания, так что компетенции для этого есть.

  3. Сделать школу площадкой для взаимодействия музыкантов и преподавателей.
    Простую и бесплатную доску объявлений, где можно найти учителя или ученика.

  4. Или… просто закрыть проект — если он уже выполнил свою миссию.

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

Что делать со школой?
Всего голосов:
Показать полностью 2 1
Опрос Образование Музыка Обучение Доброта Длиннопост
4
3
SuperKulinar
SuperKulinar
Люблю готовить

Только так может освоить навык⁠⁠

25 дней назад
Перейти к видео

Нашла удобную разделочную доску на Али и на Яндекс Маркете.

Вертикальное видео Короткие видео Подача блюд Ингредиенты Кулинария Юмор Видео Повар Девушки Кухня Обучение
4
user4650942
user4650942
Лига математиков

Расшифруй, пожалуйста, следующий текст: Си ечзмци хугэчв хтедоч, м тсд си чочхмц⁠⁠

26 дней назад

Расшифруй, пожалуйста, следующий текст: Си ечзмци хугэчв хтедоч, м тсд си чочхмц

Математика Урок Учеба Преподаватель Образование Криптоанализ Занимательная арифметика Экзамен Задача Универ Обучение Криптография Бесплатное обучение Школьники Учитель Школа Шифр Студенты Развитие Головоломка Текст
13
0
user11249120
user11249120
Лига программистов

Паттерн Наблюдатель⁠⁠

26 дней назад

Паттерн Наблюдатель

Наблюдатель — это поведенческий паттерн проектирования, который создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах.

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

Проблема

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

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

Решение

Давайте называть Издателями те объекты, которые содержат важное или интересное для других состояние. Остальные объекты, которые хотят отслеживать изменения этого состояния, назовём Подписчиками.

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

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

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

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

Структура

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

  2. Когда внутреннее состояние издателя меняется, он оповещает своих подписчиков. Для этого издатель проходит по списку подписчиков и вызывает их метод оповещения, заданный в общем интерфейсе подписчиков.

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

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

  5. По приходу оповещения подписчику нужно получить обновлённое состояние издателя. Издатель может передать это состояние через параметры метода оповещения. Более гибкий вариант — передавать через параметры весь объект издателя, чтобы подписчик мог сам получить требуемые данные. Как вариант, подписчик может постоянно хранить ссылку на объект издателя, переданный ему в конструкторе.

  6. Клиент создаёт объекты издателей и подписчиков, а затем регистрирует подписчиков на обновления в издателях.

Псевдокод

В этом примере Наблюдатель позволяет объекту текстового редактора оповещать другие объекты об изменениях своего состояния.

Список подписчиков составляется динамически, объекты могут как подписываться на определённые события, так и отписываться от них прямо во время выполнения программы.

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

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

Применимость

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

Описанная проблема может возникнуть при разработке библиотек пользовательского интерфейса, когда вам надо дать возможность сторонним классам реагировать на клики по кнопкам.

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

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

Издатели ведут динамические списки. Все наблюдатели могут подписываться или отписываться от получения оповещений прямо во время выполнения программы.

Шаги реализации

  1. Разбейте вашу функциональность на две части: независимое ядро и опциональные зависимые части. Независимое ядро станет издателем. Зависимые части станут подписчиками.

  2. Создайте интерфейс подписчиков. Обычно в нём достаточно определить единственный метод оповещения.

  3. Создайте интерфейс издателей и опишите в нём операции управления подпиской. Помните, что издатель должен работать только с общим интерфейсом подписчиков.

  4. Вам нужно решить, куда поместить код ведения подписки, ведь он обычно бывает одинаков для всех типов издателей. Самый очевидный способ — вынести этот код в промежуточный абстрактный класс, от которого будут наследоваться все издатели.Но если вы интегрируете паттерн в существующие классы, то создать новый базовый класс может быть затруднительно. В этом случае вы можете поместить логику подписки во вспомогательный объект и делегировать ему работу из издателей.

  5. Создайте классы конкретных издателей. Реализуйте их так, чтобы после каждого изменения состояния они отправляли оповещения всем своим подписчикам.

  6. Реализуйте метод оповещения в конкретных подписчиках. Не забудьте предусмотреть параметры, через которые издатель мог бы отправлять какие-то данные, связанные с происшедшим событием.Возможен и другой вариант, когда подписчик, получив оповещение, сам возьмёт из объекта издателя нужные данные. Но в этом случае вы будете вынуждены привязать класс подписчика к конкретному классу издателя.

  7. Клиент должен создавать необходимое количество объектов подписчиков и подписывать их у издателей.

Взято с вебсайта refactoringuru - https://refactoring.guru/ru/design-patterns/observerТелеграм канал с полезным материалом - https://t.me/easyprogers

Показать полностью 6
Обучение IT Бесплатное обучение Программирование Python Telegram (ссылка) Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии