# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем создание базы данных для гостиницы. Твоя задача - самому подумать и создать описание сущностей проекта, для каждой выписать атрибуты. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: Планировать структуру БД. Сложности: Сложностей не было. Комментарии: Поздравляю всех с предновогодним стартом проекта "Отель"! Надеюсь, наш отель к Новогодним каникулам будет готов регистрировать отдыхающих)) |
|||||
2 | Таблицы клиентов и заказов |
1 тест |
|||
На этом уроке мы перечислим поля таблиц Client и Book. Каждое поле этих таблиц потребует подробных комментариев, почему так, как можно сделать иначе, какие могут быть ошибки и так далее. Отчёт отправил: 791. Валерий Жданов Выполнено за 25 мин. [Показать отчёт] Научился: Прокачал навыки по планированию структуры таблиц БД Сложности: Обосновать для себя, что ни добавить, ни убавить в предложенной структуре нечего Комментарии: Путем расчетов и логики пришел к выводу, что ни убирать поля, ни прибавлять новых не стоит. По крайней мере на этапе планирования и создания "Минимального комплекта". Потом уже в зависимости от потребностей клиента можно произвести какие-то корректуры, но уже на этапе рефакторинга кода. |
|||||
3 | Таблицы комнат и дней |
1 тест |
|||
На этом уроке мы перечислим поля трёх таблиц: Room, Calendar, Map. В конце урока распишем типы каждого поля нашей базы данных. Подумай и напиши, какие ещё поля можно добавить в эти таблицы. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Прокачал навыки планирования таблиц БД. Сложности: Сложностей не было, но прокачать навыки было надо Комментарии: Хорошая проработка знаний и навыков, как в тренажерный зал (по БД) сходил, спасибо. А возьму-ка я пример с Оли, и сделаю отчет на красивом фоне. |
|||||
4 | Создание базы в MS Access |
1 тест |
|||
На этом уроке мы создадим нашу базу данных в MS Access. Там же нарисуем схему базы данных и создадим связи между таблицами. Необходимо будет распечатать схему базы данных и прикрепить её на своём рабочем месте. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Создавать схемы в Access и OOBase Сложности: В этом уроке сложностей не было, но в течение субботнего вебинара прозвучало выражение "привести к первой нормальной форме", вот с этими нормальными формами затруднение. Хотелось бы более подробного урока на тему, для чего это, и как приводится к первой нормальной, второй нормальной и т.д. Немного не догоняю)) Комментарии: Спасибо за занятие, очень интересно создать схему, проработать логику связей. Распечатка будет завтра (проблемы с домашним принтером), накатаю на работе, поэтому на втором скрыншоте - пока вот в таком виде) |
|||||
5 | Установка сервера MySQL |
2 теста |
|||
На этом уроке мы установим MySQL Community Server и программу HeidiSQL для подключения к нему. |
|||||
6 | SQL запросы для создания Базы |
1 тест |
|||
На этом уроке мы напишем SQL запросы для создания нашей базы данных отеля. Отчёт отправил: 791. Валерий Жданов Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Прокачал навыки работы с SQL-запросами и SQL-консолью. Сложности: Немного сложно было вспомнить FOREIGN KEY, но всё получилось. Комментарии: Всё было интересно, и всё получилось. Руки помнят SQL-консоль!))) На отчетном скриншоте - sql в текстовом файле и explain-ы в консоли (уместились все). Ну и... обещанное фото распечатки структуры базы и связей между таблицами (оно на окне поверх жалюзи). |
|||||
7 | Модель. Планирование. |
|
|||
На этом уроке самостоятельное задание - сформулировать все задачи, которые решает программа. Это будет своеобразное проектирование бизнес-модели проекта. Подсказка: смотрим на схему базы данных, на каждую таблицу по отдельности, и задаём себе несколько раз вопросы: что это? для чего? что можно с этим сделать? как это можно обработать? Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: планировать модель системы Сложности: Да ничего сложного Комментарии: 1. Регистрация клиента 2. Получение списка клиентов 3. Редактирование данных о клиенте 4. Получение списка заявок 5. Добавление новой заявки 6. Редактирование заявки 7. Добавление комнаты 8. Редактирование данных о комнаты 9. Получение списка комнат ( упорядоченный по определенному шагу) 10. Получение карты (что где занято, что где свободно) 11. Получение списка забронированных комнат 12. Получение списка свободных комнат 13. Получение списка заявок, которые исполнены |
|||||
8 | Модель. Список задач. |
|
|||
На этом уроке мы составим список задач. Для каждой задачи нужно будет написать SQL запрос (или несколько), который решает поставленную задачу. Запросы нужно писать в таком виде, в котором они сразу могут быть выполнены в SQL-мониторе. Каждый запрос необходимо проверить на работоспособность. Отчёт отправил: 791. Валерий Жданов Выполнено за 55 мин. [Показать отчёт] Научился: Самостоятельному переводу на язык SQL своего "технического задания" по функционалу модели проекта. Сложности: Удержаться,чтобы не писать SELECT * FROM <ИМЯРЕК_ТАБЛИЦА>, а расписать все поля. Я знаю, что если расписать поля, обработка идет быстрее и корректнее, но... пару раз не удержался. Комментарии: Очень хороший старт для самостоятельных работ над проектами. и спасибо Евгению, - у меня часто бывает проблема в проектах, что я не вижу, что и как должно быть. теперь с sql-запросами я буду справляться с этим быстрее. |
|||||
9 | Модель. SQL запросы для Client |
|
|||
На этом уроке мы составим SQL запросы для решения задач с таблицами Client и Calendar. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Прокачал навыки по SQL Сложности: Сложностей не было Комментарии: Хорошо работать с базой, - Ей расти ещё, расти! Лишь запросы И консолька SQL-а впереди! |
|||||
10 | Модель. SQL запросы для Room |
1 тест |
|||
На этом уроке мы составим SQL запросы для решения задач с таблицей Room. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 791. Валерий Жданов Выполнено за 42 мин. [Показать отчёт] Научился: Прокачка навыков по SQL Сложности: Алгоритм Евгения по перемещению комнаты)) Комментарии: И еще... я честно сказать немного не понял (может быть что-то пропустил), как можно реализовать на данном этапе изменение статуса регистрации, если в таблице book нет поля Статус, а с картой map мы еще работать не начали. Поэтому я разместил запросы добавления заявки и вывода данных заявки (простое и в связке с таблицей client, чтобы имя клиента выводилось). |
|||||
11 | Модель. SQL запросы для Book и Map |
|
|||
На этом уроке мы составим SQL запросы для всех остальных задач, для таблиц Book и Map. В отчёте напиши мини-отзыв о созданных запросах. Отчёт отправил: 791. Валерий Жданов Выполнено за 40 мин. [Показать отчёт] Научился: Прокачал навыки SQL Сложности: Удалить запись из map. Комментарии: Рука не поднялась сделать удаление из map. Сделал уже после скриншота. По поводу такого способа проектирования и создания программы - подписываюсь под каждым словом Евгения, он действительно помогает преодолеть многие неопределенности между ТЗ и воплощением проекта. Далее - я думаю надо делать по плану (вид, потом контроллеры), но потом в конце сделать еще несколько уроков, которые нам помогут перенести наши модель и контроллеры на другой вид - реализовать на другой платформе - wpf, web или что-то другое. это покажет мощь и гибкость mvc подхода. |
|||||
12 | Модель. Имена методов. |
1 тест |
|||
На этом уроке мы пройдёмся ещё раз по списку составленных задач и дадим названия классам и методам, которые эти задачи будут выполнять. Отчёт отправил: 791. Валерий Жданов Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Прокачал навыки по планированию кода Сложности: Сложностей не было, но работа очень кропотливая. Комментарии: В уроке ничего сложного, но он очень помог еще раз взглянуть на проект базы и перетрясти структуру таблиц. Постепенно от таблиц переходим к методам, которые будут в наших моделях |
|||||
13 | Класс MySQL. Драйвер и конструктор. |
1 тест |
|||
На этом уроке мы наконец-таки создадим проект. Установим Mysql DotNet Connector и начнём создавать класс MySQL для подключения к базе данных. Мы напишем конструктор и три метода. Отчёт отправил: 791. Валерий Жданов Выполнено за 42 мин. [Показать отчёт] Научился: Прокачал навыки создания класса работы с СУБД MySQL Сложности: Сложностей не было, я делал такое до этого Комментарии: Интересный урок, закончив который, я поймал себя на шальной мысли, что технологии типа LINQ - это классы, подобные нашему MySQL, только тщательно отрефакторенные и с проработанными методами |
|||||
14 | Класс MySQL. Получение таблицы. |
1 тест |
|||
На этом уроке мы создадим ещё несколько полезных методов в классе MySQL для считывания, изменения и добавления записей. Отчёт отправил: 791. Валерий Жданов Выполнено за 50 мин. [Показать отчёт] Научился: Проработал функции SELECT, INSERT, UPDATE Сложности: Сложностей не было Комментарии: Еще раз проработал эти функции и эти SQL запросы, стал складываться паззл в голове, сейчас сначала реализовал функции, потом уже смотрел видео (и поправлял). |
|||||
15 | Класс MySQL. Обработка ошибок. |
|
|||
На этом уроке мы создадим функцию SqlError() для удобной обработки ошибок во время тестирования. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: Повторил навыки обработки ошибок Сложности: Проблем не было Комментарии: В данном случае только немного напрягло использование using System.Windows.Forms в классе модели, но раз пообещали рефакторинг, то всё очень хорошо. Лишний раз потренировался с обработкой ошибок. |
|||||
16 | Модульный тест |
1 тест |
|||
На этом уроке мы создадим модульный тест (UnitTest) для тестирования класса MySQL, который мы создали ранее. В уроке приводится только знакомство, без полного покрытия тестами нашего проекта, но в будущем мы к ним ещё вернёмся. В комментариях необходимо написать, использовал ли ты ранее модульные тесты. Полезная ссылка: https://msdn.microsoft.com/ru-ru/library/hh694602.aspx Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Тестировать программу, функции, алгоритмы при помощи модульных тестов. Сложности: Сложностей не было, спасибо Евгению. Комментарии: Я здесь уже долгое время, многие курсы прошел, несколько заново, и не перестаю удивляться - как Евгению Витольдовичу в казалось бы давно (по его урокам) известном и несколько раз отработанном удается находить новое, интересное и упрощающее разработку кода. Так и в данном случае. Несколько раз переписывали класс MySQL, тестировали его работу с точками останова, и вдруг - обработка его в совершенно новом контексте! От возможностей юнит-тестирования просто сносит голову. Очень удобно. Можно методы прогонять сначала в юнит-тестах, а потом отлаженные уже помещать в классы и модели. Спасибо огромное. Этот урок для меня из разряда "в новинку всё". Размещаю тест подключения с неправильным паролем (хотел попробовать потестировать про полностью отключенном MySQL-сервере, но побоялся, что система подвиснет... обязательно попробую для себя позже). |
|||||
17 | Отображение таблицы |
|
|||
На этом уроке мы визуализируем созданное, через отображение в компоненте DataGridView. Заголовки столбцов можно поменять двумя разными способами. 1. sql.Select("SELECT id as Nr, client as Surname FROM Client"); 2. dataGridView1.Columns[0].HeaderText = "№"; Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: Прокачал навыки работы с dataGridView, научился загружать данные через DataSource Сложности: Ничего сложного Комментарии: Спасибо за интересный урок, проработал с dataGridView, увидел результаты своих трудов. SQL-запрос для выборки сделал свой, там переопределил id как NR и Client как FIO. Данную версию своего проекта Отеля выкладываю для вас на Github, посмотрите, кто дошел до этого места и дальше, критику принимаю со смирением. |
|||||
18 | Модель. Класс Клиента |
1 тест |
|||
На этом уроке мы наконец-таки начнём создавать первый класс Бизнес Модели Отеля. Это класс Model.Client, для подготовки которого потребуется ещё некоторые вспомогательные работы. Отчёт отправил: 791. Валерий Жданов Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Создавать действующую модель с нуля, понять, в чем ее отличие от просто класса Сложности: Сложностей как таковых не было, но затрудняет кропотливая работа по написанию однотипных сеттеров. Понимаю, что без этого никуда. Комментарии: Вот и реализована первая модель в данном проекте. Я не могу сказать, что для меня это совсем ново, но основные точки опоры при разработке модели мы здесь сделали. На скринах - добавление записи номер 4 и вывод записи о клиенте Кате, любящей Египет, в грид. |
|||||
19 | Модель. Всё про Клиента |
1 тест |
|||
На этом уроке мы допишем класс Client. Реализуем четыре метода и слегка потестируем их. Написать свои впечатления о созданном классе модели. Отчёт отправил: 791. Валерий Жданов Выполнено за 4 час. 25 мин. [Показать отчёт] Научился: Прокачал навыки создания и тестирования методов в модели Сложности: Найти свою ошибку, в результате которой пропали все адреса из базы данных Комментарии: Интересный урок, пришлось долго искать свою ошибку ( не в том месте ввел в обработку щелчка по таблице SelectClient(id), в результате в update попадало пустое значение свойства address, - в результате база гостиницы утеряла все адреса клиентов). При пошаговой отладке ошибка была найдена и убрана. В остальном всё получилось, спасибо за урок |
|||||
20 | Модель - Календарный год |
|
|||
На этом уроке мы начнём создавать модель календаря. Поработаем с запросами, напишем метод InsertDays(int year). Создадим тест для этого метода и немного доработаем класс тестов. Отчёт отправил: 791. Валерий Жданов Выполнено за 40 мин. [Показать отчёт] Научился: Добавлять даты, работать с функциями дат, юнит-тестирование методов модели Сложности: Тесты Комментарии: Урок из разряда "сплошная новизна". И функции обработки дат, и реализация DayOfWeek, и главное - тестирование. В тестах вне урока познакомился с функцией "Отладить тест", которая не просто выполняет тест до ошибки, а работает с точками останова. Благодаря этому выявил свою ошибку в формате даты, которая давала некорректности. Все изменения в проекте я так же выложил на гит ,в поле "Ссылка на архив проекта" я выложил прямую ссылку на zip-файл с моим проектом на гите. |
|||||
21 | Модель - Календарные праздники |
1 тест |
|||
На этом уроке мы добавим в модель календаря методы для создания дней, пометки их праздничными/обычными. Также добавим ещё несколько тестов, чтобы они представляли из себя логически завершённую последовательность для тестирования календаря. |
|||||
22 | Модель. Класс комнаты |
|
|||
На этом уроке мы создадим модель на комнат, класс Room. Чтобы сделать это быстро - мы воспользуемся заготовками из класса Client.cs. В этом уроке мы не пишем тестов, поэтому класс создали в рекордно короткое время, 15 мин. Однако, создание тестов никто не отменял - это самостоятельное задание. |
|||||
23 | Модель. Удаление комнат. |
|
|||
На этом уроке мы добавим метод для удаления комнат. Исправим логическую ошибку метода Update в классах Room и Client. Подготовим функцию для теста созданного класса. Рекомендую эти тесты создать самостоятельно. |
|||||
24 | Модель. Тестирование комнат. |
|
|||
На этом уроке мы создадим TestRoom() для класса Room. Это будет одна функция, в которой мы последовательно будем вызывать все методы класса Room и проверять, на сколько правильно и корректно они отработали. В конце урока мы выполним тест пошагово. |
|||||
25 | Модель. Бронирование. |
|
|||
На этом уроке мы посмотрим картинки красивых комнат. И начнём создавать модуль бронирования Book. Создадим конструктор, методы InsertBook(), SelectBook() и UpdateBook(). В конце поговорим о том, что нужно отдыхать ДО того, как устанешь. |
|||||
26 | Модель. Статусы заказов. |
|
|||
На этом уроке мы поговорим о статусах заказа. Создадим методы изменения статуса и дней заезда/выезда. |
|||||
27 | Модель. Список заказов. |
1 тест |
|||
На этом уроке мы допишем два последних метода в класс Book. Методы для получения списка заказов по фильтру и без. В конце урока выведем результаты в грид, чтобы убедиться, что код работает. |
|||||
28 | Модель. Карта отеля 1 |
1 тест |
|||
На этом уроке мы начнём создавать модель управления комнатами. Пока мы создадим только конструктор, поля и метод void SelectMap (long room_id, long book_id, DateTime calendar_day) |
|||||
29 | Модель. Карта отеля 2 |
|
|||
На этом уроке мы создадим методы InsertMap() и InsertMapNone(). Также добавим в класс MySQL метод DateToString() и пробежимся по всему проекту, убирая yyyy-MM-dd. |
|||||
30 | Модель. Карта отеля 3 |
|
|||
На этом уроке мы создадим оставшиеся методы класса Map: SelectMap(), UpdateMap() и DeleteMap(). Пока без тестирования. |
|||||
31 | Вид. Список форм. |
1 тест |
|||
На этом уроке мы приступаем к следующему этапу создания программы - Представления (вид). Наша задача - составить список форм, которые будут в проекте, и для каждой формы нарисовать, как она будет выглядеть. | |||||
Итого: 31 видеоурок |
10 час. 16 мин. 17 тестов |
23 чел. | |||
Финалисты: Денис, Иван, Николай Миролюбов, Валентин, Кирилл Шмойлов, Frank, Rita, Ludmila, Станислав, Сергей Зулкарнаев, kalobyte, Tekashnik, egresr, Новопашин Владимир, Роман, Yefim, Василий, Ivan, vip, Илья, Михаил, Vdonsk, Егор Ульянов . |