タグ

2016年5月8日のブックマーク (4件)

  • [RxSwift] shareReplayをちゃんと書いてお行儀良くストリームを購読しよう - Qiita

    RxSwiftのサンプルコードを見てみると、頻繁にshareReplayというオペレーターが登場することに気づくと思います。しかし、このshareReplayを書かなくともコードは動くし、ホントにこれ必要なの?てか、コイツは何をしてるの?という疑問が湧いたので詳しく調べてみました。 shareReplayがないとき まずは、shareReplayがなぜ必要なのか考えるためにRxSwiftのExampleを多少シンプルにした下記の様な画面の実装について考えてみます。 ↓のような感じで3つのIBOutletで接続していて、 @IBOutlet weak var usernameOutlet: UITextField! // ユーザー名を入力するTextView @IBOutlet weak var usernameValidOutlet: UILabel! // 赤い文字で警告を表示するUIL

    [RxSwift] shareReplayをちゃんと書いてお行儀良くストリームを購読しよう - Qiita
  • RxのHotとColdについて - Qiita

    UniRxについての記事のまとめはこちら RxのIObservable<T>にはHot/Coldという大きな2つの特徴があります。 これら性質を理解しないままストリームを設計すると、意図した動作をしてくれない場合があります。 今回はこのHot/Coldの性質について簡単にまとめたいと思います。 概要 一言で言うと? Cold : ストリームの前後をつなぐだけのパイプ。単体では意味が無い。だいたいのオペレータはこっち。 Hot : ストリームから値を発行し続ける蛇口。常に垂れ流し。後ろにパイプがたくさん接続できる。 細かく説明すると Cold Observable 自発的に何もしない受動的なObservable Observerが登録されて(Subscribeされて)初めて仕事を始める ストリームの前後をただつなぐだけ。ストリームを枝分かれさせる機能は無い。 Hot Observable 自

    RxのHotとColdについて - Qiita
  • 2010-12-26

    リアクティブプログラミングは、「時間とともに変化する値」=「振る舞い」同士の関係性を記述することでプログラミングを行うパラダイムです。 GUIなどのようにインタラクティブなシステムや、シミュレーションやアニメーションのようにダイナミックに状態が変化するようなシステムを宣言的に記述することができます。 これらの「変化する状態」や「外部とのやりとり」が支配的なシステムは、純粋関数型言語が、その強みを発揮しにくい部分でもあります。 稿では、リアクティブプログラミングが副作用を含む系を宣言的に記述することを可能にし、状態の管理という厄介な問題からプログラマを開放する可能性があることを示したいと思います。 (割と独自研究に基づく解釈ばかりなのでその点ご了承ください。あと例としてでてくるコードは、Pythonベースの擬似コードで具体的なライブラリに基づくものではありません。) Why Reactiv

    2010-12-26
  • オブジェクト指向と関数型で副作用の扱いが違うって知ってた?(2021年版) - セカイノカタチ

    (2021/2/23 加筆訂正。文章を見直して現在の結論を追記しました。文意は変わっていません) 最近、オブジェクト指向と関数型を比べる人が多くなってきたみたいなんで、自分の考えをまとめてみます。 まず、件ですが、壮大なテーマだと思いますので、全体を網羅して書くのは難しいです。 なので、主眼を絞ります。 主眼は、ズバリ「副作用」です。 副作用とは、薬なんかだとその薬が目的とする「作用」に付随してくる好ましくない「作用」の事を指します。 例えば、風邪薬を飲むと「眠くなる」とか、タミフルを飲むと「ベランダから飛び降りたくなる」*1。 副作用によって、プログラム全体の動作が複雑になり、わかりにくくなるため、最近のプログラマー達の議論では「副作用は悪」であるということでコンセンサスが取れているようです。 関数型言語と副作用の戦い 関数型言語における、対副作用兵器は「参照透明性」です。 関数から、

    オブジェクト指向と関数型で副作用の扱いが違うって知ってた?(2021年版) - セカイノカタチ