Introducción al ingeniero de desarrollo web front-end
Introducción al ingeniero de desarrollo web front-end
El front-end web siempre ha ocupado una posición importante. En particular, el rápido avance de la tecnología HTML5 en los últimos años ha permitido un mejor desarrollo de la tecnología web front-end. Los salarios de los desarrolladores web front-end también se han disparado. Echemos un vistazo a algunas breves introducciones de los ingenieros de desarrollo de front-end web. Bienvenido a consultarlas
La diferencia entre front-end y back-end web
Diferencias funcionales <. /p>
En primer lugar, debemos distinguir la diferencia entre diseñador web y desarrollador web. La diferencia entre los dos se refleja principalmente en: uno se refiere a los aspectos visuales o estéticos del sitio web, llamado "front-end" y el otro es el aspecto de codificación invisible del diseño, llamado "back-end". En resumen, las hermosas interfaces de los sitios web son obra de los diseñadores web, mientras que las potentes funciones son obra de los desarrolladores web.
Además de las diferencias funcionales, existen muchas otras diferencias entre ambos. El sitio web de diseño extranjero Downgraf hizo especialmente un gráfico para mostrar que tanto los diseñadores web como los desarrolladores web (programadores) tienen rastrojo, uno no tiene dinero, al otro no le gustan las camisetas con connotaciones y el otro se dedica al diseño de fuentes. codificador; ambos están equipados con su propio equipo, uno debe traer una MacBook Pro y el otro solo elige un teclado pequeño. Además de las diferencias anteriores, también tienen una cosa en común: ¿les tienen miedo a las chicas, lo que parece? ser causado por un desastre de "nerds".
Diferencias técnicas
Echemos un vistazo a los aspectos técnicos y veamos qué capacidades requieren las grandes empresas del personal de front-end y back-end en la contratación real.
Interfaz web:
1. Competente en HTML y capaz de escribir estructuras HTML con semántica razonable, estructura clara y fácil mantenimiento.
2. Competente en CSS, capaz de restaurar el diseño visual y compatible con los principales navegadores reconocidos por la industria.
3. Familiarícese con JavaScript, comprenda el contenido básico de ECMAScript y domine de 1 a 2 marcos js, como JQuery.
4. Tener una comprensión clara de los problemas comunes de compatibilidad del navegador y tener soluciones confiables.
5. Tener ciertos requisitos de rendimiento, comprender las sugerencias de optimización del rendimiento de Yahoo y poder implementarlas de manera efectiva en el proyecto.
Backend web:
1. Competente en jsp, servlet, java bean, JMS, EJB, Jdbc, desarrollo Flex o muy familiarizado con herramientas, bibliotecas de clases y marcos relacionados, como como Velocity, Spring, Hibernate, iBatis, OSGI, etc., y tener un profundo conocimiento de los patrones de desarrollo web.
2. Competente en el uso de sistemas de bases de datos de uso común como Oracle, sqlserver, mysql, etc., y tenga sólidas capacidades de diseño de bases de datos.
3. Se dará prioridad a los solicitantes que estén familiarizados con las herramientas de gestión de configuración de proyectos de Maven, familiarizados con servidores de aplicaciones como Tomcat y Jboss, y que tengan experiencia relevante en el ajuste de carga en condiciones de procesamiento de alta concurrencia.
4. Competente en técnicas de análisis y diseño orientado a objetos, incluidos patrones de diseño, modelado UML, etc.
5. Estar familiarizado con la programación de redes, tener experiencia y capacidad en el diseño y desarrollo de interfaces API externas, y tener un diseño de especificaciones de API multiplataforma y capacidades de diseño de llamadas API eficientes.
En resumen, la diferencia entre los dos es
Funcionalmente, el front-end es el principal responsable del diseño de la interfaz y el back-end es el principal responsable de las funciones subyacentes; la interfaz.
En términos de imagen, el front-end se centra en la forma y la belleza; el back-end se centra en la función y la practicidad (por este motivo, también fui al departamento de I+D de Qiaobutang para una visita presencial). Inspeccionó y descubrió que nuestro ingeniero de front-end compró 2 Macbooks y el ingeniero de back-end compró 2 teclados. ¡Sorprendentemente consistente!)
En la contratación corporativa, los ingenieros de front-end deben dominar JS. Los desarrolladores de back-end deben poder usar JQuery con competencia, comprender CSS y poder utilizar este conocimiento con competencia para realizar trabajos de desarrollo. diseñar, conocer Spring e iBatis, comprender algunos patrones de diseño, etc.
Ya sea front-end o back-end, todos pertenecen a la categoría de desarrollo de software. Por lo tanto, puede consultar "Ingeniero de desarrollo de software" al escribir su currículum, lo cual es muy útil para los niños.
¡Para convertirse en un desarrollador web eficiente, debe trabajar mucho para mejorar sus métodos de trabajo! y Mejorar los resultados laborales. Es inevitable que encuentre algunas dificultades durante el desarrollo. Entonces, ¿cuáles son los principales desafíos que enfrentan el front-end y el back-end? ¡Ven y echa un vistazo conmigo!
Desafíos que enfrenta el desarrollo web front-end
¡Cinco! principales desafíos del desarrollo front-end
El primer desafío: la compatibilidad
Hay muchos tipos de navegadores, incluidos IE, Firefox, Chrome, Opera y muchos navegadores de paquetes de IE, como Sogou, Maxthon y 360, además de versiones para terminales móviles de estos navegadores. Se necesitan estándares web. La mayor parte del conocimiento de front-end es común a todos los navegadores, pero todavía quedan problemas en la historia. Las diferentes versiones de los navegadores tienen diferentes problemas. Especialmente el sistema IE con mayor participación de mercado. Aunque IE 9/10 parece ser bastante estándar, las versiones anteriores tienen sus propios problemas, lo que hace que la compatibilidad con versiones anteriores sea un dolor de cabeza. Si no acumula algo de experiencia, se sentirá confundido al enfrentar enfermedades difíciles y complicadas.
El segundo mayor desafío: la complejidad de la interacción
El nivel de interfaz proporcionado por CSS y DOM es demasiado bajo, y los controles proporcionados por BOM son solo los más básicos, como la entrada. , select y textarea, el propio front-end debe crear efectos de interfaz de usuario un poco más complejos utilizando CSS y DOM. Cuando veo un requisito, el primer paso en mi mente es pensar en cómo usar componentes básicos como CSS y DOM para combinarlos en el efecto final. Lograr el efecto final es en realidad un proceso de "creación", como tabView. , treeView, richEditor, colorPicker, etc. Los componentes que parecen ser comunes en realidad no están disponibles en la interfaz y deben implementarse usted mismo.
El requisito de pegamento del lenguaje front-end es demasiado fuerte. CSS, DOM y JS son tres tecnologías diferentes, que también son las tres habilidades básicas más importantes que se deben dominar en el sistema de conocimiento front-end. El efecto front-end finalmente se presenta mediante la combinación de CSS, DOM y JS. Es difícil de lograr sin una sola tecnología y se deben considerar puntos de conocimiento de múltiples direcciones al mismo tiempo. La programación front-end parece tener tres subprocesos ejecutándose al mismo tiempo y la complejidad aumenta exponencialmente.
El tercer gran desafío: la mantenibilidad del código.
El aumento de la complejidad afecta directamente a la mantenibilidad del código. La combinación de CSS, DOM y JS es tan poderosa. El mismo efecto se puede implementar de muchas maneras completamente diferentes. Cada método de implementación tendrá diferentes dificultades de desarrollo, escalabilidad y mantenibilidad. Hay demasiadas soluciones. Cuando vea un efecto, primero pensará en cómo usar interfaces de bajo nivel en CSS y DOM para lograrlo. Este es un proceso "creativo". En este momento, pueden aparecer muchos métodos de implementación diferentes. Después de crearlo, aún necesita comparar, sopesar los pros y los contras de varias soluciones, y solo después de luchar por un tiempo podrá elegir la solución más adecuada.
Por supuesto, no todos los front-end son perfeccionistas y deben elegir la mejor manera, pero debido a que el front-end es programación GUI, directamente frente a los usuarios, es la parte más directa de la presentación del producto y es la fachada. Debido a esto, la parte delantera también es la parte que es más probable que se modifique repetidamente. Todo programador sabe lo terribles que son las modificaciones repetidas. Si la mantenibilidad no es buena, es simplemente una pesadilla. Por lo tanto, la parte frontal debe prestar atención a la mantenibilidad. No prestar atención a la mantenibilidad equivale directamente a autoabuso.
El cuarto gran desafío: el rendimiento
El quinto gran desafío: el crecimiento personal
Las ideas del desarrollador son muy importantes
Front-end desarrollo, si no hay una idea de diseño general, se convertirá en un programa fragmentado, con un efecto y un montón de código, una función y un montón de scripts, y un requisito lógico. Una vez me encontré con una situación en la que, debido a ajustes de UE, se retuvo todo el código de interfaz, excepto las funciones principales de procesamiento de datos, y se modificó el resto. Básicamente, el desarrollo front-end consta de tres partes: operación DOM, procesamiento de datos e interacción de datos. Si las funciones de estas tres partes se asignan razonablemente, el código front-end se puede expandir y ajustar fácilmente.
El verdadero desafío del desarrollo front-end radica en el pensamiento del desarrollador. La compatibilidad, el diseño, CSS y JS no son problemas. El problema es cómo organizar razonablemente la lógica del lenguaje, cómo abstraer correctamente los módulos en los requisitos, cómo usar el código para procesar, expresar claramente ideas en el código, escribir comentarios y proporcionar. mantenimiento de seguimiento o una idea legible. La cantidad de cambios en el front-end es varias veces mayor que en el back-end. No hay garantía para el front-end, solo se puede modificar continuamente según las necesidades.
Desafíos que enfrenta el desarrollo back-end web
Cinco grandes desafíos en el desarrollo back-end
El primer desafío, el desafío más importante en el desarrollo back-end , proviene de escala.
La expansión de escala, como la expansión de visitas, expansión del almacenamiento de archivos, expansión del volumen de datos, expansión del número de servidores, etc. Un sitio web que se ve exactamente igual en el front-end casi enfrentará muchos problemas y desafíos si un determinado indicador se expande diez veces. Por otro lado, a medida que la escala se expanda, la arquitectura del sistema back-end definitivamente se volverá más complicada. Resulta que solo hay un servidor y LAMP están instalados juntos. Luego se separó la base de datos, el proxy inverso, el equilibrio de carga, la fragmentación de bases de datos y tablas, Memcache, la cola de mensajes, el procesamiento de transacciones, CDN, NOSQL, varias arquitecturas y servidores evolucionaron gradualmente. La complejidad de la arquitectura naturalmente traerá más problemas y más desafíos.
El segundo mayor desafío proviene de la seguridad.
Los problemas de seguridad surgen sin cesar y son difíciles de prevenir. Se necesitan medios técnicos y sistemas de gestión.
El tercer gran desafío proviene de la eficiencia.
Si puede proporcionar suficiente velocidad de procesamiento, suficiente ancho de banda y si puede garantizar la capacidad de respuesta son eficiencias externas. Si puede utilizar menos servidores, si puede utilizar servidores más baratos o si puede utilizar más servidores que ahorren energía, estas son eficiencias internas.
El cuarto desafío importante proviene de los cambios en la demanda.
No importa si se trata de front-end o back-end, siempre que se trate de desarrollo de software, se enfrentarán a cambios en la demanda. un gran desafío. Pero cuando un sistema ya se está ejecutando de manera estable y eficiente, los requisitos cambian una vez que se cumplen, la parte que originalmente no tuvo problemas colapsará repentinamente una vez que colapse, será una pesadilla para los ingenieros de back-end.
El quinto desafío proviene del dogma.
Hay innumerables grandes empresas de TI en el mundo y todas están abiertas y dispuestas a compartir su arquitectura y tecnología. Por lo tanto, para los ingenieros de back-end con una "visión amplia", la dificultad no radica en cómo resolverlo, sino en cómo elegir entre muchas soluciones. Siguen surgiendo marcos y prácticas, al igual que casos exitosos. Todo el mundo lo está usando bien, pero ¿te atreves a usarlo? ¿Es más importante ser lo suficientemente valiente para probar cosas nuevas o ser conservador?
Tres reglas del desarrollo back-end
Diseñar para fallar
Una proporción considerable del código en el back-end no existe para ser correcto en condiciones normales circunstancias, sino para garantizar una respuesta aceptable del sistema en circunstancias especiales o extremas. Hay muchas compensaciones por hacer aquí: ¿mejora incremental o diseño avanzado? ¿Expansión horizontal, optimización del negocio, procesamiento front-end o back-end? Se deben sopesar una gran cantidad de compensaciones de acuerdo con el entorno cambiante y necesidades, por lo que es fácil cometer errores.
La arquitectura es abstracta
¿Por qué abstracta? Porque los conceptos abstractos tienen una mejor adaptabilidad, son más fáciles de reutilizar y pueden adaptarse de manera más flexible a los cambios. Pero la abstracción es difícil, y la abstracción inapropiada es aún más dañina. Lo que es terrible es que no existe una buena metodología para ello. La mayoría de ellos se basan en un conjunto de principios básicos y se basan en la experiencia. El desarrollo de back-end web no les ha prestado mucha atención durante mucho tiempo. Muchos sitios web se han diseñado y desarrollado ampliamente, por lo que la estructura parche sobre parche naturalmente se ha vuelto común.
La arquitectura es producto
Debido a que la arquitectura en sí es el producto, un producto de software contiene diferentes perspectivas, las más importantes incluyen la perspectiva vista por los usuarios y la perspectiva del software. esqueleto, que es la arquitectura. Pero el producto es el producto, y todas estas perspectivas deben estar unificadas y consistentes. Esto requiere que la arquitectura comprenda el alma del producto y el producto debe comprender la dificultad de la arquitectura. De lo contrario, es fácil no lograrlo. lo que quiere hacer o terminar con costos enormes. El costo arquitectónico de implementar una función de esquina es una tragedia. ;