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 Soft - Вступление и подготовка 00:08:02
65 чел. ★ 4.8 Free
  Наша цель - разобраться в этом фреймворке
и создать рабочий проект - новую видеошколу.

Каждый формулист может стать соавтором новой видеошколы.
Каждый участник может написать свои строчки для проекта.
И каждый из них получит незаменимый опыт
по созданию реального рабочего проекта
с использованием современных технологий:
Yii, PHP, MySQL, Git, Bootstrap, JavaScript, jQuery, AJAX и многое другое.
 
15822. Павел Демьянов
1232. Фомичева Наталья
24974. Вячеслав
7308. AZANIR
2 Web - Первый кирпич сайта 00:07:45
52 чел. ★ 4.9 $
  На этом уроке мы настроим минимальные версии модулей
на нашем OpenServer для дальнейшей работы.
Проверим версии apache, php и MySQL.
После чего мы поработаем в консоли, создав необходимый минимум.
Далее мы проверим работоспособность нашего мини сайта.
 
1232. Фомичева Наталья
15398. Crabix
20286. Федор
17735. Илья
3 Git - Все ходы записываются 00:06:16
45 чел. ★ 4.9 $
  На этом уроке мы проинициализиуем локальный git репозиторий
в ранее созданной папке нашего проекта school.
После чего откроем нашу папку school в PhpStorm
для дальнейшей работы уже в более удобной среде разработки.
Создадим необходимый файл .gitignore с базовыми правилами
и закоммитим наш первый коммит в локальный git репозиторий.
 
30593. Викор
4753. Андрей
1232. Фомичева Наталья
2773. Никита
4 Composer - Установка пустоты 00:12:58
42 чел. ★ 4.9 $
  На этом уроке мы подключим фреймворк Yii через composer в консоли.
Научимся получать токен репозитория git.
Далее мы приступим к реализации нашего проекта, для
начала модифицируем index.php, чтобы задействовать фреймворк Yii.
Так же создадим конфигурационный файл для нашего проекта и
передадим его как параметр при создании экземпляра веб-приложения Yii.
 
791. Валерий Жданов
791. Валерий Жданов
8877. gorynych
3922. Александр
5 Controller - Точка входа программиста 00:08:13
41 чел. ★ 5 $
  На этом уроке мы создадим первый контроллер, который
является точкой входа для нашего веб-приложения.
Познакомимся с полезными ссылками и схемами
жизненного цикла нашего веб-приложения.
 
5286. Коваленко Дмитрий
10591. alex_kag
18783. Andrew
21468. Vassiliy
6 Views - Представления начинаются 00:12:47
2 теста
40 чел. ★ 5 $
  На этом уроке мы создадим первое представление
для отображения основной странички нашего веб-приложения.
Для удобного поиска ошибок мы активируем встроенную в Yii систему отладки.
 
10153. Виола
17255. Слава
1232. Фомичева Наталья
2670. Александр
7 Codeception - Пошаговое тестирование 00:14:56
1 тест
39 чел. ★ 5 $
  На этом уроке мы установим систему тестирования веб-приложений и
создадим несколько тестов имитации поведения гостя на сайте.
 
24974. Вячеслав
24974. Вячеслав
17255. Слава
8877. gorynych
8 Bootstrap - Пусть будет красиво! 00:20:21
34 чел. ★ 5 $
  На этом уроке мы начнём оформление нашего сайта.
Для этого мы установим и подключим набор инструментов bootstrap,
включающий в себя HTML/CSS шаблоны оформления и JavaScript расширения.
Первое что нам необходимо сделать, это добавить верхнее меню.
 
17051. Семен
17051. Семен
15398. Crabix
4004. Елена
9 Menu - Богатый выбор 00:07:41
34 чел. ★ 5 $
  На прошлом уроке мы создали навигационную панель,
на этом уроке мы разместим пункты меню на этой панели.
 
30514. Tom
21753. Николай
17051. Семен
17051. Семен
10 Join/login - Полёт Навигатора 00:09:57
1 тест
34 чел. ★ 5 $
  На этом уроке мы вернёмся к ранее созданным тестам,
которые провалились при проверке пунктов меню
регистрации и авторизации пользователя.
На этом уроке мы устраним проблемы, изза которых
тесты не могут завершиться успешно.
 
17735. Илья
30514. Tom
30514. Tom
10670. Сергей Соколов
11 Debug - Следы на песке 00:17:17
1 тест
33 чел. ★ 5 $
  На этом уроке мы установим систему отладки
в Yii для удобства отлавливания ошибок.
После чего мы его подключим, прописав
необходимые параметры в конфигурационный файл.
Так же продемонстрируем как добавлять собственные логи по типу.
Посмотрите инструкцию по установке.
 
21753. Николай
6203. Николай Миролюбов
18783. Andrew
18783. Andrew
12 User - Помещение регистратуры 00:10:07
31 чел. ★ 4.9 $
  На этом уроке мы займёмся причёсыванием нашего проекта.
Создадим необходимые тесты для обоснования наших действий.
Для начала вынесем функции join/login в отдельный контроллер.
Так же перенесём сопутствующие файлы видов в одноимённую папку.
 
10670. Сергей Соколов
18983. Евгений
24974. Вячеслав
24974. Вячеслав
13 Panel - Красивые анкеты 00:07:13
30 чел. ★ 5 $
  На этом уроке мы займёмся оформлением страничек регистрации
и авторизации при помощи набора инструментов bootstrap.
Для этого мы доработаем наши представления join/login.php
 
17051. Семен
17051. Семен
18983. Евгений
5286. Коваленко Дмитрий
14 Model - Модели на подиуме 00:05:30
29 чел. ★ 5 $
  На этом уроке мы поговорим о моделях,
представлениях и связях через контроллер.
Для этого мы рассмотрим схему, на основе которой
будем писать код в последующих уроках.
 
15822. Павел Демьянов
2670. Александр
2670. Александр
13540. Алексей Малышев
15 Tests - Обоснование необходимости 00:18:29
28 чел. ★ 5 $
  На этом уроке мы займёмся обоснованием
дальнеших действий через создание тестов.
По аналогии напоминает написание ТЗ для программистов.
Далее реализуем тесты поведения пользователей на сайте.
 
18783. Andrew
15822. Павел Демьянов
12450. Татьяна
10558. Иван Воронин
16 Steps - Пошаговая инструкция 00:11:22
27 чел. ★ 4.9 $
  На этом уроке мы реализуем сгенерированные
на прошлом уроке функции для корректной работы
созданных, так же на прошлом уроке, тестов.
 
30514. Tom
10670. Сергей Соколов
1232. Фомичева Наталья
15822. Павел Демьянов
17 Console - Есть ли жизнь в Консоли? 00:08:37
27 чел. ★ 5 $
  На этом уроке мы создадим консольное приложение
на базе Yii и почитаем описание команд.
Подключим vendor\autoload.php для
корректной работы php yii.php help migrate.
 
20620. Артём
12450. Татьяна
791. Валерий Жданов
10558. Иван Воронин
18 Migration - Архитектура таблицы 00:08:36
27 чел. ★ 5 $
  На этом уроке мы создадим первую миграцию, опишем в ней структуру таблицы user.
Миграции помогают следить за актуальностью схемы базы данных.
 
791. Валерий Жданов
10558. Иван Воронин
3922. Александр
18688. Arslan
19 DBase - Подключение к Матрице 00:11:01
2 теста
27 чел. ★ 5 $
  На этом уроке мы создадим базу данных в MySQL.
После чего создадим конфигурационный файл подключения к БД.
Далее запустим миграцию в нашем консольном приложении,
для автоматической генерации актуальной структуры таблиц.
 
13540. Алексей Малышев
4004. Елена
30514. Tom
10591. alex_kag
20 UserRecord - Очень активная модель 00:16:41
27 чел. ★ 5 $
  На этом уроке мы создадим модель связи с таблицей пользователей.
Добавим в таблицу нашего первого пользователя.
После чего перейдём на страничку регистрации и
проверим добавился ли пользователь в БД.
Так же поизучаем дебаг панель, изучим
что происходит при работе с БД.
 
2670. Александр
18688. Arslan
8275. Tekashnik
24974. Вячеслав
21 Faker - Тысяча фантазёров! 00:11:49
1 тест
27 чел. ★ 5 $
  На этом уроке мы добавим библиотеку Faker для генерации
случайных данных при создании случайных пользователей.
Для этого мы вначале установим необходимую библиотеку.
После чего используем её в наших тестах.
 
30514. Tom
21753. Николай
24974. Вячеслав
24974. Вячеслав
22 UserIdentity - Посторонним В 00:16:33
27 чел. ★ 5 $
  На этом уроке мы переходим к аутентификации
пользователей на нашем сайте.
Для этого мы воспользуемся встроенным
в Yii интерфейсом IdentityInterface.
Немного поэкспериментируем с авторизацией пользователей.
 
2670. Александр
12450. Татьяна
3922. Александр
3922. Александр
23 Logout - Выход из лабиринта 00:09:08
27 чел. ★ 5 $
  На этом уроке мы реализуем возможность выхода с сайта.
Для этого нам понадобиться доработать представление меню, чтобы
оно отличалось при авторизованном/неавторизованном пользователе.
Так же реализуем метод выхода пользователя с сайта (Logout).
 
3922. Александр
3922. Александр
13540. Алексей Малышев
21753. Николай
24 UserJoinForm - Модель для формы 00:18:01
27 чел. ★ 5 $
  На этом уроке мы создадим модель для
формы регистрации пользователя.
После чего мы добавим её использование
в нашем представлении join.php
 
24974. Вячеслав
24974. Вячеслав
791. Валерий Жданов
1232. Фомичева Наталья
25 Rules - Валидация без правил 00:11:19
1 тест
26 чел. ★ 5 $
  На этом уроке мы добавим валидацию полей
при регистрации пользователя.
Также для полей добавим индивидуальные правила.
 
10558. Иван Воронин
10558. Иван Воронин
10670. Сергей Соколов
8275. Tekashnik
26 JoinPost - Вторая сторона модели 00:16:51
25 чел. ★ 5 $
  На этом уроке мы реализуем вспомогательную
функцию, куда перенесём обработку фазы POST запроса
нашей формы регистрации пользователей.
Так же добавим генерацию начальных данных
для первой фазы регистрации пользователей.
 
10153. Виола
18983. Евгений
10591. alex_kag
6203. Николай Миролюбов
27 IfEmailUsed - Почта закрыта 00:14:34
25 чел. ★ 5 $
  На этом уроке мы добавим проверку существования
email в БД перед тем как зарегистрировать пользователя.
Проведём эксперименты и отрефакторим нашу проверку.
 
12450. Татьяна
11589. Yefim
13540. Алексей Малышев
10558. Иван Воронин
28 HasErrors - Где водятся волшебники? 00:07:36
25 чел. ★ 5 $
  На этом уроке мы реализуем дополнительную проверку,
которая будет генерировать ошибку.
После чего добавим проверку наличия ошибок
перед тем как проверять на валидность email.
Поэкспериментируем с последовательностью самих проверок.
 
21753. Николай
12450. Татьяна
5286. Коваленко Дмитрий
10153. Виола
29 Save - Запись в книгу 00:12:57
24 чел. ★ 5 $
  На этом уроке мы реализуем добавление данных
пользователя в БД, после успешной проверки.
Так же добавим редирект на страничку авторизации
после успешной регистрации пользователя.
 
429. Максим Базуев
30514. Tom
12450. Татьяна
8275. Tekashnik
30 UserLoginForm - Модель на входе 00:10:51
24 чел. ★ 5 $
  На этом уроке мы реализуем форму авторизации пользователей.
Создадим модель UserLoginForm и добавим правила заполнения полей.
 
20620. Артём
10558. Иван Воронин
10558. Иван Воронин
429. Максим Базуев
31 IfEmailNotFound - На деревню дедушке 00:12:39
23 чел. ★ 5 $
  На этом уроке мы реализуем проверку почтового ящика
при авторизации пользователя, а зарегистрирован ли он.
Так же настроим контроллер для корректной работы проверки.
 
12450. Татьяна
2670. Александр
1232. Фомичева Наталья
6203. Николай Миролюбов
32 IfPasswordWrong - Пароль? Пароль! Проходи. 00:08:59
23 чел. ★ 5 $
  На этом уроке мы добавим ещё одну валидацию
при авторизации пользователя, а именно вводимый им пароль.
Посмотрим логи запросов в БД и запустим тестирование.
 
15822. Павел Демьянов
6203. Николай Миролюбов
17051. Семен
17051. Семен
33 Refactoring - Нет дубликатам! 00:08:08
23 чел. ★ 5 $
  На этом уроке мы займёмся рефакторингом дублирующего
кода, выполняющего одно и тоже на протяжении
выполнения одной задачи.
 
3922. Александр
3922. Александр
10153. Виола
21753. Николай
34 Test - Запуск функциональных тестов 00:15:59
23 чел. ★ 5 $
  На этом уроке мы создадим функциональный тест.
Но для корректной его работы, нам понадобиться
провести несколько очень важных манипуляций.
 
17051. Семен
21753. Николай
5649. Максим Лапшинов
10558. Иван Воронин
35 PasswordIsHashed - Покажите-ка ваш хэш 00:15:26
22 чел. ★ 5 $
  На этом уроке мы реализуем тестирование
на корректность хешированных паролей перед
тем как они сохраняются в БД.
Для начала нам понадобиться создать
дополнительную функцию установки пароля в UserRecord().
После чего мы приступим к созданию тестов.
 
12450. Татьяна
21753. Николай
30514. Tom
6203. Николай Миролюбов
36 Security - Кручу-верчу-захэшировать хочу! 00:08:46
22 чел. ★ 5 $
  На этом уроке мы реализуем хеширование паролей
перед тем как их сохранять в базу данных.
Для начала нужно очистить все аккаунты пользователей,
так как они содержат пароли в явном виде.
 
4004. Елена
10670. Сергей Соколов
13540. Алексей Малышев
3922. Александр
37 Hash - Как правильно солить пароли 00:12:02
22 чел. ★ 5 $
  На этом уроке мы поговорим о вариантах хеширования
паролей пользователей для дополнительной безопасности.
Посмотрим, сколько времени занимает хеширование пароля,
воспользовавшись встроенной системой профилирования.
 
1232. Фомичева Наталья
20620. Артём
10591. alex_kag
2670. Александр
38 Remember me - Печенька на память 00:09:49
23 чел. ★ 5 $
  На этом уроке мы поговорим о галочке «Запомнить меня» для авторизации на месяц —
чтобы сайт не просил повторно вводить логин/пароль даже после закрытия/открытия браузера.
 
1232. Фомичева Наталья
15822. Павел Демьянов
8275. Tekashnik
429. Максим Базуев
39 Authokey - Ключи в сейфе 00:09:53
22 чел. ★ 5 $
  На этом уроке мы реализуем более безопасный
способ автоматической авторизации на сайте.
Для этого мы создадим отдельное поле
'authokey', в нашей БД, для автологина.
 
5649. Максим Лапшинов
30514. Tom
6203. Николай Миролюбов
15822. Павел Демьянов
40 REFRESH - 40 МГНОВЕНИЙ ОПЫТА 00:07:14
5 чел. ★ 5 $
  На этом финальном уроке тебе предстоит повторить весь курс ещё раз.

Да, ты не ослышался - выполнить все шаги по созданию этого проекта.
Чтобы было удобнее - скачай план уроков всего курса.
Уверен, ты сможешь всё сделать самостоятельно, причём, значительно быстрее.
Лучше всего это сделать на другом компьютере.
 
8275. Tekashnik
10558. Иван Воронин
10558. Иван Воронин
17051. Семен
  Итого:   40 видеоуроков 7 час. 42 мин.
9 тестов
5 чел. ★ 4.99  
  Финалисты:   Иван Воронин,   Tekashnik,   Семен,   Александр,   Tom .

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





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

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

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

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


Научился: Использовать встроенную локализацию, поддержке нестандартных портов, закрепил пройденное.
Суммарно потратилось 4 часа 2 минуты и 18 секунд. Во время повторного выполнения заданий почерпнул много новых фишек Yii. Такие как настройка языка по-умолчанию для всего сайта. Оказывается их там очень много. Так же для повторного прохождения специально запустил OpenServer на другой ПК, так как порт 80 был занят, запустил на 81 порту, столкнулся с проблемой Yii, автоматом при редиректе в корень сайта, удалялся порт и пытался открыть сайт через 80, что естественно приводило к ошибке. Изучим документацию Yii и форумы ничего толкового не нашёл, поэтому решил использовать давно проверенный костыль и он сработал. Так же использовал относительные пути при редиректе внутри одного контроллера. Добавил пометки, что при переносе в продакшн, где порт будет 80, можно вернуть классику. Ощущения после повторения отличные, решил так же проверить проблему переименования папки, запустил установку без global, но всё равно она была, так что теория на одном из форумов Yii не подтвердилась. По поводу быстрее, можно не использовать тесты, пока не появится острая необходимость, либо как говорил Игромистр, поручить писать тесты другому по команде, чтобы не отвлекаться. Сложных уроков не возникало, всё просто и понятно, видимо опыт разработки на php даёт свои плоды =) Но на 23 уроке пришлось поэкспериментировать в итоге нашёл как, добавив всего одну строчку в конфиг, настраивать язык сайта по-умолчанию. Так же на уроке 25 столкнулся с проблемой отличного порта от 80. тоже спустя некоторое время проблему решил. Спасибо за отличный курс, замечательный фреймворк, очень удобный, помогает быстро разрабатывать сайты.


Научился: Выполнил весь курс с нуля. Создал новый виртуальный хост school2.local, установил yii и все необходимые библиотеки. Идея повторного выполнения курса мне понравилась. Это помогло мне лучше понять как взаимодействуют между собой различные элементы фреймворка yii.