Обучение си шарп

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

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

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

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

После взноса  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 MVC - Суть шаблона 00:11:09
59 чел. ★ 4.9 Done
  Мы начинаем очень интересный шаблон проектирования: MVC.
Мы разберёмся, зачем же он нужен и продемонстрируем
его работу на нескольких примерах.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 40 мин. [Показать отчёт]
Научился: Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние. Начинка Вашего Программного продукта, имеющая свою заточку на выполнение неких задач разработанным Вами способом == это и есть Модель. По аналогии со столовой, микшером или автомобилем, Модель там кухня, печатная плата с элементами и агрегаты с трансмиссией, соответственно. Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели. Коротко - это интерфейс. Экран монитора, статус-бары, прогресс-бары, любые показометры, всё что отвечает за информирование человека о состоянии и изменениях ПО или иной сущности в его рамках доступности. Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.  Методы обработки входящей информации и адаптации её для передачи на обработку Модели. Аналогия: раздача в столовой, либо приборная панель с комплексом управления, для внесения изменений в процессы. 
2 MVC - Counter - ViewConsole 00:08:31
42 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы начинаем создание первой программы,
реализовав базовый функционал вывода информации в консоль.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 8 мин. [Показать отчёт]
Научился: Создать класс ViewConsole implements Observer не удалось за неимением возможности подгрузить в создаваемый класс паттерн Наблюдатель. Ищу  решения. То ли это делалось в процессе инсталляции Эклипса, то ли иным способом, но Гугл пока ответа не дал. Советы приветствуются. 
3 MVC - Counter - ViewFrame 00:09:18
1 тест
37 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим ещё одно представление,
используя JFrame() с необходимым интерфейсов
для возможности использования ActionListener().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 32 мин. [Показать отчёт]
Научился: по традиции оформили JFrame и потестили приём им аргументов java.util.Observable и java.util.Observer Эклипс уже помечает как устаревшие (предлагает пометить Suppress Warnings("deprecation") - Подавить предупреждения («устаревание») ), но работе программы это не мешает 
4 MVC - Counter - ModelPlus 00:07:02
34 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим Модель и продемонстрируем как она работает.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 2 час. 25 мин. [Показать отчёт]
Научился: задействовали библиотеки java.util.Observable; и java.util.Observer; тем самым установив оповещение консоли и экранной формы классом ModelPlus.java который умеет хранить значение счётчика и увеличивать его методом plus() 
5 MVC - Counter - ControllerPlusFrame 00:10:57
1 тест
34 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим Контроллер, связывающий Модель и Представление.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт]
Научился: контроллер == связующая нить (НЕ КАНАТ) между Моделью(MODEL) и Представлением(VIEW) Контроллер связывает функционал одного Представления и одной Модели, чем проще, тем целесообразнее, не надо усложнять нить до состояния причального каната межконтинентального лайнера Вариант вывести ноль со старта программы - мой фантазийный вариант - методом, выполняющим однократно инкремент до единицы и тут же декремент до нуля однократно - тогда при запуске будет выведен ноль сразу 
6 MVC - Counter - ControllerPlusConsole 00:07:19
31 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим Контроллер для второго Представление,
которое мы реализовали в самом начале для вывода в консоль.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 4 мин. [Показать отчёт]
Научился: при создании разных контроллеров при одной модели, работа их в программе происходит синхронно - и счет в цикле выполняется и там и там одинаково, и кнопка по окончании работы цикла приводит к увеличению показаний счетчика и на экранной форме и в окне консоли Заметил ещё одну особенность при создании скриншотов. В былое время, работая на ноуте Вайо под управлением ОС Windows, чтобы отработал скриншот, ось ждала окончания работы цикла, и лишь потом делала скриншот, здесь же, ось мака ХайСиерра 10.13.6 позволяет делать скриншот прямо в момент выполнения цикла, не дожидаясь его окончания. Это вспомнилось, когда играл с циклом в этом уроке А синхронность работы программы объясняется тем, что поле private int counter; хранится в Модели, а она у нас одна и для представления Консоли и для представления Фрейма, и в ней прописано оповещать всех Слушателей об изменениях 
7 MVC - Counter - ModelDuplex 00:09:21
1 тест
30 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим ещё одну Модель,
которая будет заниматься умножением.
Так же переделаем наш код, чтобы он работал с long значениями.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 41 мин. [Показать отчёт]
Научился: создание контроллера: - объявить поле модели - объявить поле представления создать конструктор, принимающий аргументами вышеобъявленные поля - присвоить текущим экземплярам полей значения аргументов "thisами" - текущему экземпляру модели добавить addObserver с передачей аргументом текущего экземпляра представления - текущему экземпляру представления добавить addListener или слушателя с передачей ему аргументом текущего экземпляра метод экшнПерформд запускает у модели метод дуплекс (вышеописанное проиллюстрировано на картинке за номером нуль) Про непередачу аргумента в notifyObservers(multi); класса ModelDuplex (нижняя иллюстрация справа внизу этот класс) заметил ещё в момент написания класса и был удивлён этой ошибке, которая возвращала null после компиляции (шестая минута видеоурока) Вот ведь! Школа не прошла даром ) 
8 MVC - Counter - ControllerDuplex 00:09:37
30 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы заканчиваем создание первой программы,
для демонстрации данного шаблона проектирования.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 4 мин. [Показать отчёт]
Научился: Модель описывает бизнес-логику ( к примеру спекулянтскую, она проще для понимания - покупаем рога и копыта оптом по рублю, торгуем этим же в розницу с накруткой 80 пр0центов, кричим всем про громадные пятидесятипроцентные скидки, акции, розыгрыши и прочий шум, живем на 30 процентов маржи) Представление - это то, что видит покупатель Контроллер - это наш механизм обработки рогов и копыт по извлечению маржи для ведения предпринимательской деятельности, имеющей целью извлечение прибыли, то есть работу контроллера Рога с копытами никак не связаны с покупателями, а связующее звено - это и есть контроллер, то есть контора "Рога и Копыта" Решением по первичному выведению стартового значения в фрейм и консоль было удаление конструктора в модели и замена его на метод инит, присваивающий счётчику стартовое значение и оповещающий об этом контроллер 
Сложности: В видеовставке немного юмора, надеюсь на предновогодние улыбки да и воскресенье на дворе ) 
Видеообзор: 5ykLJLmnXWk
9 FREE MVC - PhoneBook - Вступление 00:07:52
1 тест
33 чел. ★ 4.9 Done
  Для более глубокого понимания шаблона проектирования MVC мы напишем на языке Java полноценную прикладную программу "Телефонная книжка". Сначала создадим две формы (JFrame), потом напишем модель и в конце свяжем их через контроллер. В добрый путь!
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 39 мин. [Показать отчёт]
Научился: узнал о существовании аналога https://www.draw.io в виде вебсервиса https://app.moqups.com/sign-up Сделал свой набросок в дроуИо, поскольку там не требовалась регистрация 
10 MVC - PhoneBook - ViewCard 00:15:42
29 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы начинаем разработку телефонного справочника,
для демонстрации данного шаблона проектирования.
Начнём с формы "Карточка пользователя".
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 43 мин. [Показать отчёт]
Научился: операторы выполняются компилятором сверху вниз и слева направо Это стоит учитывать, когда располагаете свои строки с операторами, если вывод на экран сделать раньше инициализации элементов, их просто не будет видно и пользователи Вашей программы будут дико ржать над незадачливым автором кода ) В уроке эта ситуация рассматривается на примере перемещения оператора setVisible(true); по строкам кода 
Видеообзор: MpmLVpNo7BI
11 MVC - PhoneBook - User Struct 00:09:32
1 тест
28 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы реализуем передачу данных в нашу форму "Карточка пользователя".
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 1 мин. [Показать отчёт]
Научился: модель и представление не должны зависеть друг от друга по концепции MVC Как передать в одном аргументе сразу три поля из карточки телефонной книжки? - Ответ прост - создай структуру или класс и помещай в него всё что объявишь. А экземпляр этого класса уже и передавай как один аргумент Если хочешь перекрыть доступ к редактированию поля textID.setEditable(false); - вот такой сетЭдитабл с фолзом применяй смело в Джаве! Observer - это слушатель, который оповещается об изменениях  
12 MVC - PhoneBook - ViewList 00:09:05
28 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы реализуем второй вид "Просмотр/Поиск записей".
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 10 час. 45 мин. [Показать отчёт]
Научился: соорудили дочернее окно для добавления записей Временно вывели его вместо родительского для теста В нём три объекта - текстовое поле, окно JList<String> для записей и кнопка закидывания в БД приготовленной в этом окне записи До встречи в следующем десятилетии, товарищи! 
13 MVC - PhoneBook - UserList Struct 00:11:00
26 чел. ★ 5 Open
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем заполнение списка и
передачу в форму списка телефонной книги.
14 MVC - PhoneBook - UserSQL - Methods 00:11:35
24 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы создадим базу данных на движке sqlite,
использовав удобное для этого приложение: sqliteexpert.com.
15 MVC - PhoneBook - UserSQL - Queries 00:07:20
24 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы выясним, какие именно sql-запросы необходимы для каждого метода.
16 MVC - PhoneBook - UserSQL - Connect 00:15:18
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем класс UserSQL() на основе
шаблона проектирования: ActiveRecord, для работы с базой данных.
17 MVC - PhoneBook - UserSQL - Singleton 00:13:19
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы воспользуемся ещё одним
шаблоном проектирования: Singleton.
18 MVC - PhoneBook - UserSQL - CRUD 00:12:32
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы доработаем класс UserSQL.
19 MVC - PhoneBook - UserListSQL - Select 00:10:29
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем класс UserListSQL,
для получения списка всех пользователей.
20 MVC - PhoneBook - UserSQLTest - DBase 00:16:38
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы приступим к тестированию нашей программы при помощи JUnit.
21 MVC - PhoneBook - UserSQLTest - Insert 00:14:32
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы начинаем писать тесты для класса UserSQL() при помощи JUnit.
22 MVC - PhoneBook - UserSQLTest - Select 00:10:24
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы пошагово изучим работу метода по добавлению записи в БД
и продолжим реализацию оставшихся методов для тестирования класса UserSQL().
23 MVC - PhoneBook - UserSQLTest - Slashes 00:12:51
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем тестирование обновления записей в БД для класса UserSQL().
24 MVC - PhoneBook - Model - Ресторанная аналогия 00:10:47
22 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы ещё рaз обсyдим рeсторанную аналогию MVC.
И приступим к созданию кухни - Модели.
Напишем заголовки всех методов.
25 MVC - PhoneBook - Model - Methods 00:10:31
19 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы реализуем все методы для нашей модели.
26 MVC - PhoneBook - Controller - Model / ViewList 00:10:43
18 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы реализуем контроллер для связи ViewList() с Model().
27 MVC - PhoneBook - Controller - Scroller 00:05:16
18 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы продолжаем создание контроллера для связи ViewList() с Model().
28 MVC - PhoneBook - Controller - Class for Click 00:11:11
18 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы создадим ещё один контроллер для формы с отображением карточки пользователя.
На этой форме две кнопки, поэтому для создания слушателей мы создадим отдельные внутренние классы.
29 MVC - PhoneBook - Controller - Buttons 00:14:40
17 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы запрограммируем кнопочки.
По нажатии кнопки "Добавить" - показать карточку.
По нажатии кнопки "Сохранить" - сохранить данные,
а также скрыть карточку и обновить список имён на главной форме.
30 MVC - PhoneBook - Controller - Select / Update 00:21:47
17 чел. ★ 5 $
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы сделаем открытие карточки по щелчку на записи.
Также реализуем сохранение изменений и удаление записей.
Создание телефонной книжки практически завершено!
31 MVC - PhoneBook - Search - Message 00:07:36
17 чел. ★ 5 $
  Мы начинаем создание поиска по телефонной книжке.
Начнём с переноса текстовых сообщения в отдельное поле.
Для этого потребуется создать панель, чтобы всё поместилось.
Также добавим побольше разных записей, чтобы было среди чего искать.
32 MVC - PhoneBook - Search - Select LIKE 00:08:59
17 чел. ★ 5 $
  На этом уроке мы обсудим два способа, как сделать поиск.
Мы напишем запрос для фильтрации записей в нашей телефонной книжке.
33 MVC - PhoneBook - Search - Listener 00:09:38
17 чел. ★ 5 $
  На этом уроке мы создадим слушателя, который
будет реагировать на изменение текста в строке поиска.
34 MVC - PhoneBook - Search - Finish 00:11:38
17 чел. ★ 5 $
  На этом уроке мы .... ЗАКОНЧИМ создание телефонной книжки!
Мы допишем функцию поиска по базе и протестируем её.
35 ФИНАЛЬНЫЙ УРОК без видео
16 чел. ★ 5 $
  Ты молодец!
Поздравляю с завершением создания телефонной книжки!
Запиши видеообзор созданной программы
и напиши отзыв об этом видеокурсе.
36 VIP - MVC - PhoneBook - Tripple Click 00:12:59
15 чел. ★ 5 $
  На этом дополнительном вип-уроке мы сделаем
открытие карточек более привычным и удобным -
по двойному щелчку и по нажатию клавишы Enter.
37 VIP - MVC - PhoneBook - JModal 00:02:58
15 чел. ★ 5 $
  На этом коротком вип-уроке мы сделаем форму карточки модальным окном.
Это означает, что нельзя будет переключиться в основное окно, пока карточка открыта.
38 VIP - MVC - PhoneBook - Error Checking 00:15:25
14 чел. ★ 5 $
  На этом уроке мы вынесем обработку ошибок на более высокий уровень.
Добавим в Представление функционал отображения ошибок из базы данных.
39 VIP - MVC - PhoneBook - UML 00:08:16
13 чел. ★ 5 $
  Схему проекта проще всего составить, когда программа уже написана.
А ещё проще это сделать, когда под рукой есть хороший инструмент.

На этом уроке мы создадим UML схему нашего проекта
с использованием программы Code 2 UML
sourceforge.net/projects/code2uml

САМОСТОЯТЕЛЬНОЕ ЗАДАНИЕ
1. Пройти курс по созданию UI на JavaFX.
2. Создать новые представления ViewCardFX, ViewListFX на JavaFX.
3. Написать контроллеры для связи новых представлений с моделью.
Прочуствовать всю мощь MVC -
как была изменён вид программы без изменения модели.
  Итого:   39 видеоуроков 6 час. 53 мин.
5 тестов
13 чел. ★ 5  
  Финалисты:   Алексей В.,   Сергей Соколов,   Елена,   Новопашин Владимир,   Фомичева Наталья,   Tekashnik,   Александр,   Александр Заскотченко,   Иван Воронин,   Сергей Тирпиц,   Yefim,   Anatoli,   Tom .

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





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

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

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

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


Научился: Слушать приятную музыку.
Трудности: Успеть реализовать задуманное.
Всем рекомендую написать эту телефонную книжку для закрепления знаний по шаблонам проектирования. Если вы еще не знаете что такое шаблоны, советую сначала пройти курс по шаблонам. Знания пригодятся не только в java, но и при написании программ на других языках программирования.


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