Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced Rx Use #98

Open
colinbrash opened this issue Oct 13, 2017 · 0 comments
Open

Advanced Rx Use #98

colinbrash opened this issue Oct 13, 2017 · 0 comments

Comments

@colinbrash
Copy link
Member

I am concerned about this bullet point:

  • Best practices for the the more advanced
    • Creating custom observables (Observable.create)
    • Combining observables (combineLatest, merge, concat, flatMap*)
    • Common operators for modeling an observable (startWith, filter, map, scan)
    • Hot vs cold observables
    • Connectable observables & related operators (publish + connect, replay*, shareReplay*)
    • RxSwift specific “traits” (Single, Completable, Maybe, Driver) and special types (*Subject, Variable)
    • Bridging imperative and rx code (using *Subjects & Variables or bridging delegates)
    • Threading (observeOn vs subscribeOn)
    • Error handling (catch, retry, subscription)
    • Unit testing (i.e. RxTest & RxBlocking quick guide)

If we intend Rx to be a fundamental part of our projects, many of these can't just be for "the more advanced." For example, we can't expect that either (a) only the senior devs are writing unit tests for their Rx code, or (b) only the senior devs are writing Rx.

My personal feeling here is that we are probably promoting writing code in such a way that it will likely result in a more difficult time for our more junior devs, leading to more bugs, slower velocity, and decreased maintainability.

We might want to consider having our best practices include not writing complex Rx code at all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant