Курсы по программированию

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

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Итератор / Итератор. Один метод вместо классов.

  • На этом уроке мы увидим, что класс, оказывается, создавать не обязательно.
    Магия слова yield сделает всё за тебя, можно просто один раз организовать перебор нужных элементов,
    и потом его можно использовать через обычный foreach в любом месте программы.
    Вся прелесть в том, что перебор элементов происходит по мере необходимости.
  • Дата отправки отчёта: 28 мая 2017 г.
  • Задание выполнено: за 20 мин.
  • Чему научился: Затрудняюсь даже сказать.
  • Что было сложным: Понимание происходящего.
  • Комментарии: Вот я закончил курс. Почему курс оказался плох? Не знаю как для других, я про себя скажу.
    Самая главная ошибка всех обучающих курсов или преподов в том, что они либо сами не понимают до конца тему, либо не могут применить правильно инструмент. Либо применяют его примерно так: розовый банан скачет по космосу.

    Я долго думал над этой фразой, чтобы она как можно более упоротей звучала. Примерно то же я вижу у себя на экране: черное окно и там столбик каких-то цифр.
    Я понятия не имею, что такое простые множители или там цифры. Для меня если я могу запомнить цифры в голове, то они простые, а 233459089 для меня сложная цифра.

    Курс называется "разложение числа на простые множители". Сначала я подумал, что число 123 будет раскладываться на 1, 2 и 3. С этим примером у меня связано одно событие.
    В пту году в 2005 был день открытых дверей и надо было что-то сделать и показать для посетителей, типа чем мы занимаемся тут. У меня валялась плата с тремя индикаторами от спутникового приемника и там было 3 регистра для статической индикации. Я еще раньше с корешем ходил к нему в общагу и он показывал мне, как написать прошивку для контроллера под эту плату.
    Типа вот есть число 123 и оно влазит в 1 байт, а плата с индикаторами - это 3 байта. Как бы так разобрать число на отдельные цифры?

    Я пришел к нашей училке по матану и программированию и спросил ее, а она мне и рассказала. Я это написал в коде и оно заработало. С тех пор я до конца жизни это буду помнить.

    Тут я не понял, что такое простые множители и зачем они мне нужны в этой проге. Я тупо не видел образа или конкретного применения. Поэтому у меня в голове розовый банан скачет по космосу.

    Я пошарился часа 2 по гуглу и нашел пару боле менее годных визуальных примеров.
    csharphelper.com/blog/2017/04/enumerate-treeview-nodes-c/
    brain-it.blogspot.de/2009/08/c-yield.html
    flash2048.com/post/yield

    www.c-sharpcorner.com/UploadFile/40e97e/iterator-pattern/
    Вот тут есть очень хороший рисунок, который расписывает маппинг методов интерфейса к переменным цикла foraech. Одна эта картинка уже решает 50% вопросов.

    Как я понял - елд нужен для составления какого-то списка в памяти по критериями фильтрации какого-то массива данных. Потом этот список можно использовать дальше в своем коде.
    И как там пишут - linq заменил почти елд, т.к. фильтры стали делаться sql подобными запросами.

    В конечном эффекте я все равно не понял про итераторы и елды.
    Перебрать дерево вроде можно и так. Мне в реальной проге надо было перебирать радиокнопки отмеченные в разных группах и я делал в цикле.

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

    Что нужно было сделать?
    1 Дать простое определение итератору.
    2 Что такое IEnumerator и IEnumerable.
    3 В каком реальном проекте их использовали и что было бы, если бы не использовали.
    4 Yield это обязательное слово в связке IEnumerator и IEnumerable или идет дополнением?
    5 Какой с него профит в реальном софте и что было бы без него.
    6 Когда это нужно использовать и когда не нужно.

    Такие дела.
  • Оценка видео-уроку:
Отчёт от 10588 за Итератор / Итератор. Один метод вместо классов.




Оцени работу

 
Сохранить страницу:

10558. --
Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / Итератор. Один метод вместо классов. / 2017-05-29 23:42

Так как этот курс находится в категории ПРОФИ, и до него все курсы по C# у тебя не 100% выполнены, то чего ты хотел? бежать впереди паровоза? ребёнок вначале учится ходить, а потом всё остальное, а не сразу с пелёнок в космос =) Плюс этот курс был записан давно, лучше про итераторы с отличным примером сортировку карточной колоды продемонстрировано в курсе по языку Java: www.videosharp.info/video/design-iterator


10558. --
Иван Воронин
Иван Воронин
ответить
→  kalobyte  # Итератор / Итератор. Один метод вместо классов. / 2017-05-29 23:44

Я посмотрел категории, у меня он в категории номер 2, начинающие.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # Итератор / Итератор. Один метод вместо классов. / 2017-05-30 16:31

> Курс называется "разложение числа на простые множители".
> Сначала я подумал, что число 123 будет раскладываться на 1, 2 и 3.

Ну, ... я даже не знаю, что тут сказать.
Поражаюсь твоей напористости.



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





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

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

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

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


Научился: Убедился в необязательности в создании класса
классный курс, проникся магией оператора yield


Научился: Оформил работу алгоритма в отдельный метод.
Курс понравился. Своих денег стоит сполна. Хорошо продемонстрировано использование интерфейсов в конкретной задаче. Использование и предназначение зарезервированного слова yield демонстрируется сполна и разжевывается до мельчайших подробностей. Понравилось, что с каждым разом код становился. всё меньше и чище. Это тоже хорошая демонстрация правильного рефакторинга кода. Да и программа, которая получилась в результате выглядит солидно для портфолио молодого разработчика. ЕВ ждем еще!)