Las extensiones reactivas (Rx) son un conjunto de métodos e interfaces que se utilizan para resolver muchos problemas simples y complejos de los desarrolladores. Su uso con Java le permite administrar múltiples acciones ocurridas debido a varios eventos del sistema simultáneamente. Te ayuda a escribir código elegante manteniendo la simplicidad. Hoy, compartiré cinco razones sólidas por las que deberías usar RxJava en tus proyectos.
¿Por qué debería usar RxJava en sus proyectos?
1. Enfoque funcional
La programación funcional incluye el uso activo de funciones como parámetros, así como los resultados en otras funciones. Por ejemplo, Mapa es una función de orden superior que se usa en varios lenguajes de programación, y si se aplica a todos los elementos de una lista, devolverá una lista de resultados. Puedes entender esto mirando el ejemplo dado abajo.
En general, si está familiarizado con la programación funcional y entiende los conceptos de mapas y códigos zip, aprender RxJava será mucho más fácil para usted.
Ejemplo:
Observable.from (jsonFile) .map (nuevo Func1 <Archivo, Cadena> () { @ Anular llamada pública de cadena (archivo) { tratar { devolver nuevo Gson (). toJson (nuevo FileReader (archivo), Object.class); } catch (FileNotFoundException e) { lanzar OnErrorThrowable.addValueAsLastCause (e, archivo); } } });
2. Operadores con programadores.
Hay muchos operadores que requieren que defina el Programador para poder utilizar la función. También tienen sus métodos sobrecargados que usan computation (), delay () como Scheduler. Echa un vistazo al código de abajo.
Suscriptor de TestSubscriber <Integer> = nuevo TestSubscriber <> (); Observable.just (1) .delay (1, TimeUnit.SECONDS) .subscribe (suscriptor); subscriber.awaitTerminalEvent (); Logger.d ("LastSeenThread:" + subscriber.getLastSeenThread (). GetName ());
Incluso sin declarar ningún planificador, todavía podemos ver el siguiente resultado.
LastSeenThread: RxComputationThreadPool-1
Siempre debe declarar los programadores requeridos como el tercer argumento si no desea usar el programador de cómputo.
.delay (1, TimeUnit.SECONDS, Schedulers.immediate ())
Además de la demora (), tiene muchos otros operadores que pueden cambiar el Programador, como el intervalo (), rebotar (), temporizador (), omitir (), tiempo de espera () , etc.
3. Easy Caching
El almacenamiento en caché es una de las mejores formas de mejorar el rendimiento de una aplicación. Ayuda a reducir las llamadas de la red almacenando en caché la respuesta de la red y recupera los datos muy rápidamente si ya está almacenado en caché. Hay dos tipos de almacenamiento en caché: el caché de memoria que guarda los datos en la memoria de la aplicación y el caché de disco que guarda los datos en el disco.
Lea también: Los 5 mejores IDE de código abierto para el lenguaje de programación Java
4. Temas
Si está trabajando con objetos, también debe saber que la secuencia de cambios en los datos enviados al siguiente tema de forma predeterminada se ejecutará en el mismo subproceso. Incluso se usa para llamar al método Next (), hasta que el operador observeOn () no aparezca en esta secuencia.
BehaviorSubject <Object> subject = BehaviorSubject.create (); tema .doOnNext (obj -> Logger.logThread ("doOnNext")) .subscribeOn (Schedulers.io ()) .observeOn (Schedulers.newThread ()) .subscribe (nuevo suscriptor <Object> () { @Anular public void onNext (objeto o) { Logger.logThread ("onNext"); } }); subject.onSiguiente ("str"); Handler handler = new Handler (); handler.postDelayed (() -> subject.onNext ("str"), 1000);
Tanto ObservOn como subscribeOn están presentes aquí, pero el resultado es el siguiente:
doOnNext: RxCachedThreadScheduler-1 enSiguiente: RxNewThreadScheduler-1 doOnSiguiente: main enSiguiente: RxNewThreadScheduler-1
Simplemente significa que cuando nos suscribimos al tema, devuelve el valor inmediatamente y luego se procesa en un hilo de Shedulers.io (). Después de eso, cuando el siguiente mensaje parece estar sujeto, usamos el hilo para llamar aNext ().
5. Arroyos asíncronos.
Supongamos que necesita enviar una solicitud a la base de datos para comenzar a recibir los mensajes y la configuración de inmediato. Una vez que se complete todo el proceso, debería mostrar un mensaje de bienvenida en la pantalla.
Si desea lograr esto en Java, deberá seguir un largo proceso de ejecución de 3 a 4 AsyncTasks diferentes, creando un semáforo que esperará a que se complete la configuración y las solicitudes de mensajes, etc.
Pero con RxJava, podemos optimizar el proceso en el que el código es como un subproceso ubicado en un lugar y se está construyendo sobre la base de un paradigma funcional.
Recomendado: 5 mejores alternativas al lenguaje de programación Java
Conclusión
Estas fueron algunas de las razones sólidas para usar RxJava en su proyecto. Si aún piensa que es difícil o no tiene la experiencia suficiente, recuerde, incluso si hace algo mal al usar RxJava, no será el fin del mundo. El conocimiento de RxJava puede ayudarlo a solucionar muchos problemas fácilmente.
0 Comentarios