Usa librerías y frameworks para resolver problemas.
Entonces no lo hagas
Hay muchas personas que son excelentes para afrontar los desafíos de front-end, pero no paran de sentirse cómodos con el JavaScript de vainilla. Si bien no hay un “problema” con eso, si quieres llegar a un nivel más avanzado con JavaScript, querrás entender cómo resolver esos desafíos sin abstracciones.
Mi caso favorito a mencionar es jQuery. Normalmente tiene dos casos de uso: manipulación de DOM y AJAX. Es fácil de incluir en una página web (etiqueta de script simple) y es necesario para algunas bibliotecas CSS comunes. Un subconjunto de él se utiliza en AngularJS. Es bastante prolífico.
- ¿Cuál es la mejor manera de aprender a programar en línea sin perder la motivación?
- ¿Qué conocimiento de la ciencia básica te ayuda a aprender a cocinar más rápido?
- ¿Cuál es el mejor idioma para aprender si quiero aprender arduino?
- Como aprender a jugar ajedrez en mi mente.
- Tengo alrededor de 6 horas extras a la semana. ¿Qué destreza / deporte me recomiendas?
Y, sin embargo, muchos desarrolladores jóvenes confían demasiado en ello .
He hecho algunas entrevistas (para las compañías de las que reconocería el nombre) y es bastante sorprendente lo bien que la gente puede decirme la diferencia entre “dobles iguales” y “triple iguales” (igualdad entre el mismo nivel y la igualdad estricta), y sin embargo no pudieron No me digas cómo seleccionar un elemento por su ID sin jQuery .
// jQuery
$ (‘tagName’);
$ (‘. className’);
$ (‘# idName’);
// JavaScript
document.getElementsByTagName (‘tagName’);
document.getElementsByClassName (‘className’);
document.getElementById (‘idName’);
jQuery hace algunas cosas excepcionalmente bellas. El encadenamiento de métodos es fantástico. Aprovechar las promesas es maravilloso. Y admito que el uso de los selectores de CSS para obtener elementos es intuitivo y menos detallado. Pero la mayoría de los desarrolladores junior a los que he entrevistado no lo usan por ninguna de estas razones . Lo usan porque es todo lo que saben .
Si un desarrollador junior necesita seleccionar un elemento, su primer instinto es confiar en un código de 30kb que no comprenden.
// los desarrolladores junior importan 30kb de jQuery para hacer esto
función $ (e) {
interruptor (e.charAt [0]) {
caso ‘.’: devolver document.getElementsByClassName (e.slice (1));
case ‘#’: return document.getElementById (e.slice (1));
predeterminado: devolver document.getElementsByTagName (e);
}
}
Nuevamente, estos son candidatos que llegaron a la pantalla del teléfono conmigo para puestos de desarrollador junior que están pagando> $ 80,000 en una compañía que está bien establecida en la comunidad tecnológica.
Eso es un problema.
Esta tendencia continúa para un gran volumen de JavaScript. La gente no sabe cómo funciona AJAX en jQuery. Ellos no saben cómo funciona el alcance de $ en Angular. No saben cómo funciona la diferenciación en React. Pero dependen de que trabajen .
Cuando llegue a un punto en el que dependa de que el código de otra persona funcione, tómese un momento para detenerlo y reescribirlo sin otras bibliotecas. No se preocupe por quedar atrapado en casos extremos o similares, solo consiga que funcione una versión básica. ¿Usas mucha función de map
de JavaScript nativo? Recrearlo ¿Usas mucha función after
de Lodash? Recrearlo ¿Ciclo de digestión de los angulares? Recrearlo Encontrará una gran cantidad de bibliotecas y marcos asombrosos de los que muchas personas dependen, en realidad son solo conceptos simples con algunas características ingeniosas y que emiten errores más agradables de los que se puede molestar en escribir por su cuenta.
La comprensión de JavaScript no solo hace que comprenda mejor el código que no necesita importar de las bibliotecas, sino que también le hace apreciar realmente lo que otros han hecho por usted y los respeta más cuando va a agregar sus contribuciones de código abierto a sus proyectos.
Aprender JavaScript, sin toda la abstracción, definitivamente acelerará tu juego de desarrollo. Si tienes alguna pregunta no dudes en pegarme en los comentarios!