Red de conocimiento de abogados - Derecho de sociedades - Hu Xi: Cómo pasé de ser un novato a ser arquitecto

Hu Xi: Cómo pasé de ser un novato a ser arquitecto

Establecer una base teórica sólida

¡Un viaje de mil millas comienza con un solo paso! La tecnología no es algo que se logra de la noche a la mañana, sino que es el resultado de una acumulación a largo plazo. Unas sólidas habilidades básicas son el comienzo para hacerlo todo bien. Hasta ahora, todavía recuerdo varios libros que han tenido una gran influencia en mí:

■"Pensamientos de programación en C"

■"Comprensión profunda de MFC"

■"Programación básica de Windows"

■"Estructura de datos" y "Principios de compilación"

Aprendí informática en el orden de estos libros. C antes El punto de inflexión fue "Pensamientos de programación en C", lo que me hizo sentir que los programas y lenguajes son tan interesantes. Todavía recuerdo el concepto de tablas virtuales, especialmente el uso de punteros, que me serán de gran ayuda. Será de gran ayuda para muchas personas en el aprendizaje del lenguaje Java en el futuro. También tenemos un alto nivel de comprensión de las características del estado y el lenguaje.

Lo más memorable del libro "Introducción a MFC" es su extremadamente poderosa definición de macros y diseño de jerarquía de objetos. Sin embargo, en el proceso de aprendizaje de MFC, el mayor problema que encontré fue que muchas cosas eran cajas negras, lo que desencadenó mi deseo de llegar al fondo del asunto. Más tarde estudié "Programación central de Windows". El mayor beneficio de este libro fue que aprendí mucho sobre el conocimiento subyacente del sistema operativo y cómo se ejecuta. Pero desafortunadamente, si hubiera comenzado a aprender de Linux o Unix en ese momento, debería haberlo entendido de manera más sistemática.

Después de eso, estudié en profundidad "Estructura de datos" y "Principios de compilación". Esto es algo que volví a aprender después de mucha práctica. Tomemos como ejemplo los "Principios de compilación". Mi comprensión de este tema era muy limitada. Más tarde, para implementar algo, necesitaba usar un lenguaje de secuencias de comandos. Busqué y encontré Velocity (más tarde pensé que sería mejor). uso Groovy), y al usarlo me sentí muy bien después de tomarlo. En el pasado, para modificar la lógica del programa, necesitaba recompilar o modificar la configuración y volver a publicarla, pero ahora solo necesita editarla y guardarla para obtener los resultados que desea. Esto me fascinó, así que quería saber cómo se implementaba. Después de revisar el código fuente, me di cuenta de que existe algo llamado JavaCC. De esta manera, comencé con lenguajes interpretados y gradualmente comencé el proceso de aprendizaje loco sobre los principios de compilación. Los lenguajes de programación se volvieron cada vez más interesantes.

¡He dicho tantas cosas solo para enfatizar la importancia del conocimiento teórico básico! Aunque ahora usamos tantos marcos, si tienes un conocimiento teórico básico sólido, estas cosas son como juguetes. La base es una herramienta excelente que puede ganar sin ningún truco.

Cultivar el pensamiento abstracto perfecto

Analicemos poco a poco este problema desde el nivel del lenguaje, debería ser fácil de explicar. El lenguaje de programación es la herramienta que utilizamos para comunicarnos en ciertos escenarios. El ensamblador es un lenguaje de máquina; C y C son lenguajes compilados, que son abstracciones de alto nivel para ensamblador; y Java y C # son abstracciones de nivel superior, incluso abstracciones. Han aparecido las máquinas virtuales (el impacto de esto es que muchos estándares de evaluación de lenguajes de alto nivel en el futuro se basarán en si admiten máquinas virtuales), y luego muchos lenguajes dinámicos se volverán más abstractos. En este punto quizás te preguntes, ¿cuál es la conexión entre hablar de tantos idiomas y marcos de aprendizaje? Déjame explicarte lentamente.

Cuando usamos un lenguaje, usamos su sintaxis para programar, y aprender un marco es en realidad usar el lenguaje proporcionado por el marco para escribir programas: Struts, usamos muchas configuraciones además de Acción. y Form; Usamos el modelo Bean, que es su modelo más básico (Spring ahora es demasiado grande para que muchas personas lo aprendan); iBatis usa su modelo XML-SQL; JBPM usa su llamado modelo GOP (Programación orientada a gráficos); ); el flujo web utiliza su modelo de flujo de página. Puedo darles muchos ejemplos de esto (es por eso que DSL es tan popular ahora).

Mucha gente dirá: ¡Me he desmayado después de aprender tanto! También podrías pensarlo, ¿por qué existen tantas cosas para resolver los problemas de iBatis e Hibernate? resolver el problema de la programación de bases de datos; la programación de páginas web originales es una unidad concreta independiente. El flujo web puede hacer que estas páginas formen una forma fluida, lo que hace que el desarrollo sea más natural. Se puede ver en JBPM GOP que los desarrolladores de JBoss son muy buenos. interesado en la abstracción. La comprensión es muy profunda. He dado tantos ejemplos para que todos no tengan miedo de estos marcos existentes. Con una base sólida, los conceptos abstractos son fáciles de entender. Sin capacidades abstractas, no podrá resolver problemas más rápido y mejor.

Ampliar el nivel de conocimiento existente

Bajo la premisa de consolidar la estructura de conocimiento original, necesitamos expandir el nivel de conocimiento existente. La rana en el fondo del pozo siempre ve el cielo tan ancho como la boca del pozo. Sólo cuando salta puede ver el cielo azul infinitamente hermoso y las nubes blancas. Solía ​​​​ser complaciente en áreas con las que ya estaba familiarizado, pero después de salir, descubrí lo superficial que era. ¡Cuanto más conocimiento aprenda, más precisos serán mis conocimientos sobre cosas nuevas! ¡Esto te ayudará a consolidar lo existente! conocimientos y aprender nuevos conocimientos sistemáticamente.

¿Necesitamos infinitos conocimientos de aprendizaje paralelo? Mi respuesta es No. El conocimiento humano es limitado y necesitamos una estructura de conocimiento en forma de T. Tus conocimientos deben ser amplios, pero debes estar especializado en ciertos puntos técnicos. Esta es la clave para ser un buen arquitecto. A veces, la especialización puede brindarle una sensación intuitiva de un conocimiento muy amplio.

La práctica también es una parte muy importante. No tengas miedo de las dificultades y pienses que esto es demasiado difícil y no puedo completarlo. ¡A veces los resultados de las cosas pueden ser malos, pero el proceso! Es muy valioso y puedes aprender de él. Puedes aprender muchas cosas y, al mismo tiempo, puedes evitar ser frívolo.

También debes centrarte en cultivar tus buenas habilidades de comunicación y explicación. Los arquitectos se enfrentan a una base de clientes diversa, que incluye ingenieros técnicos, personal comercial, directivos de empresas e incluso clientes directos. También es un desafío para los arquitectos explicar claramente un sistema altamente abstracto y complejo. Por lo tanto, los arquitectos deben dominar las habilidades y utilizar una variedad de expresiones para explicar la relación entre la arquitectura y el diseño de productos, el negocio específico y la estrategia de la empresa. ¡Desarrolla buenas habilidades de comunicación y comunícate más con las personas que te rodean y aprenderás más!

El equilibrio es el arte del diseño arquitectónico. Cuando diseñamos algo, estamos equilibrando los intereses de todas las partes. El equilibrio puede ser temporal, como por ejemplo cuántos años de disponibilidad del sistema debe soportarse; el equilibrio puede ser vertical, como por ejemplo soportar la compatibilidad con versiones anteriores del sistema, garantizar la simplicidad del modelo de programación del programador, etc. Este equilibrio varía de persona a persona, de vez en cuando y de lugar a lugar. ¡La comprensión del equilibrio es probablemente el criterio para juzgar el nivel arquitectónico de un arquitecto! Los arquitectos deben sopesar la dimensionalidad, la integridad y la escalabilidad al diseñar, y no deben limitarse a su propio tercio de acre al considerar los problemas. ¡Planta una variedad de campos y obtendrás muchos cultivos!

Ten una base sólida, amplía constantemente tus conocimientos, mejora tu sistema de conocimientos y comunícate y practica constantemente basándose en la abstracción del conocimiento existente. Obtendrá capacidades de equilibrio arquitectónico más sólidas. Finalmente, me gustaría decir que el conocimiento empresarial es muy importante, ¡y esta es la clave para su práctica!

Hu Xi, trabaja para Alipay (China) Network Technology Co., Ltd., una subsidiaria de Grupo Alibaba. Se desempeñó como arquitecto técnico, responsable de la planificación, las soluciones y otros trabajos relacionados de la arquitectura técnica de Alipay.