¿Debo aprender el desarrollo de back-end antes de comenzar a aprender Angular 2?

La respuesta directa es “no”. No es necesario “aprender” el desarrollo de back-end “antes” de aprender Angular. (Y si realmente va a aprender el Angular 2.x actual, actualmente 4.3, únase al club llamándolo simplemente “Angular” – y llame al antiguo Angular 1.x “AngularJS“. Obteniendo finalmente esta terminología completa alrededor es del interés de todos.)

PERO…

Lo llaman “desarrollo front-end” por una razón. Es el lado del cliente de una experiencia que esencialmente entrega el contenido de una base de datos remota que reside en el “lado del servidor”. Una ventana a la base de datos, por así decirlo. Más allá de la aplicación más trivial, la mitad del desarrollo del lado del cliente está creando la experiencia de visualización / interactiva de la interfaz de usuario y la otra mitad está configurando la comunicación / integración bidireccional con un “back-end” desde el que se solicitarán datos (o incluso para qué datos de usuario se agregarán).

Por lo tanto, incluso si no necesita saber cómo escribir realmente un “back-end”, es decir, un servidor http enrutado que implementa una API REST con funcionalidad CRUD, tal vez utilizando node.js / express.js, debe comprender lo suficiente sobre La naturaleza del back-end para comprender lo que está haciendo para crear la experiencia del usuario que su aplicación Angular del lado del cliente está buscando ofrecer.

El noventa y nueve por ciento de las veces, el “producto” que le ofrece al usuario es el acceso a una base de datos – de tweets, correos electrónicos, información del producto, etc. – y la aplicación del cliente es el medio por el cual el usuario busca , recibe e interactúa con esos datos. Esta realidad fundamental se lleva mejor a casa y se hace intuitiva para el desarrollador front-end al tener al menos un fuerte sentido de cómo

  1. el cliente solicita datos del backend (o le envía datos en formato JSON)
  2. el servidor interpreta la solicitud, generalmente interpretando la URL como una “ruta” a la funcionalidad especificada
  3. el servidor interactúa con el sistema de gestión de la base de datos de acuerdo con la funcionalidad de la ruta, haciendo uso de la “traducción” de ORM de los datos entre su anterior en el servidor y su forma en la base de datos
  4. el servidor devuelve los datos deseados a la aplicación cliente en formato JSON

Esto es cierto para cualquier tecnología front-end.

Pero si está utilizando Angular específicamente, suponga que es un requisito absoluto que aprenda a usar Firebase como una solución “servidor / base de datos” totalmente integrada, utilizando el paquete AngularFire2 NPM . Esto no solo hará que todo esto sea concreto de la manera más simple posible, sin requerirle que cree una API REST implementada en un servidor enrutado e incluso piense en las traducciones ORM; también puede descubrir que Firebase resolverá todas sus necesidades de persistencia de datos de back-end de la manera más emocionante y revolucionaria, incluso ofreciendo actualizaciones en tiempo real a sus clientes según sea necesario en muchos contextos de comunicación o datos “en vivo”. Google está impulsando Firebase tan duro como Angular, con muy buenas razones. El modelo de datos fundamental en Firebase, el del árbol JSON, es una desviación radical de todos los modelos SQL y noSQL, y no será adecuado para todos, especialmente cuando se necesita una gran flexibilidad de consulta de datos. Pero no lo sabrá hasta que aprenda lo suficiente para comprender los problemas, y cuando Firebase tenga sentido, gran parte de su diseño angular frontal se construirá en torno a esa premisa.

En resumen, todo el enfoque de la API REST para la interacción del lado del cliente con un servidor / db “back-end” ha sido exitoso en gran parte porque permitió a los desarrolladores front-end tratar el back-end como un “recuadro negro” – como si eran una mera biblioteca de llamadas a funciones cuyo funcionamiento interno no necesitaba entender. Pero este enfoque es un poco demasiado simplista, y ahora hay alternativas como Firebase a todo el concepto fundamental.

En pocas palabras: el aspirante a desarrollador Angular debe tener al menos la capacidad de leer y discutir de manera inteligente un repositorio de un servidor http node.js / express.js, preferiblemente escrito en TypeScript usando ts-node, e implementando una API REST contra un DBMS estándar (postgres, mongo, etc.). Él o ella debe poder implementar un back-end simple de Firebase usando AngularFire2 para asegurarse de que Firebase como una opción de back-end se entienda bien y esté potencialmente disponible.

La forma de obtener esta educación de alguien que realmente conoce los estándares es de la Universidad Angular. Tienen un curso Angular App plus Firebase que no tiene comparación, y un curso formalmente llamado Complete Typecript 2, pero que en última instancia trata sobre escribir un backend REST (express.js plus postgres) en PostScript, con un pequeño cliente front-end angular para probar ese backend Este último curso realmente te dará una idea si estás listo para jugar con los niños grandes. Solo el acceso al repositorio vale el pequeño precio de admisión solo para comprender cómo se organiza un proyecto como este (tanto en el frente como en el fondo) en el contexto de AngularCLI. He pasado al menos cien horas estudiando estos dos videos / repositorios de cursos en particular y, por lo tanto, hablo desde una experiencia concreta. Este es el verdadero negocio si desea ponerse al día.

No es necesario tener un sólido conocimiento de back-end antes de aprender el desarrollo front-end. Muchos desarrolladores en estos días se centran solo en el front-end, y eso está bien.

Sin embargo, debe saber cómo crear una API REST en el idioma de back-end de su elección (use JavaScript y Node.js / Express.js para esto, realmente, cuando aprenda solo porque es fácil de configurar y usar) antes que usted profundizar demasiado en el aprendizaje de Angular 2 o cualquier otra biblioteca o marco front-end. ¿Por qué? Porque gran parte de lo que hará en el front end es presentar datos del back end al cliente. Por lo tanto, necesita saber cómo hacer llamadas AJAX. Al aprender, eso significa que necesita saber cómo se servirán los datos y poder crear API para servir los datos a sus componentes front-end para que pueda practicar con ellos. También debe poder configurar un requisito de autenticación y quizás requisitos de autorización para los puntos finales de la API, de modo que pueda practicar pasar esos datos de forma segura desde el cliente, y practicar el manejo de autenticaciones fallidas o usuarios que no están autorizados para acceder a un recurso, y mostrando los mensajes correctos en el front-end basado en el código HTTP devuelto desde el back-end.

No, no necesita tener conocimientos de desarrollo de back-end antes de comenzar con angular 2, pero un poco de conocimiento sobre la arquitectura de API y MVC lo ayudará mucho.

Si trabaja en un equipo, enfocándose en el front-end, no necesita aprender back-end antes de aprender Angular 2. Sin embargo, aún necesita comprender cómo funciona HTTP para poder depurar sus aplicaciones Angular 2 sin problemas. Por el contrario, si necesita codificar de principio a fin, debe aprender tanto el front-end como el back-end para poder codificar aplicaciones web completas.

No apueste a obtener una buena comprensión de Ajax y API relajantes y diferentes enfoques de autenticación y autorización. Podría ser bueno jugar con NodeJs jugar con encabezados CORS y lo que significa

El hecho de que estés haciendo estas preguntas indica que no eres consciente de lo que hace angular 2.

Te sugiero que leas más sobre qué es angular y qué hace y por qué lo necesitamos

PD: no necesitas aprender el desarrollo de Backend para usar Angular. Si tu próxima pregunta es ¿por qué? . Por favor lea mi respuesta anterior