Soy un desarrollador de Android que pasa a un rol de servidor de fondo. ¿Qué cosas debo aprender primero?

Recomendaría echar un vistazo rápido a las nuevas API de Java 8, a menos que ya haya utilizado la cadena de herramientas Jack, como Stream, Lambdas y Opcional. Estos proporcionan mejoras significativas en la calidad de vida y el código, y generalmente se usan en desarrollos de microservicios más nuevos.

Más allá de eso, un buen comienzo sería el marco de Spring, y una gran cantidad de resultados para “Microservicios [1] con [2] Spring [3]”. También hay muchas guías [4] en el sitio web de Spring.

Diseñar un buen microservicio también generalmente requerirá que exponga una API decente y posiblemente escriba sus datos en una base de datos (SQLite ya no lo cortará). Por lo tanto, recomendaría buscar Swagger [5] o RAML [6], que son herramientas utilizadas para modelar API RESTful (comúnmente un elemento básico de MSA). Es un poco más difícil dar una recomendación general de back-end; Los artículos transaccionales pueden funcionar con Hibernate y JPA, aunque para backends como Cassandra puede ser más difícil.

Dependiendo de su cadena de herramientas, es posible que también desee ver Maven o Gradle, comúnmente utilizados en el desarrollo de back-end, y, por supuesto, la JVM se comporta de manera un poco diferente a la VM Dalvik; tenemos diferentes recolectores de basura que detendrán al mundo por diferentes duraciones, montones más grandes que pueden absorber muchos más datos (y detendrán al mundo por más tiempo si no tienes cuidado), y por supuesto debes ser estricto al usar el Rutas o API de archivos si necesita acceso a archivos porque alguien (podría ser usted, podría ser otra persona) puede construir / desarrollar en Windows, pero la implementación es casi siempre en Linux, ya que es más barato.

Notas al pie

[1] Microservicios con Spring

[2] Spring Boot: Creación de microservicios en Java – Integración DZone

[3] Disyuntor

[4] Guías de primavera

[5] El marco más popular del mundo para API.

[6] Bienvenido

Dijiste backend y por eso supongo que no tendrías que conocer el stack tecnológico de la interfaz.

Como dijiste Microservicios, harás bien en acertar con los siguientes conceptos:

  • Como has trabajado en el desarrollo nativo de Android, supongo que te sientes muy cómodo con Java como lenguaje de programación
  • Aprende OOP. Ayuda a obtener y comprender correctamente el modelado de su dominio.
  • Familiarícese con el sistema operativo Linux y los comandos de shell y su entorno.
  • REST / SOAP (según la empresa) para servicios web. Ensuciarse con SpringBoot. Es una versión ligera de Spring-stack. Más fácil de construir y desplegar. Sin embargo, es obstinado. La buena noticia es que es popular y bastante fácil conseguir que subas a bordo. Su marco de competencia es DropWizard. Elige entre los dos.
  • Conceptos RDBMS a alto nivel, si no está escribiendo consultas SQL. La mayoría de las tiendas usan un marco de mapeo OR u otro.
  • Obtenga una buena comprensión de un marco de mapeo OR. Hibernate es bueno para esto.
  • Obtenga una buena comprensión de la arquitectura MVC. Spring MVC es un marco popular para esto.
  • Comprenda lo que significa implementar un sitio web en el servidor. Haga las cosas de principio a fin con un pequeño proyecto para esa experiencia holística.
  • Bonificación: familiarícese con HTML, CSS y Javascript. ¡Ayuda!
  • Bonificación: familiarízate con Vagrant. Estuvo en zumbido durante mucho tiempo. No estoy seguro ahora con herramientas de containeación como Docker.

Eso debería ser. No se preocupe demasiado por las diferentes opciones de marcos. Elige uno en cada capa. Ensuciate para entender cómo funciona eso. Y eso debería ser todo.

Para el aprendizaje avanzado, es posible que deba aprender lo siguiente:

  • Haciendo TDD (si te lo perdiste en Android, no hay escapatoria en el lado del servidor). Aprende a hacerlo con herramientas como JUnit, Mockito.
  • Comprensión de la integración continua. Utilice CircleCI free thingy para su práctica y comprensión.
  • Comprender la implementación continua. Intente usar CircleCI e implemente su aplicación en el entorno Heroku. Heroku todavía tiene un nivel libre, espero.

Eso es. La mejor apuesta después de todo, es asistir a entrevistas y descubrir las brechas por ti mismo. Saludos y buena suerte!