Giter Club home page Giter Club logo

cleanarchitecturemanifest's Issues

Опечатка

public class RegisterUserInteractor {
  
    private UserRepository userRepository;
    private RegisterDataValidator registerDataValidator;

    public TransferInteractor(UserRepository userRepository, RegisterDataValidator registerDataValidator) {
        this.userRepository = userRepository;
        this.registerDataValidator = registerDataValidator;
    }
  
    public Single<RegisterResult> execute(User userData) {
        return registerDataValidator.validate(userData)
                .flatMap(userData -> userRepository.registerUser(userData));
    }
}

Хм, подозреваю что в конструкторе опечатка.

Место BroadcastReceivers в Clean Arcitecture

Добрый день.
Прежде всего, хочу поблагодарить за хорошо изложенный и красиво оформленный материал.

Подскажите, где, в контексте Чистой Архитектуры, следует размещать BroadcastReceiver-ы?
Исследуя этот вопрос, я нашел совершенно противоположные реализации.
В первом случае, ресивер относят к View (располагается в Activity/Fragment) и в методе onReceive() делегируют intent в presenter.

По другой точке зрения, ресивер является компонентом domain слоя.
у третьих, ресивер находится в презентере.

Подскажите, пожалуйста, в какую сторону копать?
Если возможно, с примером

SchedulersProvider can be omitted

SchedulersProvider adds an extra overhead and can be safely ommitted using the following Rule:

public class RxSchedulersRule implements TestRule {
    private final TestScheduler testScheduler = new TestScheduler();
    private final RxAndroidSchedulersHook androidSchedulersHook = new RxAndroidSchedulersHook() {
        @Override
        public Scheduler getMainThreadScheduler() {
            return Schedulers.trampoline();
        }
    };

    public TestScheduler getTestScheduler() {
        return testScheduler;
    }

    @Override
    public Statement apply(Statement base, Description description) {
        return new Statement() {
            @Override
            public void evaluate() throws Throwable {
                RxAndroidPlugins.getInstance().registerSchedulersHook(androidSchedulersHook);
                RxJavaHooks.setOnIOScheduler(scheduler -> testScheduler);
                RxJavaHooks.setOnComputationScheduler(scheduler -> testScheduler);
                RxJavaHooks.setOnNewThreadScheduler(scheduler -> testScheduler);
                base.evaluate();
                RxAndroidPlugins.getInstance().reset();
                RxJavaHooks.reset();
            }
        };
    }
}

Example of usage:

public class UseCaseTest {
    @Rule
    public RxSchedulersRule rxSchedulersRule = new RxSchedulersRule();

    private UseCase useCase;

    @Before
    public void setUp() throws Exception {
        useCase = ...
    }

    @Test
    public void some_usecase_test() throws Exception {
        // preparing
        ...

        // testing
        useCase.execute();
        rxSchedulersRule.getTestScheduler().triggerActions();

        // asserting
        ...
    }

}

Неверное указание цвета

В тексте сказано
Черными стрелками обозначены зависимости одних слоев от других, а красными - поток данных.

Должно быть
Черными стрелками обозначены зависимости одних слоев от других, а синими - поток данных.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.