refactorización rápida y segura
refactorización—hacer cambios significativos en la base de código existente, a veces sin cambiar el comportamiento externo del código—a menudo es una parte «peligrosa» del desarrollo porque es demasiado fácil romper algo. Sin embargo, en lenguajes funcionales e inmutables como elixir, la refactorización y las pruebas son mucho más simples. Puede hacer cambios radicales sin temor a empeorar las cosas accidentalmente.
en Very, practicamos el desarrollo impulsado por pruebas (TDD)., Todas las pruebas se escriben antes de escribir una sola línea de código. Una vez que estas pruebas (esperadamente) fallan, escribes el código que las hace pasar. Este proceso garantiza que tenga pruebas para su código, lo que hace que la refactorización sea fácil y rápida.
lenguaje basado en procesos
ser capaz de paralelizar cargas de trabajo y usar varios procesos es nativo de elixir, un rasgo que hereda de Erlang.
normalmente, el código que es de subproceso único en lenguajes como Java y no está destinado a manejar cargas altas tendrá que ser reescrito una vez que el servicio comience a escalar., En elixir, necesitarás hacer algunos cambios aquí y allá, pero mucho menos que en otros lenguajes de programación.
elixir hace uso del framework Phoenix, un framework web escrito en Elixir para desarrolladores de Elixir. Con Phoenix, cada solicitud recibe su propio proceso que es extremadamente rápido con un bajo consumo de memoria. Esto le permite crear miles de procesos rápidamente sin preocuparse por su impacto en el rendimiento.
paralelismo vs.concurrencia
Los sistemas paralelos pueden tener problemas de latencia y capacidad de respuesta porque una sola tarea requerirá mucha potencia de cálculo., En Elixir, sin embargo, el programador de procesos desplazará preventivamente el control a un proceso diferente. Incluso cuando su aplicación está bajo una carga extrema, un solo proceso lento no puede obstaculizar todo el sistema.
como resultado, Elixir casi garantiza una baja latencia para su aplicación. Esto es muy importante para las aplicaciones web modernas que necesitan proporcionar una experiencia consistente a todos los visitantes.
tolerancia a fallos
con muchos lenguajes de programación, un error en un proceso hará que toda la aplicación se bloquee y falle. En Elixir, sin embargo, el fracaso está contenido en un solo proceso., Si un usuario en una aplicación web hace una solicitud con un error en ella, ese proceso se bloqueará, pero todos los demás usuarios permanecerán conectados. Elixir le permite limitar el «radio de explosión» cuando un proceso falla.
¿cuándo debe usar elixir?
primero, discutamos cuándo no debe usar elixir. Los sistemas que están vinculados a la CPU por una tarea inherentemente secuencial no son una buena coincidencia para Elixir. Si una tarea individual es difícil de calcular y requiere una gran potencia de CPU, como problemas matemáticos avanzados, entonces debe buscar otro lenguaje de programación.,
sin embargo, casi cualquier caso de uso que no esté ligado a la CPU, y no sea inherentemente secuencial, es probablemente una buena opción para Elixir. En particular, Elixir funciona bien para sistemas que tienen mucho tráfico, tienen muchas conexiones o están vinculados a E/S. Esta descripción se aplica a muchos casos de uso modernos: backends de chat (por ejemplo, Facebook Messenger y Whatsapp), servidores web, API, aplicaciones web y más.
Elixir e IoT
los lenguajes de programación de bajo nivel como C han sido tradicionalmente la opción preferida para el desarrollo de IoT (Internet de las cosas)., Aunque estos lenguajes de bajo nivel son poderosos y te dan mucho control, también son difíciles de trabajar y fáciles de fallar.
elixir también se puede utilizar en firmware IoT integrado utilizando el marco Nerves. Como un lenguaje de alto nivel, Elixir le permite escribir código de alta calidad más rápidamente. Aquí en Very, por ejemplo, recientemente usamos Elixir para construir un quiosco de cerveza de autoservicio IoT potenciado por el reconocimiento facial. Dada nuestra experiencia con numerosos clientes, vemos un caso convincente para usar Elixir y Nerves en el proceso de desarrollo de aplicaciones IoT.,
Pensamientos finales
elixir es un lenguaje de programación potente y dinámico que se basa en la fuerza de predecesores como Ruby y Erlang. Es una excelente opción para cualquier situación en la que el rendimiento y la escalabilidad son de primera calidad, incluidas las aplicaciones web y los proyectos de desarrollo de IoT.
para obtener más información sobre Elixir y si podría ser una buena opción para su proyecto de IoT, comuníquese con el equipo hoy mismo o descargue nuestra Guía de desarrollo de IoT.