Red de conocimiento del abogados - Bufete de abogados - ¿Cuál es el camino de desarrollo futuro para los ingenieros de Java?

¿Cuál es el camino de desarrollo futuro para los ingenieros de Java?

Recientemente, algunos internautas me han preguntado cómo aprender el backend de Java por mi cuenta, y algunos quieren cambiar desde otras direcciones, pero no entienden muy bien qué es necesario aprender el backend de Java y por dónde empezar. ¿Cuáles son las principales tecnologías de back-end de Java, etc.? Me dan ganas de aprender, pero estoy confundido y no sé por dónde empezar. Estoy escribiendo este blog basándome en la experiencia de personas que han estado allí. Puede que no todo sea correcto, pero lo he resumido basándome en mi propia experiencia para su referencia.

Conceptos básicos de Java

Java es un lenguaje de programación puramente orientado a objetos, por lo que, además de la sintaxis básica, debes comprender sus características de programación orientada a objetos: encapsulación, herencia, polimorfismo. Además, existen las características de los genéricos y la reflexión. Muchas tecnologías de marco se basan en ellas. Por ejemplo, tanto el Ioc central como el AOP de Spring utilizan la reflexión, y el propio proxy dinámico de Java también se implementa mediante la reflexión. del principio de proxy dinámico de Java. Además, algunas bibliotecas estándar de Java también son muy comunes, como colecciones, E / S y concurrencia. Están casi en todas partes en el desarrollo web y a menudo se preguntan en las entrevistas. Por lo tanto, antes de aprender el backend de Java, también puede hacerlo. Expóngalo primero. También se deben centrar estos fundamentos, así como algunas características nuevas de Java8, como las expresiones Lambda, las operaciones de flujo de colección, la nueva API de fecha, etc. También he escrito varios blogs sobre las nuevas características. , encuéntrelo usted mismo, no lo publicaré.

En cuanto a las recomendaciones de libros, no recomiendo que los principiantes comiencen a leer "Pensamientos sobre programación Java" porque fui yo quien decidió aprender Java por mi cuenta por la tarde y leer este libro por la noche. Para ser honesto, realmente no entendí de qué estaba hablando en ese momento, porque no tenía ninguna base en la programación en lenguaje orientado a objetos, y este libro fue tan profundo y profundo para mí en ese momento. Una biblia completa, pero creo que sigue siendo la biblia del mundo Java y gano algo cada vez que la leo. Le recomiendo que lea primero "Java Core Technology". Este libro es relativamente fácil de entender y más aceptable para los principiantes.

En cuanto a las recomendaciones de video, originalmente escuché el tutorial básico de Java impartido por el Sr. Bi Xiangdong de cierto cliente. Lo que el Sr. Bi enseñó fue tan animado e interesante que, sin saberlo, me llevó al abismo. Java y yo no podíamos librarnos, a veces me reía a carcajadas escuchando sus vídeos, quizás los momentos más divertidos de mi etapa autodidacta.

Base de datos

Acerca de SQL: tutorial de SQL, tutorial de MySQL

Después de entender algo de sintaxis básica, seguí directamente al profesor en el vídeo para realizar algunas operaciones con tablas. Ejercicios prácticos, como consulta de una sola tabla, consulta de varias tablas, etc. Le sugiero que no sea demasiado ambicioso al aprender SQL. Necesita practicar más y no solo comprenderlo, porque es muy importante escribir SQL conciso en el trabajo. Aquí diré que siempre me he adherido a la declaración SQL en el proyecto. Si puede evitar consultas de varias tablas, evite las consultas de varias tablas. Si puede separar varias declaraciones, separe varias declaraciones, porque esto implica problemas de multitabla. Rendimiento de consultas de tablas y expansión de bases de datos.

Acerca de JDBC: tutorial de JDBC, análisis del código fuente del objeto de conexión de JDBC

Es necesario comprender el uso de la API de JDBC. De hecho, es solo un conjunto de interfaces estandarizadas. Los controladores de la base de datos solo necesitan implementarse Con JDBC, podemos llamar al controlador correspondiente a través de la API estándar sin saber cómo se implementa el controlador. Este es el beneficio de la programación orientada a interfaz.

Y para JDBC, miré directamente el video para comprenderlo. Después del video, creé una pequeña herramienta transaccional basada en la herramienta Apache Dbutils y la resumí especialmente con un mapa mental:

Conceptos básicos web

. p>

Hongshu, el fundador de código abierto de China, escribió una vez un artículo "Principiantes en el desarrollo web Java, manténganse alejados de varios marcos y desarrollen desde Servlet". Creo que tiene razón en el desarrollo de Java actual. Solo sé cómo usar marcos, pero no entiendo en absoluto algunos puntos de conocimiento de la Web. De hecho, hay muchos marcos, pero todos son básicamente la misma rutina, así que antes de aprender cualquier marco, siente las bases. Web bien. Sienta bien las bases de la Web. Bueno, mirar el marco es realmente como un pato en el agua.

Acerca del protocolo Http, este artículo es muy claro: Protocolo Http

Para obtener recomendaciones de datos sobre los conceptos básicos de la Web, estaba mirando "Tecnología de desarrollo web Tomcat y Java" " Explicación detallada "explica con gran detalle todos los puntos de conocimiento técnico del desarrollo web Java, pero ahora parece que algunas de las tecnologías mencionadas en él son un poco antiguas, pero también es bueno comprender la historia del desarrollo web Java. Entonces, en términos de conceptos básicos de Web, siempre miro el "Tutorial en video web de Java súper completo" impartido por el Sr. Cui de cierto invitado. Las conferencias son muy detalladas y vívidas, ¡y también hay proyectos prácticos!

En cuanto a JSP, sólo necesitas entender que en realidad es un Servlet. En cuanto al uso de algunas de sus etiquetas, creo que puedes simplemente ignorarlo, porque casi ninguna empresa en Internet todavía usa JSP. , excepto algunos proyectos antiguos. Hoy en día, es popular separar el front-end y el back-end, las aplicaciones de una sola página y el back-end solo proporciona interfaces API, por lo que el tiempo es precioso, así que concéntrese esta vez en las especificaciones de Servlet.

Acerca de Tomcat, es un contenedor web. Los proyectos back-end que escribimos deben implementarse en el contenedor web para su ejecución. En realidad, es un programa de servidor que sigue Http e interactúa con el cliente a través de la comunicación Socket. :Estructura de Tomcat y proceso de procesamiento de solicitudes

Marcos web convencionales

Hay tantos marcos web Java. Una vez que tenga algo de experiencia, también puede escribir un marco web. Internet habla sobre Spring y Struts2. Hibernate es la troika de Java. Solo quiero decir que fue hace mucho tiempo. En serio, no recomiendo Struts2 e Hibernate. Créame, solo necesita comenzar con Spring y SpringMVC. Y Mybatis al principio, especialmente el marco Spring. De hecho, los marcos de la familia Spring son muy buenos.

Pero una cosa que debemos recordarle es que no debe obsesionarse con varios marcos y ser complaciente con saber cómo usarlos de múltiples maneras, lo que le llevará a conocerlos pero sin saber por qué.

La idea central de Spring es IOC y AOP:

Hable sobre la comprensión de Spring IOC

Programación orientada a aspectos de Spring

SpringMVC it ​​La idea es utilizar un servlet para el reenvío de solicitudes y el control de todas las solicitudes. Este servlet se llama DispatcherServlet:

Proceso de inicialización de SpringMVC

Proceso de procesamiento de solicitudes de SpringMVC

Mybatis puede ensamblar SQL dinámicamente, evitando casi todo el código JDBC y la configuración manual de parámetros y obteniendo conjuntos de resultados:

tutorial introductorio de mybatis

Serie detallada de Mybatis

Web Framework Advanced

Después de usar el marco SSM, sentirá que el marco no es más que esto. Si tiene una comprensión general de Spring, también querrá escribir un ". versión "imitada" de Spring. Ahora, un marco web liviano tiene principalmente las siguientes funciones:

Puede leer archivos de configuración definidos por el usuario e inicializar el marco;

Tiene un contenedor Bean y gestiona el proyecto. El ciclo de vida del objeto de la clase;

Tiene inyección de dependencia para reducir el acoplamiento entre clases;

Tiene la función AOP, para que el proyecto pueda ser. programado horizontalmente sin cambiar el código original. Agregar lógica de negocios;

Tiene modo de marco MVC.

De hecho, además de SSM, hay cientos de marcos web, entre los cuales el grupo de la familia Spring es el más deslumbrante. Aquí recomiendo dos marcos de la familia Spring: SpringBoot y SpringCloud.

SpringBoot compensa las deficiencias de la configuración de Spring. Ya no es necesario trabajar duro en xml complicados. Se puede llamar un subversivo en el desarrollo back-end de Java. Libro recomendado "El subversivo en el desarrollo de Java EE. : SpringBoot en la práctica" 》

SpringBoot construye proyectos web

Análisis del código fuente de configuración automática de SpringBoot

SpringBoot Starter personalizado

spring-boot -starter-tutorial

SpringCloud es una arquitectura de microservicios que puede dividir el proyecto en microservicios según el negocio. Cada microservicio se puede implementar de forma independiente y los servicios se pueden coordinar entre sí. A medida que un proyecto se vuelve cada vez más grande, se vuelve cada vez más difícil de mantener. En este momento, dividir el proyecto en varios microservicios, mantenerlos por separado e implementarlos por separado también puede reducir el acoplamiento entre los diferentes negocios del proyecto. Libro recomendado "Arquitectura de microservicios Spring Cloud y Docker en la práctica", este libro combina perfectamente Docker y microservicios, ¡es perfecto!

Sitio web oficial de Spring Cloud chino

El tutorial de Spring Cloud más simple de la historia

Escribí un blog sobre Spring Cloud:

Servicio SpringCloud registro y descubrimiento de arquitectura de microservicios

Consumidores de servicios de la arquitectura de microservicios SpringCloud

Disyuntor de la arquitectura de microservicios SpringCloud

Servicios de la arquitectura de microservicios SpringCloud Gateway

Otras tecnologías

Redis: una base de datos de valores clave de alto rendimiento. Cuando hay muchas solicitudes simultáneas, el almacenamiento en caché de los datos en Redis mejorará el rendimiento de la respuesta del servidor, lo que reducirá en gran medida la presión sobre la base de datos.

Sitio web oficial de redis en chino

Tutorial de redis

Git: el sistema de control de versiones distribuido más avanzado del mundo. Se recomienda que todos los principiantes comiencen a usar Git desde el comando. ¡línea! Siga la cuenta pública de Stormzhang "googdev" y responda a "github" para obtener un libro electrónico tutorial gratuito de GitHub. Creo que está muy bien escrito.

Sitio web oficial de Git

El tutorial de Git más completo

Algunos comandos comunes de Git

Maven: una herramienta para construir proyectos, Dependencias entre proyectos está perfectamente organizado a través de xml y los proyectos se pueden compilar en archivos de código de bytes a través del complemento de compilación. El Gradle similar también es una buena opción.

Explicación detallada del archivo pom.xml de Maven

Linux: al menos debe poder utilizar comandos de uso común y poder implementar proyectos en un entorno Linux.

Lista de comandos de Linux

El tutorial de terminal remoto de conexión SSH más completo

Docker: Es simplemente un artefacto de implementación de proyectos para el que no tengo tiempo. Explícalo. Consulta mi blog de la serie Docker y ¡comienza tu viaje con Docker! Libro recomendado "Introducción a la tecnología Docker y combate práctico", ¡el primer libro Docker de China!

Práctica de Docker (1)

Práctica de Docker (2)

Práctica de Docker (3)

docker-deploy-tutorial

Práctica de Docker (2)

Práctica de Docker (3)

docker-deploy-tutorial

p>

Herramientas de desarrollo

Si desea hacer bien su trabajo, primero debe perfeccionar sus herramientas. Aquí hay algunas herramientas de desarrollo que recomiendo:

Intellij IDEA: el mejor IDE para el desarrollo de Java, esto se reconoce. al principio, y luego usé Intellij IDEA, y luego descubrí que Eclipse es una mierda, así que te aconsejo que no uses Eclipse, ¡solo usa Intellij IDEA!

Tutorial de IntelliJ IDEA

Iterm2: ¡El mejor terminal para macOS!

Guía del usuario de Iterm2

Chrome: La vida es corta, por favor usa Chrome, no hay tiempo para explicaciones, ¡súbete a bordo!

Postman: Una herramienta de depuración de interfaces muy útil.