¿Cómo deberían los programadores de Java aprender el código fuente del marco?

Preste atención, no se pierda; ¡continúe actualizando la información y las tecnologías relacionadas con Java! ! !

Prefacio

Inserte la descripción de la imagen aquí
No importa qué nivel de programadores, leer el código fuente es un gran beneficio, especialmente para los principiantes, puede absorber rápidamente la esencia de una excelente nutrición del código marco y crecer rápidamente. Desafortunadamente, el código fuente oscuro puede hacer que la gente se sienta tímida fácilmente. Hoy compartiré el método de lectura del código fuente.

Comprender qué problemas resuelve el marco

Esto no solo es útil para leer el código fuente, sino también para todo el estudio. Considere una pregunta: La razón por la que aprendió Vue \ React, excepto que están en pleno apogeo, le avergonzaría encontrar un trabajo si no estudia, y ¿cree que algunas de sus excelentes propiedades me han traído algunos beneficios?

Los desarrolladores necesitan y deben comprender el marco de moda. En comparación con el sistema técnico anterior, qué problemas resuelve el marco y dónde están las ventajas. El aprendizaje con un propósito no se perderá. Por ejemplo, ¿cuál es la mayor ventaja de Vue \ React? Componentización, aprenda con preguntas sobre cómo el marco resuelve este problema, y ​​obtendrá el doble de resultado con la mitad del esfuerzo.

Comprender las ideas de diseño del marco.

No podemos entender el código fuente (o parece que estamos luchando), no porque no entendamos cierta gramática, sino porque no entendemos las ideas del autor. Da un ejemplo simple:

 //这个方法可以获得point2顶角的弧度值
    functiongetAngle(point1, point2, point3){
    
    
       var bb = (point2.y - point1.y)*(point2.y - point1.y) + (point2.x - point1.x)*(point2.x - point1.x);
        var aa = (point3.y - point1.y)*(point3.y - point1.y) + (point3.x - point1.x)*(point3.x - point1.x);
       var cc = (point3.y - point2.y)*(point3.y - point2.y) + (point3.x - point2.x)*(point3.x - point2.x);
        var cosa = (bb + cc - aa)/(2*Math.sqrt(bb)*Math.sqrt(cc));
       return Math.acos(cosa);
    }

El método getAngle recibe tres parámetros de coordenadas y puede calcular el valor en radianes del ángulo del vértice del punto 2. Si no le dice que esto usa la ley de los cosenos de los triángulos, me temo que no podrá ver cómo se calcula durante mucho tiempo.

Formas de entender el pensamiento de diseño del marco :

  • Vaya al sitio web oficial del marco para ver la documentación. Marco de código abierto, independientemente de los detalles, esta es definitivamente la información autorizada de primera mano
  • Vaya a Internet para buscar el resumen del análisis de otras personas (el análisis del código fuente no será menos), en la mayoría de los casos, habrá un gran dios que lo haya estudiado, pararse sobre los hombros de gigantes puede salvar muchas cosas

Además, la idea de diseño es el nivel de framework completo. Para cada detalle de implementación, se utilizan muchos patrones de diseño, como programación funcional (el más comúnmente usado en Js), modo singleton, modo agente, modo fábrica, etc., que requiere Suele acumularse. Después de que se haya acumulado una cierta cantidad de código, se recomienda leer algunos libros de patrones de diseño, que son beneficiosos para el diseño de su propio código y para leer el código fuente de otros.

Construya un entorno de depuración para descubrir el contexto principal de ejecución.

Subdividido en cada módulo, es necesario tener una comprensión general de la función del módulo, ¿cómo lograr esta "comprensión"? Además de los documentos oficiales y la información en línea, la mejor manera es escribir una demostración simple, configurar un buen entorno de prueba, agregar información de depuración y, naturalmente, borrar el ciclo de vida del marco, qué módulo debe llamarse en cada paso (para la estructura del directorio Marco muy claro y excelente, a veces puedes adivinar intuitivamente, imprime el registro para confirmar)

Distinguir la prioridad

El código fuente del marco es un árbol enorme y exuberante, y lo que tienes que hacer es escalar desde la raíz. El árbol tiene tantas ramas y el tiempo es muy caro, las estrategias de lectura son muy importantes. Nuestra ruta de lectura debe basarse en el proceso principal (es decir, el impulso principal del árbol, para que podamos llegar al ápice lo más rápido posible), y para algunos pequeños detalles, mordisquearemos lentamente después de esto (o cuando sea necesario).

Por ejemplo, si desea leer el código fuente de Vue, existe un directorio para analizar las plantillas, generar el árbol de sintaxis AST y finalmente generar la función Render. De hecho, el paso más importante en este paso es el resultado de esta función Render. Cómo analizar la plantilla y generar el árbol sintáctico Primero puede dejarlo a un lado y luego mirar hacia atrás cuando lo necesite. De lo contrario, puede quedarse atascado fácilmente en un punto determinado y tendrá la idea de darse por vencido.

Persistencia

Con una estrategia técnica adecuada, es normal encontrar problemas difíciles y difíciles. En este momento, la prueba es la perseverancia. Continuar depurando, buscando información o encontrando un gran dios para hacer preguntas, siempre y cuando no se rinda.

Aprenda a pedir ayuda

No importa qué tan fuerte sea su capacidad de autoaprendizaje, ya sea P4 o P7, siempre habrá dificultades. La gente común que encuentra cuellos de botella solo puede atacar en silencio una y otra vez. Si el impacto tiene éxito, es otro mundo; si el impacto falla, se frustrará y se perderá por un tiempo, y en el peor de los casos, será devastado.

¿Y si alguien abre el camino? Cualquiera que haya leído la novela sabe que si alguien te guía durante el despeje, puedes evitar muchos desvíos si aprendes de la experiencia de los predecesores. La vida tiene solo unas pocas décadas, así que ¿por qué no ahorrar tiempo para aprender más y hacer cosas más significativas?

Para ayudarlo a mejorar lo antes posible y avanzar de manera más eficiente, he preparado cuidadosamente los materiales de la serie de código fuente del marco, ¡con la esperanza de ayudarlo a abrirse paso lo antes posible!

资料视频

Inserte la descripción de la imagen aquí

电子书

Inserte la descripción de la imagen aquí¡Por favor, dame un golpe fuerte! ¡Consíguelo gratis!

Supongo que te gusta

Origin blog.csdn.net/XingXing_Java/article/details/95617064
Recomendado
Clasificación