C# обучение для чайников

Формула программиста

основатель — Волосатов Евгений Витольдович

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Observer - Теория 00:09:42
25 чел. ★ 4.8 Done
  Мы начинаем знакомство с очень популярным и востребованным
шаблоном проектирования - Наблюдатель / Observer.
По-другому он называется Подчинённые / Dependents.
Этот шаблон активно используется в событийно-ориентированных языках программирования.

На следующих уроках мы создадим несколько программ,
на примере которых лучше уясним суть этого шаблона проектирования.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 55 мин. [Показать отчёт]
Научился: схема Наблюдателя: - объект рассылает сообщения - количество Получателей может варьироваться - связь между Отправителем(Отправителями) и Получателем(Получателями) слабая Суперкласс Observer - способен принимать входящие сообщения (обрабатывать события) Дочерние классы реализуют деяния, связанные с событием, о котором информируется суперкласс Класс Observable (или Subject)  отвечает за регистрацию обработчиков событий, удаление и оповещение оных Класс информатора (в примере - Porter) создает список оповещаемых, добавляет/удаляет в него элементы списка, инициирует оповещение слушателей в цикле перебирая всех Шаблон наблюдатель полезен в роли стартового пистолета на соревнованиях Вместо вахтёра в спорте стартёр — человек, который даёт старт соревнованию 
Видеообзор: 5i0EvifYGOs
2 Observer - School Bell - Student 00:07:24
1 тест
21 чел. ★ 5 Done
  Мы начинаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы реализуем интерфейс Observer(), класс OStudent() и
реализуем базовый функционал будущей программы.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 58 мин. [Показать отчёт]
Научился: 1:35 - цитата" Рассказывают, что Эклипс работает медленно даже на быстрых компьютерах". Оказывается не в железе дело )) Не поставил галку "Добавить абстрактные методы" от интерфейса. Посмотрим, выплывет ли это расхождение Создали интерфейс, дочерний класс студента и точку входа в программу 
3 Observer - School Bell - Sound Bell 00:08:46
20 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы реализуем класс OBell(),
который будет имитировать школьный звонок.

Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 13 мин. [Показать отчёт]
Научился: Если при создании класса OBell в интерфейсы указывается дефолтный Observer (не ObserverSchool/src) - то добавляются импорты и аргументы в методе update Чтобы звонок бренчал ваяем метод sound со строковым аргументом имени воспроизводимого файла Метод sound состоит из следующих инструкций: - создание экземпляра с аргументом имени файла - получение звукового потока из экземпляра выше - создание клипа - открытие звукового потока - запуск звукового потока в рамках трайкеча 
4 Observer - School Bell - Porter 00:11:16
1 тест
20 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы приступаем к реализации интерфейса Observable()
и его класс Porter() implements Observable.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 43 мин. [Показать отчёт]
Научился: оповещение Наблюдателей осуществляется оптом, не в розницу Наблюдатели хранятся в ArrayList<>(); Реагируют на событие лишь те наблюдатели, что добавлены Удаленный объект звонок как это ни удивительно, не звонит, но трое вечерних студентов рады и без звукового сопровождения (вторая иллюстрация) 
5 Observer - School Bell - java.util.Observer 00:09:31
20 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы переделаем нашу программу с использованием
системной библиотеки для реализации Observer/Observable().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 44 мин. [Показать отчёт]
Научился: Observer представлен в системных библиотеках Java В интерфейсе Observer реализован метод update с аргументами (звонок, кто звонит) Object Sender - кто звонит (от какого объекта прилетело событие) EventArgs - как звонит (доп. инфа об обработке события) Обработка события "щелч0к ПКМ" реализованный через делегат == методу update Add unimplemented methods - добавить нереализованные методы После удаления самолепного Observer -а) импортировали системный java.util.Observer во все классы, которые его имплементируют (используют/расширяют) -б) дописали в сигнатуру метода update аргументы Observable o и  Object args Если аргументов нет - указали null На этом уроке мы избавились от самодельной реализации и применили то же самое, сделанное разработчиками ЯП Java Причина для этого - использование проверенного ресурса вместо самопального кода 
6 Observer - School Bell - java.util.Observable 00:09:48
1 тест
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы воспользуемся системным классом Observable().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 2 час. 4 мин. [Показать отчёт]
Научился: Observable интерфейс в системных библиотеках переведён(расширен/преобразован) в класс, поскольку методы универсальны и не требуют множества одинаковых реализаций(имплементаций): =================================== void addObserver(Observer o) protected void clearChanged() int countObserver() void deleteObserver(Observer o) void deleteObservers() boolean hasChanged() void notifyObservers() void notifyObservers(Object arg) protected void setChanged() =================================== Удалили самопальный интерфейс Observable, включавший в себя три метода add, delete и notify ВАЖНО! Не забыть implements (реализует) заменить на extends (расширяет) После подключения библиотечного java.util.Observable все методы, кроме doBreak() стали излишними и полетели со свистом в треш 
7 Observer - School Bell - Study and Break 00:09:59
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы завершаем создание программы "Школьный звонок".
Осталось рассмотреть дополнительную возможность передачи параметров.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 4 мин. [Показать отчёт]
Научился: добавили аргументы в метод update класса Obell Для дифференциации звонков добавили перечисление BellMode Перечисляй через запятую, в конце - точка с запятой Применили свичкейс для аргумента из класса BellMode Нашел в сети новый звук, прикрутил и его в Obell.java через свичкейс Урок демонстрирует возможность допилить метод до работающего с аргументами, указываемыми в сигнатуре и обращающимся к разным звуковым файлам в разных контекстах происходящего - на урок один звонок, с урока другой 
8 Observer - Sensor - Visaginas 00:09:51
1 тест
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы создадим программу информирования о погоде.
Для этого мы создадим класс Sensor(), который будет узнавать текущую температуру
и информировать об этом тех, кому это нужно и при необходимых значениях температуры.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 0 мин. [Показать отчёт]
Научился: в новом проекте начали с создания класса Sensor наследуемого от системной библиотеки java.util.Observable Метод информирования Наблюдателей содержит инструкции: - установить наличие изменений - оповестить Наблюдателей (с аргументом из метода возвращаемого методом этого же класса getTemperature) 
9 Observer - Sensor - Person 00:08:17
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На прошлом уроке мы создали класс Sensor(), который рассылает
информацию о температуре всем, кому это необходимо.
На этом уроке мы создадим классы Console() и Person()
как получателей информации о температуре.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 47 мин. [Показать отчёт]
Научился: создали классы получателя оповещений с интерфейсом java.util.Observer Из аргументов получаем температуру с приведением значения к типу Integer 
10 Observer - Sensor - Cat File 00:06:30
1 тест
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы создадим класс Cat(), который будет
создавать файл "cat.txt" при 18 градусах и удалять его при 0 градусов.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 47 мин. [Показать отчёт]
Научился: новый класс Кот создаёт файл ТОЛЬКО если температура == 18 градусам Для этого создаётся экземпляр класса File Затем для этого экземпляра применяется метод createNewFile() Точно расставив фигурные скобки избавился от ошибок в коде и получил кота делающего файл и заскребающего его при определенных температурах 
11 Observer - Sensor - Banner 00:09:36
16 чел. ★ 5 $
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы вспомним картинку, с которой начиналась наша серия уроков.
Чтобы реализовать что-то похожее, мы воспользуемся классом FacadeMotivator(),
которые реализовали во время прохождения Шаблона Проектирования: "Facade".
12 ФИНАЛЬНЫЙ УРОК без видео
3 теста
7 чел. ★ 5 $
  Поздpaвляю!
Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест".

Напиши отзыв или видеообзор по этому видеокурсу.
13 VIP - Observer - Sensor - Alert 00:10:27
15 чел. ★ 5 $
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы добавим звуковую сигнализацию к нашему температурному табло.
  Итого:   13 видеоуроков 1 час. 51 мин.
8 тестов
7 чел. ★ 4.99  
  Финалисты:   Сергей Соколов,   Иван Воронин,   Новопашин Владимир,   Tekashnik,   Александр,   Anatoli,   Tom .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: На этом курсе познакомился со структурой и реализацией паттерна Observer. Научился воспроизводить звук с помощью классов AudioInputStream и Clip.



Научился: Хороший курс, не большой и очень понятный! Как работает паттерн объясняется на двух примерах, что бы наверняка закрепить пройденный материал. Рекомендую пройти этот курс, а так же остальные курсы по паттернам проектирования.