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

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

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

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

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

После взноса  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.
Мы разберёмся, зачем же он нужен и продемонстрируем
его работу на нескольких примерах.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: MVC - это конструкционный шаблон, который описывает способ построения структуры нашего приложения, сферы ответственности и взаимодействие каждой из частей в данной структуре. Впервые она была описана в 1979 году. з.ы. На скриншоте демонстрация работы MVC Java Swing. 
2 MVC - Counter - ViewConsole 00:08:31
42 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы начинаем создание первой программы,
реализовав базовый функционал вывода информации в консоль.
Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт]
Научился: Пока ничего 
Сложности: найти время 
Комментарии: Убрал статику. Реализовали именно так, чтобы использовать шаблон НАБЛЮДАТЕЛЬ. Отличное начало, идём дальше. 
3 MVC - Counter - ViewFrame 00:09:18
1 тест
37 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим ещё одно представление,
используя JFrame() с необходимым интерфейсов
для возможности использования ActionListener().
Отчёт отправил: 10558. Иван Воронин Выполнено за 37 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Как обычно реализовал через Dimension(). Так же использовал JPanel() для размещения необходимых компонентов. Естественно не забыл о методе pack() куда же без него =) Отличный урок, идём дальше. 
4 MVC - Counter - ModelPlus 00:07:02
34 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим Модель и продемонстрируем как она работает.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Отличный урок, хорошая демонстрация работы модели. Коротко и ясно, лучше так и стараться, чтобы в одном уроке затрагивать какую-то одну тему. 
5 MVC - Counter - ControllerPlusFrame 00:10:57
1 тест
34 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим Контроллер, связывающий Модель и Представление.
Отчёт отправил: 10558. Иван Воронин Выполнено за 25 мин. [Показать отчёт]
Научился: Созданию контроллера для связки Модели и Представления. 
Сложности: найти время 
Комментарии: Вначале реализовал в модели метод setValue() и вызвал его в основном методе main() после создания экземпляра контроллера с параметрами, но тут же решил перенести вызов метода setValue() в конструктор контроллера, после решил реализовать ещё один метод init() который вызывается без параметров и устанавливает начальное значение счётчика 0. з.ы. см. скриншоты, отличный урок, идём дальше. 
6 MVC - Counter - ControllerPlusConsole 00:07:19
31 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим Контроллер для второго Представление,
которое мы реализовали в самом начале для вывода в консоль.
Отчёт отправил: 10558. Иван Воронин Выполнено за 17 мин. [Показать отчёт]
Научился: MVC для консоли 
Сложности: найти время 
Комментарии: Поэтому после запуска отображается вначале 0 в консоли, после 10 итераций цикла for в консоли уже 11 строчек, так как 1 строчка это метод init() и 10 итераций цикла for (см. скриншот 1). При создании контроллера для консоли использовал ранее созданный метод init() (см. скриншот 2). Отличный урок, идём дальше. 
7 MVC - Counter - ModelDuplex 00:09:21
1 тест
30 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы создадим ещё одну Модель,
которая будет заниматься умножением.
Так же переделаем наш код, чтобы он работал с long значениями.
Отчёт отправил: 10558. Иван Воронин Выполнено за 19 мин. [Показать отчёт]
Научился: Передаче значений выше int через String 
Сложности: найти время 
Комментарии: Отличный урок, везде заменил int на long. Так же добавил инициализацию начального значения счётчика, посмотрим как это будет реализовано в след. уроке =) 
8 MVC - Counter - ControllerDuplex 00:09:37
30 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы заканчиваем создание первой программы,
для демонстрации данного шаблона проектирования.
Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Метод init() реализовал ещё несколько уроков назад, чтобы выдавалось начальное значение, реализовал 1х1 так же, как и в этом уроке Игромистр =) Отличное завершение мини программы, демонстрирующую работы шаблона проектирования MVC, теперь понятно, почему он популярен, очень гибкая вещь, особенно при разработке в команде, каждый может заниматься свой частью, не мешая друг другу. Шаблон очень понравился, буду использовать обязательно везде где он будет кстати =) 
9 FREE MVC - PhoneBook - Вступление 00:07:52
1 тест
33 чел. ★ 4.9 Done
  Для более глубокого понимания шаблона проектирования MVC мы напишем на языке Java полноценную прикладную программу "Телефонная книжка". Сначала создадим две формы (JFrame), потом напишем модель и в конце свяжем их через контроллер. В добрый путь!
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Узнал о сайте app.moqups.com 
Сложности: найти время 
Комментарии: Ещё один сайт для разработки визуального представления, в копилку с draw.io =) 
10 MVC - PhoneBook - ViewCard 00:15:42
29 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы начинаем разработку телефонного справочника,
для демонстрации данного шаблона проектирования.
Начнём с формы "Карточка пользователя".
Отчёт отправил: 10558. Иван Воронин Выполнено за 35 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Избавился от статика. Реализовал класс для формы "Карточка пользователя" на основе накопленного опыта с предыдущих уроков на этом проекте. Запретил ресайз формы, так как подобные формы всегда видел только статичными. Использовал любимый метод pack(). Расположил все объекты на панели, размеры которой выставлялись через дименшен. Особо баловаться с красотой дизайна форм смыла не вижу, так как главное в подобном софте, это его стабильность и функциональность. 
11 MVC - PhoneBook - User Struct 00:09:32
1 тест
28 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы реализуем передачу данных в нашу форму "Карточка пользователя".
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Отличный урок, всё коротко и ясно изложено. Идём дальше. 
12 MVC - PhoneBook - ViewList 00:09:05
28 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: MVC.
На этом уроке мы реализуем второй вид "Просмотр/Поиск записей".
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Добавил при помощи цикла 9 записей. Реализовал отображение сроллинга списка, если количество объектов списка уходит за пределы видимой части. Как обычно на голом фрейме разместил вначале панель, а уже на ней разместились все остальные объекты. Для управления размером формы так же использовал дименшен. Естественно, чтобы работал мой любимый метод pack() куда без него =) 
13 MVC - PhoneBook - UserList Struct 00:11:00
26 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем заполнение списка и
передачу в форму списка телефонной книги.
Отчёт отправил: 10558. Иван Воронин Выполнено за 43 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Генерируются 10000 случайных пользователей, со случайными телефонами и именами. Полосу прокрутки реализовал ещё на прошлом уроке. Отличный урок, идём дальше. 
14 MVC - PhoneBook - UserSQL - Methods 00:11:35
24 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы создадим базу данных на движке sqlite,
использовав удобное для этого приложение: sqliteexpert.com.

Отчёт отправил: 10558. Иван Воронин Выполнено за 52 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Создал базу данных phonebook.db Создал таблицу users внутри неё (можно было скопировать из курса по SQLite, но повторение мать учения). Написал примеры запросов в БД в блокноте (см. скриншот). Использовал программу для работы с базами sqlite: DB Browser, наткнулся на неё в начале 2011 года, понравилась (сайт из видео-урока у меня не открывается, поэтому решил добавить альтернативную ссылку на эту программу). 
15 MVC - PhoneBook - UserSQL - Queries 00:07:20
24 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы выясним, какие именно sql-запросы необходимы для каждого метода.
Отчёт отправил: 10558. Иван Воронин Выполнено за 13 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Коротко и ясно, идём дальше. 
16 MVC - PhoneBook - UserSQL - Connect 00:15:18
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем класс UserSQL() на основе
шаблона проектирования: ActiveRecord, для работы с базой данных.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 15 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Подключение к БД вынес в отдельный метод. Реализовал вспомогательный метод, который возвращает айди при добавлении записей в БД. Метод insert() теперь выглядит более компактно, см. скриншот. Воспользовался наработка самостоятельной работы из курса SQLite. Положил библиотеку в папку lib в корне проекта. Положил базу в папку db в корне проекта. Создал батники для компиляции и запуска из консоли, см. скриншот. Как видно из скриншота, добавил две записи в БД, на русском и инглише. 
17 MVC - PhoneBook - UserSQL - Singleton 00:13:19
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы воспользуемся ещё одним
шаблоном проектирования: Singleton.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 02 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Синглтон реализовал по своему, более компактно, геттеры не делал, смысла в них не вижу, так как реализовал универсальный метод в синглтоне для обработки запросов insert с возвратом айди записи. Добавил метод проверки, подключён к БД или нет, чтобы не пулять запросы, если коннекта нет. Как видно из скриншота, добавил генерацию 10 000 рандомных записей пользователей с рандомными телефонами, которые добавлялись в БД. Судя по количеству записей, их ровно 20 000, значит повезло и не разу не совпали телефоны, так как в БД я поставил атрибут уникальности на колонку телефона. В процессе работы сразу двух экземпляров программы, они друг другу периодически уступали БД для добавления записей, выглядит прикольно, при этом ошибки что БД занята не было, что не может не радовать. Всё отлично, идём дальше. 
18 MVC - PhoneBook - UserSQL - CRUD 00:12:32
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы доработаем класс UserSQL.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 37 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Реализовал перегрузку метода insert() чтобы можно было без параметров добавить новую случайную запись с присвоением очередного айди, а с параметром указать с каким именно айди нужно добавить запись, удобно, если запись с таким айди была ранее удалена и можно реюзнуть этот айди для оптимизации юза БД. Реализовал генерацию случайного телефона и имени в методе update(). Объединил insert и update в один метод, так как они по функциональности очень схожи, плюс нет дублирующего кода. На скриншоте видно, что один и тот же метод используется как для INSERT запросов, так и для UPDATE. Отличный урок, очень много нового кода, который заставил заняться рефакторингом в процессе выполнения задачи. 
19 MVC - PhoneBook - UserListSQL - Select 00:10:29
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем класс UserListSQL,
для получения списка всех пользователей.
Отчёт отправил: 10558. Иван Воронин Выполнено за 47 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Реализовал получение списка через геттер. Добавил проверку получен ли список пользователей, если да, то оповещается форма об этом и передаётся в неё полученный список. 
20 MVC - PhoneBook - UserSQLTest - DBase 00:16:38
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы приступим к тестированию нашей программы при помощи JUnit.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 51 мин. [Показать отчёт]
Научился: Подключению к готовому Java проекту поддержку Maven и тем самым возможность создания тестов на базе JUnit. 
Сложности: найти время 
Комментарии: Отличный урок, по поводу временного использование DBase как enum с разными базами прикольно придумано. Сделал копию основной БД, как видно из скриншота, она весит 1мб. Там более 20000 записей для генерации которых реализовал на прошлых уроках спец. метод. Очень интересно, почему метод testDelete() так долго выполнялся, видимо асинхронность на него повлияло подключение к двум БД =) 
21 MVC - PhoneBook - UserSQLTest - Insert 00:14:32
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы начинаем писать тесты для класса UserSQL() при помощи JUnit.
Отчёт отправил: 10558. Иван Воронин Выполнено за 37 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Как видно из скриншота, обновлялась только тестовая БД, основная не затрагивается. Так как ещё в процессе прохождения курса реализовывал методы работы с БД по своему, учитывая нюансы и возвращение тех или иных ответов, дабы проверять корректность работы с БД, то при реализации тестов просто воспользовался данными наработками и в окне логов удобные данные отображаются при обращении к БД. Так же через GUI работы с SQLite базами данных сверил данные в БД с данными в логах при тестировании. Не стал бежать впереди паровоза, а то мало ли, может быть в след. уроке делать будет нечего =) 
22 MVC - PhoneBook - UserSQLTest - Select 00:10:24
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы пошагово изучим работу метода по добавлению записи в БД
и продолжим реализацию оставшихся методов для тестирования класса UserSQL().
Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Вкусновато, но маловато =) всё супер, идём дальше. 
23 MVC - PhoneBook - UserSQLTest - Slashes 00:12:51
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы реализуем тестирование обновления записей в БД для класса UserSQL().

Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 37 мин. [Показать отчёт]
Научился: Закрепил использование PreparedStatement 
Сложности: найти время 
Комментарии: Реализовал проверку со слешами, но использовать для решения данной проблемы PreparedStatement. он был для этого специально разработан, чтобы не думалось о sql-инъекциях. 
24 MVC - PhoneBook - Model - Ресторанная аналогия 00:10:47
22 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы ещё рaз обсyдим рeсторанную аналогию MVC.
И приступим к созданию кухни - Модели.
Напишем заголовки всех методов.
Отчёт отправил: 10558. Иван Воронин Выполнено за 23 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Аналогичное уже было реализовано в классе DBase() но с возвращением данных в нужном формате, а раз в классе Model()  везде void то как раз данные наработки пригодятся. Официанты это контроллер между кухней (Модель) и клиентами (Вид), а поварята это контроллер между кухней (Модель) и складом (БД). Помимо метода отображения всех пользователей, добавил ещё как минимум два, которые будут отображаться пользователей по фильтру для телефона и имени. 
25 MVC - PhoneBook - Model - Methods 00:10:31
19 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы реализуем все методы для нашей модели.
Отчёт отправил: 10558. Иван Воронин Выполнено за 37 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: На прошлом уроке добавлял заглушки для метода фильтрации по имени и по телефону, на этом уроке решил их объединить в один, чтобы при вводе текста в поисковике оно автоматом искало совпадения по имени или по телефону одновременно. Реализовать тестирование модели можно, но только с тестированием методов получения данных надо хорошо подумать, а добавление/обновление/удаление проверяется наличием изменения в самой БД. з.ы. Зачем в методе select добавлять проверку на ноль и возвращать нового пользователя, если мы знаем, что надо создать нового пользователя, просто его создаём. А ошибок при добавлении нового пользователя при вызове select не будет, так как добавление осуществляется через insert, вот там можно добавить проверку на ноль. 
26 MVC - PhoneBook - Controller - Model / ViewList 00:10:43
18 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы реализуем контроллер для связи ViewList() с Model().
Отчёт отправил: 10558. Иван Воронин Выполнено за 19 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Подобное уже реализовывали при реализации калькулятора, но для закрепления материала отлично подходит. Отличный урок, коротко и ясно. 
27 MVC - PhoneBook - Controller - Scroller 00:05:16
18 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этoм ypoкe мы продолжаем создание контроллера для связи ViewList() с Model().
Отчёт отправил: 10558. Иван Воронин Выполнено за 9 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Скролл добавил ещё на прошлых уроках и именно по такому же принципу, только ещё добавил политику автоматического скрывания списка если он помещается в окно отображения. Но судя по видео, эта политика установлена по-умолчанию. =) Отличный урок, идём дальше. 
28 MVC - PhoneBook - Controller - Class for Click 00:11:11
18 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы создадим ещё один контроллер для формы с отображением карточки пользователя.
На этой форме две кнопки, поэтому для создания слушателей мы создадим отдельные внутренние классы.
Отчёт отправил: 10558. Иван Воронин Выполнено за 22 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: По поводу анонимных и других вариантов функций узнал ещё при разработке приложения для Андродид весной 2016 года. Ваш вариант отлично смотрится, поэтому можно не переделывать. Урок как всегда отличный, идём дальше. 
29 MVC - PhoneBook - Controller - Buttons 00:14:40
17 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы запрограммируем кнопочки.
По нажатии кнопки "Добавить" - показать карточку.
По нажатии кнопки "Сохранить" - сохранить данные,
а также скрыть карточку и обновить список имён на главной форме.
Отчёт отправил: 10558. Иван Воронин Выполнено за 39 мин. [Показать отчёт]
Научился: instanceof 
Сложности: найти время 
Комментарии: Отличный урок, но я реализовал не скрытие формы, а dispose() для выгрузки из памяти. Перезагрузка всего списка с добавлением новой записи даже при 20000+ записях происходит молниеносно =) супер. 
30 MVC - PhoneBook - Controller - Select / Update 00:21:47
17 чел. ★ 5 Done
  Мы продолжаем создание телефонной книжки в рамках
знакомства с шаблоном проектирования: MVC.
На этом уроке мы сделаем открытие карточки по щелчку на записи.
Также реализуем сохранение изменений и удаление записей.
Создание телефонной книжки практически завершено!
Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Так как на прошлых уроках реализовал проверку выполнился ли запрос корректно в БД или нет и если да, то только в этом случает оповещать об изменении, то ошибок с закрытием формы ViewCard() у меня не было. Так же реализовал выбор из списка по двойному клику мышки через MouseListener(), как то более логичнее. Так как изначально добавил атрибут уникальности телефонного номера в БД, то при добавлении или обновлении записи, если телефон такой уже имеется, то форма ViewCard() не будет закрываться. Не стал дальше допиливать, возможно этот функционал будет реализован и поэтому лучше подожду то тех уроков, где это будет реализовано, если же не будет, тогда уже добавлю сам. 
31 MVC - PhoneBook - Search - Message 00:07:36
17 чел. ★ 5 Done
  Мы начинаем создание поиска по телефонной книжке.
Начнём с переноса текстовых сообщения в отдельное поле.
Для этого потребуется создать панель, чтобы всё поместилось.
Также добавим побольше разных записей, чтобы было среди чего искать.
Отчёт отправил: 10558. Иван Воронин Выполнено за 39 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Так как у меня и так все элементы располагались на панели, то у меня не было проблемы со стыковкой лэйбла в самый низ формы. Так же добавил в самом верху формы лэбл с отображением количества записей. Добавил отображение текста при добавлении/обновлении/удалении записей, так же при возможных ошибках, мало-ли. Добавление и обновление записи выводится зелёным цветом, удаление и ошибка выводятся красным. Использовав String.format и константы шаблонов вывода текста, вывод количества записей разделено на два цвета в одной строке. Отличный урок! Идём дальше. 
32 MVC - PhoneBook - Search - Select LIKE 00:08:59
17 чел. ★ 5 Done
  На этом уроке мы обсудим два способа, как сделать поиск.
Мы напишем запрос для фильтрации записей в нашей телефонной книжке.
Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: Ничему 
Сложности: найти время 
Комментарии: Сделал два скриншота с разными видами запросов, как LIKE так и GLOB, чем мне нравится GLOB, у него синтаксис масок аналогичен с масками отображения файлов. При использовании LIKE чтобы указать любое количество символов, надо использовать символ "%", в то время как при использовании GLOB, тоже самое действие при помощи символа "*", при этом есть ещё один символ "?" который говорит, что вместо него любой один символ, тем самым если указать маску '?ван', то покажет все имена, которые начинаются с любого символа, но имеют второй, третий и четвёртые символы которые указаны в маске, в данном случае выведет список с именем "Иван" и "иван", не важно с маленькой буквы или с большой, так как у SQLite проблемы с этим из-за того, что он поддерживает проверку больших и мелких только на инглише, другие языки обделены, то на помощь приходит именно GLOB, хотя LIKE я использовал очень много лет и он в определённых задачах может использоваться без проблем, но по возможности использую теперь GLOB, так как он более функционален и по личным тестам в больших базах он работает быстрее на процентов 10 минимум. 
33 MVC - PhoneBook - Search - Listener 00:09:38
17 чел. ★ 5 Done
  На этом уроке мы создадим слушателя, который
будет реагировать на изменение текста в строке поиска.
Отчёт отправил: 10558. Иван Воронин Выполнено за 39 мин. [Показать отчёт]
Научился: DocumentListener 
Сложности: найти время 
Комментарии: Реализовал проверку вводимого текста и выводу предупреждения красным цветов в нижнем лейбле через модель. Разрешены все буквы русского/английского алфавитов, буквы и цифры, длинна от 2 до 40 символов. Не стал реализовывать сам поиск, отложил это до нужного момента =) 
34 MVC - PhoneBook - Search - Finish 00:11:38
17 чел. ★ 5 Done
  На этом уроке мы .... ЗАКОНЧИМ создание телефонной книжки!
Мы допишем функцию поиска по базе и протестируем её.
Отчёт отправил: 10558. Иван Воронин Выполнено за 4 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Так как функцию поиска по фильтру реализовал уже давно, то просто добавил пару строчек и дальше 10 минут смотрел видео ничего не делая =) Так же по поводу инъекций, я использую при формировании запросов в БД замечательную вещь как "параметры", они решают проблему недопустимых символов. Так же на прошлом уроке я реализовал проверку вводимых символов и их количество, что запрещает использование заведомо опасных последовательностей символов. Идеальная защита =) Замечательный курс, идём дальше. 
35 ФИНАЛЬНЫЙ УРОК без видео
16 чел. ★ 5 Done
  Ты молодец!
Поздравляю с завершением создания телефонной книжки!
Запиши видеообзор созданной программы
и напиши отзыв об этом видеокурсе.
Отчёт отправил: 10558. Иван Воронин Выполнено за 5 час. 00 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Добавить в разрешённые символы круглые скобки, плюс и минус. Остальное в видео-отчёте. Был уставший, после отснятого материала и подготовки слайдов побежал по срочным делам, вернулся и занялся монтажом. Приятного просмотра. 
Видеообзор: DrQSJW_dPxo
36 VIP - MVC - PhoneBook - Tripple Click 00:12:59
15 чел. ★ 5 Done
  На этом дополнительном вип-уроке мы сделаем
открытие карточек более привычным и удобным -
по двойному щелчку и по нажатию клавишы Enter.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: KeyListener 
Сложности: найти время 
Комментарии: Обработку кликов мышки реализовал на одном из прошлых уроков, так же добавил проверку, чтобы двойной клик был именно левой клавишей, см. скриншот. Отличный урок, намного удобнее и логичнее мышью кликать. 
37 VIP - MVC - PhoneBook - JModal 00:02:58
15 чел. ★ 5 Done
  На этом коротком вип-уроке мы сделаем форму карточки модальным окном.
Это означает, что нельзя будет переключиться в основное окно, пока карточка открыта.
Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: JDialog 
Сложности: найти время 
Комментарии: Отличный урок, всё коротко и ясно, спасибо огромное. 
38 VIP - MVC - PhoneBook - Error Checking 00:15:25
14 чел. ★ 5 Done
  На этом уроке мы вынесем обработку ошибок на более высокий уровень.
Добавим в Представление функционал отображения ошибок из базы данных.
Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: Ничему 
Сложности: найти время 
Комментарии: Подобные проверки реализовал в процессе прохождения курса, поэтому ничего делать в этом уроке не пришлось, прикрепил скриншот моей реализации отображения ошибок. з.ы. Не советую выводить ошибку БД в клиентскую область, лучше использовать консоль или уникальные описания ошибок, чтобы по ним сразу находить откуда ветер дует. Можно использовать уникальный ID ошибки. =) 
39 VIP - MVC - PhoneBook - UML 00:08:16
13 чел. ★ 5 Done
  Схему проекта проще всего составить, когда программа уже написана.
А ещё проще это сделать, когда под рукой есть хороший инструмент.

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

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

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





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

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

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

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


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


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