Качество .Net-конференций
От: varenikAA  
Дата: 22.04.19 03:12
Оценка:
Пытаюсь понять код докладчика на этом видео
https://youtu.be/qrv0XhYh6sI?t=937

Насколько я понял, парень увлекается F#, в докладе пытается рассказать о прелестях функциональщины,
но я уже несколько дней не могу понять, как метод Bind работает на вызове функции.
Во-первых не указан модификатор this, во-вторых парень лихо прикрутил логирование посредством Bind,
хотя реализация вызывает функцию только если результат Success, т.е. ошибку уже не залогировать.
Мне одному кажется или нет что с докладом все абсолютно не так?
☭ ✊ В мире нет ничего, кроме движущейся материи.
функциональное программирование
Re: Качество .Net-конференций
От: okon  
Дата: 22.04.19 04:40
Оценка:
AA>Во-первых не указан модификатор this, во-вторых парень лихо прикрутил логирование посредством Bind,
AA>хотя реализация вызывает функцию только если результат Success, т.е. ошибку уже не залогировать.
смотря как написать функцию Log.

Там параметры просто местами надо поменять и this поставить.
у непосредственно Log должна быть сигнатура
Result<R> Log( Result<I> input )
{
   if (!input.Success)
      logger.Error("ERROR : {input.Error}");
}
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[2]: Качество .Net-конференций
От: varenikAA  
Дата: 24.04.19 01:46
Оценка: 3 (1)
Здравствуйте, okon, Вы писали:

AA>>Во-первых не указан модификатор this, во-вторых парень лихо прикрутил логирование посредством Bind,

AA>>хотя реализация вызывает функцию только если результат Success, т.е. ошибку уже не залогировать.
O>смотря как написать функцию Log.

O>Там параметры просто местами надо поменять и this поставить.

O>у непосредственно Log должна быть сигнатура
O>
O>Result<R> Log( Result<I> input )
O>{
O>   if (!input.Success)
O>      logger.Error("ERROR : {input.Error}");
O>}
O>


К сожалению, этот вариант не работает,
Bind вызывает Log только if(input.Success),
получается Log должен быть не аргументом Bind
а расширением Result?

Переписал так:
        public static Result<R> Bind<T, R>(this Result<T> input, Func<Result<T>, Result<R>> function)
        {
            return !input.IsSuccess ? Result<R>.Fail(input.Error) : function(input);
        }
        public static Result<T> Log<T>(this Result<T> value, string description = "")
        {
            if (value.IsSuccess)
                WriteLine($"{DateTime.Now:s} : [OK] : {value.Value} ({description})");
            else
                WriteLine($"{DateTime.Now:s} : [ER] : {value.Error} ({description})");
            return value;
        }


Вроде работает!
☭ ✊ В мире нет ничего, кроме движущейся материи.
Отредактировано 24.04.2019 2:08 Разраб . Предыдущая версия . Еще …
Отредактировано 24.04.2019 2:01 Разраб . Предыдущая версия .
Re: Качество .Net-конференций
От: IT Россия linq2db.com
Дата: 17.07.19 03:01
Оценка: :))
Здравствуйте, varenikAA, Вы писали:

AA>Пытаюсь понять код докладчика на этом видео


Монада весьма интересная, я бы даже сказал феноменально интересная абстракция прежде всего тем, что никто не умеет объяснять что это такое.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Качество .Net-конференций
От: hi_octane Беларусь  
Дата: 17.07.19 09:45
Оценка: :)
IT>Монада весьма интересная, я бы даже сказал феноменально интересная абстракция прежде всего тем, что никто не умеет объяснять что это такое.
Если бы замутили спецолимпиаду "объясни монаду челлендж", то в категории "демосцена до 24 байт" выступил бы с объяснением "обёртка для визитора"
Re: Качество .Net-конференций
От: Vladek Россия Github
Дата: 24.07.19 14:47
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Пытаюсь понять код докладчика на этом видео


А я полез проверять настройки плеера — не увеличена ли была скорость.
Re: Качество .Net-конференций
От: Александр Кузнецов Россия  
Дата: 25.07.19 09:54
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Пытаюсь понять код докладчика на этом видео

AA>https://youtu.be/qrv0XhYh6sI?t=937

AA>Насколько я понял, парень увлекается F#, в докладе пытается рассказать о прелестях функциональщины,

AA>но я уже несколько дней не могу понять, как метод Bind работает на вызове функции.
AA>Во-первых не указан модификатор this, во-вторых парень лихо прикрутил логирование посредством Bind,
AA>хотя реализация вызывает функцию только если результат Success, т.е. ошибку уже не залогировать.
AA>Мне одному кажется или нет что с докладом все абсолютно не так?

С монтажом всё печально. В оригинале, видимо, он говорит медленнее и зачем-то решили это убрать, ускорив видео.
В принципе, парень уверенно держится, аудитории не боится.
Про саму подачу материала... всё пересматривать лень, но несколько косяков явно в глаза бросились, так что явно не в одном месте проблема. Бить по рукам за такое надо однозначно, но дальше всё зависит от того, какого уровня доклад.
Если это просто какая-то "местечковая" конфа, а потом он сам смонтировал и вылил на ютьюб — ну, все когда-то начинали. Не страшно. А вот если это доклад от лица компании, или какое-то серьёзное мероприятие, то "ой-ой".
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Отредактировано 25.07.2019 14:05 Александр Кузнецов . Предыдущая версия .
Re: Качество .Net-конференций
От: Danchik Украина  
Дата: 26.07.19 06:50
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Пытаюсь понять код докладчика на этом видео

AA>https://youtu.be/qrv0XhYh6sI?t=937

AA>Насколько я понял, парень увлекается F#, в докладе пытается рассказать о прелестях функциональщины,

AA>но я уже несколько дней не могу понять, как метод Bind работает на вызове функции.
AA>Во-первых не указан модификатор this, во-вторых парень лихо прикрутил логирование посредством Bind,
AA>хотя реализация вызывает функцию только если результат Success, т.е. ошибку уже не залогировать.
AA>Мне одному кажется или нет что с докладом все абсолютно не так?

Из этого доклада я для себя пометил только эту интересную библиотеку: https://github.com/louthy/language-ext
Re[2]: Качество .Net-конференций
От: varenikAA  
Дата: 10.08.19 14:57
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Здравствуйте, varenikAA, Вы писали:


AA>>Пытаюсь понять код докладчика на этом видео


V>А я полез проверять настройки плеера — не увеличена ли была скорость.


Мне кажется этим страдают многие докладчики — говорить быстро и много.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Качество .Net-конференций
От: Слава  
Дата: 10.08.19 15:03
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Из этого доклада я для себя пометил только эту интересную библиотеку: https://github.com/louthy/language-ext


Этой сказочной дрянью пользоваться просто не надо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.