Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save justiandre/ae1715eccef316dd1cddc01e33eedc42 to your computer and use it in GitHub Desktop.
Save justiandre/ae1715eccef316dd1cddc01e33eedc42 to your computer and use it in GitHub Desktop.
Casos para compartir: Kotlin - Mercado Libre / Shipping Tech - André Justi

logo-github-gist-casos-para-compartir-kotlin

NOTA: Este contenido se puede ver en formato de slide aquí!.


Enlaces y referencias


Contenido

Contexto y motivación

La idea era intentar ser más productivos en algunos tipos de casos de uso de backend, que el GO no nos daba tanta productividad (una queja constante y recurrente dentro del equipo), como aplicaciones estilo CRUD o con mucha interacción con bases de datos, tratando de usar una mejor herramienta para cada situación, al principio pensamos en usar JS con NodeJS, pero como no era el escenario habitual en la compañía y no es un lenguaje que nos traería mucha productividad para lo que queríamos, pensamos en un lenguaje muy extendido en la compañía, en si era Java, entonces pensamos cómo logramos traer todos los beneficios de la JVM aprovechando al máximo lo que ya se ha hecho con herramientas en Meli en una sintaxis más atractiva, hasta que llegamos a Kotlin, donde reúne la riqueza del ecosistema JVM y la productividad de un lenguaje moderno y actualizado constantemente.

Cómo hicimos posible el uso de Kotlin

Después de la presentación al equipo a los líderes de los beneficios y ventajas que esta elección nos traería, presentamos una serie de temas como la historia del lenguaje, comunidad, entrenamiento, ejemplos (Java vs Kotlin vs Go), features, benchmarking actuación, etc., con el objetivo de asegurar que esta sea una escoja correcta y viable y que nos traiga los beneficios imaginados. También hablamos con miembros de otras iniciativas como Seller Invoice y Mercado Shops que ya estaban usando Kotlin, con el objetivo de recoger información y experiencias sobre ese uso.

Con la aprobación de la idea por parte de todos, hicimos un grupo de estudios, con el objetivo de profundizar en el lenguaje y nivelar los conocimientos ya adquiridos. Después del entrenamiento, recopilamos excelentes feedbacks sobre la dinámica del entrenamiento y el uso del Kotlin.

Los números alcanzados con los entrenamientos:

  • 22 presentaciones
  • 20 horas de videos de las presentaciones que servirán como futuras referencias
  • Un promedio de 25 personas por presentación
  • Muchas oportunidades generadas, como algunos servicios ya producidos en Kotlin en producción
  • 93.3% Tiene la intención o le gustaría usar Kotlin en algún proyecto en Meli en el futuro (Datos de feedback)

Como el enfoque inicial era traer más productividad a nuestro día a día, hicimos una guía de desarrollo con las mejores prácticas, estilo de codificación y herramientas a utilizar y también creamos una aplicación de ejemplo que implementa todo lo que se define en guía, el enfoque de esta es tener una referencia fácil de desarrollo, para que mantengamos el mismo estilo en varios proyectos y también tomar la subjetividad de las revisiones de código, normalmente valen sólo lo que se define en la guía.

También se creó un canal en Slack: #tech-kotlin-backend para crear un concepto de comunidad y ayudar a otros interesados en este tema.

Ventajas y desventajas de usar Kotlin

Ventajas

  • Apoyado y mantenido por grandes compañías (Jetbrains, Google, Uber, Netflix etc.)
  • Moderno y constantemente actualizado
  • Curva de aprendizaje muy baja para los desarrolladores Java
  • Una sintaxis simple, concisa y no muy verbosa
  • Interoperabilidad total (100%) con Java
  • Múltiples paradigmas (Funcionales, OO)
  • Enfoque en la Inmutabilidad
  • Features
    • Coroutines
    • Elvis Operator
    • Extension Function
    • Null Safety por padrão
    • One Line Function
    • Scope Function
    • Y varios otros

Desventajas

  • La comunidad de JAVA es más grande que la de Kotlin, así que hay más material disponible para JAVA
  • La velocidad de compilación es inferior a la del JAVA
  • Un gran enfoque en Android
  • Hay muchos desarrolladores de Kotlin en el mercado, pero pocos expertos

Nota: Esto se puede ver con más detalle en este enlace.

Próximos pasos

Difundir más el uso de Kotlin mostrando sus ventajas y apoyar a quienes quieran utilizarlo, y también crear guías de desarrollo con otros conjuntos de herramientas / frameworks.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment