¿Es importante aprender un lenguaje de consulta estructurado para el desarrollo del backend?

Sí. Seguro.

Es importante conocer el SQL real que hace el trabajo por usted

Aunque hemos estado viviendo en el mundo de las ORM y las bibliotecas que encapsulan las consultas SQL subyacentes que se forman cuando interactúa con un RDBMS.

En la superficie, consultar la base de datos con el SQL generado parece sencillo, pero a menudo nos perdemos una posible optimización y deberíamos estar en condiciones de decir las deficiencias del ORM que se está utilizando.

Durante mucho tiempo, antes de darse cuenta de este cuello de botella, los marcos web populares como Rails y Django solían enviar ORM que encapsulaban las interacciones de DB del usuario, lo que facilitó a un ingeniero promedio el desarrollo del lado del servidor.

Habilitar las interacciones a través de las API REST fue una cuestión de pocos golpes de tecla.

Sin embargo, hay momentos en que estos ORM no generan SQL optimizado y los usamos en todas partes sin pensar que son solo nuestras consultas las que están ralentizando el sistema.

Un ejemplo clásico

Una tabla de Alumno se asignaría directamente a un recurso de Alumno. Habilitar CRUD y agregar algunas configuraciones fue pan comido.

pero digamos que quería hacer API ligeramente complicadas.

Querías buscar estudiantes y debajo de cada estudiante querías información anidada sobre su escuela.

La mayoría de los ORM consultarían la base de datos por alumno y buscarían los detalles de su escuela y luego generarían el resultado combinado.

Uno no se daría cuenta de esto si la aplicación hasta que la aplicación se vuelve viral y recibe muchos éxitos, los nodos desaparecerían en poco tiempo y vería que las solicitudes caducan con bastante frecuencia.

Esto se puede optimizar fácilmente obteniendo los detalles de los estudiantes de una vez y luego obteniendo los detalles de las escuelas de esos estudiantes en una segunda visita y luego combinando los resultados en código para generar el resultado.

Claro … Por ahora, tanto Django como Rails han optimizado sus ORM para tales casos de uso, pero puede haber más casos en los que uno debería estar en condiciones de decir cuál es el cuello de botella y qué está causando problemas.

Y eso es lo que separa a los ingenieros promedio de los que pueden mirar más allá de lo que el marco hace por ellos.

Y no solo se limita a MySQL y Postgres.

Incluso si está interactuando con MongoDB / Redis o, para el caso, ElasticSearch, debe saber qué está haciendo la biblioteca y estar al tanto de los posibles errores y fallas.

Si y no.

Creo que es importante aprender lo suficiente para realizar consultas y actualizaciones simples, pero no es importante aprender cada pequeño detalle de SQL.

Me resultó más fácil trabajar a partir de unos pocos ejemplos simples, luego expandir mi conocimiento a medida que surgía la necesidad.

Pero todo depende de la naturaleza del trabajo.

Si estaba trabajando en una situación en la que el número de usuarios de VAST está accediendo a cantidades VAST de datos increíblemente complicados, entonces claramente necesitaría un conocimiento exhaustivo de SQL.

Pero si solo usa una base de datos SQL como una forma práctica de almacenar el nombre de usuario y las contraseñas cifradas y similares para un blog de 10,000 usuarios, entonces el conocimiento más básico de SQL será suficiente.

Yo iría con un sí calificado. En principio, podría pasar toda su carrera como desarrollador de back-end y nunca escribir una línea de SQL, pero su elección de trabajos potenciales sería muy limitada y su atractivo para los empleadores potenciales se reduciría enormemente.

No necesita tener el nivel de conocimiento que se esperaría de un DBA, pero muchas, si no la mayoría de las empresas que emplean desarrolladores back-end no emplean DBA especializados, todo el desarrollo y gestión de la base de datos se realiza por desarrolladores back-end.

En las empresas que emplean DBA, son responsables de toda la infraestructura de la base de datos, si como desarrollador de back-end necesita usar esta base de datos, generalmente se espera que escriba su propio código de acceso a la base de datos, los DBA solo se involucran cuando desea realizar cambios en una base de datos e implementar un nuevo software.

Tldr; Si bien puede decirse que nunca puede escribir ningún SQL como desarrollador de back-end, cuanto más SQL conozca, mejor.

Sí, la gente normalmente espera que lo sepas. Puede o no usarlo, pero a menudo discute estructuras de datos y recuperación. También se suele llamar SQL.

More Interesting

Al completar el certificado de back-end de Free Code Camp, ¿debo usar un idioma de back-end que se enseña en mi programa de informática en la universidad?

Si AngularJS es el front-end para el desarrollo, ¿cuál sería la mejor tecnología de back-end?

¿Existe una empresa de alojamiento que no solicite los datos de mi tarjeta de crédito?

¿Cuánto tiempo se puede desconectar el frente y la parte posterior de una solución móvil Meteor?

¿Qué es un back-end?

¿Qué más debe tener en cuenta al crear un sitio web aparte del front-end, el back-end y las bases de datos?

Si eres un desarrollador web full stack, ¿eso significa que aprendes tanto front-end como back-end (ambas pilas)?

¿Necesito aprender un lenguaje de back-end para construir un clon de Wikipedia o sería suficiente un conocimiento de HTML y CSS?

¿Puede un desarrollador back-end de Java (con más de 5 años de experiencia) cambiar de pista al desarrollo de pila MEAN?

¿Cuáles son las mejores soluciones alojadas para el desarrollo front-end en la actualidad? Me gustaría aprender algo como Angular, pero quiero una plataforma alojada que gestione la base de datos y el código de fondo. Sé JavaScript muy bien.

¿Cuál es el camino de aprendizaje agresivo del desarrollo de backend en medio año?

¿Cómo se integra PHP con el front-end de un sitio web?

Cómo aprender el desarrollo web de back-end fácilmente

¿Los programadores de back-end se burlan del diseño de front-end?

¿Cómo se considera PHP Backend?