169 похожих чатов

Т.Е. Either, как альтернатива выбрасыванию исключений — это по вашему

ненормальная практика? И если кто-то использует throw для Control Flow Interruption, там где без этого можно/нужно обойтись, как это может меня побудить следовать этому, пусть даже это будут те, кто создают Flutter?

14 ответов

15 просмотров

Кажется это вы ничего в этом споре не поняли. Прочитайте это сообщение еще раз: https://t.me/rudart/753988

Dmitrii-Cheremisov Автор вопроса
MiT
Кажется это вы ничего в этом споре не поняли. Проч...

И что это меняет? Тем более я там не вижу какого-то кода. Ему советуют сделать https://t.me/rudart/753983 т.е. либо вернуть результат либо try-catch НЕ результат, а используя Either можно/нужно этого избежать. Я об этом.

Dmitrii Cheremisov
И что это меняет? Тем более я там не вижу какого-т...

Ладно, у меня уже нет времени и желания с вам спорить...

Dmitrii-Cheremisov Автор вопроса
MiT
Ладно, у меня уже нет времени и желания с вам спор...

Т.е. если вам придется возвращать либо результат, либо НЕ результат вы выберете конструкцию с throw и try-catch, а не Either? Ну, или какие-то данные, где может быть либо один тип, либо другой.

Dmitrii Cheremisov
Т.е. если вам придется возвращать либо результат, ...

> У меня предполагается, что try-catch сработает внутри блока initialization и вернется Left(AppError(..)) Где вы тут увидили либо результат, либо НЕ результат? Судя по сообщению есть какой-то метод initialization (скорее всего асинк), внутри которого есть try-catch значить блок кода который обернут в try-catch может вернуть ошибку (уже не подходит either/result). Более того, как мне кажется, там не один тип ошибки может вернуться (просто автор кода об это не думал еще). Так еще взгляните на это Left(AppError(..)), автор кода явно хочет вернуть и обработать ошибку дальше по коду иначе там бы не было бы в названии Error. Я даже предполагаю откуда автор кода подчеркнул идею с either, если интересно ввидите в поиске гитхаба: flutter clean architecture (первый репозиторий)

Dmitrii-Cheremisov Автор вопроса
MiT
> У меня предполагается, что try-catch сработает в...

то чего хотел автор сложно понять, но сопоставив его желание использовать Either и советы ему вместо Either использовать throw и try-catch я решил, что это плохой совет. Тем более, далее дискуссия переросла в несколько спорных утверждений: функциональщик, Доказать что то нам - не докажете, как бы вы не пытались, try catch - это базовое решение от самого языка — можно подумать что Either написан на каком-то другом языке и использует не базовые синтаксис/конструкции. Да и ваше заявление вместо того чтобы тянуть знания из других ЯП и натягивать их на dart довольно спорное, методология программирования она общая: парадигмы, принципы, паттерны. Те, кто не используют И функциональный подход (на самом деле используют, просто не осознают этого) просто ограничивают себя в инструментах. А Either — это уже паттерн.

MiT
> У меня предполагается, что try-catch сработает в...

Как мне кажется (просто я конечно же могу ошибаться), мне нужно сделать функцию, которая в случае успешного завершения ничего не возвращает, а в случае проблемы, возвращает код проблемы. На это меня натолкнула basic usage из pub.dev either_dart. Ошибки разный могут быть и все типы в enum (как в том же примере) В ходе обсуждения я понял, что что-то идет не так и either не подходит. А что за рипо, из которого я почерпнул идею? Первый в списке https://github.com/ResoCoder/flutter-tdd-clean-architecture-course. Он?

Dmitrii Cheremisov
то чего хотел автор сложно понять, но сопоставив е...

Удачи перетянуть методологию программирования с dart на go 1 и попытаться там перехватывать ошибки через try catch)

Dmitrii Cheremisov
go тут причем?

как пример перехода на следующий ЯП

Voffka
Как мне кажется (просто я конечно же могу ошибатьс...

Про репо я только "предполагал") Как мне кажется вам достаточно возвращать enum и игнорировать если он none/empty. И не нужно будет тянуть either_dart)

MiT
Про репо я только "предполагал") Как мне кажется ...

Да я уже давно понял, что either (или что там еще может быть) тут совершенно лишний. Всем спасибо! Тему можно считать закрытой и не стоящей холиваров😂

Dmitrii-Cheremisov Автор вопроса
MiT
Удачи перетянуть методологию программирования с da...

тут речь вообще не про ошибки, а про Control Flow Interruption я уже ссылался что это goto ну и много всего остального, чего нет при использовании Either. Я не понимаю, чем Either плох, вы видите что-то плохое в его использовании? Даже документация Bloc изобилует примерами CFI. В Bloс там много интересного, например инстанс который прикидывается методом — вот где галимая 😂 функциональщина, злая и бессмысленная — но Dart же позволяет!

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта