1. Inicio
Elixir Chile 馃嚚馃嚤 tiene el objetivo de crear artefactos de software, documentaci贸n y actividades para el fomento de la tecnolog铆a Elixir en el pa铆s.
1.1. Comunidad
1.1.1. Github
Nuestros Repositorios.
1.1.2. Discord
Unirse a Discord de Elixir Chile.
1.1.3. Github Wiki
La Wiki sirve para compartir peque帽os snippets de c贸digos, como tambi茅n tutoriales y otros tips.
1.1.4. Eventos
Los eventos, meetups y otros relacionados estar谩n en un tablero de proyectos de Github para su f谩cil organizaci贸n.
1.2. Comunidades Amigas
1.2.1. Elixir Oficial
El chat oficial de Elixir. Quiz谩s puedas visitar el canal #chile
.
1.2.2. Elixir Japan
El canal de #autoraceex
es un buen sitio para compartir el amor por Elixir.
1.2.3. Devs Chile
Comunidad de devs chilenos. No tiene canal de #elixir
馃挃.
1.2.4. JavaScript Chile
Otra comunidad de devs chilenos.
2. Est谩ndares
En 馃 Elixir Chile 馃嚚馃嚤 buscamos aumentar la cantidad de devs que sepan utilizar Elixir. Con el objetivo de brindar m贸dulos de apoyo y de ejemplo, se debe confeccionar artefactos de software de alta calidad, utilizando las herramientas y buenas pr谩cticas que se esperan de un producto que pueda ser usado en ambientes de producci贸n.
Para esto deben cumplir con lo siguiente:
-
Correctamente documentados utilizando HexDocs y Asciidoc cuando HexDocs no sea apropiado.
-
Funciones con especificaci贸n y tipos Typespecs.
-
Seguir buenas pr谩cticas de TDD y tener un buen puntaje de coverage.
-
Utilizar Credo para an谩lisis de c贸digo est谩tico.
-
Seguir las recomendaciones de DDD cuando sea prudente.
-
Utilizar la licencia Mozilla Public License v2.0 para el c贸digo y Creative Commons Atribuci贸n-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) para los artefactos como documentaci贸n, im谩genes u otros.
-
Soportar como m铆nimo, las 煤ltimas dos versiones del lenguaje.
-
Utilizar Romantic Versioning, partiendo desde la version 1.0.0.
-
Utilizar un Changelog.
-
Utilizar un archivo de
.editorconfig
. -
Utilizar Trunk Based Development para las ramas. Siendo la rama principal llamada
main
. -
Utilizar Conventional Commits al momento de hacer squash and merge del PR (leer traducido). Tambi茅n leer la gu铆a https://www.freecodecamp.org/news/writing-good-commit-messages-a-practical-guide/.
-
Seguir, en lo posible, la filosof铆a Unix.
-
Seguir, de preferencia, la gu铆a de estilo: Compass.
-
Utilizar la menor cantidad de dependencias externas posibles.
-
Utilizar el lenguaje ingl茅s para el c贸digo, commits y documentaci贸n de artefactos de software.
-
Utilizar el namespace elixircl_<app> para el nombre de paquetes en hex y ElixirCL<app> como prefijo de los m贸dulos. Ejemplo: elixircl_rut, ElixirCLRut.
2.1. Licencias
Las licencias utilizadas ser谩n para documentos y para c贸digo fuente.
2.1.1. Documentos
A menos que se especifique lo contrario, Los documentos que no sean c贸digo estar谩n bajo la Licencia Creative Commons Atribuci贸n-No-Comercial-Compartir-Igual 4.0 Internacional
2.1.2. C贸digo Fuente
A menos que se especifique lo contrario, todo el c贸digo fuente est谩 bajo a licencia MPL v2.0 (Mozilla Public License Version 2.0).
Es una licencia que es f谩cil de cumplir. Puedes mezclar la licencia MPL v2.0 con cualquier otra licencia, propietaria u de otra 铆ndole. Siempre y cuando se cumplan las siguientes condiciones:
-
Si no modificas los componentes del artefacto de software, solo deber谩s mostrar un enlace al c贸digo fuente del artefacto, de preferencia en un lugar claramente visible dentro del software, por ejemplo el README o secci贸n de autores.
-
Si modificas los componentes de este artefacto, debes solamente proporcionar libremente tus cambios al artefacto (no al proyecto en su totalidad).
2.2. C贸digo de Conducta
Puedes leer el c贸digo completo ac谩: https://github.com/ElixirCL/code-of-conduct
En resumen:
Creemos en la amabilidad, respeto y buena onda en todos nuestras interacciones tanto online como presenciales. Por favor ser lo m谩s buena onda posible con todos los participantes de la comunidad y fuera de esta.
3. Proyectos
C贸digos que son un proyecto completo y funcional.
-
https://github.com/ElixirCL/rauversion-phx: Proyecto de Comunidad musical hecho con Elixir.
-
https://github.com/ElixirCL/mate: Un chatbot para Discord que le gusta dar Mates.
-
https://github.com/ElixirCL/rankmode: Un sistema para almacenar puntajes del juego Pump it Up.
4. Ejemplos
C贸digos que resuelven una tarea espec铆fca y sirven de ejemplo o para ejercitar.
-
https://github.com/ElixirCL/surface-hackernews: Un ejemplo de MVVM con Phoenix y Surface.
-
https://github.com/ElixirCL/surface-practice: Pr谩cticas de Phoenix con Surface.
-
https://github.com/ElixirCL/weekly-2022: Peque帽os ejercicios resueltos con Livebook.
-
https://github.com/ElixirCL/msn-chatbot: Integraci贸n de ChatGPT con MSN Messenger.
-
https://github.com/ElixirCL/kombucha: Un lenguaje de programaci贸n con probi贸ticos.
-
https://github.com/ElixirCL/placesfind: Ejemplo de uso de la Api de Places Find.
-
https://github.com/ElixirCL/chileanbirds: Llama a la API de aves chilenas.
-
https://github.com/ElixirCL/wren-livebook: Ejecuta el lenguaje de programaci贸n Wren en Livebook.
-
https://github.com/ElixirCL/transbank-elixir: Integraci贸n de Webpay con Elixir.
-
https://github.com/ElixirCL/telegraph: Exportador de telegra.ph
-
https://github.com/ElixirCL/rut: Validador de RUT con Elixir.
5. Empresas Internacionales
Empresas que utilizan Elixir en el mundo.
5.1. Consultoras Internacionales
Si se busca asesor铆a o consultor铆a en este lenguaje.
6. Empresas Nacionales
Empresas que utilizan Elixir en Chile. (Se aceptan PRs).
6.1. Consultoras Nacionales
Si se busca asesor铆a o consultor铆a en este lenguaje.
6.2. Startups
Empresas que utilizan Elixir dentro de sus sistemas y proyectos.
7. Aprendizaje
Hay un mont贸n de recursos para aprender Elixir. Tanto de pago como gratuitos, aqu铆 una fina selecci贸n.
7.1. 驴D贸nde aprender?
Te recomendamos utilizar Exercism, resolviendo los problemas podr谩s aprender m谩s el lenguaje.
7.2. Cursos Recomendados
7.3. Libros
-
https://www.manning.com/books/elixir-in-action-second-edition: Introducci贸n al lenguaje. Altamente recomendado.
-
https://pragprog.com/titles/liveview/programming-phoenix-liveview/: Introducci贸n a Phoenix y Liveview. Para los sistemas webs.
-
https://pragprog.com/titles/jgotp/designing-elixir-systems-with-otp/: Libro m谩s avanzado, pero recomendado para el dise帽o de sistemas con Elixir.
-
https://dashbit.co/ebooks/the-little-ecto-cookbook: Libro gratuito sobre el uso de Ecto.
-
https://pragprog.com/titles/sgdpelixir/concurrent-data-processing-in-elixir/: Sobre procesamiento de datos en streaming. Explica muy bien los mecanismos de supervisi贸n.
7.4. Art铆culos/Gu铆as
-
https://damonvjanis.medium.com/optimizing-for-free-hosting-elixir-deployments-6bfc119a1f44
-
https://www.cogini.com/blog/deploying-your-phoenix-app-to-digital-ocean-for-beginners/
-
https://neiro.io/2018-04-28-elixir-code-quality-tools-and-checks.md.html
-
https://preslav.me/2020/09/06/elixir-is-not-ruby-elixir-is-erlang/
8. Herramientas Recomendadas
-
https://www.phoenixframework.org/: Para desarrollo de aplicaciones web.
-
https://surface-ui.org/: Complemento de Phoenix para Renderizar HTML basado en Componentes (Similar a React.js).
-
https://www.ash-elixir.org/: DSL para la creaci贸n de APIS.
-
https://thinkingelixir.com/petal-stack-in-elixir/: Stack recomendado PETAL.
-
https://www.nerves-project.org/: Para desarrollo IoT.
-
https://github.com/elixir-desktop: Para aplicaciones de escritorio y mobile.
-
https://github.com/elixir-nx: Para desarrollo de Machine Learning.
-
https://www.grisp.org: Para plataformas de sistemas incrustados.
-
https://github.com/burrito-elixir/burrito: Distribuci贸n de aplicaciones.
-
https://www.membraneframework.org/: Para desarrollo de aplicaciones de Streaming multimedia.
-
https://glimesh.tv/: Para desarollo de live streaming.
-
https://github.com/alex-min/ex_platform: Boilerplate para Phoenix.
-
https://hexdocs.pm/rexbug/readme.html: Ayuda en el Debug de aplicaciones.
8.1. Hosting
-
VPS (Digital Ocean, Linode, Vultr).