Introducción al ingeniero de desarrollo web front-end
El front-end web siempre ha ocupado una posición importante. Especialmente el rápido desarrollo 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 presentaciones de los ingenieros de desarrollo web front-end. ¡Todos pueden consultarlos!
La diferencia entre front-end y back-end web
Diferencias funcionales
En primer lugar, debemos distinguir la diferencia entre diseñadores web y desarrolladores web. La diferencia entre ambos se refleja principalmente en: Uno tiene que ver con el aspecto visual o estético del sitio web, ¿cómo se llama? ¿Interfaz? ;El otro es el diseño de codificación invisible, llamado. ¿extremo posterior? . 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 produjo especialmente un gráfico que muestra 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. estilo de codificación; ambos traen sus propios dispositivos, uno debe traer una MacBook Pro y el otro solo elige un teclado pequeño. Además de las diferencias anteriores, tienen una cosa en común: ambos le tienen miedo a las chicas. ¿Parece que ambos lo tienen? ¿casa? Se avecinan problemas.
Diferencias técnicas
Desde una perspectiva técnica, echemos un vistazo a qué capacidades necesita cada empresa importante para el 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 1 o 2 marcos js, como JQuery.
4. Tener una comprensión clara de los problemas comunes de compatibilidad del navegador y las soluciones confiables.
5. Tener ciertos requisitos de rendimiento, comprender las sugerencias de optimización del rendimiento de Yahoo e 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 tienen un profundo conocimiento de los patrones de desarrollo web.
2. Ser competente en el uso de sistemas de bases de datos comunes como Oracle, sqlserver, mysql, etc., y tener sólidas capacidades de diseño de bases de datos.
3. Familiarizados con las herramientas de gestión de configuración de proyectos de maven, tomcat, jboss y otros servidores de aplicaciones, se dará prioridad a los candidatos con experiencia relevante en ajuste de carga bajo procesamiento de alta concurrencia.
4. Competente en técnicas de análisis y diseño orientado a objetos, incluidos patrones de diseño y modelado UML.
5. Estar familiarizado con la programación de redes, tener la experiencia y la capacidad para diseñar y desarrollar interfaces API externas y tener la capacidad de diseñar especificaciones API multiplataforma y diseños de llamadas API eficientes.
En resumen, la diferencia entre los dos es que
en términos de funcionalidad, el front-end es el principal responsable del diseño de la interfaz y el back-end es el principal responsable de las funciones; detrás de la interfaz.
En términos de imagen, el front-end presta atención a la belleza de la forma; el back-end presta atención a la función y la practicidad (por esta razón, también fui al departamento de I+D de Qiaobutong para una prueba). Inspección in situ y descubrimos que nuestro ingeniero de front-end compró dos Macbooks y el ingeniero de back-end compró dos teclados.
¡En la contratación corporativa, los ingenieros de front-end deben ser competentes! en JS, dominar el uso de JQuery, comprender CSS y dominar el uso de este conocimiento para desarrollar efectos interactivos. Los desarrolladores back-end deben poder escribir código Java, declaraciones SQL, diseñar bases de datos simples y conocer Spring e iBatis; y conocer algunos patrones de diseño.
Tanto el front-end como el back-end pertenecen a la categoría de desarrollo de software. Entonces, al escribir un currículum, puede consultar a ingenieros de desarrollo de software, ¡lo cual es muy útil para los niños!
Para convertirte en un desarrollador web eficiente, necesitas trabajar mucho para mejorar tu forma de trabajar y mejorar los resultados de tu trabajo. Sin embargo, es inevitable encontrar algunas dificultades en el desarrollo.
Entonces, ¿cuáles son los principales desafíos que enfrentan el front-end y el back-end respectivamente? ¡Ven a verlo conmigo!
Desafíos que enfrenta el desarrollo front-end web
Cinco desafíos principales en el desarrollo front-end
El primer desafío: la compatibilidad
Existe Hay muchos tipos de navegadores, como IE, Firefox, Chrome, Opera y muchos navegadores shell de IE, como Sogou, Maxthon y 360, además de las 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, tiene sus propios problemas entre las versiones anteriores y la compatibilidad con versiones anteriores es un dolor de cabeza. Sin acumular algo de experiencia, se sentirá perdido al enfrentarse a enfermedades difíciles y complicadas.
El segundo desafío: 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 efectos de UI más básicos y ligeramente complejos. que debería ser creado por la propia interfaz utilizando una combinación de CSS y DOM. Cuando ve un requisito, el primer paso que tiene en mente es cómo combinar CSS, DOM y otras partes básicas para lograr el efecto final. ¿El efecto final es realmente el mismo? ¿crear? Los componentes aparentemente comunes, como TabView, Treeview, Rich Editor, Color Picker y otros procesos, en realidad no están disponibles en la interfaz y deben implementarlos usted mismo.
La demanda de pegamento para los lenguajes front-end es demasiado fuerte. CSS, DOM y JS son tres tecnologías diferentes y también son las tres habilidades básicas más importantes que deben dominarse en el sistema de conocimiento front-end. El efecto front-end finalmente se presenta mediante la cooperación de CSS, DOM y JS. Sin ninguna tecnología, es difícil avanzar. Siempre se deben considerar los puntos de conocimiento en múltiples direcciones al mismo tiempo. La programación front-end es como ejecutar tres subprocesos al mismo tiempo y la complejidad aumenta exponencialmente.
El tercer 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+JS es tan poderosa que se puede lograr el mismo efecto de muchas maneras completamente diferentes, cada una de las cuales tiene diferentes dificultades de desarrollo, escalabilidad y mantenibilidad. Hay tantas soluciones. Cuando ve un efecto, primero piensa en cómo utilizar las interfaces subyacentes en CSS y DOM para lograrlo. ¿Es esto? ¿crear? En este momento es posible que tenga muchas implementaciones diferentes en mente. ¿crear? ¿Lo quieres cuando hayas terminado? ¿Comparar? Sopese los pros y los contras de las distintas opciones y, con el tiempo, podrá elegir la más adecuada. Por supuesto, no todas las interfaces son perfeccionistas, por lo que debe elegir la mejor manera. Sin embargo, debido a que la interfaz es programación GUI y se enfrenta directamente 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 es también la pieza que se modifica más fácilmente. ¿repetidamente? ¿Revisar? Todo programador sabe lo aterrador que esto puede ser. Si la mantenibilidad no es buena, es 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 desafío: rendimiento
El quinto desafío: crecimiento personal
El pensamiento del desarrollador es muy importante.
El desarrollo front-end, si no existe una idea de diseño general, se convertirá en un programa fragmentado, un montón de efectos de código, un montón de funciones de script y una lógica de chip requerida. Descubrí que debido al ajuste de ue, además de la función central de procesamiento de datos, se modificó todo el código front-end. El desarrollo front-end consta básicamente de tres partes: operación DOM, procesamiento de datos e interacción de datos. Si las funciones de estas tres partes se distribuyen adecuadamente, el código de interfaz será fácil de expandir y ajustar.
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, sino 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 procesarlos, usar el código para expresar claramente ideas y escribir notas, y brindar al personal de mantenimiento posterior una idea legible. La cantidad de cambio en la parte delantera es varias veces mayor que en la parte trasera. El frontal no es absoluto, sino que se modifica constantemente 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 la escala.
La expansión de la escala, como la expansión de las visitas, la expansión del almacenamiento de archivos, la expansión del volumen de datos y la expansión del número de servidores.
Un sitio web que se ve exactamente igual en el front-end casi enfrentará una gran cantidad de problemas y desafíos si una determinada métrica se expande diez veces. Por otro lado, a medida que la escala se expanda, la arquitectura del sistema back-end se volverá más compleja. Resulta que solo hay un servidor y LAMP está instalado en conjunto. Luego se separó la base de datos, proxy inverso, equilibrio de carga, subbase de datos y subtabla, Memcache, cola de mensajes, procesamiento de transacciones, CDN, NOSQL, varias arquitecturas y el servidor evolucionó 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 requieren medios técnicos y sistemas de gestión.
El tercer desafío proviene de la eficiencia.
Si puede proporcionar suficiente velocidad de procesamiento, si puede proporcionar suficiente ancho de banda y si puede garantizar la capacidad de respuesta, todas estas son eficiencias externas. Si podemos usar menos servidores, si podemos usar servidores más baratos y si podemos usar más servidores que ahorren energía son eficiencias internas.
El cuarto desafío proviene de los cambios en la demanda.
Tanto el front-end como el back-end enfrentarán cambios en la demanda. Siempre que se trate de desarrollo de software, es un gran desafío. Sin embargo, cuando un sistema ya funciona de manera estable y eficiente, los requisitos cambian. Después de cumplir con los requisitos, ¿las piezas que no presentan problemas colapsarán repentinamente? Una vez que falla, es una pesadilla para los ingenieros de back-end.
El quinto desafío proviene del dogma.
Existen innumerables empresas de TI en el mundo. Todos son muy abiertos y dispuestos a compartir su arquitectura y tecnología. Entonces, ¿para qué? ¿Ampliar tus horizontes? Para los ingenieros de back-end, la dificultad no es cómo resolverlo, sino cómo elegir entre muchas soluciones. Están surgiendo marcos y prácticas, al igual que historias de éxito. La gente lo usa bien. ¿Te atreves a usarlo? ¿Es valiente o conservador probar cosas nuevas? Esto es difícil.
Tres principios del desarrollo back-end
Diseñar para fallar
Una proporción significativa del código back-end existe no para ser correcto en general, sino para garantizar respuesta aceptable del sistema bajo circunstancias especiales o extremas. Hay muchos compromisos que hacer aquí: ¿mejoras incrementales o diseño avanzado? ¿Expansión horizontal, optimización empresarial, procesamiento front-end o back-end? Se hacen muchos compromisos en función de circunstancias y necesidades cambiantes, por lo que es fácil cometer errores.
La arquitectura se trata de abstracción
¿Por qué abstracta? Porque los conceptos abstractos son más adaptables, más fáciles de reutilizar y más flexibles para adaptarse a los cambios. Sin embargo, la abstracción es difícil y la abstracción inapropiada es aún más dañina. Lo aterrador es que no existe una buena metodología. La mayoría de ellos se basan en un conjunto de principios básicos y experiencia. Pero el desarrollo web back-end no les ha prestado mucha atención durante mucho tiempo. Muchos sitios web están diseñados y desarrollados de manera extensa y, naturalmente, la estructura de parches superpuestos se ha convertido en la corriente principal.
La arquitectura es un producto
Debido a que la arquitectura en sí es un 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 ser unificadas. Esto requiere que la arquitectura comprenda el alma del producto y el producto debe comprender las dificultades de la arquitectura. De lo contrario, se producirán tragedias como el incumplimiento de las expectativas o la realización. ciertas funciones de esquina con enormes costos arquitectónicos pueden realizarse fácilmente.
;