Analicemos lo que sucedió para tomar una determinación.
- Los navegadores se volvieron más rápidos y mejores al ejecutar scripts
- Las bibliotecas están en transición a ECMA6 y están pisando ligeramente con polyfils y se transpiran según las indicaciones, casi sutilmente por las grandes voces en el W3C
- En algún momento, la gente pensó que sería una buena idea manejar mucha lógica en el cliente para las aplicaciones
- Los sockets web hacen que la comunicación sea muy rápida, y todavía tenemos sondeos largos
Ahora, la evolución de ECMA6 y sus amigos transpuestos (como el mecanografiado) está moldeada por el hecho de que javascript no tiene tipo y es muy difícil de depurar en muchos casos, especialmente cuando se usan promesas o corutinas o hilos o bucles de eventos.
Entonces, desglosándolo aún más, lo que una vez hicimos en los hosts, como objetos simulados, interfaces, etc., necesitará replicación en la capa del cliente y, por lo tanto, los patrones de diseño que lo respalden probablemente ganen para aplicaciones más grandes y complicadas.
- Hay muchos ciclos de vida de desarrollo de software. ¿Pero el desarrollo del juego tiene un ciclo específico?
- ¿Es Scrum para la innovación?
- ¿Deben los ingenieros de software saber un par de idiomas?
- ¿Qué curso debo tomar para ingresar al campo del software siendo un graduado de ingeniería mecánica?
- ¿Qué tan importante es evitar la recursividad recursiva?
Podemos encontrar marcos populares que no están relacionados con la interfaz de usuario que utilizan varias técnicas en términos de patrones de diseño análogos a lo que la gente está haciendo en la capa de interfaz de usuario de hoy.
Ahora, en lo que respecta a IO, es una pequeña estrategia y un poco de sabor, ¿no? A veces, un bucle de evento tiene sentido sobre un hilo; pero no es que ambos no puedan seguir un patrón observable. Francamente, una corutina es solo un hilo de diseño para mí.
Para la composición de vistas, se trata de cuánto necesita compartir. ¿Quieres la conveniencia de reunir muchos widgets? ¿Estás listo para probar esas piezas independientes y las versiones integradas? Puedes ver los pros / contras.
Para la arquitectura, puedo imaginar crear una inyección de dependencia con todo esto, por lo que probablemente pueda ir de cualquier manera.
Por lo tanto, es una respuesta larga decir que depende de usted en este momento, mientras las cosas continúen de esta manera, todas tienen potencial. Apostaría a que las cosas se parecen más a hilos reales con el tiempo, pero compararlas con los bucles de eventos no es exactamente una comparación justa, apostaría a más soporte de depuración para esos hilos, mejores excepciones, los componentes son un poco más populares porque más compartible y algo más como MVP solo porque está un poco mejor segregado para inyección.
Justo donde estoy tirando mis fichas si debo apostar.
En cuanto a las interfaces nativas; Usted está a merced de las bibliotecas que son nativas. A menudo intentan manejar los subprocesos por ti porque quieren reducir tu tensión cognitiva y porque quieren que las aplicaciones funcionen cuando llegan a una tienda de aplicaciones, no un punto muerto.
De hecho, casi todo lo relacionado con cosas nativas está evolucionando para simplificar los patrones y manejar la memoria para usted.
Por lo tanto, el camino de menor resistencia suele ser más popular, y ese camino lo dictan quienes escriben el lenguaje y las herramientas; Así que argumentaría que, a pesar de que tomarán prestado de lo que es popular y fácil de entender, saltarás a los patrones que Apple o Google quieren que saltes porque solo tienes mucha influencia.